diff --git a/AGENTS.md b/AGENTS.md index 987f8bb9..2b635a39 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -176,6 +176,22 @@ Tests mirror source structure in `tests/`: Use `pytest.mark.performance` for performance tests (exclude with `-m "not performance"`). +### Test Fixture Patterns + +When writing integration tests that construct `WorkflowConfig` programmatically, follow these conventions (see `tests/test_engine/test_limits.py` for canonical examples): + +- `AgentDef` uses `prompt=` (not `instructions=`), `output={"key": OutputField(type="string")}` (dict, not list), and `routes=[RouteDef(...)]` (not raw dicts). +- `WorkflowDef` requires `entry_point=` and places `limits=` inside `workflow=`. `agents=` and `output=` are top-level on `WorkflowConfig`. +- The engine entry point is `await engine.run({})` (not `execute`). +- To test with controlled token/cost data, patch `provider.execute` to return a custom `AgentOutput` with explicit `input_tokens`, `output_tokens`, and `model` fields. + +### Resume / Checkpoint Parity + +When adding new fields to `LimitEnforcer`: + +- **Transient fields** (reset each run): add to `from_dict()` as parameters sourced from the current workflow config, like `timeout_seconds`, `budget_usd`, `budget_mode`. Update the call site in `cli/run.py` → `resume_workflow_async()`. +- **Persistent fields** (survive across resume): add to both `to_dict()` and `from_dict()` deserialization, like `max_iterations`, `current_iteration`, `execution_history`. + ## Code Style - Python 3.12+ diff --git a/CHANGELOG.md b/CHANGELOG.md index ab525d1f..ade678d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -318,6 +318,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `docs/cli-reference.md` `--web-bg` section now documents the `human_gate` incompatibility and the new pre-fork validation behavior. +### Added +- Workflow `limits.budget_usd` and `limits.budget_mode` (`audit` | `enforce`) + cap cumulative LLM cost across a run. `audit` (default) emits a + `budget_exceeded` event and continues so users can profile costs before + enforcing; `enforce` saves a checkpoint and stops with + `BudgetExceededError`. Resuming with `conductor resume` starts a fresh + budget window (cumulative spend resets to $0), so the remaining work runs + under a full budget — raising `budget_usd` first is optional. Sub-workflow + spend is merged into the parent so a parent budget accounts for delegated + cost. Schema, engine enforcement at all five existing limit-check points, + resume parity for restored budget state, and the new `BudgetExceededError` + type are wired end-to-end. See + [docs/workflow-syntax.md](docs/workflow-syntax.md#cost-budget) and + [docs/configuration.md](docs/configuration.md) for the graduation path. + ## [0.1.17](https://github.com/microsoft/conductor/compare/v0.1.16...v0.1.17) - 2026-05-21 ### Added diff --git a/docs/configuration.md b/docs/configuration.md index 67224341..4b7e6b4a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -449,8 +449,10 @@ Safety limits prevent runaway execution: ```yaml workflow: limits: - max_iterations: 10 # Default: 10, max: 100 - timeout_seconds: 600 # Default: 600, max: 3600 + max_iterations: 10 # Default: 10, max: 500 + timeout_seconds: 600 # Default: None (unlimited) + budget_usd: 5.00 # Default: None (no budget tracking) + budget_mode: audit # Default: audit. Options: audit, enforce ``` **max_iterations**: @@ -461,6 +463,24 @@ workflow: - Total workflow timeout - Includes all agent executions +**budget_usd** and **budget_mode**: +- Tracks cumulative cost and acts when the budget is exceeded +- `audit` mode (default): emits a `budget_exceeded` event and logs a warning, + but the workflow continues — use this to discover cost profiles +- `enforce` mode: emits a `budget_exceeded` event, saves a checkpoint, + and stops the workflow with a `BudgetExceededError`. Resuming with + `conductor resume` starts a fresh budget window (cumulative spend resets + to $0), so raising the budget first is optional +- Sub-workflow spend is merged into the parent budget, so a parent-level + budget accounts for delegated `type: workflow` cost +- When `budget_usd` is not set, no budget tracking occurs + +**Recommended graduation path**: + +1. Run workflows without a budget to see costs in the summary +2. Add `budget_usd` in `audit` mode to track overshoots without breaking workflows +3. Switch to `enforce` mode once you know your cost profile + ## Complete Examples ### Claude Configuration @@ -577,7 +597,8 @@ export CONDUCTOR_LOG_LEVEL=DEBUG # INFO, DEBUG, WARNING, ERROR 1. **Set conservative limits** initially (`max_iterations: 10`) 2. **Use timeout** to prevent long-running workflows -3. **Test with dry-run** before production +3. **Set a cost budget** — start with `budget_usd` in `audit` mode to learn your cost profile, then switch to `enforce` +4. **Test with dry-run** before production ## Troubleshooting diff --git a/docs/workflow-syntax.md b/docs/workflow-syntax.md index 94f10dca..e322ff11 100644 --- a/docs/workflow-syntax.md +++ b/docs/workflow-syntax.md @@ -36,6 +36,8 @@ workflow: limits: max_iterations: 10 # Default: 10, max: 500 timeout_seconds: 600 # Optional: Maximum wall-clock time (seconds) + budget_usd: 5.00 # Optional: Cost cap in USD (no tracking when unset) + budget_mode: audit # audit (default) | enforce hooks: on_start: "{{ template }}" # Optional: Expression evaluated on start @@ -1016,6 +1018,8 @@ workflow: limits: max_iterations: 50 # Maximum agent executions (1-500, default: 10) timeout_seconds: 1800 # Maximum wall-clock time in seconds (optional) + budget_usd: 5.00 # Cumulative cost cap in USD (optional) + budget_mode: audit # audit | enforce (default: audit) ``` ### Iteration Counting @@ -1031,6 +1035,28 @@ workflow: - Includes all agent execution time and overhead - `None` (default) means no timeout +### Cost Budget + +- `budget_usd` caps cumulative LLM cost across the run. When unset (default), no + budget tracking occurs. +- `budget_mode: audit` (default) emits a `budget_exceeded` event and logs a + warning on first overshoot, but the workflow continues — use this to discover + cost profiles before enforcing. +- `budget_mode: enforce` emits a `budget_exceeded` event, saves a checkpoint, + and stops the workflow with `BudgetExceededError`. Resuming with + `conductor resume ` starts a fresh budget window (cumulative + spend resets to $0); raising `budget_usd` first is optional. +- Sub-workflow (`type: workflow`) spend is merged into the parent's budget, so + a parent-level budget accounts for cost incurred by delegated workflows. +- Recommended graduation path: + 1. Run without `budget_usd` to observe costs in the summary + 2. Add `budget_usd` in `audit` mode to track overshoots non-disruptively + 3. Switch to `enforce` once the cost profile is understood + +See [configuration.md](configuration.md#limits) for the budget +configuration reference and notes on how budget tracking integrates with the +provider usage callbacks. + ### Periodic Checkpoints By default Conductor writes a checkpoint **only when a workflow fails** with an diff --git a/src/conductor/cli/run.py b/src/conductor/cli/run.py index 380ed87e..ce9b6752 100644 --- a/src/conductor/cli/run.py +++ b/src/conductor/cli/run.py @@ -521,6 +521,46 @@ def verbose_log_agent_timeout( _file_console.print(text) +def verbose_log_budget_exceeded( + budget_usd: float, + spent_usd: float, + budget_mode: str, + current_agent: str | None = None, +) -> None: + """Log a cost-budget overshoot. + + Renders the ``budget_exceeded`` event so audit-mode overshoots are + visible on the console/log instead of only reaching the logging + lastResort stderr handler. + + Args: + budget_usd: Configured budget limit in USD. + spent_usd: Cumulative spend that crossed the budget. + budget_mode: Active mode (``audit`` or ``enforce``). + current_agent: Agent executing when the budget was exceeded. + """ + from rich.text import Text + + from conductor.cli.app import is_verbose + + should_console = is_verbose() + should_file = _file_console is not None + if not should_console and not should_file: + return + + style = "red bold" if budget_mode == "enforce" else "yellow bold" + text = Text() + text.append(" 💸 budget exceeded ", style=style) + text.append(f"(${spent_usd:.2f} of ${budget_usd:.2f}, {budget_mode} mode)", style="dim") + if current_agent: + text.append(f" at agent '{current_agent}'", style="dim") + + if should_console: + _verbose_console.print(text) + if _file_console is not None: + _file_console.print(text) + + def verbose_log_parallel_summary( group_name: str, success_count: int, @@ -946,6 +986,14 @@ def on_event(self, event: WorkflowEvent) -> None: d.get("elapsed", 0.0), ) + elif t == "budget_exceeded": + verbose_log_budget_exceeded( + d.get("budget_usd", 0.0), + d.get("spent_usd", 0.0), + d.get("budget_mode", "audit"), + d.get("current_agent"), + ) + elif t == "wait_completed": interrupted = d.get("interrupted", False) waited = d.get("waited_seconds", d.get("elapsed", 0.0)) @@ -2029,6 +2077,8 @@ async def resume_workflow_async( restored_limits = LimitEnforcer.from_dict( cp.limits, timeout_seconds=config.workflow.limits.timeout_seconds, + budget_usd=config.workflow.limits.budget_usd, + budget_mode=config.workflow.limits.budget_mode, ) # Construct the web dashboard early (subscribes to the emitter on diff --git a/src/conductor/config/schema.py b/src/conductor/config/schema.py index 627f391e..306bdb60 100644 --- a/src/conductor/config/schema.py +++ b/src/conductor/config/schema.py @@ -22,6 +22,13 @@ from conductor.providers.context_tier import ContextTier from conductor.providers.reasoning import ReasoningEffort +BudgetMode = Literal["audit", "enforce"] +"""How the engine responds when a workflow cost budget is exceeded. + +Shared between :class:`LimitsConfig` and :class:`conductor.engine.limits.LimitEnforcer` +so the literal type is defined in exactly one place. +""" + # Maximum allowed wait-step duration (24 hours). Anything longer almost # certainly wants ``limits.timeout_seconds`` reconsidered first. MAX_WAIT_DURATION_SECONDS = 24 * 60 * 60 @@ -323,6 +330,27 @@ class LimitsConfig(BaseModel): a hard time limit. """ + budget_usd: float | None = Field(default=None, gt=0.0) + """Maximum cost budget for the workflow in USD. + + When set, the engine tracks cumulative cost and acts according to + ``budget_mode`` when the budget is exceeded. Must be strictly positive + (a zero budget would trip after the first priced token, which is never + a useful limit). Default is None (no budget tracking). + """ + + budget_mode: BudgetMode = "audit" + """How the engine responds when ``budget_usd`` is exceeded. + + - ``audit``: emit a ``budget_exceeded`` event and log a warning, + but allow the workflow to continue. Use this to discover cost + profiles before applying hard limits. + - ``enforce``: emit a ``budget_exceeded`` event, save a checkpoint, + and stop the workflow with a ``BudgetExceededError``. + + Only takes effect when ``budget_usd`` is set. Default is ``audit``. + """ + class PricingOverride(BaseModel): """Custom pricing for a specific model. diff --git a/src/conductor/engine/limits.py b/src/conductor/engine/limits.py index a0baec50..e3743ccc 100644 --- a/src/conductor/engine/limits.py +++ b/src/conductor/engine/limits.py @@ -11,8 +11,9 @@ from collections.abc import AsyncIterator from contextlib import asynccontextmanager from dataclasses import dataclass, field -from typing import Any +from typing import Any, NamedTuple +from conductor.config.schema import BudgetMode from conductor.exceptions import ( MaxIterationsError, ) @@ -21,6 +22,25 @@ ) +class BudgetCheckResult(NamedTuple): + """Result of a :meth:`LimitEnforcer.check_budget` call. + + Attributes: + exceeded: True when ``spent_usd`` is over ``budget_usd``. + should_emit: True when the caller should surface a ``budget_exceeded`` + event/warning now. True on the first overshoot and again each time + spend crosses another full ``budget_usd`` increment (so audit-mode + users get periodic updates instead of a single stale figure). + budget_usd: The configured budget (None when no budget is set). + spent_usd: The cumulative spend that was checked. + """ + + exceeded: bool + should_emit: bool + budget_usd: float | None + spent_usd: float + + @dataclass class LimitEnforcer: """Enforces iteration and timeout limits on workflow execution. @@ -52,6 +72,12 @@ class LimitEnforcer: timeout_seconds: int | None = None """Maximum wall-clock time for entire workflow. None means unlimited.""" + budget_usd: float | None = None + """Maximum cost budget in USD. None means no budget tracking.""" + + budget_mode: BudgetMode = "audit" + """Budget enforcement mode: 'audit' (warn only) or 'enforce' (stop).""" + current_iteration: int = 0 """Current iteration count.""" @@ -64,6 +90,13 @@ class LimitEnforcer: current_agent: str | None = None """Currently executing agent name.""" + _budget_last_emitted_usd: float | None = field(default=None, repr=False) + """Spend at the last ``budget_exceeded`` emission, or None if never emitted. + + Used to re-arm audit-mode emission once spend climbs by another full + ``budget_usd`` increment, instead of latching after a single event. + """ + def to_dict(self) -> dict[str, Any]: """Serialize limit state to a JSON-compatible dict. @@ -84,18 +117,29 @@ def to_dict(self) -> dict[str, Any]: def from_dict( cls, data: dict[str, Any], - timeout_seconds: int | None = None, + *, + timeout_seconds: int | None, + budget_usd: float | None, + budget_mode: BudgetMode, ) -> LimitEnforcer: """Reconstruct a LimitEnforcer from a serialized dict. Uses ``max_iterations`` from the checkpoint (it may have been increased by the user) and ``timeout_seconds`` from the current workflow config so that the resumed run gets a fresh timeout - window. + window. ``budget_usd`` and ``budget_mode`` come from the current + config so that the resumed run gets a fresh budget window. + + The transient fields are keyword-only and required: callers must + source them from the current workflow config. Defaulting them here + previously let non-CLI callers silently disable the budget on + resume. Args: data: Dict previously produced by ``to_dict()``. timeout_seconds: Timeout from the workflow config (fresh window). + budget_usd: Budget from the workflow config (fresh window). + budget_mode: Budget mode from the workflow config. Returns: A new LimitEnforcer with restored iteration state and a fresh @@ -104,6 +148,8 @@ def from_dict( enforcer = cls( max_iterations=data.get("max_iterations", 10), timeout_seconds=timeout_seconds, + budget_usd=budget_usd, + budget_mode=budget_mode, ) enforcer.current_iteration = data.get("current_iteration", 0) enforcer.execution_history = list(data.get("execution_history", [])) @@ -239,6 +285,41 @@ def check_timeout(self) -> None: current_agent=self.current_agent, ) + def check_budget(self, spent_usd: float) -> BudgetCheckResult: + """Check if the workflow cost budget has been exceeded. + + In ``enforce`` mode the caller should raise ``BudgetExceededError`` + after emitting the event. In ``audit`` mode the caller should + log a warning and continue. + + Emission re-arms per budget increment: ``should_emit`` is True on + the first overshoot and again once cumulative spend climbs by + another full ``budget_usd`` beyond the last emission. This keeps + audit-mode output current as spend grows, rather than latching on + a single stale figure. + + Args: + spent_usd: Current cumulative cost from UsageTracker. + + Returns: + A ``BudgetCheckResult`` carrying the overshoot flag, the + should-emit flag, and the budget/spend figures so the caller + does not need to re-derive them. + """ + if self.budget_usd is None: + return BudgetCheckResult(False, False, None, spent_usd) + + if spent_usd <= self.budget_usd: + return BudgetCheckResult(False, False, self.budget_usd, spent_usd) + + should_emit = ( + self._budget_last_emitted_usd is None + or spent_usd >= self._budget_last_emitted_usd + self.budget_usd + ) + if should_emit: + self._budget_last_emitted_usd = spent_usd + return BudgetCheckResult(True, should_emit, self.budget_usd, spent_usd) + def get_elapsed_time(self) -> float: """Get the elapsed time since workflow start. diff --git a/src/conductor/engine/usage.py b/src/conductor/engine/usage.py index c23cf32c..6ee565e2 100644 --- a/src/conductor/engine/usage.py +++ b/src/conductor/engine/usage.py @@ -195,6 +195,19 @@ def reset(self) -> None: """Clear all recorded usage data.""" self._agents.clear() + def merge(self, other: WorkflowUsage) -> None: + """Merge another workflow's usage records into this tracker. + + Appends every per-agent record from ``other`` so that this + tracker's aggregate token and cost totals include the other + workflow's spend. Used to roll a sub-workflow's usage up into its + parent so a parent-level cost budget accounts for delegated spend. + + Args: + other: Aggregated usage from another (typically child) workflow. + """ + self._agents.extend(other.agents) + def check_budget(self, budget_usd: float) -> tuple[bool, float]: """Check if budget is exceeded. diff --git a/src/conductor/engine/workflow.py b/src/conductor/engine/workflow.py index ca557b6f..c6c7b222 100644 --- a/src/conductor/engine/workflow.py +++ b/src/conductor/engine/workflow.py @@ -28,6 +28,7 @@ from conductor.events import WorkflowEvent, WorkflowEventEmitter from conductor.exceptions import ( AgentTimeoutError, + BudgetExceededError, ConductorError, ExecutionError, InterruptError, @@ -365,6 +366,8 @@ def __init__( self.limits = LimitEnforcer( max_iterations=config.workflow.limits.max_iterations, timeout_seconds=config.workflow.limits.timeout_seconds, + budget_usd=config.workflow.limits.budget_usd, + budget_mode=config.workflow.limits.budget_mode, ) self.gate_handler = HumanGateHandler(skip_gates=skip_gates) self.max_iterations_handler = MaxIterationsHandler(skip_gates=skip_gates) @@ -375,6 +378,10 @@ def __init__( pricing_overrides=self._build_pricing_overrides(), ) + # One-time latch so the "budget set but no pricing" degraded warning + # is emitted at most once per workflow run (see _check_budget). + self._budget_unpriced_warned = False + # Multi-provider support: registry takes precedence self._registry = registry self._single_provider = provider @@ -505,6 +512,79 @@ def _emit(self, event_type: str, data: dict[str, Any]) -> None: event = WorkflowEvent(type=event_type, timestamp=_time.time(), data=data) self._event_emitter.emit(event) + def _check_budget(self) -> None: + """Check whether the workflow cost budget has been exceeded. + + Reads current spend from ``usage_tracker``, delegates the + threshold check to ``LimitEnforcer.check_budget()``, and acts + according to ``budget_mode``: + + - On first overshoot (and each further budget increment): emit a + ``budget_exceeded`` event. + - ``enforce`` mode: raise ``BudgetExceededError`` (triggers + checkpoint + workflow stop). + - ``audit`` mode: log a warning and continue. + + When a budget is configured but token usage carries no pricing + (e.g. an unpriced model), cost cannot be computed and the budget + cannot be enforced. A one-time degraded warning is emitted so the + silent no-op is visible. + """ + if self.limits.budget_usd is None: + return + + summary = self.usage_tracker.get_summary() + cost = summary.total_cost_usd + + # Degraded path: tokens flowed but no priced model, so cost is None. + # ``check_budget`` would see $0 and never trip — warn once instead of + # silently disabling the budget. + if cost is None: + if summary.total_tokens > 0 and not self._budget_unpriced_warned: + self._budget_unpriced_warned = True + logger.warning( + "Cost budget set ($%.2f) but no pricing is available for the " + "models used (%d tokens spent so far); the budget cannot be " + "enforced. Add limits.budget pricing overrides or use a priced model.", + self.limits.budget_usd, + summary.total_tokens, + ) + return + + result = self.limits.check_budget(cost) + if not result.exceeded: + return + + budget = result.budget_usd + spent = result.spent_usd + + if result.should_emit: + self._emit( + "budget_exceeded", + { + "budget_usd": budget, + "spent_usd": spent, + "budget_mode": self.limits.budget_mode, + "current_agent": self.limits.current_agent, + }, + ) + + if self.limits.budget_mode == "enforce": + raise BudgetExceededError( + f"Workflow exceeded cost budget (${budget:.2f}): spent ${spent:.2f}", + budget_usd=budget, # type: ignore[arg-type] # non-None when exceeded + spent_usd=spent, + current_agent=self.limits.current_agent, + ) + + if result.should_emit: + logger.warning( + "Budget exceeded (audit mode): spent $%.4f of $%.2f budget%s", + spent, + budget, + f" at agent '{self.limits.current_agent}'" if self.limits.current_agent else "", + ) + def _yaml_source_field(self) -> dict[str, str]: """Return ``{"yaml_source": }`` if the workflow file is readable.""" if self.workflow_path is None: @@ -1364,7 +1444,13 @@ async def _execute_subworkflow( instructions_preamble=child_preamble, ) - return await self._run_child_engine(child_engine, sub_inputs, agent) + output = await self._run_child_engine(child_engine, sub_inputs, agent) + # Roll the child's spend up into the parent tracker so a parent-level + # cost budget accounts for sub-workflow delegation. Without this, + # type:workflow spend lives only in the child's tracker and bypasses + # the parent's enforce-mode budget entirely. + self.usage_tracker.merge(child_engine.usage_tracker.get_summary()) + return output async def _execute_subworkflow_with_inputs( self, @@ -1478,6 +1564,9 @@ async def _execute_subworkflow_with_inputs( output = await self._run_child_engine(child_engine, sub_inputs, agent) usage = child_engine.usage_tracker.get_summary() + # Roll child spend up into the parent tracker (see _execute_subworkflow) + # so a parent-level cost budget accounts for delegated sub-workflow cost. + self.usage_tracker.merge(usage) return output, usage async def _run_child_engine( @@ -2777,8 +2866,9 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: for_each_group.name, count=for_each_output.count ) - # Check timeout after for-each group + # Check timeout and budget after for-each group self.limits.check_timeout() + self._check_budget() # Evaluate routes from for-each group route_result = self._evaluate_for_each_routes( @@ -2848,8 +2938,9 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: agent_count = len(parallel_group.agents) self.limits.record_execution(parallel_group.name, count=agent_count) - # Check timeout after parallel group + # Check timeout and budget after parallel group self.limits.check_timeout() + self._check_budget() # Evaluate routes from parallel group route_result = self._evaluate_parallel_routes( @@ -3218,6 +3309,7 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: self.context.store(agent.name, output_content) self.limits.record_execution(agent.name) self.limits.check_timeout() + self._check_budget() route_result = self._evaluate_routes(agent, output_content) @@ -3506,6 +3598,7 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: self.context.store(agent.name, sub_output) self.limits.record_execution(agent.name) self.limits.check_timeout() + self._check_budget() route_result = self._evaluate_routes(agent, sub_output) @@ -3649,8 +3742,9 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: # Record successful execution self.limits.record_execution(agent.name) - # Check timeout after each agent + # Check timeout and budget after each agent self.limits.check_timeout() + self._check_budget() # Evaluate routes using the Router route_result = self._evaluate_routes(agent, output.content) @@ -3716,6 +3810,10 @@ async def _execute_loop(self, current_agent_name: str) -> dict[str, Any]: fail_data["elapsed_seconds"] = e.elapsed_seconds fail_data["timeout_seconds"] = e.timeout_seconds fail_data["current_agent"] = e.current_agent + elif isinstance(e, BudgetExceededError): + fail_data["budget_usd"] = e.budget_usd + fail_data["spent_usd"] = e.spent_usd + fail_data["current_agent"] = e.current_agent if isinstance(e, InterruptError): # An interactive Stop/Esc or a dashboard pause -> Kill is a # user-initiated stop, not a crash. Flag it so the dashboard diff --git a/src/conductor/exceptions.py b/src/conductor/exceptions.py index f8b83076..a3b477ab 100644 --- a/src/conductor/exceptions.py +++ b/src/conductor/exceptions.py @@ -486,6 +486,69 @@ def __init__( self.agent_name = agent_name +class BudgetExceededError(ExecutionError): + """Raised when a workflow exceeds its cost budget in enforce mode. + + This is a safety mechanism to prevent runaway spending in agentic + workflows. Only raised when ``budget_mode`` is ``enforce``. + + Attributes: + budget_usd: The configured budget limit. + spent_usd: The actual amount spent when the limit was exceeded. + current_agent: The agent that was executing when the budget was exceeded. + """ + + def __init__( + self, + message: str, + *, + budget_usd: float, + spent_usd: float, + current_agent: str | None = None, + suggestion: str | None = None, + file_path: str | None = None, + line_number: int | None = None, + ) -> None: + """Initialize a BudgetExceededError. + + Args: + message: The error message describing the overshoot. + budget_usd: The configured budget limit in USD. + spent_usd: The cumulative cost when the limit was exceeded. + current_agent: The agent that was executing when the budget was + exceeded. Forwarded to ``ExecutionError.agent_name`` so both + ``.agent_name`` and ``.current_agent`` resolve to the same value. + suggestion: Optional advice. When omitted, an actionable default is + generated. + file_path: Optional path to the workflow file. + line_number: Optional line number within the workflow file. + """ + self.budget_usd = budget_usd + self.spent_usd = spent_usd + self.current_agent = current_agent + + if suggestion is None: + suggestion = ( + f"Increase limits.budget_usd (currently ${budget_usd:.2f}) " + f"or switch to budget_mode: audit to continue without enforcement. " + f"Resuming this workflow starts a fresh budget window " + f"(cumulative spend resets to $0)" + ) + if current_agent: + suggestion += f". Budget exceeded after agent '{current_agent}'" + + super().__init__( + message, + suggestion, + file_path, + line_number, + agent_name=current_agent, + ) + # ExecutionError.__init__ already stored agent_name; keep current_agent + # as the canonical attribute used by callers/tests. + self.current_agent = current_agent + + class HumanGateError(ExecutionError): """Raised when a human gate encounters an error. diff --git a/src/conductor/web/frontend/src/stores/workflow-store.ts b/src/conductor/web/frontend/src/stores/workflow-store.ts index a71bdbd1..f49498f9 100644 --- a/src/conductor/web/frontend/src/stores/workflow-store.ts +++ b/src/conductor/web/frontend/src/stores/workflow-store.ts @@ -2156,6 +2156,19 @@ function buildLogEntry(event: WorkflowEvent): LogEntry | null { case 'workflow_failed': return { timestamp: ts, level: 'error', source: 'workflow', message: `Workflow failed: ${d.message || d.error_type || 'unknown error'}` }; + case 'budget_exceeded': { + const spent = (d.spent_usd as number) ?? 0; + const budget = (d.budget_usd as number) ?? 0; + const mode = String(d.budget_mode ?? 'audit'); + const at = d.current_agent ? ` at ${d.current_agent}` : ''; + return { + timestamp: ts, + level: mode === 'enforce' ? 'error' : 'warning', + source: 'workflow', + message: `Budget exceeded — $${spent.toFixed(2)} of $${budget.toFixed(2)} (${mode})${at}`, + }; + } + case 'checkpoint_saved': return { timestamp: ts, level: 'info', source: 'workflow', message: `Checkpoint saved: ${(d.path as string)?.split('/').pop() || 'unknown'}` }; diff --git a/src/conductor/web/frontend/src/types/events.ts b/src/conductor/web/frontend/src/types/events.ts index f873c107..9ce749f7 100644 --- a/src/conductor/web/frontend/src/types/events.ts +++ b/src/conductor/web/frontend/src/types/events.ts @@ -53,7 +53,8 @@ export type EventType = | 'agent_validator_complete' | 'agent_validation_failed' | 'iteration_limit_reached' - | 'iteration_limit_resolved'; + | 'iteration_limit_resolved' + | 'budget_exceeded'; // --- Workflow lifecycle --- diff --git a/src/conductor/web/static/assets/index-CS__QXNr.css b/src/conductor/web/static/assets/index-CS__QXNr.css new file mode 100644 index 00000000..74311b1c --- /dev/null +++ b/src/conductor/web/static/assets/index-CS__QXNr.css @@ -0,0 +1 @@ +/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-950:oklch(25.8% .092 26.042);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-950:oklch(27.9% .077 45.635);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-400:oklch(71.4% .203 305.504);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-3{top:calc(var(--spacing) * 3)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-\[4\.25rem\]{margin-left:4.25rem}.ml-\[calc\(7ch\+5ch\+8ch\+1rem\)\]{margin-left:calc(20ch + 1rem)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0{height:calc(var(--spacing) * 0)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-11{height:calc(var(--spacing) * 11)}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[90\%\]{height:90%}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:calc(var(--spacing) * 0)}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-0{width:calc(var(--spacing) * 0)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-\[3px\]{width:3px}.w-\[5ch\]{width:5ch}.w-\[80\%\]{width:80%}.w-\[90vw\]{width:90vw}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[16ch\]{max-width:16ch}.max-w-\[85\%\]{max-width:85%}.max-w-\[140px\]{max-width:140px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[560px\]{max-width:560px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[8ch\]{min-width:8ch}.min-w-\[14px\]{min-width:14px}.min-w-\[140px\]{min-width:140px}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[banner-in_200ms_ease-out\]{animation:.2s ease-out banner-in}.animate-\[context-pulse_2s_ease-in-out_infinite\]{animation:2s ease-in-out infinite context-pulse}.animate-\[tooltip-in_150ms_ease-out\]{animation:.15s ease-out tooltip-in}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x-\[6px\]{border-inline-style:var(--tw-border-style);border-inline-width:6px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-\[6px\]{border-top-style:var(--tw-border-style);border-top-width:6px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.\!border-none{--tw-border-style:none!important;border-style:none!important}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/50{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab,var(--color-fuchsia-500) 30%,transparent)}}.border-fuchsia-500\/40{border-color:#e12afb66}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/40{border-color:color-mix(in oklab,var(--color-fuchsia-500) 40%,transparent)}}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500) 30%,transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab,red,red)){.border-green-500\/40{border-color:color-mix(in oklab,var(--color-green-500) 40%,transparent)}}.border-green-500\/60{border-color:#00c75899}@supports (color:color-mix(in lab,red,red)){.border-green-500\/60{border-color:color-mix(in oklab,var(--color-green-500) 60%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab,red,red)){.border-red-500\/40{border-color:color-mix(in oklab,var(--color-red-500) 40%,transparent)}}.border-slate-500\/40{border-color:#62748e66}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/40{border-color:color-mix(in oklab,var(--color-slate-500) 40%,transparent)}}.border-transparent{border-color:#0000}.border-x-transparent{border-inline-color:#0000}.border-t-\[var\(--border\)\]{border-top-color:var(--border)}.\!bg-\[var\(--border\)\]{background-color:var(--border)!important}.bg-\[\#a78bfa\]{background-color:#a78bfa}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--completed\)\]{background-color:var(--completed)}.bg-\[var\(--failed\)\]{background-color:var(--failed)}.bg-\[var\(--node-bg\)\]{background-color:var(--node-bg)}.bg-\[var\(--pending\)\]{background-color:var(--pending)}.bg-\[var\(--running\)\]{background-color:var(--running)}.bg-\[var\(--surface\)\],.bg-\[var\(--surface\)\]\/80{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--surface\)\]\/80{background-color:color-mix(in oklab,var(--surface) 80%,transparent)}}.bg-\[var\(--surface-hover\)\]{background-color:var(--surface-hover)}.bg-\[var\(--surface-raised\)\]{background-color:var(--surface-raised)}.bg-\[var\(--waiting\)\]{background-color:var(--waiting)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/60{background-color:#fcbb0099}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/60{background-color:color-mix(in oklab,var(--color-amber-400) 60%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-amber-950\/30{background-color:#4619014d}@supports (color:color-mix(in lab,red,red)){.bg-amber-950\/30{background-color:color-mix(in oklab,var(--color-amber-950) 30%,transparent)}}.bg-amber-950\/90{background-color:#461901e6}@supports (color:color-mix(in lab,red,red)){.bg-amber-950\/90{background-color:color-mix(in oklab,var(--color-amber-950) 90%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-fuchsia-400{background-color:var(--color-fuchsia-400)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500) 10%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/5{background-color:color-mix(in oklab,var(--color-green-500) 5%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-green-950\/90{background-color:#032e15e6}@supports (color:color-mix(in lab,red,red)){.bg-green-950\/90{background-color:color-mix(in oklab,var(--color-green-950) 90%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-red-950\/50{background-color:#46080980}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/50{background-color:color-mix(in oklab,var(--color-red-950) 50%,transparent)}}.bg-red-950\/90{background-color:#460809e6}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/90{background-color:color-mix(in oklab,var(--color-red-950) 90%,transparent)}}.bg-slate-500\/20{background-color:#62748e33}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/20{background-color:color-mix(in oklab,var(--color-slate-500) 20%,transparent)}}.bg-slate-900\/90{background-color:#0f172be6}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/90{background-color:color-mix(in oklab,var(--color-slate-900) 90%,transparent)}}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-px{padding-top:1px}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--completed\)\]{color:var(--completed)}.text-\[var\(--failed\)\]{color:var(--failed)}.text-\[var\(--running\)\]{color:var(--running)}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--waiting\)\]{color:var(--waiting)}.text-amber-200{color:var(--color-amber-200)}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/80{color:color-mix(in oklab,var(--color-amber-300) 80%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-cyan-400\/70{color:#00d2efb3}@supports (color:color-mix(in lab,red,red)){.text-cyan-400\/70{color:color-mix(in oklab,var(--color-cyan-400) 70%,transparent)}}.text-cyan-600{color:var(--color-cyan-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500\/70{color:#00bb7fb3}@supports (color:color-mix(in lab,red,red)){.text-emerald-500\/70{color:color-mix(in oklab,var(--color-emerald-500) 70%,transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-400\/60{color:#05df7299}@supports (color:color-mix(in lab,red,red)){.text-green-400\/60{color:color-mix(in oklab,var(--color-green-400) 60%,transparent)}}.text-green-400\/80{color:#05df72cc}@supports (color:color-mix(in lab,red,red)){.text-green-400\/80{color:color-mix(in oklab,var(--color-green-400) 80%,transparent)}}.text-green-500\/60{color:#00c75899}@supports (color:color-mix(in lab,red,red)){.text-green-500\/60{color:color-mix(in oklab,var(--color-green-500) 60%,transparent)}}.text-green-600{color:var(--color-green-600)}.text-indigo-400\/70{color:#7d87ffb3}@supports (color:color-mix(in lab,red,red)){.text-indigo-400\/70{color:color-mix(in oklab,var(--color-indigo-400) 70%,transparent)}}.text-indigo-500{color:var(--color-indigo-500)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-400\/50{color:#ff656880}@supports (color:color-mix(in lab,red,red)){.text-red-400\/50{color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.text-red-400\/60{color:#ff656899}@supports (color:color-mix(in lab,red,red)){.text-red-400\/60{color:color-mix(in oklab,var(--color-red-400) 60%,transparent)}}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-300\/80{color:#cad5e2cc}@supports (color:color-mix(in lab,red,red)){.text-slate-300\/80{color:color-mix(in oklab,var(--color-slate-300) 80%,transparent)}}.text-slate-400\/70{color:#90a1b9b3}@supports (color:color-mix(in lab,red,red)){.text-slate-400\/70{color:color-mix(in oklab,var(--color-slate-400) 70%,transparent)}}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(167\,139\,250\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a78bfa66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_var\(--completed-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--completed-muted));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_var\(--failed-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--failed-muted));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_var\(--running-glow\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--running-glow));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_var\(--waiting-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--waiting-muted));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_var\(--completed-muted\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--completed-muted));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_var\(--failed-muted\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--failed-muted));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_var\(--running-glow\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--running-glow));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/10{--tw-shadow-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.shadow-green-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/10{--tw-shadow-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-slate-500\/10{--tw-shadow-color:#62748e1a}@supports (color:color-mix(in lab,red,red)){.shadow-slate-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--accent\)\]{--tw-ring-color:var(--accent)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-\[var\(--bg\)\]{--tw-ring-offset-color:var(--bg)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:0ms\]{animation-delay:0s}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}@media(hover:hover){.group-hover\:border-amber-400:is(:where(.group):hover *){border-color:var(--color-amber-400)}}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-amber-400\/60:hover{border-color:#fcbb0099}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-400\/60:hover{border-color:color-mix(in oklab,var(--color-amber-400) 60%,transparent)}}.hover\:border-emerald-500\/30:hover{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/30:hover{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.hover\:border-red-500\/30:hover{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/30:hover{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.hover\:bg-\[var\(--accent\)\]\/20:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--accent\)\]\/20:hover{background-color:color-mix(in oklab,var(--accent) 20%,transparent)}}.hover\:bg-\[var\(--node-bg\)\]:hover{background-color:var(--node-bg)}.hover\:bg-\[var\(--surface\)\]:hover{background-color:var(--surface)}.hover\:bg-\[var\(--surface-hover\)\]:hover{background-color:var(--surface-hover)}.hover\:bg-\[var\(--text-muted\)\]:hover{background-color:var(--text-muted)}.hover\:bg-amber-500\/5:hover{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/5:hover{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.hover\:bg-amber-500\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/30:hover{background-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.hover\:bg-fuchsia-500\/20:hover{background-color:#e12afb33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-fuchsia-500\/20:hover{background-color:color-mix(in oklab,var(--color-fuchsia-500) 20%,transparent)}}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.hover\:bg-red-500\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/30:hover{background-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.hover\:bg-slate-500\/30:hover{background-color:#62748e4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-500\/30:hover{background-color:color-mix(in oklab,var(--color-slate-500) 30%,transparent)}}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:text-\[var\(--running\)\]:hover{color:var(--running)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-amber-400:focus{border-color:var(--color-amber-400)}.focus\:border-fuchsia-400:focus{border-color:var(--color-fuchsia-400)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}}:root{--bg:#0a0a0f;--bg-subtle:#111118;--surface:#16161e;--surface-hover:#1c1c26;--surface-raised:#1e1e28;--border:#2a2a3a;--border-subtle:#223;--text:#e4e4ef;--text-secondary:#a0a0b8;--text-muted:#6b6b80;--pending:#52525b;--running:#3b82f6;--running-glow:#3b82f680;--completed:#22c55e;--completed-muted:#22c55e40;--failed:#ef4444;--failed-muted:#ef444440;--waiting:#f59e0b;--waiting-muted:#f59e0b40;--skipped:#6b7280;--accent:#6366f1;--accent-muted:#6366f140;--node-bg:#1e1e2a;--node-border:#2e2e42;--edge-color:#2e2e42;--edge-active:#3b82f6;--edge-taken:#22c55e;--minimap-bg:#0d0d14;--minimap-mask:#ffffff10;--minimap-node:#3b82f680;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.react-flow__background{background:var(--bg)!important}.react-flow__minimap{background:var(--minimap-bg)!important;border:1px solid var(--border)!important;border-radius:8px!important}.react-flow__controls{overflow:hidden;border:1px solid var(--border)!important;border-radius:8px!important;box-shadow:0 4px 12px #0006!important}.react-flow__controls-button{background:var(--surface)!important;border:none!important;border-bottom:1px solid var(--border)!important;color:var(--text-secondary)!important;fill:var(--text-secondary)!important;width:32px!important;height:32px!important}.react-flow__controls-button:hover{background:var(--surface-hover)!important;color:var(--text)!important;fill:var(--text)!important}.react-flow__controls-button:last-child{border-bottom:none!important}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--running-glow)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes context-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes dash-flow{to{stroke-dashoffset:-20px}}@keyframes node-activate{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes node-complete-glow{0%{box-shadow:0 0 0 0 var(--completed-muted)}50%{box-shadow:0 0 16px 4px var(--completed-muted)}to{box-shadow:0 0 #0000}}@keyframes node-fail-glow{0%{box-shadow:0 0 0 0 var(--failed-muted)}50%{box-shadow:0 0 16px 4px var(--failed-muted)}to{box-shadow:0 0 #0000}}.node-activate{animation:.3s ease-out node-activate}.node-complete{animation:.4s ease-out node-complete-glow}.node-fail{animation:.4s ease-out node-fail-glow}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-panel-group-direction=horizontal]>[data-resize-handle-active],[data-panel-group-direction=vertical]>[data-resize-handle-active]{background-color:var(--accent)!important}[data-resize-handle]{transition:background-color .15s;background-color:var(--border)!important}[data-resize-handle]:hover{background-color:var(--text-muted)!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))} diff --git a/src/conductor/web/static/assets/index-D40zwC1Y.js b/src/conductor/web/static/assets/index-D40zwC1Y.js new file mode 100644 index 00000000..a171ef7c --- /dev/null +++ b/src/conductor/web/static/assets/index-D40zwC1Y.js @@ -0,0 +1,363 @@ +var XE=Object.defineProperty;var QE=(e,t,n)=>t in e?XE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Tt=(e,t,n)=>QE(e,typeof t!="symbol"?t+"":t,n);function ZE(e,t){for(var n=0;na[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))a(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&a(s)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();function Jo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var oh={exports:{}},bo={};/** + * @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. + */var Fy;function KE(){if(Fy)return bo;Fy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(a,l,o){var s=null;if(o!==void 0&&(s=""+o),l.key!==void 0&&(s=""+l.key),"key"in l){o={};for(var c in l)c!=="key"&&(o[c]=l[c])}else o=l;return l=o.ref,{$$typeof:e,type:a,key:s,ref:l!==void 0?l:null,props:o}}return bo.Fragment=t,bo.jsx=n,bo.jsxs=n,bo}var Yy;function JE(){return Yy||(Yy=1,oh.exports=KE()),oh.exports}var y=JE(),sh={exports:{}},De={};/** + * @license React + * react.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. + */var Xy;function WE(){if(Xy)return De;Xy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function v($){return $===null||typeof $!="object"?null:($=g&&$[g]||$["@@iterator"],typeof $=="function"?$:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,S={};function _($,Y,C){this.props=$,this.context=Y,this.refs=S,this.updater=C||w}_.prototype.isReactComponent={},_.prototype.setState=function($,Y){if(typeof $!="object"&&typeof $!="function"&&$!=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,$,Y,"setState")},_.prototype.forceUpdate=function($){this.updater.enqueueForceUpdate(this,$,"forceUpdate")};function N(){}N.prototype=_.prototype;function k($,Y,C){this.props=$,this.context=Y,this.refs=S,this.updater=C||w}var T=k.prototype=new N;T.constructor=k,E(T,_.prototype),T.isPureReactComponent=!0;var M=Array.isArray;function A(){}var H={H:null,A:null,T:null,S:null},L=Object.prototype.hasOwnProperty;function V($,Y,C){var P=C.ref;return{$$typeof:e,type:$,key:Y,ref:P!==void 0?P:null,props:C}}function R($,Y){return V($.type,Y,$.props)}function B($){return typeof $=="object"&&$!==null&&$.$$typeof===e}function U($){var Y={"=":"=0",":":"=2"};return"$"+$.replace(/[=:]/g,function(C){return Y[C]})}var ee=/\/+/g;function q($,Y){return typeof $=="object"&&$!==null&&$.key!=null?U(""+$.key):Y.toString(36)}function F($){switch($.status){case"fulfilled":return $.value;case"rejected":throw $.reason;default:switch(typeof $.status=="string"?$.then(A,A):($.status="pending",$.then(function(Y){$.status==="pending"&&($.status="fulfilled",$.value=Y)},function(Y){$.status==="pending"&&($.status="rejected",$.reason=Y)})),$.status){case"fulfilled":return $.value;case"rejected":throw $.reason}}throw $}function z($,Y,C,P,X){var J=typeof $;(J==="undefined"||J==="boolean")&&($=null);var ne=!1;if($===null)ne=!0;else switch(J){case"bigint":case"string":case"number":ne=!0;break;case"object":switch($.$$typeof){case e:case t:ne=!0;break;case m:return ne=$._init,z(ne($._payload),Y,C,P,X)}}if(ne)return X=X($),ne=P===""?"."+q($,0):P,M(X)?(C="",ne!=null&&(C=ne.replace(ee,"$&/")+"/"),z(X,Y,C,"",function(xe){return xe})):X!=null&&(B(X)&&(X=R(X,C+(X.key==null||$&&$.key===X.key?"":(""+X.key).replace(ee,"$&/")+"/")+ne)),Y.push(X)),1;ne=0;var re=P===""?".":P+":";if(M($))for(var ue=0;ue<$.length;ue++)P=$[ue],J=re+q(P,ue),ne+=z(P,Y,C,J,X);else if(ue=v($),typeof ue=="function")for($=ue.call($),ue=0;!(P=$.next()).done;)P=P.value,J=re+q(P,ue++),ne+=z(P,Y,C,J,X);else if(J==="object"){if(typeof $.then=="function")return z(F($),Y,C,P,X);throw Y=String($),Error("Objects are not valid as a React child (found: "+(Y==="[object Object]"?"object with keys {"+Object.keys($).join(", ")+"}":Y)+"). If you meant to render a collection of children, use an array instead.")}return ne}function G($,Y,C){if($==null)return $;var P=[],X=0;return z($,P,"","",function(J){return Y.call(C,J,X++)}),P}function Q($){if($._status===-1){var Y=$._result;Y=Y(),Y.then(function(C){($._status===0||$._status===-1)&&($._status=1,$._result=C)},function(C){($._status===0||$._status===-1)&&($._status=2,$._result=C)}),$._status===-1&&($._status=0,$._result=Y)}if($._status===1)return $._result.default;throw $._result}var K=typeof reportError=="function"?reportError:function($){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var Y=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof $=="object"&&$!==null&&typeof $.message=="string"?String($.message):String($),error:$});if(!window.dispatchEvent(Y))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",$);return}console.error($)},D={map:G,forEach:function($,Y,C){G($,function(){Y.apply(this,arguments)},C)},count:function($){var Y=0;return G($,function(){Y++}),Y},toArray:function($){return G($,function(Y){return Y})||[]},only:function($){if(!B($))throw Error("React.Children.only expected to receive a single React element child.");return $}};return De.Activity=p,De.Children=D,De.Component=_,De.Fragment=n,De.Profiler=l,De.PureComponent=k,De.StrictMode=a,De.Suspense=d,De.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=H,De.__COMPILER_RUNTIME={__proto__:null,c:function($){return H.H.useMemoCache($)}},De.cache=function($){return function(){return $.apply(null,arguments)}},De.cacheSignal=function(){return null},De.cloneElement=function($,Y,C){if($==null)throw Error("The argument must be a React element, but you passed "+$+".");var P=E({},$.props),X=$.key;if(Y!=null)for(J in Y.key!==void 0&&(X=""+Y.key),Y)!L.call(Y,J)||J==="key"||J==="__self"||J==="__source"||J==="ref"&&Y.ref===void 0||(P[J]=Y[J]);var J=arguments.length-2;if(J===1)P.children=C;else if(1>>1,D=z[K];if(0>>1;K<$;){var Y=2*(K+1)-1,C=z[Y],P=Y+1,X=z[P];if(0>l(C,Q))Pl(X,C)?(z[K]=X,z[P]=Q,K=P):(z[K]=C,z[Y]=Q,K=Y);else if(Pl(X,Q))z[K]=X,z[P]=Q,K=P;else break e}}return G}function l(z,G){var Q=z.sortIndex-G.sortIndex;return Q!==0?Q:z.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();e.unstable_now=function(){return s.now()-c}}var d=[],f=[],m=1,p=null,g=3,v=!1,w=!1,E=!1,S=!1,_=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function T(z){for(var G=n(f);G!==null;){if(G.callback===null)a(f);else if(G.startTime<=z)a(f),G.sortIndex=G.expirationTime,t(d,G);else break;G=n(f)}}function M(z){if(E=!1,T(z),!w)if(n(d)!==null)w=!0,A||(A=!0,U());else{var G=n(f);G!==null&&F(M,G.startTime-z)}}var A=!1,H=-1,L=5,V=-1;function R(){return S?!0:!(e.unstable_now()-Vz&&R());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var D=K(p.expirationTime<=z);if(z=e.unstable_now(),typeof D=="function"){p.callback=D,T(z),G=!0;break t}p===n(d)&&a(d),T(z)}else a(d);p=n(d)}if(p!==null)G=!0;else{var $=n(f);$!==null&&F(M,$.startTime-z),G=!1}}break e}finally{p=null,g=Q,v=!1}G=void 0}}finally{G?U():A=!1}}}var U;if(typeof k=="function")U=function(){k(B)};else if(typeof MessageChannel<"u"){var ee=new MessageChannel,q=ee.port2;ee.port1.onmessage=B,U=function(){q.postMessage(null)}}else U=function(){_(B,0)};function F(z,G){H=_(function(){z(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(z){z.callback=null},e.unstable_forceFrameRate=function(z){0>z||125K?(z.sortIndex=Q,t(f,z),n(d)===null&&z===n(f)&&(E?(N(H),H=-1):E=!0,F(M,Q-K))):(z.sortIndex=D,t(d,z),w||v||(w=!0,A||(A=!0,U()))),z},e.unstable_shouldYield=R,e.unstable_wrapCallback=function(z){var G=g;return function(){var Q=g;g=G;try{return z.apply(this,arguments)}finally{g=Q}}}})(fh)),fh}var Ky;function nN(){return Ky||(Ky=1,ch.exports=tN()),ch.exports}var dh={exports:{}},Yt={};/** + * @license React + * react-dom.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. + */var Jy;function rN(){if(Jy)return Yt;Jy=1;var e=Wo();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),dh.exports=rN(),dh.exports}/** + * @license React + * react-dom-client.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. + */var ev;function iN(){if(ev)return wo;ev=1;var e=nN(),t=Wo(),n=xw();function a(r){var i="https://react.dev/errors/"+r;if(1D||(r.current=K[D],K[D]=null,D--)}function C(r,i){D++,K[D]=r.current,r.current=i}var P=$(null),X=$(null),J=$(null),ne=$(null);function re(r,i){switch(C(J,i),C(X,r),C(P,null),i.nodeType){case 9:case 11:r=(r=i.documentElement)&&(r=r.namespaceURI)?my(r):0;break;default:if(r=i.tagName,i=i.namespaceURI)i=my(i),r=gy(i,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}Y(P),C(P,r)}function ue(){Y(P),Y(X),Y(J)}function xe(r){r.memoizedState!==null&&C(ne,r);var i=P.current,u=gy(i,r.type);i!==u&&(C(X,r),C(P,u))}function be(r){X.current===r&&(Y(P),Y(X)),ne.current===r&&(Y(ne),go._currentValue=Q)}var ye,pe;function Se(r){if(ye===void 0)try{throw Error()}catch(u){var i=u.stack.trim().match(/\n( *(at )?)/);ye=i&&i[1]||"",pe=-1)":-1x||Z[h]!==ae[x]){var fe=` +`+Z[h].replace(" at new "," at ");return r.displayName&&fe.includes("")&&(fe=fe.replace("",r.displayName)),fe}while(1<=h&&0<=x);break}}}finally{Oe=!1,Error.prepareStackTrace=u}return(u=r?r.displayName||r.name:"")?Se(u):""}function ft(r,i){switch(r.tag){case 26:case 27:case 5:return Se(r.type);case 16:return Se("Lazy");case 13:return r.child!==i&&i!==null?Se("Suspense Fallback"):Se("Suspense");case 19:return Se("SuspenseList");case 0:case 15:return Ae(r.type,!1);case 11:return Ae(r.type.render,!1);case 1:return Ae(r.type,!0);case 31:return Se("Activity");default:return""}}function rt(r){try{var i="",u=null;do i+=ft(r,u),u=r,r=r.return;while(r);return i}catch(h){return` +Error generating stack: `+h.message+` +`+h.stack}}var Dt=Object.prototype.hasOwnProperty,Pt=e.unstable_scheduleCallback,Bt=e.unstable_cancelCallback,kn=e.unstable_shouldYield,On=e.unstable_requestPaint,Rt=e.unstable_now,qr=e.unstable_getCurrentPriorityLevel,ce=e.unstable_ImmediatePriority,ge=e.unstable_UserBlockingPriority,Ne=e.unstable_NormalPriority,qe=e.unstable_LowPriority,Xe=e.unstable_IdlePriority,Zt=e.log,Ln=e.unstable_setDisableYieldValue,It=null,wt=null;function Gt(r){if(typeof Zt=="function"&&Ln(r),wt&&typeof wt.setStrictMode=="function")try{wt.setStrictMode(It,r)}catch{}}var et=Math.clz32?Math.clz32:Xc,Zn=Math.log,fn=Math.LN2;function Xc(r){return r>>>=0,r===0?32:31-(Zn(r)/fn|0)|0}var pa=256,ma=262144,ga=4194304;function ur(r){var i=r&42;if(i!==0)return i;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return r&261888;case 262144:case 524288:case 1048576:case 2097152:return r&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function xa(r,i,u){var h=r.pendingLanes;if(h===0)return 0;var x=0,b=r.suspendedLanes,j=r.pingedLanes;r=r.warmLanes;var O=h&134217727;return O!==0?(h=O&~b,h!==0?x=ur(h):(j&=O,j!==0?x=ur(j):u||(u=O&~r,u!==0&&(x=ur(u))))):(O=h&~b,O!==0?x=ur(O):j!==0?x=ur(j):u||(u=h&~r,u!==0&&(x=ur(u)))),x===0?0:i!==0&&i!==x&&(i&b)===0&&(b=x&-x,u=i&-i,b>=u||b===32&&(u&4194048)!==0)?i:x}function Ei(r,i){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&i)===0}function Qc(r,i){switch(r){case 1:case 2:case 4:case 8:case 64:return i+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function fs(){var r=ga;return ga<<=1,(ga&62914560)===0&&(ga=4194304),r}function Nl(r){for(var i=[],u=0;31>u;u++)i.push(r);return i}function Ni(r,i){r.pendingLanes|=i,i!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function Zc(r,i,u,h,x,b){var j=r.pendingLanes;r.pendingLanes=u,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=u,r.entangledLanes&=u,r.errorRecoveryDisabledLanes&=u,r.shellSuspendCounter=0;var O=r.entanglements,Z=r.expirationTimes,ae=r.hiddenUpdates;for(u=j&~u;0"u")return null;try{return r.activeElement||r.body}catch{return r.body}}var tf=/[\n"\\]/g;function en(r){return r.replace(tf,function(i){return"\\"+i.charCodeAt(0).toString(16)+" "})}function Ti(r,i,u,h,x,b,j,O){r.name="",j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?r.type=j:r.removeAttribute("type"),i!=null?j==="number"?(i===0&&r.value===""||r.value!=i)&&(r.value=""+Wt(i)):r.value!==""+Wt(i)&&(r.value=""+Wt(i)):j!=="submit"&&j!=="reset"||r.removeAttribute("value"),i!=null?zl(r,j,Wt(i)):u!=null?zl(r,j,Wt(u)):h!=null&&r.removeAttribute("value"),x==null&&b!=null&&(r.defaultChecked=!!b),x!=null&&(r.checked=x&&typeof x!="function"&&typeof x!="symbol"),O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"?r.name=""+Wt(O):r.removeAttribute("name")}function ks(r,i,u,h,x,b,j,O){if(b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"&&(r.type=b),i!=null||u!=null){if(!(b!=="submit"&&b!=="reset"||i!=null)){Fr(r);return}u=u!=null?""+Wt(u):"",i=i!=null?""+Wt(i):u,O||i===r.value||(r.value=i),r.defaultValue=i}h=h??x,h=typeof h!="function"&&typeof h!="symbol"&&!!h,r.checked=O?r.checked:!!h,r.defaultChecked=!!h,j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(r.name=j),Fr(r)}function zl(r,i,u){i==="number"&&ji(r.ownerDocument)===r||r.defaultValue===""+u||(r.defaultValue=""+u)}function dr(r,i,u,h){if(r=r.options,i){i={};for(var x=0;x"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),of=!1;if(pr)try{var Dl={};Object.defineProperty(Dl,"passive",{get:function(){of=!0}}),window.addEventListener("test",Dl,Dl),window.removeEventListener("test",Dl,Dl)}catch{of=!1}var Yr=null,sf=null,Ns=null;function gg(){if(Ns)return Ns;var r,i=sf,u=i.length,h,x="value"in Yr?Yr.value:Yr.textContent,b=x.length;for(r=0;r=Ll),_g=" ",Sg=!1;function kg(r,i){switch(r){case"keyup":return g2.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Eg(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var ka=!1;function y2(r,i){switch(r){case"compositionend":return Eg(i);case"keypress":return i.which!==32?null:(Sg=!0,_g);case"textInput":return r=i.data,r===_g&&Sg?null:r;default:return null}}function v2(r,i){if(ka)return r==="compositionend"||!hf&&kg(r,i)?(r=gg(),Ns=sf=Yr=null,ka=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:u,offset:i-r};r=h}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=Dg(u)}}function Og(r,i){return r&&i?r===i?!0:r&&r.nodeType===3?!1:i&&i.nodeType===3?Og(r,i.parentNode):"contains"in r?r.contains(i):r.compareDocumentPosition?!!(r.compareDocumentPosition(i)&16):!1:!1}function Lg(r){r=r!=null&&r.ownerDocument!=null&&r.ownerDocument.defaultView!=null?r.ownerDocument.defaultView:window;for(var i=ji(r.document);i instanceof r.HTMLIFrameElement;){try{var u=typeof i.contentWindow.location.href=="string"}catch{u=!1}if(u)r=i.contentWindow;else break;i=ji(r.document)}return i}function gf(r){var i=r&&r.nodeName&&r.nodeName.toLowerCase();return i&&(i==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||i==="textarea"||r.contentEditable==="true")}var C2=pr&&"documentMode"in document&&11>=document.documentMode,Ea=null,xf=null,ql=null,yf=!1;function Hg(r,i,u){var h=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;yf||Ea==null||Ea!==ji(h)||(h=Ea,"selectionStart"in h&&gf(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),ql&&Il(ql,h)||(ql=h,h=vu(xf,"onSelect"),0>=j,x-=j,Jn=1<<32-et(i)+x|u<Le?(Ge=_e,_e=null):Ge=_e.sibling;var Je=le(te,_e,ie[Le],de);if(Je===null){_e===null&&(_e=Ge);break}r&&_e&&Je.alternate===null&&i(te,_e),W=b(Je,W,Le),Ke===null?ke=Je:Ke.sibling=Je,Ke=Je,_e=Ge}if(Le===ie.length)return u(te,_e),Fe&&gr(te,Le),ke;if(_e===null){for(;LeLe?(Ge=_e,_e=null):Ge=_e.sibling;var mi=le(te,_e,Je.value,de);if(mi===null){_e===null&&(_e=Ge);break}r&&_e&&mi.alternate===null&&i(te,_e),W=b(mi,W,Le),Ke===null?ke=mi:Ke.sibling=mi,Ke=mi,_e=Ge}if(Je.done)return u(te,_e),Fe&&gr(te,Le),ke;if(_e===null){for(;!Je.done;Le++,Je=ie.next())Je=he(te,Je.value,de),Je!==null&&(W=b(Je,W,Le),Ke===null?ke=Je:Ke.sibling=Je,Ke=Je);return Fe&&gr(te,Le),ke}for(_e=h(_e);!Je.done;Le++,Je=ie.next())Je=oe(_e,te,Le,Je.value,de),Je!==null&&(r&&Je.alternate!==null&&_e.delete(Je.key===null?Le:Je.key),W=b(Je,W,Le),Ke===null?ke=Je:Ke.sibling=Je,Ke=Je);return r&&_e.forEach(function(YE){return i(te,YE)}),Fe&&gr(te,Le),ke}function lt(te,W,ie,de){if(typeof ie=="object"&&ie!==null&&ie.type===E&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case v:e:{for(var ke=ie.key;W!==null;){if(W.key===ke){if(ke=ie.type,ke===E){if(W.tag===7){u(te,W.sibling),de=x(W,ie.props.children),de.return=te,te=de;break e}}else if(W.elementType===ke||typeof ke=="object"&&ke!==null&&ke.$$typeof===L&&Ii(ke)===W.type){u(te,W.sibling),de=x(W,ie.props),Fl(de,ie),de.return=te,te=de;break e}u(te,W);break}else i(te,W);W=W.sibling}ie.type===E?(de=Ri(ie.props.children,te.mode,de,ie.key),de.return=te,te=de):(de=Ls(ie.type,ie.key,ie.props,null,te.mode,de),Fl(de,ie),de.return=te,te=de)}return j(te);case w:e:{for(ke=ie.key;W!==null;){if(W.key===ke)if(W.tag===4&&W.stateNode.containerInfo===ie.containerInfo&&W.stateNode.implementation===ie.implementation){u(te,W.sibling),de=x(W,ie.children||[]),de.return=te,te=de;break e}else{u(te,W);break}else i(te,W);W=W.sibling}de=Ef(ie,te.mode,de),de.return=te,te=de}return j(te);case L:return ie=Ii(ie),lt(te,W,ie,de)}if(F(ie))return we(te,W,ie,de);if(U(ie)){if(ke=U(ie),typeof ke!="function")throw Error(a(150));return ie=ke.call(ie),Ce(te,W,ie,de)}if(typeof ie.then=="function")return lt(te,W,Vs(ie),de);if(ie.$$typeof===k)return lt(te,W,Is(te,ie),de);Ps(te,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,W!==null&&W.tag===6?(u(te,W.sibling),de=x(W,ie),de.return=te,te=de):(u(te,W),de=kf(ie,te.mode,de),de.return=te,te=de),j(te)):u(te,W)}return function(te,W,ie,de){try{Gl=0;var ke=lt(te,W,ie,de);return La=null,ke}catch(_e){if(_e===Oa||_e===$s)throw _e;var Ke=hn(29,_e,null,te.mode);return Ke.lanes=de,Ke.return=te,Ke}finally{}}}var $i=lx(!0),ox=lx(!1),Jr=!1;function Hf(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Bf(r,i){r=r.updateQueue,i.updateQueue===r&&(i.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,callbacks:null})}function Wr(r){return{lane:r,tag:0,payload:null,callback:null,next:null}}function ei(r,i,u){var h=r.updateQueue;if(h===null)return null;if(h=h.shared,(We&2)!==0){var x=h.pending;return x===null?i.next=i:(i.next=x.next,x.next=i),h.pending=i,i=Os(r),Pg(r,null,u),i}return Rs(r,h,i,u),Os(r)}function Yl(r,i,u){if(i=i.updateQueue,i!==null&&(i=i.shared,(u&4194048)!==0)){var h=i.lanes;h&=r.pendingLanes,u|=h,i.lanes=u,hs(r,u)}}function If(r,i){var u=r.updateQueue,h=r.alternate;if(h!==null&&(h=h.updateQueue,u===h)){var x=null,b=null;if(u=u.firstBaseUpdate,u!==null){do{var j={lane:u.lane,tag:u.tag,payload:u.payload,callback:null,next:null};b===null?x=b=j:b=b.next=j,u=u.next}while(u!==null);b===null?x=b=i:b=b.next=i}else x=b=i;u={baseState:h.baseState,firstBaseUpdate:x,lastBaseUpdate:b,shared:h.shared,callbacks:h.callbacks},r.updateQueue=u;return}r=u.lastBaseUpdate,r===null?u.firstBaseUpdate=i:r.next=i,u.lastBaseUpdate=i}var qf=!1;function Xl(){if(qf){var r=Ra;if(r!==null)throw r}}function Ql(r,i,u,h){qf=!1;var x=r.updateQueue;Jr=!1;var b=x.firstBaseUpdate,j=x.lastBaseUpdate,O=x.shared.pending;if(O!==null){x.shared.pending=null;var Z=O,ae=Z.next;Z.next=null,j===null?b=ae:j.next=ae,j=Z;var fe=r.alternate;fe!==null&&(fe=fe.updateQueue,O=fe.lastBaseUpdate,O!==j&&(O===null?fe.firstBaseUpdate=ae:O.next=ae,fe.lastBaseUpdate=Z))}if(b!==null){var he=x.baseState;j=0,fe=ae=Z=null,O=b;do{var le=O.lane&-536870913,oe=le!==O.lane;if(oe?(Pe&le)===le:(h&le)===le){le!==0&&le===Da&&(qf=!0),fe!==null&&(fe=fe.next={lane:0,tag:O.tag,payload:O.payload,callback:null,next:null});e:{var we=r,Ce=O;le=i;var lt=u;switch(Ce.tag){case 1:if(we=Ce.payload,typeof we=="function"){he=we.call(lt,he,le);break e}he=we;break e;case 3:we.flags=we.flags&-65537|128;case 0:if(we=Ce.payload,le=typeof we=="function"?we.call(lt,he,le):we,le==null)break e;he=p({},he,le);break e;case 2:Jr=!0}}le=O.callback,le!==null&&(r.flags|=64,oe&&(r.flags|=8192),oe=x.callbacks,oe===null?x.callbacks=[le]:oe.push(le))}else oe={lane:le,tag:O.tag,payload:O.payload,callback:O.callback,next:null},fe===null?(ae=fe=oe,Z=he):fe=fe.next=oe,j|=le;if(O=O.next,O===null){if(O=x.shared.pending,O===null)break;oe=O,O=oe.next,oe.next=null,x.lastBaseUpdate=oe,x.shared.pending=null}}while(!0);fe===null&&(Z=he),x.baseState=Z,x.firstBaseUpdate=ae,x.lastBaseUpdate=fe,b===null&&(x.shared.lanes=0),ai|=j,r.lanes=j,r.memoizedState=he}}function sx(r,i){if(typeof r!="function")throw Error(a(191,r));r.call(i)}function ux(r,i){var u=r.callbacks;if(u!==null)for(r.callbacks=null,r=0;rb?b:8;var j=z.T,O={};z.T=O,ad(r,!1,i,u);try{var Z=x(),ae=z.S;if(ae!==null&&ae(O,Z),Z!==null&&typeof Z=="object"&&typeof Z.then=="function"){var fe=L2(Z,h);Jl(r,i,fe,yn(r))}else Jl(r,i,h,yn(r))}catch(he){Jl(r,i,{then:function(){},status:"rejected",reason:he},yn())}finally{G.p=b,j!==null&&O.types!==null&&(j.types=O.types),z.T=j}}function U2(){}function rd(r,i,u,h){if(r.tag!==5)throw Error(a(476));var x=$x(r).queue;qx(r,x,i,Q,u===null?U2:function(){return Ux(r),u(h)})}function $x(r){var i=r.memoizedState;if(i!==null)return i;i={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:br,lastRenderedState:Q},next:null};var u={};return i.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:br,lastRenderedState:u},next:null},r.memoizedState=i,r=r.alternate,r!==null&&(r.memoizedState=i),i}function Ux(r){var i=$x(r);i.next===null&&(i=r.alternate.memoizedState),Jl(r,i.next.queue,{},yn())}function id(){return $t(go)}function Vx(){return St().memoizedState}function Px(){return St().memoizedState}function V2(r){for(var i=r.return;i!==null;){switch(i.tag){case 24:case 3:var u=yn();r=Wr(u);var h=ei(i,r,u);h!==null&&(on(h,i,u),Yl(h,i,u)),i={cache:Df()},r.payload=i;return}i=i.return}}function P2(r,i,u){var h=yn();u={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null},eu(r)?Fx(i,u):(u=_f(r,i,u,h),u!==null&&(on(u,r,h),Yx(u,i,h)))}function Gx(r,i,u){var h=yn();Jl(r,i,u,h)}function Jl(r,i,u,h){var x={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null};if(eu(r))Fx(i,x);else{var b=r.alternate;if(r.lanes===0&&(b===null||b.lanes===0)&&(b=i.lastRenderedReducer,b!==null))try{var j=i.lastRenderedState,O=b(j,u);if(x.hasEagerState=!0,x.eagerState=O,dn(O,j))return Rs(r,i,x,0),st===null&&Ds(),!1}catch{}finally{}if(u=_f(r,i,x,h),u!==null)return on(u,r,h),Yx(u,i,h),!0}return!1}function ad(r,i,u,h){if(h={lane:2,revertLane:Hd(),gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},eu(r)){if(i)throw Error(a(479))}else i=_f(r,u,h,2),i!==null&&on(i,r,2)}function eu(r){var i=r.alternate;return r===Re||i!==null&&i===Re}function Fx(r,i){Ba=Ys=!0;var u=r.pending;u===null?i.next=i:(i.next=u.next,u.next=i),r.pending=i}function Yx(r,i,u){if((u&4194048)!==0){var h=i.lanes;h&=r.pendingLanes,u|=h,i.lanes=u,hs(r,u)}}var Wl={readContext:$t,use:Zs,useCallback:yt,useContext:yt,useEffect:yt,useImperativeHandle:yt,useLayoutEffect:yt,useInsertionEffect:yt,useMemo:yt,useReducer:yt,useRef:yt,useState:yt,useDebugValue:yt,useDeferredValue:yt,useTransition:yt,useSyncExternalStore:yt,useId:yt,useHostTransitionStatus:yt,useFormState:yt,useActionState:yt,useOptimistic:yt,useMemoCache:yt,useCacheRefresh:yt};Wl.useEffectEvent=yt;var Xx={readContext:$t,use:Zs,useCallback:function(r,i){return Kt().memoizedState=[r,i===void 0?null:i],r},useContext:$t,useEffect:zx,useImperativeHandle:function(r,i,u){u=u!=null?u.concat([r]):null,Js(4194308,4,Ox.bind(null,i,r),u)},useLayoutEffect:function(r,i){return Js(4194308,4,r,i)},useInsertionEffect:function(r,i){Js(4,2,r,i)},useMemo:function(r,i){var u=Kt();i=i===void 0?null:i;var h=r();if(Ui){Gt(!0);try{r()}finally{Gt(!1)}}return u.memoizedState=[h,i],h},useReducer:function(r,i,u){var h=Kt();if(u!==void 0){var x=u(i);if(Ui){Gt(!0);try{u(i)}finally{Gt(!1)}}}else x=i;return h.memoizedState=h.baseState=x,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:x},h.queue=r,r=r.dispatch=P2.bind(null,Re,r),[h.memoizedState,r]},useRef:function(r){var i=Kt();return r={current:r},i.memoizedState=r},useState:function(r){r=Jf(r);var i=r.queue,u=Gx.bind(null,Re,i);return i.dispatch=u,[r.memoizedState,u]},useDebugValue:td,useDeferredValue:function(r,i){var u=Kt();return nd(u,r,i)},useTransition:function(){var r=Jf(!1);return r=qx.bind(null,Re,r.queue,!0,!1),Kt().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,i,u){var h=Re,x=Kt();if(Fe){if(u===void 0)throw Error(a(407));u=u()}else{if(u=i(),st===null)throw Error(a(349));(Pe&127)!==0||mx(h,i,u)}x.memoizedState=u;var b={value:u,getSnapshot:i};return x.queue=b,zx(xx.bind(null,h,b,r),[r]),h.flags|=2048,qa(9,{destroy:void 0},gx.bind(null,h,b,u,i),null),u},useId:function(){var r=Kt(),i=st.identifierPrefix;if(Fe){var u=Wn,h=Jn;u=(h&~(1<<32-et(h)-1)).toString(32)+u,i="_"+i+"R_"+u,u=Xs++,0<\/script>",b=b.removeChild(b.firstChild);break;case"select":b=typeof h.is=="string"?j.createElement("select",{is:h.is}):j.createElement("select"),h.multiple?b.multiple=!0:h.size&&(b.size=h.size);break;default:b=typeof h.is=="string"?j.createElement(x,{is:h.is}):j.createElement(x)}}b[Ot]=i,b[Ft]=h;e:for(j=i.child;j!==null;){if(j.tag===5||j.tag===6)b.appendChild(j.stateNode);else if(j.tag!==4&&j.tag!==27&&j.child!==null){j.child.return=j,j=j.child;continue}if(j===i)break e;for(;j.sibling===null;){if(j.return===null||j.return===i)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}i.stateNode=b;e:switch(Vt(b,x,h),x){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}h&&_r(i)}}return ht(i),vd(i,i.type,r===null?null:r.memoizedProps,i.pendingProps,u),null;case 6:if(r&&i.stateNode!=null)r.memoizedProps!==h&&_r(i);else{if(typeof h!="string"&&i.stateNode===null)throw Error(a(166));if(r=J.current,za(i)){if(r=i.stateNode,u=i.memoizedProps,h=null,x=qt,x!==null)switch(x.tag){case 27:case 5:h=x.memoizedProps}r[Ot]=i,r=!!(r.nodeValue===u||h!==null&&h.suppressHydrationWarning===!0||hy(r.nodeValue,u)),r||Zr(i,!0)}else r=bu(r).createTextNode(h),r[Ot]=i,i.stateNode=r}return ht(i),null;case 31:if(u=i.memoizedState,r===null||r.memoizedState!==null){if(h=za(i),u!==null){if(r===null){if(!h)throw Error(a(318));if(r=i.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(a(557));r[Ot]=i}else Oi(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;ht(i),r=!1}else u=Tf(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=u),r=!0;if(!r)return i.flags&256?(mn(i),i):(mn(i),null);if((i.flags&128)!==0)throw Error(a(558))}return ht(i),null;case 13:if(h=i.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(x=za(i),h!==null&&h.dehydrated!==null){if(r===null){if(!x)throw Error(a(318));if(x=i.memoizedState,x=x!==null?x.dehydrated:null,!x)throw Error(a(317));x[Ot]=i}else Oi(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;ht(i),x=!1}else x=Tf(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=x),x=!0;if(!x)return i.flags&256?(mn(i),i):(mn(i),null)}return mn(i),(i.flags&128)!==0?(i.lanes=u,i):(u=h!==null,r=r!==null&&r.memoizedState!==null,u&&(h=i.child,x=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(x=h.alternate.memoizedState.cachePool.pool),b=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(b=h.memoizedState.cachePool.pool),b!==x&&(h.flags|=2048)),u!==r&&u&&(i.child.flags|=8192),au(i,i.updateQueue),ht(i),null);case 4:return ue(),r===null&&$d(i.stateNode.containerInfo),ht(i),null;case 10:return yr(i.type),ht(i),null;case 19:if(Y(_t),h=i.memoizedState,h===null)return ht(i),null;if(x=(i.flags&128)!==0,b=h.rendering,b===null)if(x)to(h,!1);else{if(vt!==0||r!==null&&(r.flags&128)!==0)for(r=i.child;r!==null;){if(b=Fs(r),b!==null){for(i.flags|=128,to(h,!1),r=b.updateQueue,i.updateQueue=r,au(i,r),i.subtreeFlags=0,r=u,u=i.child;u!==null;)Gg(u,r),u=u.sibling;return C(_t,_t.current&1|2),Fe&&gr(i,h.treeForkCount),i.child}r=r.sibling}h.tail!==null&&Rt()>cu&&(i.flags|=128,x=!0,to(h,!1),i.lanes=4194304)}else{if(!x)if(r=Fs(b),r!==null){if(i.flags|=128,x=!0,r=r.updateQueue,i.updateQueue=r,au(i,r),to(h,!0),h.tail===null&&h.tailMode==="hidden"&&!b.alternate&&!Fe)return ht(i),null}else 2*Rt()-h.renderingStartTime>cu&&u!==536870912&&(i.flags|=128,x=!0,to(h,!1),i.lanes=4194304);h.isBackwards?(b.sibling=i.child,i.child=b):(r=h.last,r!==null?r.sibling=b:i.child=b,h.last=b)}return h.tail!==null?(r=h.tail,h.rendering=r,h.tail=r.sibling,h.renderingStartTime=Rt(),r.sibling=null,u=_t.current,C(_t,x?u&1|2:u&1),Fe&&gr(i,h.treeForkCount),r):(ht(i),null);case 22:case 23:return mn(i),Uf(),h=i.memoizedState!==null,r!==null?r.memoizedState!==null!==h&&(i.flags|=8192):h&&(i.flags|=8192),h?(u&536870912)!==0&&(i.flags&128)===0&&(ht(i),i.subtreeFlags&6&&(i.flags|=8192)):ht(i),u=i.updateQueue,u!==null&&au(i,u.retryQueue),u=null,r!==null&&r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(u=r.memoizedState.cachePool.pool),h=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(h=i.memoizedState.cachePool.pool),h!==u&&(i.flags|=2048),r!==null&&Y(Bi),null;case 24:return u=null,r!==null&&(u=r.memoizedState.cache),i.memoizedState.cache!==u&&(i.flags|=2048),yr(Et),ht(i),null;case 25:return null;case 30:return null}throw Error(a(156,i.tag))}function Q2(r,i){switch(Cf(i),i.tag){case 1:return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 3:return yr(Et),ue(),r=i.flags,(r&65536)!==0&&(r&128)===0?(i.flags=r&-65537|128,i):null;case 26:case 27:case 5:return be(i),null;case 31:if(i.memoizedState!==null){if(mn(i),i.alternate===null)throw Error(a(340));Oi()}return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 13:if(mn(i),r=i.memoizedState,r!==null&&r.dehydrated!==null){if(i.alternate===null)throw Error(a(340));Oi()}return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 19:return Y(_t),null;case 4:return ue(),null;case 10:return yr(i.type),null;case 22:case 23:return mn(i),Uf(),r!==null&&Y(Bi),r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 24:return yr(Et),null;case 25:return null;default:return null}}function y0(r,i){switch(Cf(i),i.tag){case 3:yr(Et),ue();break;case 26:case 27:case 5:be(i);break;case 4:ue();break;case 31:i.memoizedState!==null&&mn(i);break;case 13:mn(i);break;case 19:Y(_t);break;case 10:yr(i.type);break;case 22:case 23:mn(i),Uf(),r!==null&&Y(Bi);break;case 24:yr(Et)}}function no(r,i){try{var u=i.updateQueue,h=u!==null?u.lastEffect:null;if(h!==null){var x=h.next;u=x;do{if((u.tag&r)===r){h=void 0;var b=u.create,j=u.inst;h=b(),j.destroy=h}u=u.next}while(u!==x)}}catch(O){nt(i,i.return,O)}}function ri(r,i,u){try{var h=i.updateQueue,x=h!==null?h.lastEffect:null;if(x!==null){var b=x.next;h=b;do{if((h.tag&r)===r){var j=h.inst,O=j.destroy;if(O!==void 0){j.destroy=void 0,x=i;var Z=u,ae=O;try{ae()}catch(fe){nt(x,Z,fe)}}}h=h.next}while(h!==b)}}catch(fe){nt(i,i.return,fe)}}function v0(r){var i=r.updateQueue;if(i!==null){var u=r.stateNode;try{ux(i,u)}catch(h){nt(r,r.return,h)}}}function b0(r,i,u){u.props=Vi(r.type,r.memoizedProps),u.state=r.memoizedState;try{u.componentWillUnmount()}catch(h){nt(r,i,h)}}function ro(r,i){try{var u=r.ref;if(u!==null){switch(r.tag){case 26:case 27:case 5:var h=r.stateNode;break;case 30:h=r.stateNode;break;default:h=r.stateNode}typeof u=="function"?r.refCleanup=u(h):u.current=h}}catch(x){nt(r,i,x)}}function er(r,i){var u=r.ref,h=r.refCleanup;if(u!==null)if(typeof h=="function")try{h()}catch(x){nt(r,i,x)}finally{r.refCleanup=null,r=r.alternate,r!=null&&(r.refCleanup=null)}else if(typeof u=="function")try{u(null)}catch(x){nt(r,i,x)}else u.current=null}function w0(r){var i=r.type,u=r.memoizedProps,h=r.stateNode;try{e:switch(i){case"button":case"input":case"select":case"textarea":u.autoFocus&&h.focus();break e;case"img":u.src?h.src=u.src:u.srcSet&&(h.srcset=u.srcSet)}}catch(x){nt(r,r.return,x)}}function bd(r,i,u){try{var h=r.stateNode;xE(h,r.type,u,i),h[Ft]=i}catch(x){nt(r,r.return,x)}}function _0(r){return r.tag===5||r.tag===3||r.tag===26||r.tag===27&&ci(r.type)||r.tag===4}function wd(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||_0(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.tag===27&&ci(r.type)||r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function _d(r,i,u){var h=r.tag;if(h===5||h===6)r=r.stateNode,i?(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u).insertBefore(r,i):(i=u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,i.appendChild(r),u=u._reactRootContainer,u!=null||i.onclick!==null||(i.onclick=hr));else if(h!==4&&(h===27&&ci(r.type)&&(u=r.stateNode,i=null),r=r.child,r!==null))for(_d(r,i,u),r=r.sibling;r!==null;)_d(r,i,u),r=r.sibling}function lu(r,i,u){var h=r.tag;if(h===5||h===6)r=r.stateNode,i?u.insertBefore(r,i):u.appendChild(r);else if(h!==4&&(h===27&&ci(r.type)&&(u=r.stateNode),r=r.child,r!==null))for(lu(r,i,u),r=r.sibling;r!==null;)lu(r,i,u),r=r.sibling}function S0(r){var i=r.stateNode,u=r.memoizedProps;try{for(var h=r.type,x=i.attributes;x.length;)i.removeAttributeNode(x[0]);Vt(i,h,u),i[Ot]=r,i[Ft]=u}catch(b){nt(r,r.return,b)}}var Sr=!1,jt=!1,Sd=!1,k0=typeof WeakSet=="function"?WeakSet:Set,Ht=null;function Z2(r,i){if(r=r.containerInfo,Pd=Cu,r=Lg(r),gf(r)){if("selectionStart"in r)var u={start:r.selectionStart,end:r.selectionEnd};else e:{u=(u=r.ownerDocument)&&u.defaultView||window;var h=u.getSelection&&u.getSelection();if(h&&h.rangeCount!==0){u=h.anchorNode;var x=h.anchorOffset,b=h.focusNode;h=h.focusOffset;try{u.nodeType,b.nodeType}catch{u=null;break e}var j=0,O=-1,Z=-1,ae=0,fe=0,he=r,le=null;t:for(;;){for(var oe;he!==u||x!==0&&he.nodeType!==3||(O=j+x),he!==b||h!==0&&he.nodeType!==3||(Z=j+h),he.nodeType===3&&(j+=he.nodeValue.length),(oe=he.firstChild)!==null;)le=he,he=oe;for(;;){if(he===r)break t;if(le===u&&++ae===x&&(O=j),le===b&&++fe===h&&(Z=j),(oe=he.nextSibling)!==null)break;he=le,le=he.parentNode}he=oe}u=O===-1||Z===-1?null:{start:O,end:Z}}else u=null}u=u||{start:0,end:0}}else u=null;for(Gd={focusedElem:r,selectionRange:u},Cu=!1,Ht=i;Ht!==null;)if(i=Ht,r=i.child,(i.subtreeFlags&1028)!==0&&r!==null)r.return=i,Ht=r;else for(;Ht!==null;){switch(i=Ht,b=i.alternate,r=i.flags,i.tag){case 0:if((r&4)!==0&&(r=i.updateQueue,r=r!==null?r.events:null,r!==null))for(u=0;u title"))),Vt(b,h,u),b[Ot]=r,kt(b),h=b;break e;case"link":var j=Ay("link","href",x).get(h+(u.href||""));if(j){for(var O=0;Olt&&(j=lt,lt=Ce,Ce=j);var te=Rg(O,Ce),W=Rg(O,lt);if(te&&W&&(oe.rangeCount!==1||oe.anchorNode!==te.node||oe.anchorOffset!==te.offset||oe.focusNode!==W.node||oe.focusOffset!==W.offset)){var ie=he.createRange();ie.setStart(te.node,te.offset),oe.removeAllRanges(),Ce>lt?(oe.addRange(ie),oe.extend(W.node,W.offset)):(ie.setEnd(W.node,W.offset),oe.addRange(ie))}}}}for(he=[],oe=O;oe=oe.parentNode;)oe.nodeType===1&&he.push({element:oe,left:oe.scrollLeft,top:oe.scrollTop});for(typeof O.focus=="function"&&O.focus(),O=0;Ou?32:u,z.T=null,u=Ad,Ad=null;var b=oi,j=jr;if(Lt=0,Ga=oi=null,jr=0,(We&6)!==0)throw Error(a(331));var O=We;if(We|=4,O0(b.current),M0(b,b.current,j,u),We=O,uo(0,!1),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(It,b)}catch{}return!0}finally{G.p=x,z.T=h,W0(r,i)}}function ty(r,i,u){i=Nn(u,i),i=ud(r.stateNode,i,2),r=ei(r,i,2),r!==null&&(Ni(r,2),tr(r))}function nt(r,i,u){if(r.tag===3)ty(r,r,u);else for(;i!==null;){if(i.tag===3){ty(i,r,u);break}else if(i.tag===1){var h=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(li===null||!li.has(h))){r=Nn(u,r),u=n0(2),h=ei(i,u,2),h!==null&&(r0(u,h,i,r),Ni(h,2),tr(h));break}}i=i.return}}function Rd(r,i,u){var h=r.pingCache;if(h===null){h=r.pingCache=new W2;var x=new Set;h.set(i,x)}else x=h.get(i),x===void 0&&(x=new Set,h.set(i,x));x.has(u)||(Nd=!0,x.add(u),r=iE.bind(null,r,i,u),i.then(r,r))}function iE(r,i,u){var h=r.pingCache;h!==null&&h.delete(i),r.pingedLanes|=r.suspendedLanes&u,r.warmLanes&=~u,st===r&&(Pe&u)===u&&(vt===4||vt===3&&(Pe&62914560)===Pe&&300>Rt()-uu?(We&2)===0&&Fa(r,0):Cd|=u,Pa===Pe&&(Pa=0)),tr(r)}function ny(r,i){i===0&&(i=fs()),r=Di(r,i),r!==null&&(Ni(r,i),tr(r))}function aE(r){var i=r.memoizedState,u=0;i!==null&&(u=i.retryLane),ny(r,u)}function lE(r,i){var u=0;switch(r.tag){case 31:case 13:var h=r.stateNode,x=r.memoizedState;x!==null&&(u=x.retryLane);break;case 19:h=r.stateNode;break;case 22:h=r.stateNode._retryCache;break;default:throw Error(a(314))}h!==null&&h.delete(i),ny(r,u)}function oE(r,i){return Pt(r,i)}var gu=null,Xa=null,Od=!1,xu=!1,Ld=!1,ui=0;function tr(r){r!==Xa&&r.next===null&&(Xa===null?gu=Xa=r:Xa=Xa.next=r),xu=!0,Od||(Od=!0,uE())}function uo(r,i){if(!Ld&&xu){Ld=!0;do for(var u=!1,h=gu;h!==null;){if(r!==0){var x=h.pendingLanes;if(x===0)var b=0;else{var j=h.suspendedLanes,O=h.pingedLanes;b=(1<<31-et(42|r)+1)-1,b&=x&~(j&~O),b=b&201326741?b&201326741|1:b?b|2:0}b!==0&&(u=!0,ly(h,b))}else b=Pe,b=xa(h,h===st?b:0,h.cancelPendingCommit!==null||h.timeoutHandle!==-1),(b&3)===0||Ei(h,b)||(u=!0,ly(h,b));h=h.next}while(u);Ld=!1}}function sE(){ry()}function ry(){xu=Od=!1;var r=0;ui!==0&&vE()&&(r=ui);for(var i=Rt(),u=null,h=gu;h!==null;){var x=h.next,b=iy(h,i);b===0?(h.next=null,u===null?gu=x:u.next=x,x===null&&(Xa=u)):(u=h,(r!==0||(b&3)!==0)&&(xu=!0)),h=x}Lt!==0&&Lt!==5||uo(r),ui!==0&&(ui=0)}function iy(r,i){for(var u=r.suspendedLanes,h=r.pingedLanes,x=r.expirationTimes,b=r.pendingLanes&-62914561;0O)break;var fe=Z.transferSize,he=Z.initiatorType;fe&&py(he)&&(Z=Z.responseEnd,j+=fe*(Z"u"?null:document;function Ny(r,i,u){var h=Qa;if(h&&typeof i=="string"&&i){var x=en(i);x='link[rel="'+r+'"][href="'+x+'"]',typeof u=="string"&&(x+='[crossorigin="'+u+'"]'),Ey.has(x)||(Ey.add(x),r={rel:r,crossOrigin:u,href:i},h.querySelector(x)===null&&(i=h.createElement("link"),Vt(i,"link",r),kt(i),h.head.appendChild(i)))}}function jE(r){Tr.D(r),Ny("dns-prefetch",r,null)}function TE(r,i){Tr.C(r,i),Ny("preconnect",r,i)}function AE(r,i,u){Tr.L(r,i,u);var h=Qa;if(h&&r&&i){var x='link[rel="preload"][as="'+en(i)+'"]';i==="image"&&u&&u.imageSrcSet?(x+='[imagesrcset="'+en(u.imageSrcSet)+'"]',typeof u.imageSizes=="string"&&(x+='[imagesizes="'+en(u.imageSizes)+'"]')):x+='[href="'+en(r)+'"]';var b=x;switch(i){case"style":b=Za(r);break;case"script":b=Ka(r)}Mn.has(b)||(r=p({rel:"preload",href:i==="image"&&u&&u.imageSrcSet?void 0:r,as:i},u),Mn.set(b,r),h.querySelector(x)!==null||i==="style"&&h.querySelector(po(b))||i==="script"&&h.querySelector(mo(b))||(i=h.createElement("link"),Vt(i,"link",r),kt(i),h.head.appendChild(i)))}}function zE(r,i){Tr.m(r,i);var u=Qa;if(u&&r){var h=i&&typeof i.as=="string"?i.as:"script",x='link[rel="modulepreload"][as="'+en(h)+'"][href="'+en(r)+'"]',b=x;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":b=Ka(r)}if(!Mn.has(b)&&(r=p({rel:"modulepreload",href:r},i),Mn.set(b,r),u.querySelector(x)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(u.querySelector(mo(b)))return}h=u.createElement("link"),Vt(h,"link",r),kt(h),u.head.appendChild(h)}}}function ME(r,i,u){Tr.S(r,i,u);var h=Qa;if(h&&r){var x=Pr(h).hoistableStyles,b=Za(r);i=i||"default";var j=x.get(b);if(!j){var O={loading:0,preload:null};if(j=h.querySelector(po(b)))O.loading=5;else{r=p({rel:"stylesheet",href:r,"data-precedence":i},u),(u=Mn.get(b))&&Jd(r,u);var Z=j=h.createElement("link");kt(Z),Vt(Z,"link",r),Z._p=new Promise(function(ae,fe){Z.onload=ae,Z.onerror=fe}),Z.addEventListener("load",function(){O.loading|=1}),Z.addEventListener("error",function(){O.loading|=2}),O.loading|=4,_u(j,i,h)}j={type:"stylesheet",instance:j,count:1,state:O},x.set(b,j)}}}function DE(r,i){Tr.X(r,i);var u=Qa;if(u&&r){var h=Pr(u).hoistableScripts,x=Ka(r),b=h.get(x);b||(b=u.querySelector(mo(x)),b||(r=p({src:r,async:!0},i),(i=Mn.get(x))&&Wd(r,i),b=u.createElement("script"),kt(b),Vt(b,"link",r),u.head.appendChild(b)),b={type:"script",instance:b,count:1,state:null},h.set(x,b))}}function RE(r,i){Tr.M(r,i);var u=Qa;if(u&&r){var h=Pr(u).hoistableScripts,x=Ka(r),b=h.get(x);b||(b=u.querySelector(mo(x)),b||(r=p({src:r,async:!0,type:"module"},i),(i=Mn.get(x))&&Wd(r,i),b=u.createElement("script"),kt(b),Vt(b,"link",r),u.head.appendChild(b)),b={type:"script",instance:b,count:1,state:null},h.set(x,b))}}function Cy(r,i,u,h){var x=(x=J.current)?wu(x):null;if(!x)throw Error(a(446));switch(r){case"meta":case"title":return null;case"style":return typeof u.precedence=="string"&&typeof u.href=="string"?(i=Za(u.href),u=Pr(x).hoistableStyles,h=u.get(i),h||(h={type:"style",instance:null,count:0,state:null},u.set(i,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(u.rel==="stylesheet"&&typeof u.href=="string"&&typeof u.precedence=="string"){r=Za(u.href);var b=Pr(x).hoistableStyles,j=b.get(r);if(j||(x=x.ownerDocument||x,j={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},b.set(r,j),(b=x.querySelector(po(r)))&&!b._p&&(j.instance=b,j.state.loading=5),Mn.has(r)||(u={rel:"preload",as:"style",href:u.href,crossOrigin:u.crossOrigin,integrity:u.integrity,media:u.media,hrefLang:u.hrefLang,referrerPolicy:u.referrerPolicy},Mn.set(r,u),b||OE(x,r,u,j.state))),i&&h===null)throw Error(a(528,""));return j}if(i&&h!==null)throw Error(a(529,""));return null;case"script":return i=u.async,u=u.src,typeof u=="string"&&i&&typeof i!="function"&&typeof i!="symbol"?(i=Ka(u),u=Pr(x).hoistableScripts,h=u.get(i),h||(h={type:"script",instance:null,count:0,state:null},u.set(i,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,r))}}function Za(r){return'href="'+en(r)+'"'}function po(r){return'link[rel="stylesheet"]['+r+"]"}function jy(r){return p({},r,{"data-precedence":r.precedence,precedence:null})}function OE(r,i,u,h){r.querySelector('link[rel="preload"][as="style"]['+i+"]")?h.loading=1:(i=r.createElement("link"),h.preload=i,i.addEventListener("load",function(){return h.loading|=1}),i.addEventListener("error",function(){return h.loading|=2}),Vt(i,"link",u),kt(i),r.head.appendChild(i))}function Ka(r){return'[src="'+en(r)+'"]'}function mo(r){return"script[async]"+r}function Ty(r,i,u){if(i.count++,i.instance===null)switch(i.type){case"style":var h=r.querySelector('style[data-href~="'+en(u.href)+'"]');if(h)return i.instance=h,kt(h),h;var x=p({},u,{"data-href":u.href,"data-precedence":u.precedence,href:null,precedence:null});return h=(r.ownerDocument||r).createElement("style"),kt(h),Vt(h,"style",x),_u(h,u.precedence,r),i.instance=h;case"stylesheet":x=Za(u.href);var b=r.querySelector(po(x));if(b)return i.state.loading|=4,i.instance=b,kt(b),b;h=jy(u),(x=Mn.get(x))&&Jd(h,x),b=(r.ownerDocument||r).createElement("link"),kt(b);var j=b;return j._p=new Promise(function(O,Z){j.onload=O,j.onerror=Z}),Vt(b,"link",h),i.state.loading|=4,_u(b,u.precedence,r),i.instance=b;case"script":return b=Ka(u.src),(x=r.querySelector(mo(b)))?(i.instance=x,kt(x),x):(h=u,(x=Mn.get(b))&&(h=p({},u),Wd(h,x)),r=r.ownerDocument||r,x=r.createElement("script"),kt(x),Vt(x,"link",h),r.head.appendChild(x),i.instance=x);case"void":return null;default:throw Error(a(443,i.type))}else i.type==="stylesheet"&&(i.state.loading&4)===0&&(h=i.instance,i.state.loading|=4,_u(h,u.precedence,r));return i.instance}function _u(r,i,u){for(var h=u.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),x=h.length?h[h.length-1]:null,b=x,j=0;j title"):null)}function LE(r,i,u){if(u===1||i.itemProp!=null)return!1;switch(r){case"meta":case"title":return!0;case"style":if(typeof i.precedence!="string"||typeof i.href!="string"||i.href==="")break;return!0;case"link":if(typeof i.rel!="string"||typeof i.href!="string"||i.href===""||i.onLoad||i.onError)break;switch(i.rel){case"stylesheet":return r=i.disabled,typeof i.precedence=="string"&&r==null;default:return!0}case"script":if(i.async&&typeof i.async!="function"&&typeof i.async!="symbol"&&!i.onLoad&&!i.onError&&i.src&&typeof i.src=="string")return!0}return!1}function My(r){return!(r.type==="stylesheet"&&(r.state.loading&3)===0)}function HE(r,i,u,h){if(u.type==="stylesheet"&&(typeof h.media!="string"||matchMedia(h.media).matches!==!1)&&(u.state.loading&4)===0){if(u.instance===null){var x=Za(h.href),b=i.querySelector(po(x));if(b){i=b._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(r.count++,r=ku.bind(r),i.then(r,r)),u.state.loading|=4,u.instance=b,kt(b);return}b=i.ownerDocument||i,h=jy(h),(x=Mn.get(x))&&Jd(h,x),b=b.createElement("link"),kt(b);var j=b;j._p=new Promise(function(O,Z){j.onload=O,j.onerror=Z}),Vt(b,"link",h),u.instance=b}r.stylesheets===null&&(r.stylesheets=new Map),r.stylesheets.set(u,i),(i=u.state.preload)&&(u.state.loading&3)===0&&(r.count++,u=ku.bind(r),i.addEventListener("load",u),i.addEventListener("error",u))}}var eh=0;function BE(r,i){return r.stylesheets&&r.count===0&&Nu(r,r.stylesheets),0eh?50:800)+i);return r.unsuspend=u,function(){r.unsuspend=null,clearTimeout(h),clearTimeout(x)}}:null}function ku(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Nu(this,this.stylesheets);else if(this.unsuspend){var r=this.unsuspend;this.unsuspend=null,r()}}}var Eu=null;function Nu(r,i){r.stylesheets=null,r.unsuspend!==null&&(r.count++,Eu=new Map,i.forEach(IE,r),Eu=null,ku.call(r))}function IE(r,i){if(!(i.state.loading&4)){var u=Eu.get(r);if(u)var h=u.get(null);else{u=new Map,Eu.set(r,u);for(var x=r.querySelectorAll("link[data-precedence],style[data-precedence]"),b=0;b"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),uh.exports=iN(),uh.exports}var lN=aN();/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oN=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),yw=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var sN={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uN=I.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:l="",children:o,iconNode:s,...c},d)=>I.createElement("svg",{ref:d,...sN,width:t,height:t,stroke:e,strokeWidth:a?Number(n)*24/Number(t):n,className:yw("lucide",l),...c},[...s.map(([f,m])=>I.createElement(f,m)),...Array.isArray(o)?o:[o]]));/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ie=(e,t)=>{const n=I.forwardRef(({className:a,...l},o)=>I.createElement(uN,{ref:o,iconNode:t,className:yw(`lucide-${oN(e)}`,a),...l}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vw=Ie("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cN=Ie("ArrowDownToLine",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fN=Ie("ArrowUpFromLine",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dN=Ie("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wi=Ie("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ua=Ie("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Lr=Ie("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hN=Ie("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pN=Ie("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mN=Ie("CircleStop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bw=Ie("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ww=Ie("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _w=Ie("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gN=Ie("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nv=Ie("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xN=Ie("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yN=Ie("FileOutput",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2",key:"1vk7w2"}],["path",{d:"M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6",key:"1jink5"}],["path",{d:"m5 11-3 3",key:"1dgrs4"}],["path",{d:"m5 17-3-3h10",key:"1mvvaf"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Sw=Ie("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vN=Ie("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kw=Ie("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kc=Ie("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ml=Ie("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bN=Ie("Maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vm=Ie("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wN=Ie("Octagon",[["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _N=Ie("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ec=Ie("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const SN=Ie("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kN=Ie("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ew=Ie("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const EN=Ie("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rv=Ie("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bm=Ie("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const NN=Ie("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ac=Ie("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const CN=Ie("Variable",[["path",{d:"M8 21s-4-3-4-9 4-9 4-9",key:"uto9ud"}],["path",{d:"M16 3s4 3 4 9-4 9-4 9",key:"4w2vsq"}],["line",{x1:"15",x2:"9",y1:"9",y2:"15",key:"f7djnv"}],["line",{x1:"9",x2:"15",y1:"9",y2:"15",key:"1shsy8"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jN=Ie("WifiOff",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const TN=Ie("Wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ca=Ie("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const AN=Ie("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),iv=e=>{let t;const n=new Set,a=(f,m)=>{const p=typeof f=="function"?f(t):f;if(!Object.is(p,t)){const g=t;t=m??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(v=>v(t,g))}},l=()=>t,c={setState:a,getState:l,getInitialState:()=>d,subscribe:f=>(n.add(f),()=>n.delete(f))},d=t=e(a,l,c);return c},zN=(e=>e?iv(e):iv),MN=e=>e;function DN(e,t=MN){const n=ll.useSyncExternalStore(e.subscribe,ll.useCallback(()=>t(e.getState()),[e,t]),ll.useCallback(()=>t(e.getInitialState()),[e,t]));return ll.useDebugValue(n),n}const av=e=>{const t=zN(e),n=a=>DN(t,a);return Object.assign(n,t),n},RN=(e=>e?av(e):av);function ze(e,t,n="agent"){return e[t]||(e[t]={name:t,status:"pending",type:n,activity:[]}),e[t].activity||(e[t].activity=[]),e[t]}function Fi(e,t,n){ze(e,t).activity.push(n)}function je(e,t){e[t]&&(e[t]={...e[t]})}function gi(e,t,n,a){const l=e[t];if(!(l!=null&&l.for_each_items))return;const o=l.for_each_items.find(s=>s.key===n);o&&o.activity.push(a)}function ON(e,t,n,a){return{parentAgent:e,iteration:t,slotKey:a??e,workflowFile:n,workflowName:"",status:"pending",agents:[],routes:[],parallelGroups:[],forEachGroups:[],nodes:{},groupProgress:{},highlightedEdges:[],entryPoint:null,children:[],agentsCompleted:0,agentsTotal:0,totalCost:0,totalTokens:0,eventLog:[],activityLog:[],workflowOutput:null,workflowFailure:null}}function nr(e,t){if(t.length===0)return null;let n=e[t[0]];for(let a=1;a=0;c--)if(a[c].slotKey===o){s=c;break}if(s===-1)return null;n.push(s),l=a[s],a=l.children}return{indexPath:n,ctx:l}}function LN(e,t){for(let n=e.length-1;n>=0;n--){const a=e[n];if(a.slotKey===t)return{ctx:a,index:n}}return null}const se=RN((e,t)=>({workflowName:"",workflowStatus:"pending",workflowStartTime:null,workflowFailure:null,workflowFailedAgent:null,workflowTermination:null,workflowYaml:null,conductorVersion:null,entryPoint:null,agents:[],routes:[],parallelGroups:[],forEachGroups:[],nodes:{},groupProgress:{},highlightedEdges:[],agentsCompleted:0,agentsTotal:0,totalCost:0,totalTokens:0,selectedNode:null,wsStatus:"connecting",eventLog:[],activityLog:[],workflowOutput:null,lastEventTime:null,isPaused:!1,iterationLimitGate:null,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[],replayMode:!1,replayEvents:[],replayPosition:0,replayTotalEvents:0,replayPlaying:!1,replaySpeed:1,_wsSend:null,setWsSend:n=>{e({_wsSend:n})},sendGateResponse:(n,a,l)=>{const o=se.getState()._wsSend;o&&o({type:"gate_response",agent_name:n,selected_value:a,additional_input:l||{}})},activeDialog:null,dialogEngaged:!1,engageDialog:()=>{e({dialogEngaged:!0})},sendDialogMessage:(n,a,l)=>{const o=se.getState()._wsSend;o&&o({type:"dialog_message",agent_name:n,dialog_id:a,content:l})},sendDialogDecline:(n,a)=>{const l=se.getState()._wsSend;l&&l({type:"dialog_decline",agent_name:n,dialog_id:a})},sendIterationLimitResponse:(n,a,l)=>{const o=se.getState()._wsSend;if(!o)return;const s=Math.max(0,Math.floor(Number(l)||0)),c="agent_name"in n?{agent_name:n.agent_name}:{group_name:n.group_name};o({type:"iteration_limit_response",gate_id:a,...c,additional_iterations:s})},processEvent:n=>{const a=Ru[n.type];e(l=>{const o={...l,nodes:{...l.nodes},groupProgress:{...l.groupProgress},eventLog:[...l.eventLog],activityLog:[...l.activityLog],lastEventTime:n.timestamp};a&&a(o,n.data,n.timestamp);const s=Ou(n);s&&o.eventLog.push(s);const c=Lu(n);return c&&o.activityLog.push(c),o})},replayState:n=>{e(a=>{const l={...a,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[]};for(const o of n){const s=Ru[o.type];s&&s(l,o.data,o.timestamp);const c=Ou(o);c&&l.eventLog.push(c);const d=Lu(o);d&&l.activityLog.push(d),l.lastEventTime=o.timestamp}return l})},selectNode:n=>{e({selectedNode:n})},setReplayMode:n=>{e(a=>{const l={...a,replayMode:!0,replayEvents:n,replayTotalEvents:n.length,replayPosition:n.length,replayPlaying:!1,replaySpeed:1,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[]};for(const o of n){const s=Ru[o.type];s&&s(l,o.data,o.timestamp);const c=Ou(o);c&&l.eventLog.push(c);const d=Lu(o);d&&l.activityLog.push(d),l.lastEventTime=o.timestamp}return l})},setReplayPosition:n=>{e(a=>{const l=a.replayEvents.slice(0,n),o={...a,replayPosition:n,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,workflowStatus:"pending",workflowStartTime:null,workflowName:"",workflowFailure:null,entryPoint:null,agents:[],routes:[],parallelGroups:[],forEachGroups:[],isPaused:!1,iterationLimitGate:null,lastEventTime:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[]};for(const s of l){const c=Ru[s.type];c&&c(o,s.data,s.timestamp);const d=Ou(s);d&&o.eventLog.push(d);const f=Lu(s);f&&o.activityLog.push(f),o.lastEventTime=s.timestamp}return o})},setReplayPlaying:n=>{e({replayPlaying:n})},setReplaySpeed:n=>{e({replaySpeed:n})},setWsStatus:n=>{e({wsStatus:n})},setEdgeHighlight:(n,a,l)=>{e(o=>({highlightedEdges:[...o.highlightedEdges.filter(s=>!(s.from===n&&s.to===a)),{from:n,to:a,state:l}]}))},clearEdgeHighlight:(n,a)=>{e(l=>({highlightedEdges:l.highlightedEdges.filter(o=>!(o.from===n&&o.to===a))}))},navigateToContext:n=>{e({viewContextPath:n,selectedNode:null})},navigateUp:()=>{e(n=>({viewContextPath:n.viewContextPath.slice(0,-1),selectedNode:null}))},navigateIntoSubworkflow:n=>{const a=t(),l=a.viewContextPath;let o;if(l.length===0)o=a.subworkflowContexts;else{const c=nr(a.subworkflowContexts,l);if(!c)return;o=c.children}const s=LN(o,n);s&&e({viewContextPath:[...l,s.index],selectedNode:null})},getViewedContext:()=>{const n=t();if(n.viewContextPath.length===0)return{workflowName:n.workflowName,agents:n.agents,routes:n.routes,parallelGroups:n.parallelGroups,forEachGroups:n.forEachGroups,nodes:n.nodes,groupProgress:n.groupProgress,highlightedEdges:n.highlightedEdges,entryPoint:n.entryPoint,subworkflowContexts:n.subworkflowContexts};const a=nr(n.subworkflowContexts,n.viewContextPath);return a?{workflowName:a.workflowName,agents:a.agents,routes:a.routes,parallelGroups:a.parallelGroups,forEachGroups:a.forEachGroups,nodes:a.nodes,groupProgress:a.groupProgress,highlightedEdges:a.highlightedEdges,entryPoint:a.entryPoint,subworkflowContexts:a.children}:{workflowName:n.workflowName,agents:n.agents,routes:n.routes,parallelGroups:n.parallelGroups,forEachGroups:n.forEachGroups,nodes:n.nodes,groupProgress:n.groupProgress,highlightedEdges:n.highlightedEdges,entryPoint:n.entryPoint,subworkflowContexts:n.subworkflowContexts}},getBreadcrumbs:()=>{const n=t(),a=[{label:n.workflowName||"Root",path:[]}];let l=n.subworkflowContexts;for(let o=0;o0&&(n=((l=Qi(e.subworkflowContexts,a))==null?void 0:l.ctx)??null),n){const o=n;return{nodes:o.nodes,groupProgress:o.groupProgress,routes:o.routes,highlightedEdges:o.highlightedEdges,addCost:s=>{o.totalCost+=s,e.totalCost+=s},addTokens:s=>{o.totalTokens+=s,e.totalTokens+=s},incrCompleted:()=>{o.agentsCompleted++,e.agentsCompleted++}}}return{nodes:e.nodes,groupProgress:e.groupProgress,routes:e.routes,highlightedEdges:e.highlightedEdges,addCost:o=>{e.totalCost+=o},addTokens:o=>{e.totalTokens+=o},incrCompleted:()=>{e.agentsCompleted++}}}const Ru={workflow_started:(e,t,n)=>{var l,o,s;const a=t;if(e.wfDepth===0){e.workflowStatus="running",e.workflowStartTime=n??Date.now()/1e3,e.workflowName=a.name||"",e.workflowYaml=t.yaml_source??null,e.conductorVersion=t.version??null,e.entryPoint=a.entry_point||null,e.agents=a.agents||[],e.routes=a.routes||[],e.parallelGroups=a.parallel_groups||[],e.forEachGroups=a.for_each_groups||[],ze(e.nodes,"$start","start"),e.nodes.$start.status="running",je(e.nodes,"$start");const c=new Set,d=new Set;for(const f of e.parallelGroups){for(const m of f.agents)c.add(m);d.add(f.name),ze(e.nodes,f.name,"parallel_group"),e.groupProgress[f.name]={total:f.agents.length,completed:0,failed:0};for(const m of f.agents)ze(e.nodes,m,"agent")}for(const f of e.forEachGroups)d.add(f.name),ze(e.nodes,f.name,"for_each_group"),e.groupProgress[f.name]={total:0,completed:0,failed:0};for(const f of e.agents)if(!d.has(f.name)&&!c.has(f.name)){const m=f.type||"agent";if(ze(e.nodes,f.name,m),f.model&&(e.nodes[f.name].model=f.model),f.reasoning_effort&&(e.nodes[f.name].reasoning_effort=f.reasoning_effort),f.provider_name){e.nodes[f.name].provider_name=f.provider_name;const p=(l=a.providers)==null?void 0:l[f.provider_name];p!=null&&p.tier&&(e.nodes[f.name].provider_tier=p.tier)}d.add(f.name)}e.agentsTotal=d.size}else{const c=t.subworkflow_path,d=Array.isArray(c)&&c.length>0?((o=Qi(e.subworkflowContexts,c))==null?void 0:o.ctx)??null:nr(e.subworkflowContexts,e.activeContextPath);if(d){d.workflowName=a.name||"",d.status="running",d.entryPoint=a.entry_point||null,d.agents=a.agents||[],d.routes=a.routes||[],d.parallelGroups=a.parallel_groups||[],d.forEachGroups=a.for_each_groups||[],ze(d.nodes,"$start","start"),d.nodes.$start.status="running";const f=new Set,m=new Set;for(const p of d.parallelGroups){for(const g of p.agents)f.add(g);m.add(p.name),ze(d.nodes,p.name,"parallel_group"),d.groupProgress[p.name]={total:p.agents.length,completed:0,failed:0};for(const g of p.agents)ze(d.nodes,g,"agent")}for(const p of d.forEachGroups)m.add(p.name),ze(d.nodes,p.name,"for_each_group"),d.groupProgress[p.name]={total:0,completed:0,failed:0};for(const p of d.agents)if(!m.has(p.name)&&!f.has(p.name)){const g=p.type||"agent";if(ze(d.nodes,p.name,g),p.model&&(d.nodes[p.name].model=p.model),p.reasoning_effort&&(d.nodes[p.name].reasoning_effort=p.reasoning_effort),p.provider_name){d.nodes[p.name].provider_name=p.provider_name;const v=(s=a.providers)==null?void 0:s[p.provider_name];v!=null&&v.tier&&(d.nodes[p.name].provider_tier=v.tier)}m.add(p.name)}d.agentsTotal=m.size}}e.wfDepth++},agent_started:(e,t,n)=>{const a=t,l=Ze(e,t),o=ze(l.nodes,a.agent_name);o.iteration!=null&&(o.output!=null||o.error_type!=null)&&(o.iterationHistory||(o.iterationHistory=[]),o.iterationHistory.push({iteration:o.iteration,prompt:o.prompt,output:o.output,elapsed:o.elapsed,model:o.model,reasoning_effort:o.reasoning_effort,tokens:o.tokens,input_tokens:o.input_tokens,output_tokens:o.output_tokens,cost_usd:o.cost_usd,activity:o.activity,error_type:o.error_type,error_message:o.error_message})),o.status="running",o.iteration=a.iteration,o.startedAt=n??Date.now()/1e3,o.activity=[],a.context_window_max!=null&&(o.context_window_max=a.context_window_max),o.prompt=void 0,o.output=void 0,o.error_type=void 0,o.error_message=void 0,je(l.nodes,a.agent_name)},agent_completed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="completed",a.incrCompleted(),l.elapsed=n.elapsed,l.model=n.model,l.tokens=n.tokens,l.input_tokens=n.input_tokens,l.output_tokens=n.output_tokens,l.cost_usd=n.cost_usd,l.output=n.output,l.output_keys=n.output_keys,l.context_window_used=n.context_window_used,l.context_window_max=n.context_window_max,n.context_window_used!=null&&n.context_window_max!=null&&n.context_window_max>0&&(l.context_pct=Math.round(n.context_window_used/n.context_window_max*100)),n.cost_usd&&a.addCost(n.cost_usd),n.tokens&&a.addTokens(n.tokens);const o=t;o.terminated_by&&(l.termination_status=o.status??"success",l.termination_reason=o.termination_reason,l.terminated_by=o.terminated_by),je(a.nodes,n.agent_name)},agent_failed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="failed",l.elapsed=n.elapsed,l.error_type=n.error_type,l.error_message=n.message;for(const s of a.routes)s.to===n.agent_name&&a.highlightedEdges.push({from:s.from,to:s.to,state:"failed"});const o=t;o.terminated_by&&(l.termination_status=o.status??"failed",l.termination_reason=o.termination_reason,l.terminated_by=o.terminated_by),je(a.nodes,n.agent_name)},agent_prompt_rendered:(e,t)=>{var s;const n=t,a=t.item_key,l=Ze(e,t),o=ze(l.nodes,n.agent_name);if(o.prompt=n.rendered_prompt,o.context_keys=n.context_keys,a){gi(l.nodes,n.agent_name,a,{type:"prompt",icon:"📝",label:"prompt",text:"Prompt rendered",detail:((s=n.rendered_prompt)==null?void 0:s.slice(0,500))||null});const c=l.nodes[n.agent_name];if(c!=null&&c.for_each_items){const d=c.for_each_items.find(f=>f.key===a);d&&(d.prompt=n.rendered_prompt)}}je(l.nodes,n.agent_name)},agent_reasoning:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o={type:"reasoning",icon:"💭",label:"thinking",text:n.content};Fi(l.nodes,n.agent_name,o),a&&gi(l.nodes,n.agent_name,a,o),je(l.nodes,n.agent_name)},agent_tool_start:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o={type:"tool-start",icon:"🔧",label:"tool",text:n.tool_name,detail:n.arguments||null};Fi(l.nodes,n.agent_name,o),a&&gi(l.nodes,n.agent_name,a,o),je(l.nodes,n.agent_name)},agent_tool_complete:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o={type:"tool-complete",icon:"✓",label:"result",text:n.tool_name||"done",detail:n.result||null};Fi(l.nodes,n.agent_name,o),a&&gi(l.nodes,n.agent_name,a,o),je(l.nodes,n.agent_name)},agent_turn_start:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o={type:"turn",icon:"⏳",label:"turn",text:`Turn ${n.turn??"?"}`};Fi(l.nodes,n.agent_name,o),a&&gi(l.nodes,n.agent_name,a,o),je(l.nodes,n.agent_name)},agent_message:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.latest_message=n.content,je(a.nodes,n.agent_name)},script_started:(e,t,n)=>{const a=t,l=Ze(e,t),o=ze(l.nodes,a.agent_name);o.status="running",o.startedAt=n??Date.now()/1e3,je(l.nodes,a.agent_name)},script_completed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="completed",a.incrCompleted(),l.elapsed=n.elapsed,l.stdout=n.stdout,l.stderr=n.stderr,l.exit_code=n.exit_code,je(a.nodes,n.agent_name)},script_failed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="failed",l.elapsed=n.elapsed,l.error_type=n.error_type,l.error_message=n.message,je(a.nodes,n.agent_name)},wait_started:(e,t,n)=>{const a=t,l=Ze(e,t),o=ze(l.nodes,a.agent_name);o.status="running",o.startedAt=n??Date.now()/1e3,o.duration_seconds=a.duration_seconds??null,o.reason=a.reason??null,o.iteration=a.iteration,je(l.nodes,a.agent_name)},wait_completed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="completed",a.incrCompleted(),l.elapsed=n.elapsed,l.waited_seconds=n.waited_seconds,l.requested_seconds=n.requested_seconds,l.reason=n.reason??null,l.interrupted=n.interrupted,je(a.nodes,n.agent_name)},wait_failed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="failed",l.elapsed=n.elapsed,l.error_type=n.error_type,l.error_message=n.message,je(a.nodes,n.agent_name)},set_started:(e,t,n)=>{const a=t,l=Ze(e,t),o=ze(l.nodes,a.agent_name);o.status="running",o.startedAt=n??Date.now()/1e3,je(l.nodes,a.agent_name)},set_completed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="completed",a.incrCompleted(),l.elapsed=n.elapsed,l.set_output_type=n.output_type,l.set_output_keys=n.output_keys,l.set_value_repr=n.value_repr,je(a.nodes,n.agent_name)},set_failed:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="failed",l.elapsed=n.elapsed,l.error_type=n.error_type,l.error_message=n.message,je(a.nodes,n.agent_name)},gate_presented:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="waiting",l.options=n.options,l.option_details=n.option_details,l.prompt=n.prompt,je(a.nodes,n.agent_name)},gate_resolved:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.agent_name);l.status="completed",a.incrCompleted(),l.selected_option=n.selected_option,l.route=n.route,l.additional_input=n.additional_input,je(a.nodes,n.agent_name)},route_taken:(e,t)=>{const n=t;Ze(e,t).highlightedEdges.push({from:n.from_agent,to:n.to_agent,state:"taken"})},parallel_started:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.group_name,"parallel_group");l.status="running",a.groupProgress[n.group_name]&&(a.groupProgress[n.group_name].total=n.agents.length,a.groupProgress[n.group_name].completed=0,a.groupProgress[n.group_name].failed=0),je(a.nodes,n.group_name)},parallel_agent_completed:(e,t)=>{const n=t,a=Ze(e,t);a.groupProgress[n.group_name]&&a.groupProgress[n.group_name].completed++;const l=ze(a.nodes,n.agent_name);l.status="completed",l.elapsed=n.elapsed,l.model=n.model,l.tokens=n.tokens,l.cost_usd=n.cost_usd,l.context_window_used=n.context_window_used,l.context_window_max=n.context_window_max,n.context_window_used!=null&&n.context_window_max!=null&&n.context_window_max>0&&(l.context_pct=Math.round(n.context_window_used/n.context_window_max*100)),n.cost_usd&&a.addCost(n.cost_usd),n.tokens&&a.addTokens(n.tokens),je(a.nodes,n.agent_name),je(a.nodes,n.group_name)},parallel_agent_failed:(e,t)=>{const n=t,a=Ze(e,t);a.groupProgress[n.group_name]&&a.groupProgress[n.group_name].failed++;const l=ze(a.nodes,n.agent_name);l.status="failed",l.elapsed=n.elapsed,l.error_type=n.error_type,l.error_message=n.message,je(a.nodes,n.agent_name),je(a.nodes,n.group_name)},parallel_completed:(e,t)=>{const n=t,a=Ze(e,t);a.incrCompleted();const l=ze(a.nodes,n.group_name,"parallel_group");l.status=n.failure_count===0?"completed":"failed",je(a.nodes,n.group_name)},for_each_started:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.group_name,"for_each_group");l.status="running",l.for_each_items=[],a.groupProgress[n.group_name]&&(a.groupProgress[n.group_name].total=n.item_count,a.groupProgress[n.group_name].completed=0,a.groupProgress[n.group_name].failed=0),je(a.nodes,n.group_name)},for_each_item_started:(e,t)=>{const n=t,a=Ze(e,t),l=ze(a.nodes,n.group_name,"for_each_group");l.for_each_items||(l.for_each_items=[]),l.for_each_items.push({key:n.item_key??String(n.index),index:n.index,status:"running",activity:[]}),je(a.nodes,n.group_name)},for_each_item_completed:(e,t)=>{const n=t,a=Ze(e,t);a.groupProgress[n.group_name]&&a.groupProgress[n.group_name].completed++;const l=ze(a.nodes,n.group_name,"for_each_group");if(l.for_each_items){const o=n.item_key??String(n.index),s=l.for_each_items.find(c=>c.key===o);s&&(s.status="completed",s.elapsed=n.elapsed,s.tokens=n.tokens,s.cost_usd=n.cost_usd,s.output=n.output)}je(a.nodes,n.group_name)},for_each_item_failed:(e,t)=>{const n=t,a=Ze(e,t);a.groupProgress[n.group_name]&&a.groupProgress[n.group_name].failed++;const l=ze(a.nodes,n.group_name,"for_each_group");if(l.for_each_items){const o=n.item_key??String(n.index),s=l.for_each_items.find(c=>c.key===o);s&&(s.status="failed",s.elapsed=n.elapsed,s.error_type=n.error_type,s.error_message=n.message)}je(a.nodes,n.group_name)},for_each_completed:(e,t)=>{const n=t,a=Ze(e,t);a.incrCompleted();const l=ze(a.nodes,n.group_name,"for_each_group");l.status=(n.failure_count??0)===0?"completed":"failed",l.elapsed=n.elapsed,l.success_count=n.success_count,l.failure_count=n.failure_count,je(a.nodes,n.group_name)},workflow_completed:(e,t)=>{var n;if(e.wfDepth=Math.max(0,e.wfDepth-1),e.wfDepth===0){const a=t;e.workflowStatus="completed",e.isPaused=!1,e.iterationLimitGate=null,e.workflowOutput=a.output??null,a.is_explicit?e.workflowTermination={is_explicit:!0,status:a.status??"success",termination_reason:a.termination_reason,terminated_by:a.terminated_by}:e.workflowTermination=null,e.nodes.$end&&(e.nodes.$end.status="completed",je(e.nodes,"$end")),e.nodes.$start&&(e.nodes.$start.status="completed",je(e.nodes,"$start")),e.highlightedEdges=[]}else{const a=t,l=a.subworkflow_path?(n=Qi(e.subworkflowContexts,a.subworkflow_path))==null?void 0:n.ctx:nr(e.subworkflowContexts,e.activeContextPath);l&&(l.status="completed",l.workflowOutput=a.output??null,l.nodes.$end&&(l.nodes.$end.status="completed"),l.nodes.$start&&(l.nodes.$start.status="completed"),l.highlightedEdges=[])}},workflow_failed:(e,t)=>{var l;const n=t,a=!!n.stopped_by_user&&!n.subworkflow_path;if(e.wfDepth=a?0:Math.max(0,e.wfDepth-1),e.wfDepth===0){if(e.workflowStatus="failed",e.isPaused=!1,e.iterationLimitGate=null,e.workflowFailedAgent=n.agent_name||null,n.agent_name&&e.nodes[n.agent_name]){e.nodes[n.agent_name].status="failed",je(e.nodes,n.agent_name);for(const o of e.routes)o.to===n.agent_name&&e.highlightedEdges.push({from:o.from,to:o.to,state:"failed"})}e.workflowFailure={error_type:n.error_type,message:n.message,elapsed_seconds:n.elapsed_seconds,timeout_seconds:n.timeout_seconds,current_agent:n.current_agent,checkpoint_path:n.checkpoint_path,checkpoint_unavailable_reason:n.checkpoint_unavailable_reason,stopped_by_user:n.stopped_by_user,termination_reason:n.termination_reason,terminated_by:n.terminated_by,is_explicit:n.is_explicit,status:n.status},n.is_explicit?e.workflowTermination={is_explicit:!0,status:n.status??"failed",termination_reason:n.termination_reason,terminated_by:n.terminated_by}:e.workflowTermination=null,e.nodes.$start&&(e.nodes.$start.status="completed",je(e.nodes,"$start"))}else{const o=n.subworkflow_path?(l=Qi(e.subworkflowContexts,n.subworkflow_path))==null?void 0:l.ctx:nr(e.subworkflowContexts,e.activeContextPath);o&&(o.status="failed",o.workflowFailure={error_type:n.error_type,message:n.message})}},subworkflow_started:(e,t)=>{const n=t,a=n.slot_key??(n.item_key!=null?`${n.agent_name}[${n.item_key}]`:n.agent_name),l=ON(n.agent_name,n.iteration??1,n.workflow,a);let o;if(n.parent_path!==void 0){const c=Qi(e.subworkflowContexts,n.parent_path);if(!c)return;o=c.indexPath}else o=e.activeContextPath;let s;if(o.length===0)e.subworkflowContexts.push(l),s=[e.subworkflowContexts.length-1];else{const c=nr(e.subworkflowContexts,o);if(!c)return;c.children.push(l),s=[...o,c.children.length-1]}if(e.activeContextPath=s,o.length===0){const c=e.nodes[n.agent_name];c&&(c.status="running",je(e.nodes,n.agent_name))}else{const c=nr(e.subworkflowContexts,o);if(c){const d=c.nodes[n.agent_name];d&&(d.status="running",je(c.nodes,n.agent_name))}}},subworkflow_completed:(e,t)=>{var o;const n=t;let a;if(n.parent_path!==void 0){const s=Qi(e.subworkflowContexts,n.parent_path);if(!s)return;a=s.indexPath}else a=e.activeContextPath;const l=a.length===0?e.nodes:(o=nr(e.subworkflowContexts,a))==null?void 0:o.nodes;if(l){const s=l[n.agent_name];if(s){if(n.item_key==null)if(s.status="completed",s.elapsed=n.elapsed,a.length===0)e.agentsCompleted++;else{const c=nr(e.subworkflowContexts,a);c&&c.agentsCompleted++}je(l,n.agent_name)}}e.activeContextPath=a},subworkflow_failed:(e,t)=>{var o;const n=t;let a;if(n.parent_path!==void 0){const s=Qi(e.subworkflowContexts,n.parent_path);if(!s)return;a=s.indexPath}else a=e.activeContextPath;const l=a.length===0?e.nodes:(o=nr(e.subworkflowContexts,a))==null?void 0:o.nodes;if(l){const s=l[n.agent_name];s&&n.item_key==null&&(s.status="failed",s.elapsed=n.elapsed,s.error_type=n.error_type,s.error_message=n.message,je(l,n.agent_name))}e.activeContextPath=a},checkpoint_saved:(e,t)=>{const n=t;n.path&&e.workflowFailure&&(e.workflowFailure={...e.workflowFailure,checkpoint_path:n.path})},agent_paused:(e,t)=>{const n=t,a=ze(e.nodes,n.agent_name);a.status="waiting",a.activity.push({type:"agent_paused",icon:"⏸",label:"Paused",text:"Agent paused — click Resume to re-execute"}),je(e.nodes,n.agent_name),e.isPaused=!0},agent_resumed:(e,t)=>{const n=t,a=ze(e.nodes,n.agent_name);a.status="running",a.activity.push({type:"agent_resumed",icon:"▶",label:"Resumed",text:"Agent resumed — re-executing"}),je(e.nodes,n.agent_name),e.isPaused=!1},iteration_limit_reached:(e,t)=>{const n=t;e.iterationLimitGate=n;const a=n.agent_name??n.group_name;a?(ze(e.nodes,a).activity.push({type:"iteration_limit_reached",icon:"⚠",label:"Iteration limit",text:`Reached ${n.current_iteration}/${n.max_iterations} iterations — ${n.skip_gates?"auto-stopping (--skip-gates)":"awaiting decision"}`}),je(e.nodes,a)):typeof console<"u"&&console.warn("[workflow-store] iteration_limit_reached event missing both agent_name and group_name",n)},iteration_limit_resolved:(e,t)=>{const n=t;e.iterationLimitGate=null;const a=n.agent_name??n.group_name;a?(ze(e.nodes,a).activity.push({type:"iteration_limit_resolved",icon:n.continue_execution?"▶":"■",label:"Iteration limit",text:n.aborted?"Gate aborted unexpectedly — stopping workflow":n.continue_execution?`Continuing with ${n.additional_iterations} more iteration(s)`:"Stopping workflow"}),je(e.nodes,a)):typeof console<"u"&&console.warn("[workflow-store] iteration_limit_resolved event missing both agent_name and group_name",n)},dialog_started:(e,t)=>{const n=t,a=ze(e.nodes,n.agent_name);a.dialog_id=n.dialog_id,a.dialog_messages=[],a.dialog_active=!0,a.dialog_awaiting_response=!1,e.activeDialog={agentName:n.agent_name,dialogId:n.dialog_id},e.dialogEngaged=!1,je(e.nodes,n.agent_name)},dialog_message:(e,t)=>{const n=t,a=ze(e.nodes,n.agent_name);a.dialog_messages||(a.dialog_messages=[]),a.dialog_messages.push({role:n.role,content:n.content}),n.role==="user"?a.dialog_awaiting_response=!0:n.role==="agent"&&(a.dialog_awaiting_response=!1),je(e.nodes,n.agent_name)},dialog_completed:(e,t)=>{const n=t,a=ze(e.nodes,n.agent_name);a.dialog_active=!1,a.dialog_awaiting_response=!1,e.activeDialog=null,e.dialogEngaged=!1,je(e.nodes,n.agent_name)},agent_validator_start:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o={type:"validator-start",icon:"🔎",label:"validator",text:"validating output",detail:n.criteria_preview||null};if(Fi(l.nodes,n.agent_name,o),a!=null)gi(l.nodes,n.agent_name,String(a),o);else{const s=ze(l.nodes,n.agent_name);s.validator_state="running",s.validator_model=n.model??null,s.validator_attempts=(s.validator_attempts??0)+1}je(l.nodes,n.agent_name)},agent_validator_complete:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o=n.errored?"error":n.passed?"passed":"failed",s={type:"validator-complete",icon:n.errored?"⚠️":n.passed?"✅":"❌",label:"validator",text:n.errored?"validation error (treated as pass)":n.passed?"validation passed":"validation failed",detail:n.issues&&n.issues.length?n.issues.join(` +`):null};if(Fi(l.nodes,n.agent_name,s),a!=null)gi(l.nodes,n.agent_name,String(a),s);else{const c=ze(l.nodes,n.agent_name);c.validator_state=o,c.validator_issues=n.issues??[],c.validator_cost_usd=n.cost_usd??null,c.validator_model=n.model??c.validator_model??null}je(l.nodes,n.agent_name)},agent_validation_failed:(e,t)=>{const n=t,a=t.item_key,l=Ze(e,t),o=n.rerun_errored===!0,s={type:"validation-failed",icon:o?"⚠️":"❌",label:"validator",text:o?"re-run failed — keeping original output":n.will_retry?"re-running once with feedback":"validation failed (no retry)",detail:n.issues&&n.issues.length?n.issues.join(` +`):null};if(Fi(l.nodes,n.agent_name,s),a!=null)gi(l.nodes,n.agent_name,String(a),s);else{const c=ze(l.nodes,n.agent_name);c.validator_will_retry=n.will_retry,c.validator_issues=n.issues??[],o&&(c.validator_state="error")}je(l.nodes,n.agent_name)}};function hh(e){return e.item_key!=null?`${e.agent_name}[${e.item_key}]`:String(e.agent_name)}function Ou(e){var a,l;const t=e.timestamp,n=e.data;switch(e.type){case"workflow_started":return{timestamp:t,level:"info",source:"workflow",message:`Workflow "${n.name||""}" started`};case"agent_started":return{timestamp:t,level:"info",source:String(n.agent_name),message:`Agent started${n.iteration!=null?` (iteration ${n.iteration})`:""}`};case"agent_completed":return{timestamp:t,level:"success",source:String(n.agent_name),message:`Agent completed${n.elapsed!=null?` in ${zr(n.elapsed)}`:""}${n.tokens!=null?` · ${n.tokens.toLocaleString()} tokens`:""}${n.cost_usd!=null?` · $${n.cost_usd.toFixed(4)}`:""}`};case"agent_failed":return{timestamp:t,level:"error",source:String(n.agent_name),message:`Agent failed: ${n.message||n.error_type||"unknown error"}`};case"script_started":return{timestamp:t,level:"info",source:String(n.agent_name),message:"Script started"};case"script_completed":return{timestamp:t,level:"success",source:String(n.agent_name),message:`Script completed (exit ${n.exit_code??"?"})${n.elapsed!=null?` in ${zr(n.elapsed)}`:""}`};case"script_failed":return{timestamp:t,level:"error",source:String(n.agent_name),message:`Script failed: ${n.message||n.error_type||"unknown error"}`};case"wait_started":{const o=n.duration_seconds,s=n.reason,c=typeof o=="number"?zr(o):"?";return{timestamp:t,level:"info",source:String(n.agent_name),message:`Waiting ${c}${s?` — ${s}`:""}`}}case"wait_completed":{const o=n.waited_seconds,s=n.interrupted;return{timestamp:t,level:"success",source:String(n.agent_name),message:`Wait completed${o!=null?` (${zr(o)})`:""}${s?" — interrupted":""}`}}case"wait_failed":return{timestamp:t,level:"error",source:String(n.agent_name),message:`Wait failed: ${n.message||n.error_type||"unknown error"}`};case"set_started":return{timestamp:t,level:"info",source:String(n.agent_name),message:"Set started"};case"set_completed":{const o=n.output_keys??[],s=o.length>0?` · ${o.join(", ")}`:"";return{timestamp:t,level:"success",source:String(n.agent_name),message:`Set completed${s}${n.elapsed!=null?` in ${zr(n.elapsed)}`:""}`}}case"set_failed":return{timestamp:t,level:"error",source:String(n.agent_name),message:`Set failed: ${n.message||n.error_type||"unknown error"}`};case"gate_presented":return{timestamp:t,level:"warning",source:String(n.agent_name),message:"Waiting for human input…"};case"gate_resolved":return{timestamp:t,level:"success",source:String(n.agent_name),message:`Gate resolved → ${n.selected_option||"continue"}`};case"route_taken":return{timestamp:t,level:"debug",source:"router",message:`${n.from_agent} → ${n.to_agent}`};case"parallel_started":return{timestamp:t,level:"info",source:String(n.group_name),message:`Parallel group started (${((a=n.agents)==null?void 0:a.length)||"?"} agents)`};case"parallel_completed":return{timestamp:t,level:n.failure_count===0?"success":"error",source:String(n.group_name),message:`Parallel group completed${n.failure_count>0?` with ${n.failure_count} failure(s)`:""}`};case"for_each_started":return{timestamp:t,level:"info",source:String(n.group_name),message:`For-each started (${n.item_count} items)`};case"for_each_completed":return{timestamp:t,level:(n.failure_count??0)===0?"success":"error",source:String(n.group_name),message:`For-each completed · ${n.success_count} succeeded${n.failure_count>0?` · ${n.failure_count} failed`:""}`};case"workflow_completed":return{timestamp:t,level:"success",source:"workflow",message:`Workflow completed${n.elapsed!=null?` in ${zr(n.elapsed)}`:""}`};case"workflow_failed":return{timestamp:t,level:"error",source:"workflow",message:`Workflow failed: ${n.message||n.error_type||"unknown error"}`};case"budget_exceeded":{const o=n.spent_usd??0,s=n.budget_usd??0,c=String(n.budget_mode??"audit"),d=n.current_agent?` at ${n.current_agent}`:"";return{timestamp:t,level:c==="enforce"?"error":"warning",source:"workflow",message:`Budget exceeded — $${o.toFixed(2)} of $${s.toFixed(2)} (${c})${d}`}}case"checkpoint_saved":return{timestamp:t,level:"info",source:"workflow",message:`Checkpoint saved: ${((l=n.path)==null?void 0:l.split("/").pop())||"unknown"}`};case"agent_paused":return{timestamp:t,level:"warning",source:String(n.agent_name),message:"Agent paused — waiting for resume"};case"agent_resumed":return{timestamp:t,level:"info",source:String(n.agent_name),message:"Agent resumed — re-executing"};case"iteration_limit_reached":{const o=n.agent_name??n.group_name??"workflow",s=n.skip_gates?" — auto-stopping (--skip-gates)":" — awaiting decision";return{timestamp:t,level:"warning",source:String(o),message:`Iteration limit reached (${n.current_iteration}/${n.max_iterations})${s}`}}case"iteration_limit_resolved":{const o=n.agent_name??n.group_name??"workflow",s=!!n.continue_execution,c=n.additional_iterations??0;return{timestamp:t,level:s?"info":"warning",source:String(o),message:s?`Iteration limit resolved — continuing with ${c} more`:"Iteration limit resolved — stopping workflow"}}case"dialog_started":return{timestamp:t,level:"warning",source:String(n.agent_name),message:"Dialog started — waiting for user…"};case"dialog_completed":return{timestamp:t,level:"success",source:String(n.agent_name),message:`Dialog completed (${n.turn_count||0} messages)`};case"agent_validator_start":{const o=hh(n);return{timestamp:t,level:"info",source:o,message:"Validating output…"}}case"agent_validator_complete":{const o=hh(n);if(n.errored)return{timestamp:t,level:"warning",source:o,message:"Validator error — treated as pass"};if(n.passed)return{timestamp:t,level:"success",source:o,message:"Validation passed"};const s=Array.isArray(n.issues)?n.issues.length:0;return{timestamp:t,level:"warning",source:o,message:`Validation failed (${s} issue${s===1?"":"s"})`}}case"agent_validation_failed":{const o=hh(n);if(n.rerun_errored)return{timestamp:t,level:"error",source:o,message:"Validation re-run failed — keeping original output"};const s=n.will_retry?"re-running once with feedback":"no retry";return{timestamp:t,level:"warning",source:o,message:`Validation failed — ${s}`}}default:return null}}function zr(e){if(e<1)return`${(e*1e3).toFixed(0)}ms`;if(e<60)return`${e.toFixed(1)}s`;const t=Math.floor(e/60),n=(e%60).toFixed(0);return`${t}m ${n}s`}function Lu(e){const t=e.timestamp,n=e.data;switch(e.type){case"agent_started":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Agent started${n.iteration!=null?` (iteration ${n.iteration})`:""}`};case"agent_prompt_rendered":return{timestamp:t,source:String(n.agent_name),type:"prompt",message:"Prompt rendered",detail:Wa(String(n.rendered_prompt||""),500)};case"agent_reasoning":return{timestamp:t,source:String(n.agent_name),type:"reasoning",message:String(n.content||"")};case"agent_tool_start":return{timestamp:t,source:String(n.agent_name),type:"tool-start",message:`→ ${n.tool_name}`,detail:n.arguments?Wa(String(n.arguments),300):null};case"agent_tool_complete":return{timestamp:t,source:String(n.agent_name),type:"tool-complete",message:`← ${n.tool_name||"done"}`,detail:n.result?Wa(String(n.result),300):null};case"agent_turn_start":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Turn ${n.turn??"?"}`};case"agent_message":return{timestamp:t,source:String(n.agent_name),type:"message",message:Wa(String(n.content||""),500)};case"agent_completed":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Completed${n.elapsed!=null?` in ${zr(n.elapsed)}`:""}${n.tokens!=null?` · ${n.tokens.toLocaleString()} tokens`:""}`};case"agent_failed":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Failed: ${n.message||n.error_type||"unknown"}`};case"script_started":return{timestamp:t,source:String(n.agent_name),type:"turn",message:"Script started"};case"script_completed":return{timestamp:t,source:String(n.agent_name),type:"tool-complete",message:`Script completed (exit ${n.exit_code??"?"})`,detail:n.stdout?Wa(String(n.stdout),300):null};case"script_failed":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Script failed: ${n.message||n.error_type||"unknown"}`};case"wait_started":{const a=n.duration_seconds,l=n.reason,o=typeof a=="number"?zr(a):"?";return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Waiting ${o}${l?` — ${l}`:""}`}}case"wait_completed":{const a=n.waited_seconds,l=n.interrupted;return{timestamp:t,source:String(n.agent_name),type:"tool-complete",message:`Wait completed${a!=null?` (${zr(a)})`:""}${l?" — interrupted":""}`}}case"wait_failed":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Wait failed: ${n.message||n.error_type||"unknown"}`};case"set_started":return{timestamp:t,source:String(n.agent_name),type:"turn",message:"Set started"};case"set_completed":{const a=n.output_keys??[],l=a.length>0?` (${a.join(", ")})`:"";return{timestamp:t,source:String(n.agent_name),type:"tool-complete",message:`Set completed${l}`,detail:n.value_repr?Wa(String(n.value_repr),300):null}}case"set_failed":return{timestamp:t,source:String(n.agent_name),type:"turn",message:`Set failed: ${n.message||n.error_type||"unknown"}`};default:return null}}function Wa(e,t){return e.length<=t?e:e.slice(0,t)+"…"}function lv(e){const t=e.match(/^(\s*)/);return t?t[1].length:0}function HN(e){const t=new Map;for(let n=0;nl)o=s;else break}o>n&&t.set(n,o)}return t}function BN(e){if(/^\s*#/.test(e))return y.jsx("span",{className:"text-emerald-500/70",children:e});const t=e.match(/^(\s*)(- )?([a-zA-Z_][\w.-]*)(:\s*)(.*)/);if(t){const[,a,l,o,s,c]=t;return y.jsxs("span",{children:[a,l??"",y.jsx("span",{className:"text-sky-400",children:o}),y.jsx("span",{className:"text-[var(--text-muted)]",children:s}),ov(c??"")]})}const n=e.match(/^(\s*)(- )(.*)/);if(n){const[,a,l,o]=n;return y.jsxs("span",{children:[a,y.jsx("span",{className:"text-[var(--text-muted)]",children:l}),ov(o??"")]})}return y.jsx("span",{children:e})}function ov(e){if(!e)return"";const t=e.indexOf(" #"),n=t>=0?e.slice(0,t):e,a=t>=0?e.slice(t):"";let l=n;return/^(true|false|null|yes|no)$/i.test(n.trim())?l=y.jsx("span",{className:"text-amber-400",children:n}):/^\d+(\.\d+)?$/.test(n.trim())?l=y.jsx("span",{className:"text-amber-400",children:n}):/^["'].*["']$/.test(n.trim())?l=y.jsx("span",{className:"text-green-400",children:n}):(n.includes("|")||n.includes(">"))&&(l=y.jsx("span",{className:"text-[var(--text-secondary)]",children:n})),y.jsxs(y.Fragment,{children:[l,a&&y.jsx("span",{className:"text-emerald-500/70",children:a})]})}function IN({yaml:e,onClose:t}){const[n,a]=I.useState(new Set);I.useEffect(()=>{const d=f=>{f.key==="Escape"&&t()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[t]);const l=I.useMemo(()=>e.split(` +`),[e]),o=I.useMemo(()=>HN(l),[l]),s=I.useCallback(d=>{a(f=>{const m=new Set(f);return m.has(d)?m.delete(d):m.add(d),m})},[]),c=I.useMemo(()=>{const d=[];let f=-1;for(let m=0;my.jsxs("div",{className:"flex",children:[y.jsx("span",{className:"inline-flex items-center justify-center flex-shrink-0",style:{width:"1.25rem"},children:m?y.jsx("button",{onClick:()=>s(d),className:"text-[var(--text-muted)] hover:text-[var(--text)] p-0 leading-none",style:{background:"none",border:"none",cursor:"pointer"},children:p?y.jsx(Lr,{className:"w-3 h-3"}):y.jsx(ua,{className:"w-3 h-3"})}):null}),y.jsxs("span",{className:"flex-1",children:[BN(f),p&&y.jsx("span",{className:"text-[var(--text-muted)] text-[11px] ml-2 px-1.5 py-0.5 rounded bg-[var(--surface-hover)] cursor-pointer",onClick:()=>s(d),children:"···"})]})]},d))})})]})]})}function qN(){const e=se(_=>_.workflowName),t=se(_=>_.workflowStatus),n=se(_=>_.isPaused),a=se(_=>_.workflowYaml),l=se(_=>_.conductorVersion),[o,s]=I.useState(!1),[c,d]=I.useState(!1),[f,m]=I.useState(!1),[p,g]=I.useState(!1),v=t==="running"||t==="pending";I.useEffect(()=>{n||(s(!1),d(!1),m(!1))},[n]);const w=async()=>{s(!0);try{await fetch("/api/stop",{method:"POST"})}catch(_){console.error("Failed to stop agent:",_),s(!1)}},E=async()=>{d(!0);try{await fetch("/api/resume",{method:"POST"})}catch(_){console.error("Failed to resume agent:",_),d(!1)}},S=async()=>{m(!0);try{await fetch("/api/kill",{method:"POST"})}catch(_){console.error("Failed to kill workflow:",_),m(!1)}};return y.jsxs("header",{className:"flex items-center justify-between px-4 py-2 bg-[var(--surface)] border-b border-[var(--border)] flex-shrink-0",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(vw,{className:"w-4 h-4 text-[var(--running)]"}),y.jsx("h1",{className:"text-sm font-semibold text-[var(--text)]",children:"Conductor"}),e&&y.jsxs("span",{className:"text-sm text-[var(--text-muted)] font-normal",children:["— ",e]})]}),y.jsxs("div",{className:"flex items-center gap-3",children:[n?y.jsxs(y.Fragment,{children:[y.jsxs("button",{onClick:E,disabled:c,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded\r + bg-emerald-500/10 text-emerald-400 border border-emerald-500/20\r + hover:bg-emerald-500/20 hover:border-emerald-500/30\r + disabled:opacity-50 disabled:cursor-not-allowed\r + transition-colors`,title:"Re-execute the paused agent",children:[y.jsx(Ec,{className:"w-3 h-3"}),c?"Resuming...":"Resume"]}),y.jsxs("button",{onClick:S,disabled:f,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded\r + bg-red-500/10 text-red-400 border border-red-500/20\r + hover:bg-red-500/20 hover:border-red-500/30\r + disabled:opacity-50 disabled:cursor-not-allowed\r + transition-colors`,title:"Stop the workflow and save a checkpoint for CLI resume",children:[y.jsx(ca,{className:"w-3 h-3"}),f?"Killing...":"Kill"]})]}):v?y.jsxs("button",{onClick:w,disabled:o,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded\r + bg-red-500/10 text-red-400 border border-red-500/20\r + hover:bg-red-500/20 hover:border-red-500/30\r + disabled:opacity-50 disabled:cursor-not-allowed\r + transition-colors`,title:"Pause the current agent, then choose Resume or Kill",children:[y.jsx(bm,{className:"w-3 h-3"}),o?"Stopping...":"Stop"]}):null,a&&y.jsxs("button",{onClick:()=>g(!0),className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded\r + bg-[var(--surface-hover)] text-[var(--text-secondary)] border border-[var(--border)]\r + hover:text-[var(--text)] hover:bg-[var(--surface)]\r + transition-colors`,title:"View workflow YAML configuration",children:[y.jsx(xN,{className:"w-3 h-3"}),"YAML"]}),y.jsxs("a",{href:"/api/logs",download:"conductor-logs.json",className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded\r + bg-[var(--surface-hover)] text-[var(--text-secondary)] border border-[var(--border)]\r + hover:text-[var(--text)] hover:bg-[var(--surface)]\r + transition-colors`,title:"Download full event log as JSON",children:[y.jsx(gN,{className:"w-3 h-3"}),"Logs"]}),y.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["v",l??"—"]})]}),p&&a&&y.jsx(IN,{yaml:a,onClose:()=>g(!1)})]})}function $N(){const e=se(o=>o.getBreadcrumbs),t=se(o=>o.navigateToContext),n=se(o=>o.viewContextPath);if(se(o=>o.subworkflowContexts).length===0&&n.length===0)return null;const l=e();return y.jsxs("div",{className:"flex items-center gap-1 px-4 py-1.5 bg-[var(--surface)] border-b border-[var(--border)] text-xs flex-shrink-0",children:[y.jsx(kc,{className:"w-3 h-3 text-[var(--text-muted)] mr-1"}),l.map((o,s)=>{const c=s===l.length-1,d=JSON.stringify(o.path)===JSON.stringify(n);return y.jsxs("span",{className:"flex items-center gap-1",children:[s>0&&y.jsx(Lr,{className:"w-3 h-3 text-[var(--text-muted)]"}),c?y.jsx("span",{className:"font-semibold text-[var(--text)]",children:o.label}):y.jsx("button",{onClick:()=>t(o.path),className:`hover:text-[var(--running)] transition-colors ${d?"text-[var(--text)] font-medium":"text-[var(--text-muted)]"}`,children:o.label})]},s)})]})}function Te(...e){return e.filter(Boolean).join(" ")}function ot(e){if(e==null)return"";if(e<60)return`${e.toFixed(1)}s`;const t=Math.floor(e/60),n=(e%60).toFixed(0);return`${t}m ${n}s`}function Gn(e){return e==null?"":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function _i(e){return e==null?"":`$${e.toFixed(4)}`}function Nw(e){return e==null?"":typeof e=="string"?e:JSON.stringify(e,null,2)}function UN(e,t){if(t<=0)return`${e.toLocaleString()} tokens (limit unknown)`;const n=l=>l.toLocaleString(),a=(e/t*100).toFixed(1);return`${n(e)} / ${n(t)} (${a}%)`}function Cw(){const e=se(c=>c.workflowStatus),t=se(c=>c.workflowStartTime),n=se(c=>c.replayMode),a=se(c=>c.lastEventTime),[l,o]=I.useState("—"),s=I.useRef(null);return I.useEffect(()=>{if(t!=null){if(n){s.current&&(clearInterval(s.current),s.current=null),o(ot((a??t)-t));return}if(e==="running"){const c=()=>{const d=Date.now()/1e3-t;o(ot(d))};return c(),s.current=setInterval(c,500),()=>{s.current&&clearInterval(s.current)}}else(e==="completed"||e==="failed")&&s.current&&(clearInterval(s.current),s.current=null)}},[e,t,n,a]),l}function VN(){const e=se(_=>_.workflowStatus),t=se(_=>_.agentsCompleted),n=se(_=>_.agentsTotal),a=se(_=>_.totalCost),l=se(_=>_.totalTokens),o=se(_=>_.wsStatus),s=se(_=>_.workflowFailure),c=se(_=>_.lastEventTime),d=se(_=>_.iterationLimitGate),f=Cw(),[m,p]=I.useState(null);I.useEffect(()=>{if(e!=="running"||c==null){p(null);return}const _=()=>{p(Math.floor(Date.now()/1e3-c))};_();const N=setInterval(_,1e3);return()=>clearInterval(N)},[e,c]);const g=e==="failed",v=(()=>{if(d&&e==="running"){const _=d.agent_name??d.group_name??"workflow",N=d.skip_gates?" — auto-stopping":" — awaiting decision";return`Iteration limit reached: ${_} ${d.current_iteration}/${d.max_iterations}${N}`}switch(e){case"pending":return"Waiting for workflow…";case"running":return"Running";case"completed":return"Completed";case"failed":{if(!s)return"Failed";const _=s.error_type||"";return _==="MaxIterationsError"?"Failed: exceeded maximum iterations":_==="TimeoutError"?"Failed: workflow timed out":s.message?`Failed: ${s.message.length>60?s.message.slice(0,57)+"...":s.message}`:`Failed: ${_}`}}})(),w=d!=null&&e==="running",E=w?"bg-[var(--waiting)] animate-pulse":{pending:"bg-[var(--pending)]",running:"bg-[var(--running)] animate-pulse",completed:"bg-[var(--completed)]",failed:"bg-[var(--failed)]"}[e],S=(()=>{switch(o){case"connected":return y.jsxs("span",{className:"flex items-center gap-1 text-[var(--completed)]",children:[y.jsx(TN,{className:"w-3 h-3"}),y.jsx("span",{children:"Connected"})]});case"disconnected":return y.jsxs("span",{className:"flex items-center gap-1 text-[var(--failed)]",children:[y.jsx(jN,{className:"w-3 h-3"}),y.jsx("span",{children:"Disconnected"})]});case"reconnecting":return y.jsxs("span",{className:"flex items-center gap-1 text-[var(--waiting)]",children:[y.jsx(ml,{className:"w-3 h-3 animate-spin"}),y.jsx("span",{children:"Reconnecting\\u2026"})]});case"connecting":return y.jsxs("span",{className:"flex items-center gap-1 text-[var(--text-muted)]",children:[y.jsx(ml,{className:"w-3 h-3 animate-spin"}),y.jsx("span",{children:"Connecting\\u2026"})]})}})();return y.jsxs("footer",{className:Te("flex items-center gap-4 px-4 py-1.5 border-t text-xs flex-shrink-0 transition-colors duration-300",g?"bg-red-950/50 border-red-500/30":w?"bg-amber-950/30 border-amber-500/30":"bg-[var(--surface)] border-[var(--border)]"),children:[y.jsx("span",{className:Te("w-2 h-2 rounded-full flex-shrink-0",E)}),y.jsx("span",{className:Te(g?"text-red-300":w?"text-amber-200":"text-[var(--text)]"),children:v}),n>0&&y.jsxs("span",{className:Te(g?"text-red-400/60":"text-[var(--text-muted)]"),children:[t,"/",n," agents"]}),e!=="pending"&&y.jsx("span",{className:Te("font-mono",g?"text-red-400/60":"text-[var(--text-muted)]"),children:f}),l>0&&y.jsxs("span",{className:Te("flex items-center gap-1",g?"text-red-400/60":"text-[var(--text-muted)]"),title:"Total tokens used",children:[y.jsx(kw,{className:"w-3 h-3"}),y.jsx("span",{className:"font-mono",children:l.toLocaleString()})]}),a>0&&y.jsxs("span",{className:Te("flex items-center gap-1",g?"text-red-400/60":"text-[var(--text-muted)]"),title:"Total cost",children:[y.jsx(ww,{className:"w-3 h-3"}),y.jsxs("span",{className:"font-mono",children:["$",a.toFixed(4)]})]}),m!=null&&m>=5&&y.jsxs("span",{className:Te("flex items-center gap-1 font-mono",m>=60?"text-amber-400":"text-[var(--text-muted)]"),title:"Time since last event from the provider",children:[y.jsx(bw,{className:"w-3 h-3"}),y.jsx("span",{children:m>=60?`${Math.floor(m/60)}m ${m%60}s idle`:`${m}s idle`})]}),y.jsx("span",{className:"flex-1"}),S]})}const PN=[1,5,10,20,50];function GN(e,t){if(t===0||e.length===0)return"+0.0s";const n=e[0].timestamp,l=e[Math.min(t,e.length)-1].timestamp-n;if(l<60)return`+${l.toFixed(1)}s`;const o=Math.floor(l/60),s=l%60;return`+${o}m${s.toFixed(0)}s`}function FN(){const e=se(p=>p.replayPosition),t=se(p=>p.replayTotalEvents),n=se(p=>p.replayPlaying),a=se(p=>p.replaySpeed),l=se(p=>p.replayEvents),o=se(p=>p.setReplayPosition),s=se(p=>p.setReplayPlaying),c=se(p=>p.setReplaySpeed),d=p=>{const g=parseInt(p.target.value,10);o(g),n&&s(!1)},f=()=>{!n&&e>=t&&o(0),s(!n)},m=t>0?e/t*100:0;return y.jsxs("footer",{className:"flex items-center gap-3 px-4 py-1.5 border-t bg-[var(--surface)] border-[var(--border)] text-xs flex-shrink-0",children:[y.jsx("button",{onClick:f,className:"flex items-center justify-center w-6 h-6 rounded hover:bg-[var(--surface-hover)] text-[var(--text-secondary)] hover:text-[var(--text)] transition-colors",title:n?"Pause":"Play",children:n?y.jsx(_N,{className:"w-3.5 h-3.5"}):y.jsx(Ec,{className:"w-3.5 h-3.5"})}),y.jsxs("div",{className:"flex-1 relative flex items-center",children:[y.jsx("input",{type:"range",min:0,max:t,value:e,onChange:d,className:"w-full h-1 appearance-none rounded-full cursor-pointer",style:{background:`linear-gradient(to right, var(--accent) 0%, var(--accent) ${m}%, var(--border) ${m}%, var(--border) 100%)`,WebkitAppearance:"none"}}),y.jsx("style",{children:` + footer input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--accent); + border: 2px solid var(--surface); + cursor: pointer; + box-shadow: 0 0 4px rgba(99, 102, 241, 0.4); + } + footer input[type="range"]::-moz-range-thumb { + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--accent); + border: 2px solid var(--surface); + cursor: pointer; + box-shadow: 0 0 4px rgba(99, 102, 241, 0.4); + } + `})]}),y.jsx("span",{className:"text-[var(--text-muted)] font-mono whitespace-nowrap",children:GN(l,e)}),y.jsxs("span",{className:"text-[var(--text-muted)] font-mono whitespace-nowrap",children:["Event ",e,"/",t]}),y.jsx("div",{className:"flex items-center gap-0.5",children:PN.map(p=>y.jsxs("button",{onClick:()=>c(p),className:Te("px-1.5 py-0.5 rounded text-xs font-mono transition-colors",a===p?"bg-[var(--accent)] text-white":"text-[var(--text-muted)] hover:text-[var(--text-secondary)] hover:bg-[var(--surface-hover)]"),children:[p,"×"]},p))})]})}const Nc=I.createContext(null);Nc.displayName="PanelGroupContext";const bt={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},wm=10,ea=I.useLayoutEffect,sv=eN.useId,YN=typeof sv=="function"?sv:()=>null;let XN=0;function _m(e=null){const t=YN(),n=I.useRef(e||t||null);return n.current===null&&(n.current=""+XN++),e??n.current}function jw({children:e,className:t="",collapsedSize:n,collapsible:a,defaultSize:l,forwardedRef:o,id:s,maxSize:c,minSize:d,onCollapse:f,onExpand:m,onResize:p,order:g,style:v,tagName:w="div",...E}){const S=I.useContext(Nc);if(S===null)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:_,expandPanel:N,getPanelSize:k,getPanelStyle:T,groupId:M,isPanelCollapsed:A,reevaluatePanelConstraints:H,registerPanel:L,resizePanel:V,unregisterPanel:R}=S,B=_m(s),U=I.useRef({callbacks:{onCollapse:f,onExpand:m,onResize:p},constraints:{collapsedSize:n,collapsible:a,defaultSize:l,maxSize:c,minSize:d},id:B,idIsFromProps:s!==void 0,order:g});I.useRef({didLogMissingDefaultSizeWarning:!1}),ea(()=>{const{callbacks:q,constraints:F}=U.current,z={...F};U.current.id=B,U.current.idIsFromProps=s!==void 0,U.current.order=g,q.onCollapse=f,q.onExpand=m,q.onResize=p,F.collapsedSize=n,F.collapsible=a,F.defaultSize=l,F.maxSize=c,F.minSize=d,(z.collapsedSize!==F.collapsedSize||z.collapsible!==F.collapsible||z.maxSize!==F.maxSize||z.minSize!==F.minSize)&&H(U.current,z)}),ea(()=>{const q=U.current;return L(q),()=>{R(q)}},[g,B,L,R]),I.useImperativeHandle(o,()=>({collapse:()=>{_(U.current)},expand:q=>{N(U.current,q)},getId(){return B},getSize(){return k(U.current)},isCollapsed(){return A(U.current)},isExpanded(){return!A(U.current)},resize:q=>{V(U.current,q)}}),[_,N,k,A,B,V]);const ee=T(U.current,l);return I.createElement(w,{...E,children:e,className:t,id:B,style:{...ee,...v},[bt.groupId]:M,[bt.panel]:"",[bt.panelCollapsible]:a||void 0,[bt.panelId]:B,[bt.panelSize]:parseFloat(""+ee.flexGrow).toFixed(1)})}const jo=I.forwardRef((e,t)=>I.createElement(jw,{...e,forwardedRef:t}));jw.displayName="Panel";jo.displayName="forwardRef(Panel)";let Pp=null,Ku=-1,bi=null;function QN(e,t){if(t){const n=(t&Dw)!==0,a=(t&Rw)!==0,l=(t&Ow)!==0,o=(t&Lw)!==0;if(n)return l?"se-resize":o?"ne-resize":"e-resize";if(a)return l?"sw-resize":o?"nw-resize":"w-resize";if(l)return"s-resize";if(o)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}function ZN(){bi!==null&&(document.head.removeChild(bi),Pp=null,bi=null,Ku=-1)}function ph(e,t){var n,a;const l=QN(e,t);if(Pp!==l){if(Pp=l,bi===null&&(bi=document.createElement("style"),document.head.appendChild(bi)),Ku>=0){var o;(o=bi.sheet)===null||o===void 0||o.removeRule(Ku)}Ku=(n=(a=bi.sheet)===null||a===void 0?void 0:a.insertRule(`*{cursor: ${l} !important;}`))!==null&&n!==void 0?n:-1}}function Tw(e){return e.type==="keydown"}function Aw(e){return e.type.startsWith("pointer")}function zw(e){return e.type.startsWith("mouse")}function Cc(e){if(Aw(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(zw(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}function KN(){if(typeof matchMedia=="function")return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}function JN(e,t,n){return e.xt.x&&e.yt.y}function WN(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:fv(e),b:fv(t)};let a;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),a=e;Be(a,"Stacking order can only be calculated for elements with a common ancestor");const l={a:cv(uv(n.a)),b:cv(uv(n.b))};if(l.a===l.b){const o=a.childNodes,s={a:n.a.at(-1),b:n.b.at(-1)};let c=o.length;for(;c--;){const d=o[c];if(d===s.a)return 1;if(d===s.b)return-1}}return Math.sign(l.a-l.b)}const eC=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function tC(e){var t;const n=getComputedStyle((t=Mw(e))!==null&&t!==void 0?t:e).display;return n==="flex"||n==="inline-flex"}function nC(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||tC(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||eC.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function uv(e){let t=e.length;for(;t--;){const n=e[t];if(Be(n,"Missing node"),nC(n))return n}return null}function cv(e){return e&&Number(getComputedStyle(e).zIndex)||0}function fv(e){const t=[];for(;e;)t.push(e),e=Mw(e);return t}function Mw(e){const{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}const Dw=1,Rw=2,Ow=4,Lw=8,rC=KN()==="coarse";let Fn=[],fl=!1,Ki=new Map,jc=new Map;const Io=new Set;function iC(e,t,n,a,l){var o;const{ownerDocument:s}=t,c={direction:n,element:t,hitAreaMargins:a,setResizeHandlerState:l},d=(o=Ki.get(s))!==null&&o!==void 0?o:0;return Ki.set(s,d+1),Io.add(c),lc(),function(){var m;jc.delete(e),Io.delete(c);const p=(m=Ki.get(s))!==null&&m!==void 0?m:1;if(Ki.set(s,p-1),lc(),p===1&&Ki.delete(s),Fn.includes(c)){const g=Fn.indexOf(c);g>=0&&Fn.splice(g,1),km(),l("up",!0,null)}}}function aC(e){const{target:t}=e,{x:n,y:a}=Cc(e);fl=!0,Sm({target:t,x:n,y:a}),lc(),Fn.length>0&&(oc("down",e),e.preventDefault(),Hw(t)||e.stopImmediatePropagation())}function mh(e){const{x:t,y:n}=Cc(e);if(fl&&e.buttons===0&&(fl=!1,oc("up",e)),!fl){const{target:a}=e;Sm({target:a,x:t,y:n})}oc("move",e),km(),Fn.length>0&&e.preventDefault()}function gh(e){const{target:t}=e,{x:n,y:a}=Cc(e);jc.clear(),fl=!1,Fn.length>0&&(e.preventDefault(),Hw(t)||e.stopImmediatePropagation()),oc("up",e),Sm({target:t,x:n,y:a}),km(),lc()}function Hw(e){let t=e;for(;t;){if(t.hasAttribute(bt.resizeHandle))return!0;t=t.parentElement}return!1}function Sm({target:e,x:t,y:n}){Fn.splice(0);let a=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(a=e),Io.forEach(l=>{const{element:o,hitAreaMargins:s}=l,c=o.getBoundingClientRect(),{bottom:d,left:f,right:m,top:p}=c,g=rC?s.coarse:s.fine;if(t>=f-g&&t<=m+g&&n>=p-g&&n<=d+g){if(a!==null&&document.contains(a)&&o!==a&&!o.contains(a)&&!a.contains(o)&&WN(a,o)>0){let w=a,E=!1;for(;w&&!w.contains(o);){if(JN(w.getBoundingClientRect(),c)){E=!0;break}w=w.parentElement}if(E)return}Fn.push(l)}})}function xh(e,t){jc.set(e,t)}function km(){let e=!1,t=!1;Fn.forEach(a=>{const{direction:l}=a;l==="horizontal"?e=!0:t=!0});let n=0;jc.forEach(a=>{n|=a}),e&&t?ph("intersection",n):e?ph("horizontal",n):t?ph("vertical",n):ZN()}let yh=new AbortController;function lc(){yh.abort(),yh=new AbortController;const e={capture:!0,signal:yh.signal};Io.size&&(fl?(Fn.length>0&&Ki.forEach((t,n)=>{const{body:a}=n;t>0&&(a.addEventListener("contextmenu",gh,e),a.addEventListener("pointerleave",mh,e),a.addEventListener("pointermove",mh,e))}),window.addEventListener("pointerup",gh,e),window.addEventListener("pointercancel",gh,e)):Ki.forEach((t,n)=>{const{body:a}=n;t>0&&(a.addEventListener("pointerdown",aC,e),a.addEventListener("pointermove",mh,e))}))}function oc(e,t){Io.forEach(n=>{const{setResizeHandlerState:a}=n,l=Fn.includes(n);a(e,l,t)})}function lC(){const[e,t]=I.useState(0);return I.useCallback(()=>t(n=>n+1),[])}function Be(e,t){if(!e)throw console.error(t),Error(t)}function ra(e,t,n=wm){return e.toFixed(n)===t.toFixed(n)?0:e>t?1:-1}function Mr(e,t,n=wm){return ra(e,t,n)===0}function bn(e,t,n){return ra(e,t,n)===0}function oC(e,t,n){if(e.length!==t.length)return!1;for(let a=0;a0&&(e=e<0?0-_:_)}}}{const p=e<0?c:d,g=n[p];Be(g,`No panel constraints found for index ${p}`);const{collapsedSize:v=0,collapsible:w,minSize:E=0}=g;if(w){const S=t[p];if(Be(S!=null,`Previous layout not found for panel index ${p}`),bn(S,E)){const _=S-v;ra(_,Math.abs(e))>0&&(e=e<0?0-_:_)}}}}{const p=e<0?1:-1;let g=e<0?d:c,v=0;for(;;){const E=t[g];Be(E!=null,`Previous layout not found for panel index ${g}`);const _=ol({panelConstraints:n,panelIndex:g,size:100})-E;if(v+=_,g+=p,g<0||g>=n.length)break}const w=Math.min(Math.abs(e),Math.abs(v));e=e<0?0-w:w}{let g=e<0?c:d;for(;g>=0&&g=0))break;e<0?g--:g++}}if(oC(l,s))return l;{const p=e<0?d:c,g=t[p];Be(g!=null,`Previous layout not found for panel index ${p}`);const v=g+f,w=ol({panelConstraints:n,panelIndex:p,size:v});if(s[p]=w,!bn(w,v)){let E=v-w,_=e<0?d:c;for(;_>=0&&_0?_--:_++}}}const m=s.reduce((p,g)=>g+p,0);return bn(m,100)?s:l}function sC({layout:e,panelsArray:t,pivotIndices:n}){let a=0,l=100,o=0,s=0;const c=n[0];Be(c!=null,"No pivot index found"),t.forEach((p,g)=>{const{constraints:v}=p,{maxSize:w=100,minSize:E=0}=v;g===c?(a=E,l=w):(o+=E,s+=w)});const d=Math.min(l,100-o),f=Math.max(a,100-s),m=e[c];return{valueMax:d,valueMin:f,valueNow:m}}function qo(e,t=document){return Array.from(t.querySelectorAll(`[${bt.resizeHandleId}][data-panel-group-id="${e}"]`))}function Bw(e,t,n=document){const l=qo(e,n).findIndex(o=>o.getAttribute(bt.resizeHandleId)===t);return l??null}function Iw(e,t,n){const a=Bw(e,t,n);return a!=null?[a,a+1]:[-1,-1]}function qw(e,t=document){var n;if(t instanceof HTMLElement&&(t==null||(n=t.dataset)===null||n===void 0?void 0:n.panelGroupId)==e)return t;const a=t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return a||null}function Tc(e,t=document){const n=t.querySelector(`[${bt.resizeHandleId}="${e}"]`);return n||null}function uC(e,t,n,a=document){var l,o,s,c;const d=Tc(t,a),f=qo(e,a),m=d?f.indexOf(d):-1,p=(l=(o=n[m])===null||o===void 0?void 0:o.id)!==null&&l!==void 0?l:null,g=(s=(c=n[m+1])===null||c===void 0?void 0:c.id)!==null&&s!==void 0?s:null;return[p,g]}function cC({committedValuesRef:e,eagerValuesRef:t,groupId:n,layout:a,panelDataArray:l,panelGroupElement:o,setLayout:s}){I.useRef({didWarnAboutMissingResizeHandle:!1}),ea(()=>{if(!o)return;const c=qo(n,o);for(let d=0;d{c.forEach((d,f)=>{d.removeAttribute("aria-controls"),d.removeAttribute("aria-valuemax"),d.removeAttribute("aria-valuemin"),d.removeAttribute("aria-valuenow")})}},[n,a,l,o]),I.useEffect(()=>{if(!o)return;const c=t.current;Be(c,"Eager values not found");const{panelDataArray:d}=c,f=qw(n,o);Be(f!=null,`No group found for id "${n}"`);const m=qo(n,o);Be(m,`No resize handles found for group id "${n}"`);const p=m.map(g=>{const v=g.getAttribute(bt.resizeHandleId);Be(v,"Resize handle element has no handle id attribute");const[w,E]=uC(n,v,d,o);if(w==null||E==null)return()=>{};const S=_=>{if(!_.defaultPrevented)switch(_.key){case"Enter":{_.preventDefault();const N=d.findIndex(k=>k.id===w);if(N>=0){const k=d[N];Be(k,`No panel data found for index ${N}`);const T=a[N],{collapsedSize:M=0,collapsible:A,minSize:H=0}=k.constraints;if(T!=null&&A){const L=To({delta:bn(T,M)?H-M:M-T,initialLayout:a,panelConstraints:d.map(V=>V.constraints),pivotIndices:Iw(n,v,o),prevLayout:a,trigger:"keyboard"});a!==L&&s(L)}}break}}};return g.addEventListener("keydown",S),()=>{g.removeEventListener("keydown",S)}});return()=>{p.forEach(g=>g())}},[o,e,t,n,a,l,s])}function dv(e,t){if(e.length!==t.length)return!1;for(let n=0;no.constraints);let a=0,l=100;for(let o=0;o{const o=e[l];Be(o,`Panel data not found for index ${l}`);const{callbacks:s,constraints:c,id:d}=o,{collapsedSize:f=0,collapsible:m}=c,p=n[d];if(p==null||a!==p){n[d]=a;const{onCollapse:g,onExpand:v,onResize:w}=s;w&&w(a,p),m&&(g||v)&&(v&&(p==null||Mr(p,f))&&!Mr(a,f)&&v(),g&&(p==null||!Mr(p,f))&&Mr(a,f)&&g())}})}function Hu(e,t){if(e.length!==t.length)return!1;for(let n=0;n{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(...l)},t)}}function hv(e){try{if(typeof localStorage<"u")e.getItem=t=>localStorage.getItem(t),e.setItem=(t,n)=>{localStorage.setItem(t,n)};else throw new Error("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function Uw(e){return`react-resizable-panels:${e}`}function Vw(e){return e.map(t=>{const{constraints:n,id:a,idIsFromProps:l,order:o}=t;return l?a:o?`${o}:${JSON.stringify(n)}`:JSON.stringify(n)}).sort((t,n)=>t.localeCompare(n)).join(",")}function Pw(e,t){try{const n=Uw(e),a=t.getItem(n);if(a){const l=JSON.parse(a);if(typeof l=="object"&&l!=null)return l}}catch{}return null}function gC(e,t,n){var a,l;const o=(a=Pw(e,n))!==null&&a!==void 0?a:{},s=Vw(t);return(l=o[s])!==null&&l!==void 0?l:null}function xC(e,t,n,a,l){var o;const s=Uw(e),c=Vw(t),d=(o=Pw(e,l))!==null&&o!==void 0?o:{};d[c]={expandToSizes:Object.fromEntries(n.entries()),layout:a};try{l.setItem(s,JSON.stringify(d))}catch(f){console.error(f)}}function pv({layout:e,panelConstraints:t}){const n=[...e],a=n.reduce((o,s)=>o+s,0);if(n.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${n.map(o=>`${o}%`).join(", ")}`);if(!bn(a,100)&&n.length>0)for(let o=0;o(hv(Ao),Ao.getItem(e)),setItem:(e,t)=>{hv(Ao),Ao.setItem(e,t)}},mv={};function Gw({autoSaveId:e=null,children:t,className:n="",direction:a,forwardedRef:l,id:o=null,onLayout:s=null,keyboardResizeBy:c=null,storage:d=Ao,style:f,tagName:m="div",...p}){const g=_m(o),v=I.useRef(null),[w,E]=I.useState(null),[S,_]=I.useState([]),N=lC(),k=I.useRef({}),T=I.useRef(new Map),M=I.useRef(0),A=I.useRef({autoSaveId:e,direction:a,dragState:w,id:g,keyboardResizeBy:c,onLayout:s,storage:d}),H=I.useRef({layout:S,panelDataArray:[],panelDataArrayChanged:!1});I.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),I.useImperativeHandle(l,()=>({getId:()=>A.current.id,getLayout:()=>{const{layout:C}=H.current;return C},setLayout:C=>{const{onLayout:P}=A.current,{layout:X,panelDataArray:J}=H.current,ne=pv({layout:C,panelConstraints:J.map(re=>re.constraints)});dv(X,ne)||(_(ne),H.current.layout=ne,P&&P(ne),el(J,ne,k.current))}}),[]),ea(()=>{A.current.autoSaveId=e,A.current.direction=a,A.current.dragState=w,A.current.id=g,A.current.onLayout=s,A.current.storage=d}),cC({committedValuesRef:A,eagerValuesRef:H,groupId:g,layout:S,panelDataArray:H.current.panelDataArray,setLayout:_,panelGroupElement:v.current}),I.useEffect(()=>{const{panelDataArray:C}=H.current;if(e){if(S.length===0||S.length!==C.length)return;let P=mv[e];P==null&&(P=mC(xC,yC),mv[e]=P);const X=[...C],J=new Map(T.current);P(e,X,J,S,d)}},[e,S,d]),I.useEffect(()=>{});const L=I.useCallback(C=>{const{onLayout:P}=A.current,{layout:X,panelDataArray:J}=H.current;if(C.constraints.collapsible){const ne=J.map(be=>be.constraints),{collapsedSize:re=0,panelSize:ue,pivotIndices:xe}=Yi(J,C,X);if(Be(ue!=null,`Panel size not found for panel "${C.id}"`),!Mr(ue,re)){T.current.set(C.id,ue);const ye=il(J,C)===J.length-1?ue-re:re-ue,pe=To({delta:ye,initialLayout:X,panelConstraints:ne,pivotIndices:xe,prevLayout:X,trigger:"imperative-api"});Hu(X,pe)||(_(pe),H.current.layout=pe,P&&P(pe),el(J,pe,k.current))}}},[]),V=I.useCallback((C,P)=>{const{onLayout:X}=A.current,{layout:J,panelDataArray:ne}=H.current;if(C.constraints.collapsible){const re=ne.map(Se=>Se.constraints),{collapsedSize:ue=0,panelSize:xe=0,minSize:be=0,pivotIndices:ye}=Yi(ne,C,J),pe=P??be;if(Mr(xe,ue)){const Se=T.current.get(C.id),Oe=Se!=null&&Se>=pe?Se:pe,ft=il(ne,C)===ne.length-1?xe-Oe:Oe-xe,rt=To({delta:ft,initialLayout:J,panelConstraints:re,pivotIndices:ye,prevLayout:J,trigger:"imperative-api"});Hu(J,rt)||(_(rt),H.current.layout=rt,X&&X(rt),el(ne,rt,k.current))}}},[]),R=I.useCallback(C=>{const{layout:P,panelDataArray:X}=H.current,{panelSize:J}=Yi(X,C,P);return Be(J!=null,`Panel size not found for panel "${C.id}"`),J},[]),B=I.useCallback((C,P)=>{const{panelDataArray:X}=H.current,J=il(X,C);return pC({defaultSize:P,dragState:w,layout:S,panelData:X,panelIndex:J})},[w,S]),U=I.useCallback(C=>{const{layout:P,panelDataArray:X}=H.current,{collapsedSize:J=0,collapsible:ne,panelSize:re}=Yi(X,C,P);return Be(re!=null,`Panel size not found for panel "${C.id}"`),ne===!0&&Mr(re,J)},[]),ee=I.useCallback(C=>{const{layout:P,panelDataArray:X}=H.current,{collapsedSize:J=0,collapsible:ne,panelSize:re}=Yi(X,C,P);return Be(re!=null,`Panel size not found for panel "${C.id}"`),!ne||ra(re,J)>0},[]),q=I.useCallback(C=>{const{panelDataArray:P}=H.current;P.push(C),P.sort((X,J)=>{const ne=X.order,re=J.order;return ne==null&&re==null?0:ne==null?-1:re==null?1:ne-re}),H.current.panelDataArrayChanged=!0,N()},[N]);ea(()=>{if(H.current.panelDataArrayChanged){H.current.panelDataArrayChanged=!1;const{autoSaveId:C,onLayout:P,storage:X}=A.current,{layout:J,panelDataArray:ne}=H.current;let re=null;if(C){const xe=gC(C,ne,X);xe&&(T.current=new Map(Object.entries(xe.expandToSizes)),re=xe.layout)}re==null&&(re=hC({panelDataArray:ne}));const ue=pv({layout:re,panelConstraints:ne.map(xe=>xe.constraints)});dv(J,ue)||(_(ue),H.current.layout=ue,P&&P(ue),el(ne,ue,k.current))}}),ea(()=>{const C=H.current;return()=>{C.layout=[]}},[]);const F=I.useCallback(C=>{let P=!1;const X=v.current;return X&&window.getComputedStyle(X,null).getPropertyValue("direction")==="rtl"&&(P=!0),function(ne){ne.preventDefault();const re=v.current;if(!re)return()=>null;const{direction:ue,dragState:xe,id:be,keyboardResizeBy:ye,onLayout:pe}=A.current,{layout:Se,panelDataArray:Oe}=H.current,{initialLayout:Ae}=xe??{},ft=Iw(be,C,re);let rt=dC(ne,C,ue,xe,ye,re);const Dt=ue==="horizontal";Dt&&P&&(rt=-rt);const Pt=Oe.map(On=>On.constraints),Bt=To({delta:rt,initialLayout:Ae??Se,panelConstraints:Pt,pivotIndices:ft,prevLayout:Se,trigger:Tw(ne)?"keyboard":"mouse-or-touch"}),kn=!Hu(Se,Bt);(Aw(ne)||zw(ne))&&M.current!=rt&&(M.current=rt,!kn&&rt!==0?Dt?xh(C,rt<0?Dw:Rw):xh(C,rt<0?Ow:Lw):xh(C,0)),kn&&(_(Bt),H.current.layout=Bt,pe&&pe(Bt),el(Oe,Bt,k.current))}},[]),z=I.useCallback((C,P)=>{const{onLayout:X}=A.current,{layout:J,panelDataArray:ne}=H.current,re=ne.map(Se=>Se.constraints),{panelSize:ue,pivotIndices:xe}=Yi(ne,C,J);Be(ue!=null,`Panel size not found for panel "${C.id}"`);const ye=il(ne,C)===ne.length-1?ue-P:P-ue,pe=To({delta:ye,initialLayout:J,panelConstraints:re,pivotIndices:xe,prevLayout:J,trigger:"imperative-api"});Hu(J,pe)||(_(pe),H.current.layout=pe,X&&X(pe),el(ne,pe,k.current))},[]),G=I.useCallback((C,P)=>{const{layout:X,panelDataArray:J}=H.current,{collapsedSize:ne=0,collapsible:re}=P,{collapsedSize:ue=0,collapsible:xe,maxSize:be=100,minSize:ye=0}=C.constraints,{panelSize:pe}=Yi(J,C,X);pe!=null&&(re&&xe&&Mr(pe,ne)?Mr(ne,ue)||z(C,ue):pebe&&z(C,be))},[z]),Q=I.useCallback((C,P)=>{const{direction:X}=A.current,{layout:J}=H.current;if(!v.current)return;const ne=Tc(C,v.current);Be(ne,`Drag handle element not found for id "${C}"`);const re=$w(X,P);E({dragHandleId:C,dragHandleRect:ne.getBoundingClientRect(),initialCursorPosition:re,initialLayout:J})},[]),K=I.useCallback(()=>{E(null)},[]),D=I.useCallback(C=>{const{panelDataArray:P}=H.current,X=il(P,C);X>=0&&(P.splice(X,1),delete k.current[C.id],H.current.panelDataArrayChanged=!0,N())},[N]),$=I.useMemo(()=>({collapsePanel:L,direction:a,dragState:w,expandPanel:V,getPanelSize:R,getPanelStyle:B,groupId:g,isPanelCollapsed:U,isPanelExpanded:ee,reevaluatePanelConstraints:G,registerPanel:q,registerResizeHandle:F,resizePanel:z,startDragging:Q,stopDragging:K,unregisterPanel:D,panelGroupElement:v.current}),[L,w,a,V,R,B,g,U,ee,G,q,F,z,Q,K,D]),Y={display:"flex",flexDirection:a==="horizontal"?"row":"column",height:"100%",overflow:"hidden",width:"100%"};return I.createElement(Nc.Provider,{value:$},I.createElement(m,{...p,children:t,className:n,id:o,ref:v,style:{...Y,...f},[bt.group]:"",[bt.groupDirection]:a,[bt.groupId]:g}))}const Gp=I.forwardRef((e,t)=>I.createElement(Gw,{...e,forwardedRef:t}));Gw.displayName="PanelGroup";Gp.displayName="forwardRef(PanelGroup)";function il(e,t){return e.findIndex(n=>n===t||n.id===t.id)}function Yi(e,t,n){const a=il(e,t),o=a===e.length-1?[a-1,a]:[a,a+1],s=n[a];return{...t.constraints,panelSize:s,pivotIndices:o}}function vC({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:a}){I.useEffect(()=>{if(e||n==null||a==null)return;const l=Tc(t,a);if(l==null)return;const o=s=>{if(!s.defaultPrevented)switch(s.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":{s.preventDefault(),n(s);break}case"F6":{s.preventDefault();const c=l.getAttribute(bt.groupId);Be(c,`No group element found for id "${c}"`);const d=qo(c,a),f=Bw(c,t,a);Be(f!==null,`No resize element found for id "${t}"`);const m=s.shiftKey?f>0?f-1:d.length-1:f+1{l.removeEventListener("keydown",o)}},[a,e,t,n])}function Fp({children:e=null,className:t="",disabled:n=!1,hitAreaMargins:a,id:l,onBlur:o,onClick:s,onDragging:c,onFocus:d,onPointerDown:f,onPointerUp:m,style:p={},tabIndex:g=0,tagName:v="div",...w}){var E,S;const _=I.useRef(null),N=I.useRef({onClick:s,onDragging:c,onPointerDown:f,onPointerUp:m});I.useEffect(()=>{N.current.onClick=s,N.current.onDragging=c,N.current.onPointerDown=f,N.current.onPointerUp=m});const k=I.useContext(Nc);if(k===null)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:T,groupId:M,registerResizeHandle:A,startDragging:H,stopDragging:L,panelGroupElement:V}=k,R=_m(l),[B,U]=I.useState("inactive"),[ee,q]=I.useState(!1),[F,z]=I.useState(null),G=I.useRef({state:B});ea(()=>{G.current.state=B}),I.useEffect(()=>{if(n)z(null);else{const $=A(R);z(()=>$)}},[n,R,A]);const Q=(E=a==null?void 0:a.coarse)!==null&&E!==void 0?E:15,K=(S=a==null?void 0:a.fine)!==null&&S!==void 0?S:5;I.useEffect(()=>{if(n||F==null)return;const $=_.current;Be($,"Element ref not attached");let Y=!1;return iC(R,$,T,{coarse:Q,fine:K},(P,X,J)=>{if(!X){U("inactive");return}switch(P){case"down":{U("drag"),Y=!1,Be(J,'Expected event to be defined for "down" action'),H(R,J);const{onDragging:ne,onPointerDown:re}=N.current;ne==null||ne(!0),re==null||re();break}case"move":{const{state:ne}=G.current;Y=!0,ne!=="drag"&&U("hover"),Be(J,'Expected event to be defined for "move" action'),F(J);break}case"up":{U("hover"),L();const{onClick:ne,onDragging:re,onPointerUp:ue}=N.current;re==null||re(!1),ue==null||ue(),Y||ne==null||ne();break}}})},[Q,T,n,K,A,R,F,H,L]),vC({disabled:n,handleId:R,resizeHandler:F,panelGroupElement:V});const D={touchAction:"none",userSelect:"none"};return I.createElement(v,{...w,children:e,className:t,id:l,onBlur:()=>{q(!1),o==null||o()},onFocus:()=>{q(!0),d==null||d()},ref:_,role:"separator",style:{...D,...p},tabIndex:g,[bt.groupDirection]:T,[bt.groupId]:M,[bt.resizeHandle]:"",[bt.resizeHandleActive]:B==="drag"?"pointer":ee?"keyboard":void 0,[bt.resizeHandleEnabled]:!n,[bt.resizeHandleId]:R,[bt.resizeHandleState]:B})}Fp.displayName="PanelResizeHandle";function Mt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,a;n{}};function Ac(){for(var e=0,t=arguments.length,n={},a;e=0&&(a=n.slice(l+1),n=n.slice(0,l)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:a}})}Ju.prototype=Ac.prototype={constructor:Ju,on:function(e,t){var n=this._,a=wC(e+"",n),l,o=-1,s=a.length;if(arguments.length<2){for(;++o0)for(var n=new Array(l),a=0,l,o;a=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),xv.hasOwnProperty(t)?{space:xv[t],local:e}:e}function SC(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Yp&&t.documentElement.namespaceURI===Yp?t.createElement(e):t.createElementNS(n,e)}}function kC(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Fw(e){var t=zc(e);return(t.local?kC:SC)(t)}function EC(){}function Em(e){return e==null?EC:function(){return this.querySelector(e)}}function NC(e){typeof e!="function"&&(e=Em(e));for(var t=this._groups,n=t.length,a=new Array(n),l=0;l=k&&(k=N+1);!(M=S[k])&&++k=0;)(s=a[l])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function KC(e){e||(e=JC);function t(p,g){return p&&g?e(p.__data__,g.__data__):!p-!g}for(var n=this._groups,a=n.length,l=new Array(a),o=0;ot?1:e>=t?0:NaN}function WC(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ej(){return Array.from(this)}function tj(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?dj:typeof t=="function"?pj:hj)(e,t,n??"")):gl(this.node(),e)}function gl(e,t){return e.style.getPropertyValue(t)||Kw(e).getComputedStyle(e,null).getPropertyValue(t)}function gj(e){return function(){delete this[e]}}function xj(e,t){return function(){this[e]=t}}function yj(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function vj(e,t){return arguments.length>1?this.each((t==null?gj:typeof t=="function"?yj:xj)(e,t)):this.node()[e]}function Jw(e){return e.trim().split(/^|\s+/)}function Nm(e){return e.classList||new Ww(e)}function Ww(e){this._node=e,this._names=Jw(e.getAttribute("class")||"")}Ww.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function e_(e,t){for(var n=Nm(e),a=-1,l=t.length;++a=0&&(n=t.slice(a+1),t=t.slice(0,a)),{type:t,name:n}})}function Yj(e){return function(){var t=this.__on;if(t){for(var n=0,a=-1,l=t.length,o;n()=>e;function Xp(e,{sourceEvent:t,subject:n,target:a,identifier:l,active:o,x:s,y:c,dx:d,dy:f,dispatch:m}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:l,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:m}})}Xp.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function r3(e){return!e.ctrlKey&&!e.button}function i3(){return this.parentNode}function a3(e,t){return t??{x:e.x,y:e.y}}function l3(){return navigator.maxTouchPoints||"ontouchstart"in this}function l_(){var e=r3,t=i3,n=a3,a=l3,l={},o=Ac("start","drag","end"),s=0,c,d,f,m,p=0;function g(T){T.on("mousedown.drag",v).filter(a).on("touchstart.drag",S).on("touchmove.drag",_,n3).on("touchend.drag touchcancel.drag",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(T,M){if(!(m||!e.call(this,T,M))){var A=k(this,t.call(this,T,M),T,M,"mouse");A&&(wn(T.view).on("mousemove.drag",w,$o).on("mouseup.drag",E,$o),i_(T.view),vh(T),f=!1,c=T.clientX,d=T.clientY,A("start",T))}}function w(T){if(dl(T),!f){var M=T.clientX-c,A=T.clientY-d;f=M*M+A*A>p}l.mouse("drag",T)}function E(T){wn(T.view).on("mousemove.drag mouseup.drag",null),a_(T.view,f),dl(T),l.mouse("end",T)}function S(T,M){if(e.call(this,T,M)){var A=T.changedTouches,H=t.call(this,T,M),L=A.length,V,R;for(V=0;V>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Iu(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Iu(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=s3.exec(e))?new un(t[1],t[2],t[3],1):(t=u3.exec(e))?new un(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=c3.exec(e))?Iu(t[1],t[2],t[3],t[4]):(t=f3.exec(e))?Iu(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=d3.exec(e))?kv(t[1],t[2]/100,t[3]/100,1):(t=h3.exec(e))?kv(t[1],t[2]/100,t[3]/100,t[4]):yv.hasOwnProperty(e)?wv(yv[e]):e==="transparent"?new un(NaN,NaN,NaN,0):null}function wv(e){return new un(e>>16&255,e>>8&255,e&255,1)}function Iu(e,t,n,a){return a<=0&&(e=t=n=NaN),new un(e,t,n,a)}function g3(e){return e instanceof ts||(e=ia(e)),e?(e=e.rgb(),new un(e.r,e.g,e.b,e.opacity)):new un}function Qp(e,t,n,a){return arguments.length===1?g3(e):new un(e,t,n,a??1)}function un(e,t,n,a){this.r=+e,this.g=+t,this.b=+n,this.opacity=+a}Cm(un,Qp,o_(ts,{brighter(e){return e=e==null?uc:Math.pow(uc,e),new un(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uo:Math.pow(Uo,e),new un(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new un(ta(this.r),ta(this.g),ta(this.b),cc(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:_v,formatHex:_v,formatHex8:x3,formatRgb:Sv,toString:Sv}));function _v(){return`#${Ji(this.r)}${Ji(this.g)}${Ji(this.b)}`}function x3(){return`#${Ji(this.r)}${Ji(this.g)}${Ji(this.b)}${Ji((isNaN(this.opacity)?1:this.opacity)*255)}`}function Sv(){const e=cc(this.opacity);return`${e===1?"rgb(":"rgba("}${ta(this.r)}, ${ta(this.g)}, ${ta(this.b)}${e===1?")":`, ${e})`}`}function cc(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ta(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ji(e){return e=ta(e),(e<16?"0":"")+e.toString(16)}function kv(e,t,n,a){return a<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Un(e,t,n,a)}function s_(e){if(e instanceof Un)return new Un(e.h,e.s,e.l,e.opacity);if(e instanceof ts||(e=ia(e)),!e)return new Un;if(e instanceof Un)return e;e=e.rgb();var t=e.r/255,n=e.g/255,a=e.b/255,l=Math.min(t,n,a),o=Math.max(t,n,a),s=NaN,c=o-l,d=(o+l)/2;return c?(t===o?s=(n-a)/c+(n0&&d<1?0:s,new Un(s,c,d,e.opacity)}function y3(e,t,n,a){return arguments.length===1?s_(e):new Un(e,t,n,a??1)}function Un(e,t,n,a){this.h=+e,this.s=+t,this.l=+n,this.opacity=+a}Cm(Un,y3,o_(ts,{brighter(e){return e=e==null?uc:Math.pow(uc,e),new Un(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uo:Math.pow(Uo,e),new Un(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,a=n+(n<.5?n:1-n)*t,l=2*n-a;return new un(bh(e>=240?e-240:e+120,l,a),bh(e,l,a),bh(e<120?e+240:e-120,l,a),this.opacity)},clamp(){return new Un(Ev(this.h),qu(this.s),qu(this.l),cc(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=cc(this.opacity);return`${e===1?"hsl(":"hsla("}${Ev(this.h)}, ${qu(this.s)*100}%, ${qu(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ev(e){return e=(e||0)%360,e<0?e+360:e}function qu(e){return Math.max(0,Math.min(1,e||0))}function bh(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const jm=e=>()=>e;function v3(e,t){return function(n){return e+n*t}}function b3(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(a){return Math.pow(e+a*t,n)}}function w3(e){return(e=+e)==1?u_:function(t,n){return n-t?b3(t,n,e):jm(isNaN(t)?n:t)}}function u_(e,t){var n=t-e;return n?v3(e,n):jm(isNaN(e)?t:e)}const fc=(function e(t){var n=w3(t);function a(l,o){var s=n((l=Qp(l)).r,(o=Qp(o)).r),c=n(l.g,o.g),d=n(l.b,o.b),f=u_(l.opacity,o.opacity);return function(m){return l.r=s(m),l.g=c(m),l.b=d(m),l.opacity=f(m),l+""}}return a.gamma=e,a})(1);function _3(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,a=t.slice(),l;return function(o){for(l=0;ln&&(o=t.slice(n,o),c[s]?c[s]+=o:c[++s]=o),(a=a[0])===(l=l[0])?c[s]?c[s]+=l:c[++s]=l:(c[++s]=null,d.push({i:s,x:ir(a,l)})),n=wh.lastIndex;return n180?m+=360:m-f>180&&(f+=360),g.push({i:p.push(l(p)+"rotate(",null,a)-2,x:ir(f,m)})):m&&p.push(l(p)+"rotate("+m+a)}function c(f,m,p,g){f!==m?g.push({i:p.push(l(p)+"skewX(",null,a)-2,x:ir(f,m)}):m&&p.push(l(p)+"skewX("+m+a)}function d(f,m,p,g,v,w){if(f!==p||m!==g){var E=v.push(l(v)+"scale(",null,",",null,")");w.push({i:E-4,x:ir(f,p)},{i:E-2,x:ir(m,g)})}else(p!==1||g!==1)&&v.push(l(v)+"scale("+p+","+g+")")}return function(f,m){var p=[],g=[];return f=e(f),m=e(m),o(f.translateX,f.translateY,m.translateX,m.translateY,p,g),s(f.rotate,m.rotate,p,g),c(f.skewX,m.skewX,p,g),d(f.scaleX,f.scaleY,m.scaleX,m.scaleY,p,g),f=m=null,function(v){for(var w=-1,E=g.length,S;++w=0&&e._call.call(void 0,t),e=e._next;--xl}function jv(){aa=(hc=Po.now())+Mc,xl=zo=0;try{H3()}finally{xl=0,I3(),aa=0}}function B3(){var e=Po.now(),t=e-hc;t>h_&&(Mc-=t,hc=e)}function I3(){for(var e,t=dc,n,a=1/0;t;)t._call?(a>t._time&&(a=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:dc=n);Mo=e,Jp(a)}function Jp(e){if(!xl){zo&&(zo=clearTimeout(zo));var t=e-aa;t>24?(e<1/0&&(zo=setTimeout(jv,e-Po.now()-Mc)),_o&&(_o=clearInterval(_o))):(_o||(hc=Po.now(),_o=setInterval(B3,h_)),xl=1,p_(jv))}}function Tv(e,t,n){var a=new pc;return t=t==null?0:+t,a.restart(l=>{a.stop(),e(l+t)},t,n),a}var q3=Ac("start","end","cancel","interrupt"),$3=[],g_=0,Av=1,Wp=2,ec=3,zv=4,em=5,tc=6;function Dc(e,t,n,a,l,o){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;U3(e,n,{name:t,index:a,group:l,on:q3,tween:$3,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:g_})}function Am(e,t){var n=Qn(e,t);if(n.state>g_)throw new Error("too late; already scheduled");return n}function or(e,t){var n=Qn(e,t);if(n.state>ec)throw new Error("too late; already running");return n}function Qn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function U3(e,t,n){var a=e.__transition,l;a[t]=n,n.timer=m_(o,0,n.time);function o(f){n.state=Av,n.timer.restart(s,n.delay,n.time),n.delay<=f&&s(f-n.delay)}function s(f){var m,p,g,v;if(n.state!==Av)return d();for(m in a)if(v=a[m],v.name===n.name){if(v.state===ec)return Tv(s);v.state===zv?(v.state=tc,v.timer.stop(),v.on.call("interrupt",e,e.__data__,v.index,v.group),delete a[m]):+mWp&&a.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function yT(e,t,n){var a,l,o=xT(t)?Am:or;return function(){var s=o(this,e),c=s.on;c!==a&&(l=(a=c).copy()).on(t,n),s.on=l}}function vT(e,t){var n=this._id;return arguments.length<2?Qn(this.node(),n).on.on(e):this.each(yT(n,e,t))}function bT(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function wT(){return this.on("end.remove",bT(this._id))}function _T(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Em(e));for(var a=this._groups,l=a.length,o=new Array(l),s=0;s()=>e;function YT(e,{sourceEvent:t,target:n,transform:a,dispatch:l}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:a,enumerable:!0,configurable:!0},_:{value:l}})}function Dr(e,t,n){this.k=e,this.x=t,this.y=n}Dr.prototype={constructor:Dr,scale:function(e){return e===1?this:new Dr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Dr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Rc=new Dr(1,0,0);b_.prototype=Dr.prototype;function b_(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Rc;return e.__zoom}function _h(e){e.stopImmediatePropagation()}function So(e){e.preventDefault(),e.stopImmediatePropagation()}function XT(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function QT(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Mv(){return this.__zoom||Rc}function ZT(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function KT(){return navigator.maxTouchPoints||"ontouchstart"in this}function JT(e,t,n){var a=e.invertX(t[0][0])-n[0][0],l=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(l>a?(a+l)/2:Math.min(0,a)||Math.max(0,l),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function w_(){var e=XT,t=QT,n=JT,a=ZT,l=KT,o=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],c=250,d=Wu,f=Ac("start","zoom","end"),m,p,g,v=500,w=150,E=0,S=10;function _(q){q.property("__zoom",Mv).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",V).on("dblclick.zoom",R).filter(l).on("touchstart.zoom",B).on("touchmove.zoom",U).on("touchend.zoom touchcancel.zoom",ee).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}_.transform=function(q,F,z,G){var Q=q.selection?q.selection():q;Q.property("__zoom",Mv),q!==Q?M(q,F,z,G):Q.interrupt().each(function(){A(this,arguments).event(G).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},_.scaleBy=function(q,F,z,G){_.scaleTo(q,function(){var Q=this.__zoom.k,K=typeof F=="function"?F.apply(this,arguments):F;return Q*K},z,G)},_.scaleTo=function(q,F,z,G){_.transform(q,function(){var Q=t.apply(this,arguments),K=this.__zoom,D=z==null?T(Q):typeof z=="function"?z.apply(this,arguments):z,$=K.invert(D),Y=typeof F=="function"?F.apply(this,arguments):F;return n(k(N(K,Y),D,$),Q,s)},z,G)},_.translateBy=function(q,F,z,G){_.transform(q,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof z=="function"?z.apply(this,arguments):z),t.apply(this,arguments),s)},null,G)},_.translateTo=function(q,F,z,G,Q){_.transform(q,function(){var K=t.apply(this,arguments),D=this.__zoom,$=G==null?T(K):typeof G=="function"?G.apply(this,arguments):G;return n(Rc.translate($[0],$[1]).scale(D.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof z=="function"?-z.apply(this,arguments):-z),K,s)},G,Q)};function N(q,F){return F=Math.max(o[0],Math.min(o[1],F)),F===q.k?q:new Dr(F,q.x,q.y)}function k(q,F,z){var G=F[0]-z[0]*q.k,Q=F[1]-z[1]*q.k;return G===q.x&&Q===q.y?q:new Dr(q.k,G,Q)}function T(q){return[(+q[0][0]+ +q[1][0])/2,(+q[0][1]+ +q[1][1])/2]}function M(q,F,z,G){q.on("start.zoom",function(){A(this,arguments).event(G).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(G).end()}).tween("zoom",function(){var Q=this,K=arguments,D=A(Q,K).event(G),$=t.apply(Q,K),Y=z==null?T($):typeof z=="function"?z.apply(Q,K):z,C=Math.max($[1][0]-$[0][0],$[1][1]-$[0][1]),P=Q.__zoom,X=typeof F=="function"?F.apply(Q,K):F,J=d(P.invert(Y).concat(C/P.k),X.invert(Y).concat(C/X.k));return function(ne){if(ne===1)ne=X;else{var re=J(ne),ue=C/re[2];ne=new Dr(ue,Y[0]-re[0]*ue,Y[1]-re[1]*ue)}D.zoom(null,ne)}})}function A(q,F,z){return!z&&q.__zooming||new H(q,F)}function H(q,F){this.that=q,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(q,F),this.taps=0}H.prototype={event:function(q){return q&&(this.sourceEvent=q),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(q,F){return this.mouse&&q!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&q!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&q!=="touch"&&(this.touch1[1]=F.invert(this.touch1[0])),this.that.__zoom=F,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(q){var F=wn(this.that).datum();f.call(q,this.that,new YT(q,{sourceEvent:this.sourceEvent,target:_,transform:this.that.__zoom,dispatch:f}),F)}};function L(q,...F){if(!e.apply(this,arguments))return;var z=A(this,F).event(q),G=this.__zoom,Q=Math.max(o[0],Math.min(o[1],G.k*Math.pow(2,a.apply(this,arguments)))),K=$n(q);if(z.wheel)(z.mouse[0][0]!==K[0]||z.mouse[0][1]!==K[1])&&(z.mouse[1]=G.invert(z.mouse[0]=K)),clearTimeout(z.wheel);else{if(G.k===Q)return;z.mouse=[K,G.invert(K)],nc(this),z.start()}So(q),z.wheel=setTimeout(D,w),z.zoom("mouse",n(k(N(G,Q),z.mouse[0],z.mouse[1]),z.extent,s));function D(){z.wheel=null,z.end()}}function V(q,...F){if(g||!e.apply(this,arguments))return;var z=q.currentTarget,G=A(this,F,!0).event(q),Q=wn(q.view).on("mousemove.zoom",Y,!0).on("mouseup.zoom",C,!0),K=$n(q,z),D=q.clientX,$=q.clientY;i_(q.view),_h(q),G.mouse=[K,this.__zoom.invert(K)],nc(this),G.start();function Y(P){if(So(P),!G.moved){var X=P.clientX-D,J=P.clientY-$;G.moved=X*X+J*J>E}G.event(P).zoom("mouse",n(k(G.that.__zoom,G.mouse[0]=$n(P,z),G.mouse[1]),G.extent,s))}function C(P){Q.on("mousemove.zoom mouseup.zoom",null),a_(P.view,G.moved),So(P),G.event(P).end()}}function R(q,...F){if(e.apply(this,arguments)){var z=this.__zoom,G=$n(q.changedTouches?q.changedTouches[0]:q,this),Q=z.invert(G),K=z.k*(q.shiftKey?.5:2),D=n(k(N(z,K),G,Q),t.apply(this,F),s);So(q),c>0?wn(this).transition().duration(c).call(M,D,G,q):wn(this).call(_.transform,D,G,q)}}function B(q,...F){if(e.apply(this,arguments)){var z=q.touches,G=z.length,Q=A(this,F,q.changedTouches.length===G).event(q),K,D,$,Y;for(_h(q),D=0;D"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:a})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:a}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Go=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],__=["Enter"," ","Escape"],S_={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var yl;(function(e){e.Strict="strict",e.Loose="loose"})(yl||(yl={}));var na;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(na||(na={}));var Fo;(function(e){e.Partial="partial",e.Full="full"})(Fo||(Fo={}));const k_={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var wi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(wi||(wi={}));var mc;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(mc||(mc={}));var ve;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ve||(ve={}));const Dv={[ve.Left]:ve.Right,[ve.Right]:ve.Left,[ve.Top]:ve.Bottom,[ve.Bottom]:ve.Top};function E_(e){return e===null?null:e?"valid":"invalid"}const N_=e=>"id"in e&&"source"in e&&"target"in e,WT=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Mm=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),ns=(e,t=[0,0])=>{const{width:n,height:a}=Hr(e),l=e.origin??t,o=n*l[0],s=a*l[1];return{x:e.position.x-o,y:e.position.y-s}},eA=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((a,l)=>{const o=typeof l=="string";let s=!t.nodeLookup&&!o?l:void 0;t.nodeLookup&&(s=o?t.nodeLookup.get(l):Mm(l)?l:t.nodeLookup.get(l.id));const c=s?gc(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Oc(a,c)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Lc(n)},rs=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},a=!1;return e.forEach(l=>{(t.filter===void 0||t.filter(l))&&(n=Oc(n,gc(l)),a=!0)}),a?Lc(n):{x:0,y:0,width:0,height:0}},Dm=(e,t,[n,a,l]=[0,0,1],o=!1,s=!1)=>{const c={...as(t,[n,a,l]),width:t.width/l,height:t.height/l},d=[];for(const f of e.values()){const{measured:m,selectable:p=!0,hidden:g=!1}=f;if(s&&!p||g)continue;const v=m.width??f.width??f.initialWidth??null,w=m.height??f.height??f.initialHeight??null,E=Yo(c,bl(f)),S=(v??0)*(w??0),_=o&&E>0;(!f.internals.handleBounds||_||E>=S||f.dragging)&&d.push(f)}return d},tA=(e,t)=>{const n=new Set;return e.forEach(a=>{n.add(a.id)}),t.filter(a=>n.has(a.source)||n.has(a.target))};function nA(e,t){const n=new Map,a=t!=null&&t.nodes?new Set(t.nodes.map(l=>l.id)):null;return e.forEach(l=>{l.measured.width&&l.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!l.hidden)&&(!a||a.has(l.id))&&n.set(l.id,l)}),n}async function rA({nodes:e,width:t,height:n,panZoom:a,minZoom:l,maxZoom:o},s){if(e.size===0)return Promise.resolve(!0);const c=nA(e,s),d=rs(c),f=Rm(d,t,n,(s==null?void 0:s.minZoom)??l,(s==null?void 0:s.maxZoom)??o,(s==null?void 0:s.padding)??.1);return await a.setViewport(f,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),Promise.resolve(!0)}function C_({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:a=[0,0],nodeExtent:l,onError:o}){const s=n.get(e),c=s.parentId?n.get(s.parentId):void 0,{x:d,y:f}=c?c.internals.positionAbsolute:{x:0,y:0},m=s.origin??a;let p=s.extent||l;if(s.extent==="parent"&&!s.expandParent)if(!c)o==null||o("005",lr.error005());else{const v=c.measured.width,w=c.measured.height;v&&w&&(p=[[d,f],[d+v,f+w]])}else c&&wl(s.extent)&&(p=[[s.extent[0][0]+d,s.extent[0][1]+f],[s.extent[1][0]+d,s.extent[1][1]+f]]);const g=wl(p)?la(t,p,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(o==null||o("015",lr.error015())),{position:{x:g.x-d+(s.measured.width??0)*m[0],y:g.y-f+(s.measured.height??0)*m[1]},positionAbsolute:g}}async function iA({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:a,onBeforeDelete:l}){const o=new Set(e.map(g=>g.id)),s=[];for(const g of n){if(g.deletable===!1)continue;const v=o.has(g.id),w=!v&&g.parentId&&s.find(E=>E.id===g.parentId);(v||w)&&s.push(g)}const c=new Set(t.map(g=>g.id)),d=a.filter(g=>g.deletable!==!1),m=tA(s,d);for(const g of d)c.has(g.id)&&!m.find(w=>w.id===g.id)&&m.push(g);if(!l)return{edges:m,nodes:s};const p=await l({nodes:s,edges:m});return typeof p=="boolean"?p?{edges:m,nodes:s}:{edges:[],nodes:[]}:p}const vl=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),la=(e={x:0,y:0},t,n)=>({x:vl(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:vl(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function j_(e,t,n){const{width:a,height:l}=Hr(n),{x:o,y:s}=n.internals.positionAbsolute;return la(e,[[o,s],[o+a,s+l]],t)}const Rv=(e,t,n)=>en?-vl(Math.abs(e-n),1,t)/t:0,T_=(e,t,n=15,a=40)=>{const l=Rv(e.x,a,t.width-a)*n,o=Rv(e.y,a,t.height-a)*n;return[l,o]},Oc=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),tm=({x:e,y:t,width:n,height:a})=>({x:e,y:t,x2:e+n,y2:t+a}),Lc=({x:e,y:t,x2:n,y2:a})=>({x:e,y:t,width:n-e,height:a-t}),bl=(e,t=[0,0])=>{var l,o;const{x:n,y:a}=Mm(e)?e.internals.positionAbsolute:ns(e,t);return{x:n,y:a,width:((l=e.measured)==null?void 0:l.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},gc=(e,t=[0,0])=>{var l,o;const{x:n,y:a}=Mm(e)?e.internals.positionAbsolute:ns(e,t);return{x:n,y:a,x2:n+(((l=e.measured)==null?void 0:l.width)??e.width??e.initialWidth??0),y2:a+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},A_=(e,t)=>Lc(Oc(tm(e),tm(t))),Yo=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),a=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*a)},Ov=e=>Vn(e.width)&&Vn(e.height)&&Vn(e.x)&&Vn(e.y),Vn=e=>!isNaN(e)&&isFinite(e),aA=(e,t)=>{},is=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),as=({x:e,y:t},[n,a,l],o=!1,s=[1,1])=>{const c={x:(e-n)/l,y:(t-a)/l};return o?is(c,s):c},xc=({x:e,y:t},[n,a,l])=>({x:e*l+n,y:t*l+a});function tl(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function lA(e,t,n){if(typeof e=="string"||typeof e=="number"){const a=tl(e,n),l=tl(e,t);return{top:a,right:l,bottom:a,left:l,x:l*2,y:a*2}}if(typeof e=="object"){const a=tl(e.top??e.y??0,n),l=tl(e.bottom??e.y??0,n),o=tl(e.left??e.x??0,t),s=tl(e.right??e.x??0,t);return{top:a,right:s,bottom:l,left:o,x:o+s,y:a+l}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function oA(e,t,n,a,l,o){const{x:s,y:c}=xc(e,[t,n,a]),{x:d,y:f}=xc({x:e.x+e.width,y:e.y+e.height},[t,n,a]),m=l-d,p=o-f;return{left:Math.floor(s),top:Math.floor(c),right:Math.floor(m),bottom:Math.floor(p)}}const Rm=(e,t,n,a,l,o)=>{const s=lA(o,t,n),c=(t-s.x)/e.width,d=(n-s.y)/e.height,f=Math.min(c,d),m=vl(f,a,l),p=e.x+e.width/2,g=e.y+e.height/2,v=t/2-p*m,w=n/2-g*m,E=oA(e,v,w,m,t,n),S={left:Math.min(E.left-s.left,0),top:Math.min(E.top-s.top,0),right:Math.min(E.right-s.right,0),bottom:Math.min(E.bottom-s.bottom,0)};return{x:v-S.left+S.right,y:w-S.top+S.bottom,zoom:m}},Xo=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function wl(e){return e!=null&&e!=="parent"}function Hr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function z_(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function M_(e,t={width:0,height:0},n,a,l){const o={...e},s=a.get(n);if(s){const c=s.origin||l;o.x+=s.internals.positionAbsolute.x-(t.width??0)*c[0],o.y+=s.internals.positionAbsolute.y-(t.height??0)*c[1]}return o}function Lv(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function sA(){let e,t;return{promise:new Promise((a,l)=>{e=a,t=l}),resolve:e,reject:t}}function uA(e){return{...S_,...e||{}}}function Oo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:a,containerBounds:l}){const{x:o,y:s}=Pn(e),c=as({x:o-((l==null?void 0:l.left)??0),y:s-((l==null?void 0:l.top)??0)},a),{x:d,y:f}=n?is(c,t):c;return{xSnapped:d,ySnapped:f,...c}}const Om=e=>({width:e.offsetWidth,height:e.offsetHeight}),D_=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},cA=["INPUT","SELECT","TEXTAREA"];function R_(e){var a,l;const t=((l=(a=e.composedPath)==null?void 0:a.call(e))==null?void 0:l[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:cA.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const O_=e=>"clientX"in e,Pn=(e,t)=>{var o,s;const n=O_(e),a=n?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,l=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:a-((t==null?void 0:t.left)??0),y:l-((t==null?void 0:t.top)??0)}},Hv=(e,t,n,a,l)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(s=>{const c=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:l,position:s.getAttribute("data-handlepos"),x:(c.left-n.left)/a,y:(c.top-n.top)/a,...Om(s)}})};function L_({sourceX:e,sourceY:t,targetX:n,targetY:a,sourceControlX:l,sourceControlY:o,targetControlX:s,targetControlY:c}){const d=e*.125+l*.375+s*.375+n*.125,f=t*.125+o*.375+c*.375+a*.125,m=Math.abs(d-e),p=Math.abs(f-t);return[d,f,m,p]}function Vu(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Bv({pos:e,x1:t,y1:n,x2:a,y2:l,c:o}){switch(e){case ve.Left:return[t-Vu(t-a,o),n];case ve.Right:return[t+Vu(a-t,o),n];case ve.Top:return[t,n-Vu(n-l,o)];case ve.Bottom:return[t,n+Vu(l-n,o)]}}function Lm({sourceX:e,sourceY:t,sourcePosition:n=ve.Bottom,targetX:a,targetY:l,targetPosition:o=ve.Top,curvature:s=.25}){const[c,d]=Bv({pos:n,x1:e,y1:t,x2:a,y2:l,c:s}),[f,m]=Bv({pos:o,x1:a,y1:l,x2:e,y2:t,c:s}),[p,g,v,w]=L_({sourceX:e,sourceY:t,targetX:a,targetY:l,sourceControlX:c,sourceControlY:d,targetControlX:f,targetControlY:m});return[`M${e},${t} C${c},${d} ${f},${m} ${a},${l}`,p,g,v,w]}function H_({sourceX:e,sourceY:t,targetX:n,targetY:a}){const l=Math.abs(n-e)/2,o=n0}const hA=({source:e,sourceHandle:t,target:n,targetHandle:a})=>`xy-edge__${e}${t||""}-${n}${a||""}`,pA=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),mA=(e,t,n={})=>{if(!e.source||!e.target)return t;const a=n.getEdgeId||hA;let l;return N_(e)?l={...e}:l={...e,id:a(e)},pA(l,t)?t:(l.sourceHandle===null&&delete l.sourceHandle,l.targetHandle===null&&delete l.targetHandle,t.concat(l))};function B_({sourceX:e,sourceY:t,targetX:n,targetY:a}){const[l,o,s,c]=H_({sourceX:e,sourceY:t,targetX:n,targetY:a});return[`M ${e},${t}L ${n},${a}`,l,o,s,c]}const Iv={[ve.Left]:{x:-1,y:0},[ve.Right]:{x:1,y:0},[ve.Top]:{x:0,y:-1},[ve.Bottom]:{x:0,y:1}},gA=({source:e,sourcePosition:t=ve.Bottom,target:n})=>t===ve.Left||t===ve.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function xA({source:e,sourcePosition:t=ve.Bottom,target:n,targetPosition:a=ve.Top,center:l,offset:o,stepPosition:s}){const c=Iv[t],d=Iv[a],f={x:e.x+c.x*o,y:e.y+c.y*o},m={x:n.x+d.x*o,y:n.y+d.y*o},p=gA({source:f,sourcePosition:t,target:m}),g=p.x!==0?"x":"y",v=p[g];let w=[],E,S;const _={x:0,y:0},N={x:0,y:0},[,,k,T]=H_({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(c[g]*d[g]===-1){g==="x"?(E=l.x??f.x+(m.x-f.x)*s,S=l.y??(f.y+m.y)/2):(E=l.x??(f.x+m.x)/2,S=l.y??f.y+(m.y-f.y)*s);const A=[{x:E,y:f.y},{x:E,y:m.y}],H=[{x:f.x,y:S},{x:m.x,y:S}];c[g]===v?w=g==="x"?A:H:w=g==="x"?H:A}else{const A=[{x:f.x,y:m.y}],H=[{x:m.x,y:f.y}];if(g==="x"?w=c.x===v?H:A:w=c.y===v?A:H,t===a){const U=Math.abs(e[g]-n[g]);if(U<=o){const ee=Math.min(o-1,o-U);c[g]===v?_[g]=(f[g]>e[g]?-1:1)*ee:N[g]=(m[g]>n[g]?-1:1)*ee}}if(t!==a){const U=g==="x"?"y":"x",ee=c[g]===d[U],q=f[U]>m[U],F=f[U]=B?(E=(L.x+V.x)/2,S=w[0].y):(E=w[0].x,S=(L.y+V.y)/2)}return[[e,{x:f.x+_.x,y:f.y+_.y},...w,{x:m.x+N.x,y:m.y+N.y},n],E,S,k,T]}function yA(e,t,n,a){const l=Math.min(qv(e,t)/2,qv(t,n)/2,a),{x:o,y:s}=t;if(e.x===o&&o===n.x||e.y===s&&s===n.y)return`L${o} ${s}`;if(e.y===s){const f=e.x{let T="";return k>0&&kn.id===t):e[0])||null}function rm(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(a=>`${a}=${e[a]}`).join("&")}`:""}function bA(e,{id:t,defaultColor:n,defaultMarkerStart:a,defaultMarkerEnd:l}){const o=new Set;return e.reduce((s,c)=>([c.markerStart||a,c.markerEnd||l].forEach(d=>{if(d&&typeof d=="object"){const f=rm(d,t);o.has(f)||(s.push({id:f,color:d.color||n,...d}),o.add(f))}}),s),[]).sort((s,c)=>s.id.localeCompare(c.id))}const I_=1e3,wA=10,Hm={nodeOrigin:[0,0],nodeExtent:Go,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},_A={...Hm,checkEquality:!0};function Bm(e,t){const n={...e};for(const a in t)t[a]!==void 0&&(n[a]=t[a]);return n}function SA(e,t,n){const a=Bm(Hm,n);for(const l of e.values())if(l.parentId)qm(l,e,t,a);else{const o=ns(l,a.nodeOrigin),s=wl(l.extent)?l.extent:a.nodeExtent,c=la(o,s,Hr(l));l.internals.positionAbsolute=c}}function kA(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],a=[];for(const l of e.handles){const o={id:l.id,width:l.width??1,height:l.height??1,nodeId:e.id,x:l.x,y:l.y,position:l.position,type:l.type};l.type==="source"?n.push(o):l.type==="target"&&a.push(o)}return{source:n,target:a}}function Im(e){return e==="manual"}function im(e,t,n,a={}){var f,m;const l=Bm(_A,a),o={i:0},s=new Map(t),c=l!=null&&l.elevateNodesOnSelect&&!Im(l.zIndexMode)?I_:0;let d=e.length>0;t.clear(),n.clear();for(const p of e){let g=s.get(p.id);if(l.checkEquality&&p===(g==null?void 0:g.internals.userNode))t.set(p.id,g);else{const v=ns(p,l.nodeOrigin),w=wl(p.extent)?p.extent:l.nodeExtent,E=la(v,w,Hr(p));g={...l.defaults,...p,measured:{width:(f=p.measured)==null?void 0:f.width,height:(m=p.measured)==null?void 0:m.height},internals:{positionAbsolute:E,handleBounds:kA(p,g),z:q_(p,c,l.zIndexMode),userNode:p}},t.set(p.id,g)}(g.measured===void 0||g.measured.width===void 0||g.measured.height===void 0)&&!g.hidden&&(d=!1),p.parentId&&qm(g,t,n,a,o)}return d}function EA(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function qm(e,t,n,a,l){const{elevateNodesOnSelect:o,nodeOrigin:s,nodeExtent:c,zIndexMode:d}=Bm(Hm,a),f=e.parentId,m=t.get(f);if(!m){console.warn(`Parent node ${f} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}EA(e,n),l&&!m.parentId&&m.internals.rootParentIndex===void 0&&d==="auto"&&(m.internals.rootParentIndex=++l.i,m.internals.z=m.internals.z+l.i*wA),l&&m.internals.rootParentIndex!==void 0&&(l.i=m.internals.rootParentIndex);const p=o&&!Im(d)?I_:0,{x:g,y:v,z:w}=NA(e,m,s,c,p,d),{positionAbsolute:E}=e.internals,S=g!==E.x||v!==E.y;(S||w!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:g,y:v}:E,z:w}})}function q_(e,t,n){const a=Vn(e.zIndex)?e.zIndex:0;return Im(n)?a:a+(e.selected?t:0)}function NA(e,t,n,a,l,o){const{x:s,y:c}=t.internals.positionAbsolute,d=Hr(e),f=ns(e,n),m=wl(e.extent)?la(f,e.extent,d):f;let p=la({x:s+m.x,y:c+m.y},a,d);e.extent==="parent"&&(p=j_(p,d,t));const g=q_(e,l,o),v=t.internals.z??0;return{x:p.x,y:p.y,z:v>=g?v+1:g}}function $m(e,t,n,a=[0,0]){var s;const l=[],o=new Map;for(const c of e){const d=t.get(c.parentId);if(!d)continue;const f=((s=o.get(c.parentId))==null?void 0:s.expandedRect)??bl(d),m=A_(f,c.rect);o.set(c.parentId,{expandedRect:m,parent:d})}return o.size>0&&o.forEach(({expandedRect:c,parent:d},f)=>{var k;const m=d.internals.positionAbsolute,p=Hr(d),g=d.origin??a,v=c.x0||w>0||_||N)&&(l.push({id:f,type:"position",position:{x:d.position.x-v+_,y:d.position.y-w+N}}),(k=n.get(f))==null||k.forEach(T=>{e.some(M=>M.id===T.id)||l.push({id:T.id,type:"position",position:{x:T.position.x+v,y:T.position.y+w}})})),(p.width0){const v=$m(g,t,n,l);f.push(...v)}return{changes:f,updatedInternals:d}}async function jA({delta:e,panZoom:t,transform:n,translateExtent:a,width:l,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[l,o]],a),c=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(c)}function Pv(e,t,n,a,l,o){let s=l;const c=a.get(s)||new Map;a.set(s,c.set(n,t)),s=`${l}-${e}`;const d=a.get(s)||new Map;if(a.set(s,d.set(n,t)),o){s=`${l}-${e}-${o}`;const f=a.get(s)||new Map;a.set(s,f.set(n,t))}}function $_(e,t,n){e.clear(),t.clear();for(const a of n){const{source:l,target:o,sourceHandle:s=null,targetHandle:c=null}=a,d={edgeId:a.id,source:l,target:o,sourceHandle:s,targetHandle:c},f=`${l}-${s}--${o}-${c}`,m=`${o}-${c}--${l}-${s}`;Pv("source",d,m,e,l,s),Pv("target",d,f,e,o,c),t.set(a.id,a)}}function U_(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:U_(n,t):!1}function Gv(e,t,n){var l;let a=e;do{if((l=a==null?void 0:a.matches)!=null&&l.call(a,t))return!0;if(a===n)return!1;a=a==null?void 0:a.parentElement}while(a);return!1}function TA(e,t,n,a){const l=new Map;for(const[o,s]of e)if((s.selected||s.id===a)&&(!s.parentId||!U_(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const c=e.get(o);c&&l.set(o,{id:o,position:c.position||{x:0,y:0},distance:{x:n.x-c.internals.positionAbsolute.x,y:n.y-c.internals.positionAbsolute.y},extent:c.extent,parentId:c.parentId,origin:c.origin,expandParent:c.expandParent,internals:{positionAbsolute:c.internals.positionAbsolute||{x:0,y:0}},measured:{width:c.measured.width??0,height:c.measured.height??0}})}return l}function Sh({nodeId:e,dragItems:t,nodeLookup:n,dragging:a=!0}){var s,c,d;const l=[];for(const[f,m]of t){const p=(s=n.get(f))==null?void 0:s.internals.userNode;p&&l.push({...p,position:m.position,dragging:a})}if(!e)return[l[0],l];const o=(c=n.get(e))==null?void 0:c.internals.userNode;return[o?{...o,position:((d=t.get(e))==null?void 0:d.position)||o.position,dragging:a}:l[0],l]}function AA({dragItems:e,snapGrid:t,x:n,y:a}){const l=e.values().next().value;if(!l)return null;const o={x:n-l.distance.x,y:a-l.distance.y},s=is(o,t);return{x:s.x-o.x,y:s.y-o.y}}function zA({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:a,onDragStop:l}){let o={x:null,y:null},s=0,c=new Map,d=!1,f={x:0,y:0},m=null,p=!1,g=null,v=!1,w=!1,E=null;function S({noDragClassName:N,handleSelector:k,domNode:T,isSelectable:M,nodeId:A,nodeClickDistance:H=0}){g=wn(T);function L({x:U,y:ee}){const{nodeLookup:q,nodeExtent:F,snapGrid:z,snapToGrid:G,nodeOrigin:Q,onNodeDrag:K,onSelectionDrag:D,onError:$,updateNodePositions:Y}=t();o={x:U,y:ee};let C=!1;const P=c.size>1,X=P&&F?tm(rs(c)):null,J=P&&G?AA({dragItems:c,snapGrid:z,x:U,y:ee}):null;for(const[ne,re]of c){if(!q.has(ne))continue;let ue={x:U-re.distance.x,y:ee-re.distance.y};G&&(ue=J?{x:Math.round(ue.x+J.x),y:Math.round(ue.y+J.y)}:is(ue,z));let xe=null;if(P&&F&&!re.extent&&X){const{positionAbsolute:pe}=re.internals,Se=pe.x-X.x+F[0][0],Oe=pe.x+re.measured.width-X.x2+F[1][0],Ae=pe.y-X.y+F[0][1],ft=pe.y+re.measured.height-X.y2+F[1][1];xe=[[Se,Ae],[Oe,ft]]}const{position:be,positionAbsolute:ye}=C_({nodeId:ne,nextPosition:ue,nodeLookup:q,nodeExtent:xe||F,nodeOrigin:Q,onError:$});C=C||re.position.x!==be.x||re.position.y!==be.y,re.position=be,re.internals.positionAbsolute=ye}if(w=w||C,!!C&&(Y(c,!0),E&&(a||K||!A&&D))){const[ne,re]=Sh({nodeId:A,dragItems:c,nodeLookup:q});a==null||a(E,c,ne,re),K==null||K(E,ne,re),A||D==null||D(E,re)}}async function V(){if(!m)return;const{transform:U,panBy:ee,autoPanSpeed:q,autoPanOnNodeDrag:F}=t();if(!F){d=!1,cancelAnimationFrame(s);return}const[z,G]=T_(f,m,q);(z!==0||G!==0)&&(o.x=(o.x??0)-z/U[2],o.y=(o.y??0)-G/U[2],await ee({x:z,y:G})&&L(o)),s=requestAnimationFrame(V)}function R(U){var P;const{nodeLookup:ee,multiSelectionActive:q,nodesDraggable:F,transform:z,snapGrid:G,snapToGrid:Q,selectNodesOnDrag:K,onNodeDragStart:D,onSelectionDragStart:$,unselectNodesAndEdges:Y}=t();p=!0,(!K||!M)&&!q&&A&&((P=ee.get(A))!=null&&P.selected||Y()),M&&K&&A&&(e==null||e(A));const C=Oo(U.sourceEvent,{transform:z,snapGrid:G,snapToGrid:Q,containerBounds:m});if(o=C,c=TA(ee,F,C,A),c.size>0&&(n||D||!A&&$)){const[X,J]=Sh({nodeId:A,dragItems:c,nodeLookup:ee});n==null||n(U.sourceEvent,c,X,J),D==null||D(U.sourceEvent,X,J),A||$==null||$(U.sourceEvent,J)}}const B=l_().clickDistance(H).on("start",U=>{const{domNode:ee,nodeDragThreshold:q,transform:F,snapGrid:z,snapToGrid:G}=t();m=(ee==null?void 0:ee.getBoundingClientRect())||null,v=!1,w=!1,E=U.sourceEvent,q===0&&R(U),o=Oo(U.sourceEvent,{transform:F,snapGrid:z,snapToGrid:G,containerBounds:m}),f=Pn(U.sourceEvent,m)}).on("drag",U=>{const{autoPanOnNodeDrag:ee,transform:q,snapGrid:F,snapToGrid:z,nodeDragThreshold:G,nodeLookup:Q}=t(),K=Oo(U.sourceEvent,{transform:q,snapGrid:F,snapToGrid:z,containerBounds:m});if(E=U.sourceEvent,(U.sourceEvent.type==="touchmove"&&U.sourceEvent.touches.length>1||A&&!Q.has(A))&&(v=!0),!v){if(!d&&ee&&p&&(d=!0,V()),!p){const D=Pn(U.sourceEvent,m),$=D.x-f.x,Y=D.y-f.y;Math.sqrt($*$+Y*Y)>G&&R(U)}(o.x!==K.xSnapped||o.y!==K.ySnapped)&&c&&p&&(f=Pn(U.sourceEvent,m),L(K))}}).on("end",U=>{if(!(!p||v)&&(d=!1,p=!1,cancelAnimationFrame(s),c.size>0)){const{nodeLookup:ee,updateNodePositions:q,onNodeDragStop:F,onSelectionDragStop:z}=t();if(w&&(q(c,!1),w=!1),l||F||!A&&z){const[G,Q]=Sh({nodeId:A,dragItems:c,nodeLookup:ee,dragging:!1});l==null||l(U.sourceEvent,c,G,Q),F==null||F(U.sourceEvent,G,Q),A||z==null||z(U.sourceEvent,Q)}}}).filter(U=>{const ee=U.target;return!U.button&&(!N||!Gv(ee,`.${N}`,T))&&(!k||Gv(ee,k,T))});g.call(B)}function _(){g==null||g.on(".drag",null)}return{update:S,destroy:_}}function MA(e,t,n){const a=[],l={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Yo(l,bl(o))>0&&a.push(o);return a}const DA=250;function RA(e,t,n,a){var c,d;let l=[],o=1/0;const s=MA(e,n,t+DA);for(const f of s){const m=[...((c=f.internals.handleBounds)==null?void 0:c.source)??[],...((d=f.internals.handleBounds)==null?void 0:d.target)??[]];for(const p of m){if(a.nodeId===p.nodeId&&a.type===p.type&&a.id===p.id)continue;const{x:g,y:v}=oa(f,p,p.position,!0),w=Math.sqrt(Math.pow(g-e.x,2)+Math.pow(v-e.y,2));w>t||(w1){const f=a.type==="source"?"target":"source";return l.find(m=>m.type===f)??l[0]}return l[0]}function V_(e,t,n,a,l,o=!1){var f,m,p;const s=a.get(e);if(!s)return null;const c=l==="strict"?(f=s.internals.handleBounds)==null?void 0:f[t]:[...((m=s.internals.handleBounds)==null?void 0:m.source)??[],...((p=s.internals.handleBounds)==null?void 0:p.target)??[]],d=(n?c==null?void 0:c.find(g=>g.id===n):c==null?void 0:c[0])??null;return d&&o?{...d,...oa(s,d,d.position,!0)}:d}function P_(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function OA(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const G_=()=>!0;function LA(e,{connectionMode:t,connectionRadius:n,handleId:a,nodeId:l,edgeUpdaterType:o,isTarget:s,domNode:c,nodeLookup:d,lib:f,autoPanOnConnect:m,flowId:p,panBy:g,cancelConnection:v,onConnectStart:w,onConnect:E,onConnectEnd:S,isValidConnection:_=G_,onReconnectEnd:N,updateConnection:k,getTransform:T,getFromHandle:M,autoPanSpeed:A,dragThreshold:H=1,handleDomNode:L}){const V=D_(e.target);let R=0,B;const{x:U,y:ee}=Pn(e),q=P_(o,L),F=c==null?void 0:c.getBoundingClientRect();let z=!1;if(!F||!q)return;const G=V_(l,q,a,d,t);if(!G)return;let Q=Pn(e,F),K=!1,D=null,$=!1,Y=null;function C(){if(!m||!F)return;const[be,ye]=T_(Q,F,A);g({x:be,y:ye}),R=requestAnimationFrame(C)}const P={...G,nodeId:l,type:q,position:G.position},X=d.get(l);let ne={inProgress:!0,isValid:null,from:oa(X,P,ve.Left,!0),fromHandle:P,fromPosition:P.position,fromNode:X,to:Q,toHandle:null,toPosition:Dv[P.position],toNode:null,pointer:Q};function re(){z=!0,k(ne),w==null||w(e,{nodeId:l,handleId:a,handleType:q})}H===0&&re();function ue(be){if(!z){const{x:ft,y:rt}=Pn(be),Dt=ft-U,Pt=rt-ee;if(!(Dt*Dt+Pt*Pt>H*H))return;re()}if(!M()||!P){xe(be);return}const ye=T();Q=Pn(be,F),B=RA(as(Q,ye,!1,[1,1]),n,d,P),K||(C(),K=!0);const pe=F_(be,{handle:B,connectionMode:t,fromNodeId:l,fromHandleId:a,fromType:s?"target":"source",isValidConnection:_,doc:V,lib:f,flowId:p,nodeLookup:d});Y=pe.handleDomNode,D=pe.connection,$=OA(!!B,pe.isValid);const Se=d.get(l),Oe=Se?oa(Se,P,ve.Left,!0):ne.from,Ae={...ne,from:Oe,isValid:$,to:pe.toHandle&&$?xc({x:pe.toHandle.x,y:pe.toHandle.y},ye):Q,toHandle:pe.toHandle,toPosition:$&&pe.toHandle?pe.toHandle.position:Dv[P.position],toNode:pe.toHandle?d.get(pe.toHandle.nodeId):null,pointer:Q};k(Ae),ne=Ae}function xe(be){if(!("touches"in be&&be.touches.length>0)){if(z){(B||Y)&&D&&$&&(E==null||E(D));const{inProgress:ye,...pe}=ne,Se={...pe,toPosition:ne.toHandle?ne.toPosition:null};S==null||S(be,Se),o&&(N==null||N(be,Se))}v(),cancelAnimationFrame(R),K=!1,$=!1,D=null,Y=null,V.removeEventListener("mousemove",ue),V.removeEventListener("mouseup",xe),V.removeEventListener("touchmove",ue),V.removeEventListener("touchend",xe)}}V.addEventListener("mousemove",ue),V.addEventListener("mouseup",xe),V.addEventListener("touchmove",ue),V.addEventListener("touchend",xe)}function F_(e,{handle:t,connectionMode:n,fromNodeId:a,fromHandleId:l,fromType:o,doc:s,lib:c,flowId:d,isValidConnection:f=G_,nodeLookup:m}){const p=o==="target",g=t?s.querySelector(`.${c}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:v,y:w}=Pn(e),E=s.elementFromPoint(v,w),S=E!=null&&E.classList.contains(`${c}-flow__handle`)?E:g,_={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const N=P_(void 0,S),k=S.getAttribute("data-nodeid"),T=S.getAttribute("data-handleid"),M=S.classList.contains("connectable"),A=S.classList.contains("connectableend");if(!k||!N)return _;const H={source:p?k:a,sourceHandle:p?T:l,target:p?a:k,targetHandle:p?l:T};_.connection=H;const V=M&&A&&(n===yl.Strict?p&&N==="source"||!p&&N==="target":k!==a||T!==l);_.isValid=V&&f(H),_.toHandle=V_(k,N,T,m,n,!0)}return _}const am={onPointerDown:LA,isValid:F_};function HA({domNode:e,panZoom:t,getTransform:n,getViewScale:a}){const l=wn(e);function o({translateExtent:c,width:d,height:f,zoomStep:m=1,pannable:p=!0,zoomable:g=!0,inversePan:v=!1}){const w=k=>{if(k.sourceEvent.type!=="wheel"||!t)return;const T=n(),M=k.sourceEvent.ctrlKey&&Xo()?10:1,A=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*m,H=T[2]*Math.pow(2,A*M);t.scaleTo(H)};let E=[0,0];const S=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(E=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},_=k=>{const T=n();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!t)return;const M=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],A=[M[0]-E[0],M[1]-E[1]];E=M;const H=a()*Math.max(T[2],Math.log(T[2]))*(v?-1:1),L={x:T[0]-A[0]*H,y:T[1]-A[1]*H},V=[[0,0],[d,f]];t.setViewportConstrained({x:L.x,y:L.y,zoom:T[2]},V,c)},N=w_().on("start",S).on("zoom",p?_:null).on("zoom.wheel",g?w:null);l.call(N,{})}function s(){l.on("zoom",null)}return{update:o,destroy:s,pointer:$n}}const Hc=e=>({x:e.x,y:e.y,zoom:e.k}),kh=({x:e,y:t,zoom:n})=>Rc.translate(e,t).scale(n),sl=(e,t)=>e.target.closest(`.${t}`),Y_=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),BA=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Eh=(e,t=0,n=BA,a=()=>{})=>{const l=typeof t=="number"&&t>0;return l||a(),l?e.transition().duration(t).ease(n).on("end",a):e},X_=e=>{const t=e.ctrlKey&&Xo()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function IA({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:a,panOnScrollMode:l,panOnScrollSpeed:o,zoomOnPinch:s,onPanZoomStart:c,onPanZoom:d,onPanZoomEnd:f}){return m=>{if(sl(m,t))return m.ctrlKey&&m.preventDefault(),!1;m.preventDefault(),m.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(m.ctrlKey&&s){const S=$n(m),_=X_(m),N=p*Math.pow(2,_);a.scaleTo(n,N,S,m);return}const g=m.deltaMode===1?20:1;let v=l===na.Vertical?0:m.deltaX*g,w=l===na.Horizontal?0:m.deltaY*g;!Xo()&&m.shiftKey&&l!==na.Vertical&&(v=m.deltaY*g,w=0),a.translateBy(n,-(v/p)*o,-(w/p)*o,{internal:!0});const E=Hc(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d==null||d(m,E),e.panScrollTimeout=setTimeout(()=>{f==null||f(m,E),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c==null||c(m,E))}}function qA({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(a,l){const o=a.type==="wheel",s=!t&&o&&!a.ctrlKey,c=sl(a,e);if(a.ctrlKey&&o&&c&&a.preventDefault(),s||c)return null;a.preventDefault(),n.call(this,a,l)}}function $A({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return a=>{var o,s,c;if((o=a.sourceEvent)!=null&&o.internal)return;const l=Hc(a.transform);e.mouseButton=((s=a.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=l,((c=a.sourceEvent)==null?void 0:c.type)==="mousedown"&&t(!0),n&&(n==null||n(a.sourceEvent,l))}}function UA({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:a,onPanZoom:l}){return o=>{var s,c;e.usedRightMouseButton=!!(n&&Y_(t,e.mouseButton??0)),(s=o.sourceEvent)!=null&&s.sync||a([o.transform.x,o.transform.y,o.transform.k]),l&&!((c=o.sourceEvent)!=null&&c.internal)&&(l==null||l(o.sourceEvent,Hc(o.transform)))}}function VA({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:a,onPanZoomEnd:l,onPaneContextMenu:o}){return s=>{var c;if(!((c=s.sourceEvent)!=null&&c.internal)&&(e.isZoomingOrPanning=!1,o&&Y_(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&o(s.sourceEvent),e.usedRightMouseButton=!1,a(!1),l)){const d=Hc(s.transform);e.prevViewport=d,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{l==null||l(s.sourceEvent,d)},n?150:0)}}}function PA({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:a,panOnScroll:l,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:d,lib:f,connectionInProgress:m}){return p=>{var S;const g=e||t,v=n&&p.ctrlKey,w=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(sl(p,`${f}-flow__node`)||sl(p,`${f}-flow__edge`)))return!0;if(!a&&!g&&!l&&!o&&!n||s||m&&!w||sl(p,c)&&w||sl(p,d)&&(!w||l&&w&&!e)||!n&&p.ctrlKey&&w)return!1;if(!n&&p.type==="touchstart"&&((S=p.touches)==null?void 0:S.length)>1)return p.preventDefault(),!1;if(!g&&!l&&!v&&w||!a&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(a)&&!a.includes(p.button)&&p.type==="mousedown")return!1;const E=Array.isArray(a)&&a.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||w)&&E}}function GA({domNode:e,minZoom:t,maxZoom:n,translateExtent:a,viewport:l,onPanZoom:o,onPanZoomStart:s,onPanZoomEnd:c,onDraggingChange:d}){const f={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},m=e.getBoundingClientRect(),p=w_().scaleExtent([t,n]).translateExtent(a),g=wn(e).call(p);N({x:l.x,y:l.y,zoom:vl(l.zoom,t,n)},[[0,0],[m.width,m.height]],a);const v=g.on("wheel.zoom"),w=g.on("dblclick.zoom");p.wheelDelta(X_);function E(B,U){return g?new Promise(ee=>{p==null||p.interpolate((U==null?void 0:U.interpolate)==="linear"?Ro:Wu).transform(Eh(g,U==null?void 0:U.duration,U==null?void 0:U.ease,()=>ee(!0)),B)}):Promise.resolve(!1)}function S({noWheelClassName:B,noPanClassName:U,onPaneContextMenu:ee,userSelectionActive:q,panOnScroll:F,panOnDrag:z,panOnScrollMode:G,panOnScrollSpeed:Q,preventScrolling:K,zoomOnPinch:D,zoomOnScroll:$,zoomOnDoubleClick:Y,zoomActivationKeyPressed:C,lib:P,onTransformChange:X,connectionInProgress:J,paneClickDistance:ne,selectionOnDrag:re}){q&&!f.isZoomingOrPanning&&_();const ue=F&&!C&&!q;p.clickDistance(re?1/0:!Vn(ne)||ne<0?0:ne);const xe=ue?IA({zoomPanValues:f,noWheelClassName:B,d3Selection:g,d3Zoom:p,panOnScrollMode:G,panOnScrollSpeed:Q,zoomOnPinch:D,onPanZoomStart:s,onPanZoom:o,onPanZoomEnd:c}):qA({noWheelClassName:B,preventScrolling:K,d3ZoomHandler:v});if(g.on("wheel.zoom",xe,{passive:!1}),!q){const ye=$A({zoomPanValues:f,onDraggingChange:d,onPanZoomStart:s});p.on("start",ye);const pe=UA({zoomPanValues:f,panOnDrag:z,onPaneContextMenu:!!ee,onPanZoom:o,onTransformChange:X});p.on("zoom",pe);const Se=VA({zoomPanValues:f,panOnDrag:z,panOnScroll:F,onPaneContextMenu:ee,onPanZoomEnd:c,onDraggingChange:d});p.on("end",Se)}const be=PA({zoomActivationKeyPressed:C,panOnDrag:z,zoomOnScroll:$,panOnScroll:F,zoomOnDoubleClick:Y,zoomOnPinch:D,userSelectionActive:q,noPanClassName:U,noWheelClassName:B,lib:P,connectionInProgress:J});p.filter(be),Y?g.on("dblclick.zoom",w):g.on("dblclick.zoom",null)}function _(){p.on("zoom",null)}async function N(B,U,ee){const q=kh(B),F=p==null?void 0:p.constrain()(q,U,ee);return F&&await E(F),new Promise(z=>z(F))}async function k(B,U){const ee=kh(B);return await E(ee,U),new Promise(q=>q(ee))}function T(B){if(g){const U=kh(B),ee=g.property("__zoom");(ee.k!==B.zoom||ee.x!==B.x||ee.y!==B.y)&&(p==null||p.transform(g,U,null,{sync:!0}))}}function M(){const B=g?b_(g.node()):{x:0,y:0,k:1};return{x:B.x,y:B.y,zoom:B.k}}function A(B,U){return g?new Promise(ee=>{p==null||p.interpolate((U==null?void 0:U.interpolate)==="linear"?Ro:Wu).scaleTo(Eh(g,U==null?void 0:U.duration,U==null?void 0:U.ease,()=>ee(!0)),B)}):Promise.resolve(!1)}function H(B,U){return g?new Promise(ee=>{p==null||p.interpolate((U==null?void 0:U.interpolate)==="linear"?Ro:Wu).scaleBy(Eh(g,U==null?void 0:U.duration,U==null?void 0:U.ease,()=>ee(!0)),B)}):Promise.resolve(!1)}function L(B){p==null||p.scaleExtent(B)}function V(B){p==null||p.translateExtent(B)}function R(B){const U=!Vn(B)||B<0?0:B;p==null||p.clickDistance(U)}return{update:S,destroy:_,setViewport:k,setViewportConstrained:N,getViewport:M,scaleTo:A,scaleBy:H,setScaleExtent:L,setTranslateExtent:V,syncViewport:T,setClickDistance:R}}var _l;(function(e){e.Line="line",e.Handle="handle"})(_l||(_l={}));function FA({width:e,prevWidth:t,height:n,prevHeight:a,affectsX:l,affectsY:o}){const s=e-t,c=n-a,d=[s>0?1:s<0?-1:0,c>0?1:c<0?-1:0];return s&&l&&(d[0]=d[0]*-1),c&&o&&(d[1]=d[1]*-1),d}function Fv(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),a=e.includes("left"),l=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:a,affectsY:l}}function xi(e,t){return Math.max(0,t-e)}function yi(e,t){return Math.max(0,e-t)}function Pu(e,t,n){return Math.max(0,t-e,e-n)}function Yv(e,t){return e?!t:t}function YA(e,t,n,a,l,o,s,c){let{affectsX:d,affectsY:f}=t;const{isHorizontal:m,isVertical:p}=t,g=m&&p,{xSnapped:v,ySnapped:w}=n,{minWidth:E,maxWidth:S,minHeight:_,maxHeight:N}=a,{x:k,y:T,width:M,height:A,aspectRatio:H}=e;let L=Math.floor(m?v-e.pointerX:0),V=Math.floor(p?w-e.pointerY:0);const R=M+(d?-L:L),B=A+(f?-V:V),U=-o[0]*M,ee=-o[1]*A;let q=Pu(R,E,S),F=Pu(B,_,N);if(s){let Q=0,K=0;d&&L<0?Q=xi(k+L+U,s[0][0]):!d&&L>0&&(Q=yi(k+R+U,s[1][0])),f&&V<0?K=xi(T+V+ee,s[0][1]):!f&&V>0&&(K=yi(T+B+ee,s[1][1])),q=Math.max(q,Q),F=Math.max(F,K)}if(c){let Q=0,K=0;d&&L>0?Q=yi(k+L,c[0][0]):!d&&L<0&&(Q=xi(k+R,c[1][0])),f&&V>0?K=yi(T+V,c[0][1]):!f&&V<0&&(K=xi(T+B,c[1][1])),q=Math.max(q,Q),F=Math.max(F,K)}if(l){if(m){const Q=Pu(R/H,_,N)*H;if(q=Math.max(q,Q),s){let K=0;!d&&!f||d&&!f&&g?K=yi(T+ee+R/H,s[1][1])*H:K=xi(T+ee+(d?L:-L)/H,s[0][1])*H,q=Math.max(q,K)}if(c){let K=0;!d&&!f||d&&!f&&g?K=xi(T+R/H,c[1][1])*H:K=yi(T+(d?L:-L)/H,c[0][1])*H,q=Math.max(q,K)}}if(p){const Q=Pu(B*H,E,S)/H;if(F=Math.max(F,Q),s){let K=0;!d&&!f||f&&!d&&g?K=yi(k+B*H+U,s[1][0])/H:K=xi(k+(f?V:-V)*H+U,s[0][0])/H,F=Math.max(F,K)}if(c){let K=0;!d&&!f||f&&!d&&g?K=xi(k+B*H,c[1][0])/H:K=yi(k+(f?V:-V)*H,c[0][0])/H,F=Math.max(F,K)}}}V=V+(V<0?F:-F),L=L+(L<0?q:-q),l&&(g?R>B*H?V=(Yv(d,f)?-L:L)/H:L=(Yv(d,f)?-V:V)*H:m?(V=L/H,f=d):(L=V*H,d=f));const z=d?k+L:k,G=f?T+V:T;return{width:M+(d?-L:L),height:A+(f?-V:V),x:o[0]*L*(d?-1:1)+z,y:o[1]*V*(f?-1:1)+G}}const Q_={width:0,height:0,x:0,y:0},XA={...Q_,pointerX:0,pointerY:0,aspectRatio:1};function QA(e){return[[0,0],[e.measured.width,e.measured.height]]}function ZA(e,t,n){const a=t.position.x+e.position.x,l=t.position.y+e.position.y,o=e.measured.width??0,s=e.measured.height??0,c=n[0]*o,d=n[1]*s;return[[a-c,l-d],[a+o-c,l+s-d]]}function KA({domNode:e,nodeId:t,getStoreItems:n,onChange:a,onEnd:l}){const o=wn(e);let s={controlDirection:Fv("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:f,boundaries:m,keepAspectRatio:p,resizeDirection:g,onResizeStart:v,onResize:w,onResizeEnd:E,shouldResize:S}){let _={...Q_},N={...XA};s={boundaries:m,resizeDirection:g,keepAspectRatio:p,controlDirection:Fv(f)};let k,T=null,M=[],A,H,L,V=!1;const R=l_().on("start",B=>{const{nodeLookup:U,transform:ee,snapGrid:q,snapToGrid:F,nodeOrigin:z,paneDomNode:G}=n();if(k=U.get(t),!k)return;T=(G==null?void 0:G.getBoundingClientRect())??null;const{xSnapped:Q,ySnapped:K}=Oo(B.sourceEvent,{transform:ee,snapGrid:q,snapToGrid:F,containerBounds:T});_={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},N={..._,pointerX:Q,pointerY:K,aspectRatio:_.width/_.height},A=void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&(A=U.get(k.parentId),H=A&&k.extent==="parent"?QA(A):void 0),M=[],L=void 0;for(const[D,$]of U)if($.parentId===t&&(M.push({id:D,position:{...$.position},extent:$.extent}),$.extent==="parent"||$.expandParent)){const Y=ZA($,k,$.origin??z);L?L=[[Math.min(Y[0][0],L[0][0]),Math.min(Y[0][1],L[0][1])],[Math.max(Y[1][0],L[1][0]),Math.max(Y[1][1],L[1][1])]]:L=Y}v==null||v(B,{..._})}).on("drag",B=>{const{transform:U,snapGrid:ee,snapToGrid:q,nodeOrigin:F}=n(),z=Oo(B.sourceEvent,{transform:U,snapGrid:ee,snapToGrid:q,containerBounds:T}),G=[];if(!k)return;const{x:Q,y:K,width:D,height:$}=_,Y={},C=k.origin??F,{width:P,height:X,x:J,y:ne}=YA(N,s.controlDirection,z,s.boundaries,s.keepAspectRatio,C,H,L),re=P!==D,ue=X!==$,xe=J!==Q&&re,be=ne!==K&&ue;if(!xe&&!be&&!re&&!ue)return;if((xe||be||C[0]===1||C[1]===1)&&(Y.x=xe?J:_.x,Y.y=be?ne:_.y,_.x=Y.x,_.y=Y.y,M.length>0)){const Oe=J-Q,Ae=ne-K;for(const ft of M)ft.position={x:ft.position.x-Oe+C[0]*(P-D),y:ft.position.y-Ae+C[1]*(X-$)},G.push(ft)}if((re||ue)&&(Y.width=re&&(!s.resizeDirection||s.resizeDirection==="horizontal")?P:_.width,Y.height=ue&&(!s.resizeDirection||s.resizeDirection==="vertical")?X:_.height,_.width=Y.width,_.height=Y.height),A&&k.expandParent){const Oe=C[0]*(Y.width??0);Y.x&&Y.x{V&&(E==null||E(B,{..._}),l==null||l({..._}),V=!1)});o.call(R)}function d(){o.on(".drag",null)}return{update:c,destroy:d}}var Nh={exports:{}},Ch={},jh={exports:{}},Th={};/** + * @license React + * use-sync-external-store-shim.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. + */var Xv;function JA(){if(Xv)return Th;Xv=1;var e=Wo();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,l=e.useEffect,o=e.useLayoutEffect,s=e.useDebugValue;function c(p,g){var v=g(),w=a({inst:{value:v,getSnapshot:g}}),E=w[0].inst,S=w[1];return o(function(){E.value=v,E.getSnapshot=g,d(E)&&S({inst:E})},[p,v,g]),l(function(){return d(E)&&S({inst:E}),p(function(){d(E)&&S({inst:E})})},[p]),s(v),v}function d(p){var g=p.getSnapshot;p=p.value;try{var v=g();return!n(p,v)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:c;return Th.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,Th}var Qv;function WA(){return Qv||(Qv=1,jh.exports=JA()),jh.exports}/** + * @license React + * use-sync-external-store-shim/with-selector.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. + */var Zv;function e5(){if(Zv)return Ch;Zv=1;var e=Wo(),t=WA();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var a=typeof Object.is=="function"?Object.is:n,l=t.useSyncExternalStore,o=e.useRef,s=e.useEffect,c=e.useMemo,d=e.useDebugValue;return Ch.useSyncExternalStoreWithSelector=function(f,m,p,g,v){var w=o(null);if(w.current===null){var E={hasValue:!1,value:null};w.current=E}else E=w.current;w=c(function(){function _(A){if(!N){if(N=!0,k=A,A=g(A),v!==void 0&&E.hasValue){var H=E.value;if(v(H,A))return T=H}return T=A}if(H=T,a(k,A))return H;var L=g(A);return v!==void 0&&v(H,L)?(k=A,H):(k=A,T=L)}var N=!1,k,T,M=p===void 0?null:p;return[function(){return _(m())},M===null?void 0:function(){return _(M())}]},[m,p,g,v]);var S=l(f,w[0],w[1]);return s(function(){E.hasValue=!0,E.value=S},[S]),d(S),S},Ch}var Kv;function t5(){return Kv||(Kv=1,Nh.exports=e5()),Nh.exports}var n5=t5();const r5=Jo(n5),i5={},Jv=e=>{let t;const n=new Set,a=(m,p)=>{const g=typeof m=="function"?m(t):m;if(!Object.is(g,t)){const v=t;t=p??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(w=>w(t,v))}},l=()=>t,d={setState:a,getState:l,getInitialState:()=>f,subscribe:m=>(n.add(m),()=>n.delete(m)),destroy:()=>{(i5?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},f=t=e(a,l,d);return d},a5=e=>e?Jv(e):Jv,{useDebugValue:l5}=ll,{useSyncExternalStoreWithSelector:o5}=r5,s5=e=>e;function Z_(e,t=s5,n){const a=o5(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return l5(a),a}const Wv=(e,t)=>{const n=a5(e),a=(l,o=t)=>Z_(n,l,o);return Object.assign(a,n),a},u5=(e,t)=>e?Wv(e,t):Wv;function mt(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[a,l]of e)if(!Object.is(l,t.get(a)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const a of e)if(!t.has(a))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const a of n)if(!Object.prototype.hasOwnProperty.call(t,a)||!Object.is(e[a],t[a]))return!1;return!0}var c5=xw();const Bc=I.createContext(null),f5=Bc.Provider,K_=lr.error001();function Ye(e,t){const n=I.useContext(Bc);if(n===null)throw new Error(K_);return Z_(n,e,t)}function gt(){const e=I.useContext(Bc);if(e===null)throw new Error(K_);return I.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const eb={display:"none"},d5={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},J_="react-flow__node-desc",W_="react-flow__edge-desc",h5="react-flow__aria-live",p5=e=>e.ariaLiveMessage,m5=e=>e.ariaLabelConfig;function g5({rfId:e}){const t=Ye(p5);return y.jsx("div",{id:`${h5}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:d5,children:t})}function x5({rfId:e,disableKeyboardA11y:t}){const n=Ye(m5);return y.jsxs(y.Fragment,{children:[y.jsx("div",{id:`${J_}-${e}`,style:eb,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),y.jsx("div",{id:`${W_}-${e}`,style:eb,children:n["edge.a11yDescription.default"]}),!t&&y.jsx(g5,{rfId:e})]})}const Ic=I.forwardRef(({position:e="top-left",children:t,className:n,style:a,...l},o)=>{const s=`${e}`.split("-");return y.jsx("div",{className:Mt(["react-flow__panel",n,...s]),style:a,ref:o,...l,children:t})});Ic.displayName="Panel";function y5({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:y.jsx(Ic,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:y.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const v5=e=>{const t=[],n=[];for(const[,a]of e.nodeLookup)a.selected&&t.push(a.internals.userNode);for(const[,a]of e.edgeLookup)a.selected&&n.push(a);return{selectedNodes:t,selectedEdges:n}},Gu=e=>e.id;function b5(e,t){return mt(e.selectedNodes.map(Gu),t.selectedNodes.map(Gu))&&mt(e.selectedEdges.map(Gu),t.selectedEdges.map(Gu))}function w5({onSelectionChange:e}){const t=gt(),{selectedNodes:n,selectedEdges:a}=Ye(v5,b5);return I.useEffect(()=>{const l={nodes:n,edges:a};e==null||e(l),t.getState().onSelectionChangeHandlers.forEach(o=>o(l))},[n,a,e]),null}const _5=e=>!!e.onSelectionChangeHandlers;function S5({onSelectionChange:e}){const t=Ye(_5);return e||t?y.jsx(w5,{onSelectionChange:e}):null}const eS=[0,0],k5={x:0,y:0,zoom:1},E5=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],tb=[...E5,"rfId"],N5=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),nb={translateExtent:Go,nodeOrigin:eS,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function C5(e){const{setNodes:t,setEdges:n,setMinZoom:a,setMaxZoom:l,setTranslateExtent:o,setNodeExtent:s,reset:c,setDefaultNodesAndEdges:d}=Ye(N5,mt),f=gt();I.useEffect(()=>(d(e.defaultNodes,e.defaultEdges),()=>{m.current=nb,c()}),[]);const m=I.useRef(nb);return I.useEffect(()=>{for(const p of tb){const g=e[p],v=m.current[p];g!==v&&(typeof e[p]>"u"||(p==="nodes"?t(g):p==="edges"?n(g):p==="minZoom"?a(g):p==="maxZoom"?l(g):p==="translateExtent"?o(g):p==="nodeExtent"?s(g):p==="ariaLabelConfig"?f.setState({ariaLabelConfig:uA(g)}):p==="fitView"?f.setState({fitViewQueued:g}):p==="fitViewOptions"?f.setState({fitViewOptions:g}):f.setState({[p]:g})))}m.current=e},tb.map(p=>e[p])),null}function rb(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function j5(e){var a;const[t,n]=I.useState(e==="system"?null:e);return I.useEffect(()=>{if(e!=="system"){n(e);return}const l=rb(),o=()=>n(l!=null&&l.matches?"dark":"light");return o(),l==null||l.addEventListener("change",o),()=>{l==null||l.removeEventListener("change",o)}},[e]),t!==null?t:(a=rb())!=null&&a.matches?"dark":"light"}const ib=typeof document<"u"?document:null;function Qo(e=null,t={target:ib,actInsideInputWithModifier:!0}){const[n,a]=I.useState(!1),l=I.useRef(!1),o=I.useRef(new Set([])),[s,c]=I.useMemo(()=>{if(e!==null){const f=(Array.isArray(e)?e:[e]).filter(p=>typeof p=="string").map(p=>p.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),m=f.reduce((p,g)=>p.concat(...g),[]);return[f,m]}return[[],[]]},[e]);return I.useEffect(()=>{const d=(t==null?void 0:t.target)??ib,f=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const m=v=>{var S,_;if(l.current=v.ctrlKey||v.metaKey||v.shiftKey||v.altKey,(!l.current||l.current&&!f)&&R_(v))return!1;const E=lb(v.code,c);if(o.current.add(v[E]),ab(s,o.current,!1)){const N=((_=(S=v.composedPath)==null?void 0:S.call(v))==null?void 0:_[0])||v.target,k=(N==null?void 0:N.nodeName)==="BUTTON"||(N==null?void 0:N.nodeName)==="A";t.preventDefault!==!1&&(l.current||!k)&&v.preventDefault(),a(!0)}},p=v=>{const w=lb(v.code,c);ab(s,o.current,!0)?(a(!1),o.current.clear()):o.current.delete(v[w]),v.key==="Meta"&&o.current.clear(),l.current=!1},g=()=>{o.current.clear(),a(!1)};return d==null||d.addEventListener("keydown",m),d==null||d.addEventListener("keyup",p),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d==null||d.removeEventListener("keydown",m),d==null||d.removeEventListener("keyup",p),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,a]),n}function ab(e,t,n){return e.filter(a=>n||a.length===t.size).some(a=>a.every(l=>t.has(l)))}function lb(e,t){return t.includes(e)?"code":"key"}const T5=()=>{const e=gt();return I.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:a}=e.getState();return a?a.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[a,l,o],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??a,y:t.y??l,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,a]=e.getState().transform;return{x:t,y:n,zoom:a}},setCenter:async(t,n,a)=>e.getState().setCenter(t,n,a),fitBounds:async(t,n)=>{const{width:a,height:l,minZoom:o,maxZoom:s,panZoom:c}=e.getState(),d=Rm(t,a,l,o,s,(n==null?void 0:n.padding)??.1);return c?(await c.setViewport(d,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:a,snapGrid:l,snapToGrid:o,domNode:s}=e.getState();if(!s)return t;const{x:c,y:d}=s.getBoundingClientRect(),f={x:t.x-c,y:t.y-d},m=n.snapGrid??l,p=n.snapToGrid??o;return as(f,a,p,m)},flowToScreenPosition:t=>{const{transform:n,domNode:a}=e.getState();if(!a)return t;const{x:l,y:o}=a.getBoundingClientRect(),s=xc(t,n);return{x:s.x+l,y:s.y+o}}}),[])};function tS(e,t){const n=[],a=new Map,l=[];for(const o of e)if(o.type==="add"){l.push(o);continue}else if(o.type==="remove"||o.type==="replace")a.set(o.id,[o]);else{const s=a.get(o.id);s?s.push(o):a.set(o.id,[o])}for(const o of t){const s=a.get(o.id);if(!s){n.push(o);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const c={...o};for(const d of s)A5(d,c);n.push(c)}return l.length&&l.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function A5(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function nS(e,t){return tS(e,t)}function rS(e,t){return tS(e,t)}function Zi(e,t){return{id:e,type:"select",selected:t}}function ul(e,t=new Set,n=!1){const a=[];for(const[l,o]of e){const s=t.has(l);!(o.selected===void 0&&!s)&&o.selected!==s&&(n&&(o.selected=s),a.push(Zi(o.id,s)))}return a}function ob({items:e=[],lookup:t}){var l;const n=[],a=new Map(e.map(o=>[o.id,o]));for(const[o,s]of e.entries()){const c=t.get(s.id),d=((l=c==null?void 0:c.internals)==null?void 0:l.userNode)??c;d!==void 0&&d!==s&&n.push({id:s.id,item:s,type:"replace"}),d===void 0&&n.push({item:s,type:"add",index:o})}for(const[o]of t)a.get(o)===void 0&&n.push({id:o,type:"remove"});return n}function sb(e){return{id:e.id,type:"remove"}}const ub=e=>WT(e),z5=e=>N_(e);function iS(e){return I.forwardRef(e)}const M5=typeof window<"u"?I.useLayoutEffect:I.useEffect;function cb(e){const[t,n]=I.useState(BigInt(0)),[a]=I.useState(()=>D5(()=>n(l=>l+BigInt(1))));return M5(()=>{const l=a.get();l.length&&(e(l),a.reset())},[t]),a}function D5(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const aS=I.createContext(null);function R5({children:e}){const t=gt(),n=I.useCallback(c=>{const{nodes:d=[],setNodes:f,hasDefaultNodes:m,onNodesChange:p,nodeLookup:g,fitViewQueued:v,onNodesChangeMiddlewareMap:w}=t.getState();let E=d;for(const _ of c)E=typeof _=="function"?_(E):_;let S=ob({items:E,lookup:g});for(const _ of w.values())S=_(S);m&&f(E),S.length>0?p==null||p(S):v&&window.requestAnimationFrame(()=>{const{fitViewQueued:_,nodes:N,setNodes:k}=t.getState();_&&k(N)})},[]),a=cb(n),l=I.useCallback(c=>{const{edges:d=[],setEdges:f,hasDefaultEdges:m,onEdgesChange:p,edgeLookup:g}=t.getState();let v=d;for(const w of c)v=typeof w=="function"?w(v):w;m?f(v):p&&p(ob({items:v,lookup:g}))},[]),o=cb(l),s=I.useMemo(()=>({nodeQueue:a,edgeQueue:o}),[]);return y.jsx(aS.Provider,{value:s,children:e})}function O5(){const e=I.useContext(aS);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const L5=e=>!!e.panZoom;function fa(){const e=T5(),t=gt(),n=O5(),a=Ye(L5),l=I.useMemo(()=>{const o=p=>t.getState().nodeLookup.get(p),s=p=>{n.nodeQueue.push(p)},c=p=>{n.edgeQueue.push(p)},d=p=>{var _,N;const{nodeLookup:g,nodeOrigin:v}=t.getState(),w=ub(p)?p:g.get(p.id),E=w.parentId?M_(w.position,w.measured,w.parentId,g,v):w.position,S={...w,position:E,width:((_=w.measured)==null?void 0:_.width)??w.width,height:((N=w.measured)==null?void 0:N.height)??w.height};return bl(S)},f=(p,g,v={replace:!1})=>{s(w=>w.map(E=>{if(E.id===p){const S=typeof g=="function"?g(E):g;return v.replace&&ub(S)?S:{...E,...S}}return E}))},m=(p,g,v={replace:!1})=>{c(w=>w.map(E=>{if(E.id===p){const S=typeof g=="function"?g(E):g;return v.replace&&z5(S)?S:{...E,...S}}return E}))};return{getNodes:()=>t.getState().nodes.map(p=>({...p})),getNode:p=>{var g;return(g=o(p))==null?void 0:g.internals.userNode},getInternalNode:o,getEdges:()=>{const{edges:p=[]}=t.getState();return p.map(g=>({...g}))},getEdge:p=>t.getState().edgeLookup.get(p),setNodes:s,setEdges:c,addNodes:p=>{const g=Array.isArray(p)?p:[p];n.nodeQueue.push(v=>[...v,...g])},addEdges:p=>{const g=Array.isArray(p)?p:[p];n.edgeQueue.push(v=>[...v,...g])},toObject:()=>{const{nodes:p=[],edges:g=[],transform:v}=t.getState(),[w,E,S]=v;return{nodes:p.map(_=>({..._})),edges:g.map(_=>({..._})),viewport:{x:w,y:E,zoom:S}}},deleteElements:async({nodes:p=[],edges:g=[]})=>{const{nodes:v,edges:w,onNodesDelete:E,onEdgesDelete:S,triggerNodeChanges:_,triggerEdgeChanges:N,onDelete:k,onBeforeDelete:T}=t.getState(),{nodes:M,edges:A}=await iA({nodesToRemove:p,edgesToRemove:g,nodes:v,edges:w,onBeforeDelete:T}),H=A.length>0,L=M.length>0;if(H){const V=A.map(sb);S==null||S(A),N(V)}if(L){const V=M.map(sb);E==null||E(M),_(V)}return(L||H)&&(k==null||k({nodes:M,edges:A})),{deletedNodes:M,deletedEdges:A}},getIntersectingNodes:(p,g=!0,v)=>{const w=Ov(p),E=w?p:d(p),S=v!==void 0;return E?(v||t.getState().nodes).filter(_=>{const N=t.getState().nodeLookup.get(_.id);if(N&&!w&&(_.id===p.id||!N.internals.positionAbsolute))return!1;const k=bl(S?_:N),T=Yo(k,E);return g&&T>0||T>=k.width*k.height||T>=E.width*E.height}):[]},isNodeIntersecting:(p,g,v=!0)=>{const E=Ov(p)?p:d(p);if(!E)return!1;const S=Yo(E,g);return v&&S>0||S>=g.width*g.height||S>=E.width*E.height},updateNode:f,updateNodeData:(p,g,v={replace:!1})=>{f(p,w=>{const E=typeof g=="function"?g(w):g;return v.replace?{...w,data:E}:{...w,data:{...w.data,...E}}},v)},updateEdge:m,updateEdgeData:(p,g,v={replace:!1})=>{m(p,w=>{const E=typeof g=="function"?g(w):g;return v.replace?{...w,data:E}:{...w,data:{...w.data,...E}}},v)},getNodesBounds:p=>{const{nodeLookup:g,nodeOrigin:v}=t.getState();return eA(p,{nodeLookup:g,nodeOrigin:v})},getHandleConnections:({type:p,id:g,nodeId:v})=>{var w;return Array.from(((w=t.getState().connectionLookup.get(`${v}-${p}${g?`-${g}`:""}`))==null?void 0:w.values())??[])},getNodeConnections:({type:p,handleId:g,nodeId:v})=>{var w;return Array.from(((w=t.getState().connectionLookup.get(`${v}${p?g?`-${p}-${g}`:`-${p}`:""}`))==null?void 0:w.values())??[])},fitView:async p=>{const g=t.getState().fitViewResolver??sA();return t.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:g}),n.nodeQueue.push(v=>[...v]),g.promise}}},[]);return I.useMemo(()=>({...l,...e,viewportInitialized:a}),[a])}const fb=e=>e.selected,H5=typeof window<"u"?window:void 0;function B5({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=gt(),{deleteElements:a}=fa(),l=Qo(e,{actInsideInputWithModifier:!1}),o=Qo(t,{target:H5});I.useEffect(()=>{if(l){const{edges:s,nodes:c}=n.getState();a({nodes:c.filter(fb),edges:s.filter(fb)}),n.setState({nodesSelectionActive:!1})}},[l]),I.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function I5(e){const t=gt();I.useEffect(()=>{const n=()=>{var l,o,s,c;if(!e.current||!(((o=(l=e.current).checkVisibility)==null?void 0:o.call(l))??!0))return!1;const a=Om(e.current);(a.height===0||a.width===0)&&((c=(s=t.getState()).onError)==null||c.call(s,"004",lr.error004())),t.setState({width:a.width||500,height:a.height||500})};if(e.current){n(),window.addEventListener("resize",n);const a=new ResizeObserver(()=>n());return a.observe(e.current),()=>{window.removeEventListener("resize",n),a&&e.current&&a.unobserve(e.current)}}},[])}const qc={position:"absolute",width:"100%",height:"100%",top:0,left:0},q5=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function $5({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:a=!1,panOnScrollSpeed:l=.5,panOnScrollMode:o=na.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:d,translateExtent:f,minZoom:m,maxZoom:p,zoomActivationKeyCode:g,preventScrolling:v=!0,children:w,noWheelClassName:E,noPanClassName:S,onViewportChange:_,isControlledViewport:N,paneClickDistance:k,selectionOnDrag:T}){const M=gt(),A=I.useRef(null),{userSelectionActive:H,lib:L,connectionInProgress:V}=Ye(q5,mt),R=Qo(g),B=I.useRef();I5(A);const U=I.useCallback(ee=>{_==null||_({x:ee[0],y:ee[1],zoom:ee[2]}),N||M.setState({transform:ee})},[_,N]);return I.useEffect(()=>{if(A.current){B.current=GA({domNode:A.current,minZoom:m,maxZoom:p,translateExtent:f,viewport:d,onDraggingChange:z=>M.setState(G=>G.paneDragging===z?G:{paneDragging:z}),onPanZoomStart:(z,G)=>{const{onViewportChangeStart:Q,onMoveStart:K}=M.getState();K==null||K(z,G),Q==null||Q(G)},onPanZoom:(z,G)=>{const{onViewportChange:Q,onMove:K}=M.getState();K==null||K(z,G),Q==null||Q(G)},onPanZoomEnd:(z,G)=>{const{onViewportChangeEnd:Q,onMoveEnd:K}=M.getState();K==null||K(z,G),Q==null||Q(G)}});const{x:ee,y:q,zoom:F}=B.current.getViewport();return M.setState({panZoom:B.current,transform:[ee,q,F],domNode:A.current.closest(".react-flow")}),()=>{var z;(z=B.current)==null||z.destroy()}}},[]),I.useEffect(()=>{var ee;(ee=B.current)==null||ee.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:a,panOnScrollSpeed:l,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:R,preventScrolling:v,noPanClassName:S,userSelectionActive:H,noWheelClassName:E,lib:L,onTransformChange:U,connectionInProgress:V,selectionOnDrag:T,paneClickDistance:k})},[e,t,n,a,l,o,s,c,R,v,S,H,E,L,U,V,T,k]),y.jsx("div",{className:"react-flow__renderer",ref:A,style:qc,children:w})}const U5=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function V5(){const{userSelectionActive:e,userSelectionRect:t}=Ye(U5,mt);return e&&t?y.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const Ah=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},P5=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function G5({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Fo.Full,panOnDrag:a,paneClickDistance:l,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:d,onPaneContextMenu:f,onPaneScroll:m,onPaneMouseEnter:p,onPaneMouseMove:g,onPaneMouseLeave:v,children:w}){const E=gt(),{userSelectionActive:S,elementsSelectable:_,dragging:N,connectionInProgress:k}=Ye(P5,mt),T=_&&(e||S),M=I.useRef(null),A=I.useRef(),H=I.useRef(new Set),L=I.useRef(new Set),V=I.useRef(!1),R=Q=>{if(V.current||k){V.current=!1;return}d==null||d(Q),E.getState().resetSelectedElements(),E.setState({nodesSelectionActive:!1})},B=Q=>{if(Array.isArray(a)&&(a!=null&&a.includes(2))){Q.preventDefault();return}f==null||f(Q)},U=m?Q=>m(Q):void 0,ee=Q=>{V.current&&(Q.stopPropagation(),V.current=!1)},q=Q=>{var X,J;const{domNode:K}=E.getState();if(A.current=K==null?void 0:K.getBoundingClientRect(),!A.current)return;const D=Q.target===M.current;if(!D&&!!Q.target.closest(".nokey")||!e||!(o&&D||t)||Q.button!==0||!Q.isPrimary)return;(J=(X=Q.target)==null?void 0:X.setPointerCapture)==null||J.call(X,Q.pointerId),V.current=!1;const{x:C,y:P}=Pn(Q.nativeEvent,A.current);E.setState({userSelectionRect:{width:0,height:0,startX:C,startY:P,x:C,y:P}}),D||(Q.stopPropagation(),Q.preventDefault())},F=Q=>{const{userSelectionRect:K,transform:D,nodeLookup:$,edgeLookup:Y,connectionLookup:C,triggerNodeChanges:P,triggerEdgeChanges:X,defaultEdgeOptions:J,resetSelectedElements:ne}=E.getState();if(!A.current||!K)return;const{x:re,y:ue}=Pn(Q.nativeEvent,A.current),{startX:xe,startY:be}=K;if(!V.current){const Ae=t?0:l;if(Math.hypot(re-xe,ue-be)<=Ae)return;ne(),s==null||s(Q)}V.current=!0;const ye={startX:xe,startY:be,x:reAe.id)),L.current=new Set;const Oe=(J==null?void 0:J.selectable)??!0;for(const Ae of H.current){const ft=C.get(Ae);if(ft)for(const{edgeId:rt}of ft.values()){const Dt=Y.get(rt);Dt&&(Dt.selectable??Oe)&&L.current.add(rt)}}if(!Lv(pe,H.current)){const Ae=ul($,H.current,!0);P(Ae)}if(!Lv(Se,L.current)){const Ae=ul(Y,L.current);X(Ae)}E.setState({userSelectionRect:ye,userSelectionActive:!0,nodesSelectionActive:!1})},z=Q=>{var K,D;Q.button===0&&((D=(K=Q.target)==null?void 0:K.releasePointerCapture)==null||D.call(K,Q.pointerId),!S&&Q.target===M.current&&E.getState().userSelectionRect&&(R==null||R(Q)),E.setState({userSelectionActive:!1,userSelectionRect:null}),V.current&&(c==null||c(Q),E.setState({nodesSelectionActive:H.current.size>0})))},G=a===!0||Array.isArray(a)&&a.includes(0);return y.jsxs("div",{className:Mt(["react-flow__pane",{draggable:G,dragging:N,selection:e}]),onClick:T?void 0:Ah(R,M),onContextMenu:Ah(B,M),onWheel:Ah(U,M),onPointerEnter:T?void 0:p,onPointerMove:T?F:g,onPointerUp:T?z:void 0,onPointerDownCapture:T?q:void 0,onClickCapture:T?ee:void 0,onPointerLeave:v,ref:M,style:qc,children:[w,y.jsx(V5,{})]})}function lm({id:e,store:t,unselect:n=!1,nodeRef:a}){const{addSelectedNodes:l,unselectNodesAndEdges:o,multiSelectionActive:s,nodeLookup:c,onError:d}=t.getState(),f=c.get(e);if(!f){d==null||d("012",lr.error012(e));return}t.setState({nodesSelectionActive:!1}),f.selected?(n||f.selected&&s)&&(o({nodes:[f],edges:[]}),requestAnimationFrame(()=>{var m;return(m=a==null?void 0:a.current)==null?void 0:m.blur()})):l([e])}function lS({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:a,nodeId:l,isSelectable:o,nodeClickDistance:s}){const c=gt(),[d,f]=I.useState(!1),m=I.useRef();return I.useEffect(()=>{m.current=zA({getStoreItems:()=>c.getState(),onNodeMouseDown:p=>{lm({id:p,store:c,nodeRef:e})},onDragStart:()=>{f(!0)},onDragStop:()=>{f(!1)}})},[]),I.useEffect(()=>{if(!(t||!e.current||!m.current))return m.current.update({noDragClassName:n,handleSelector:a,domNode:e.current,isSelectable:o,nodeId:l,nodeClickDistance:s}),()=>{var p;(p=m.current)==null||p.destroy()}},[n,a,t,o,e,l,s]),d}const F5=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function oS(){const e=gt();return I.useCallback(n=>{const{nodeExtent:a,snapToGrid:l,snapGrid:o,nodesDraggable:s,onError:c,updateNodePositions:d,nodeLookup:f,nodeOrigin:m}=e.getState(),p=new Map,g=F5(s),v=l?o[0]:5,w=l?o[1]:5,E=n.direction.x*v*n.factor,S=n.direction.y*w*n.factor;for(const[,_]of f){if(!g(_))continue;let N={x:_.internals.positionAbsolute.x+E,y:_.internals.positionAbsolute.y+S};l&&(N=is(N,o));const{position:k,positionAbsolute:T}=C_({nodeId:_.id,nextPosition:N,nodeLookup:f,nodeExtent:a,nodeOrigin:m,onError:c});_.position=k,_.internals.positionAbsolute=T,p.set(_.id,_)}d(p)},[])}const Um=I.createContext(null),Y5=Um.Provider;Um.Consumer;const sS=()=>I.useContext(Um),X5=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Q5=(e,t,n)=>a=>{const{connectionClickStartHandle:l,connectionMode:o,connection:s}=a,{fromHandle:c,toHandle:d,isValid:f}=s,m=(d==null?void 0:d.nodeId)===e&&(d==null?void 0:d.id)===t&&(d==null?void 0:d.type)===n;return{connectingFrom:(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.id)===t&&(c==null?void 0:c.type)===n,connectingTo:m,clickConnecting:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n,isPossibleEndHandle:o===yl.Strict?(c==null?void 0:c.type)!==n:e!==(c==null?void 0:c.nodeId)||t!==(c==null?void 0:c.id),connectionInProcess:!!c,clickConnectionInProcess:!!l,valid:m&&f}};function Z5({type:e="source",position:t=ve.Top,isValidConnection:n,isConnectable:a=!0,isConnectableStart:l=!0,isConnectableEnd:o=!0,id:s,onConnect:c,children:d,className:f,onMouseDown:m,onTouchStart:p,...g},v){var F,z;const w=s||null,E=e==="target",S=gt(),_=sS(),{connectOnClick:N,noPanClassName:k,rfId:T}=Ye(X5,mt),{connectingFrom:M,connectingTo:A,clickConnecting:H,isPossibleEndHandle:L,connectionInProcess:V,clickConnectionInProcess:R,valid:B}=Ye(Q5(_,w,e),mt);_||(z=(F=S.getState()).onError)==null||z.call(F,"010",lr.error010());const U=G=>{const{defaultEdgeOptions:Q,onConnect:K,hasDefaultEdges:D}=S.getState(),$={...Q,...G};if(D){const{edges:Y,setEdges:C}=S.getState();C(mA($,Y))}K==null||K($),c==null||c($)},ee=G=>{if(!_)return;const Q=O_(G.nativeEvent);if(l&&(Q&&G.button===0||!Q)){const K=S.getState();am.onPointerDown(G.nativeEvent,{handleDomNode:G.currentTarget,autoPanOnConnect:K.autoPanOnConnect,connectionMode:K.connectionMode,connectionRadius:K.connectionRadius,domNode:K.domNode,nodeLookup:K.nodeLookup,lib:K.lib,isTarget:E,handleId:w,nodeId:_,flowId:K.rfId,panBy:K.panBy,cancelConnection:K.cancelConnection,onConnectStart:K.onConnectStart,onConnectEnd:(...D)=>{var $,Y;return(Y=($=S.getState()).onConnectEnd)==null?void 0:Y.call($,...D)},updateConnection:K.updateConnection,onConnect:U,isValidConnection:n||((...D)=>{var $,Y;return((Y=($=S.getState()).isValidConnection)==null?void 0:Y.call($,...D))??!0}),getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:K.autoPanSpeed,dragThreshold:K.connectionDragThreshold})}Q?m==null||m(G):p==null||p(G)},q=G=>{const{onClickConnectStart:Q,onClickConnectEnd:K,connectionClickStartHandle:D,connectionMode:$,isValidConnection:Y,lib:C,rfId:P,nodeLookup:X,connection:J}=S.getState();if(!_||!D&&!l)return;if(!D){Q==null||Q(G.nativeEvent,{nodeId:_,handleId:w,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:_,type:e,id:w}});return}const ne=D_(G.target),re=n||Y,{connection:ue,isValid:xe}=am.isValid(G.nativeEvent,{handle:{nodeId:_,id:w,type:e},connectionMode:$,fromNodeId:D.nodeId,fromHandleId:D.id||null,fromType:D.type,isValidConnection:re,flowId:P,doc:ne,lib:C,nodeLookup:X});xe&&ue&&U(ue);const be=structuredClone(J);delete be.inProgress,be.toPosition=be.toHandle?be.toHandle.position:null,K==null||K(G,be),S.setState({connectionClickStartHandle:null})};return y.jsx("div",{"data-handleid":w,"data-nodeid":_,"data-handlepos":t,"data-id":`${T}-${_}-${w}-${e}`,className:Mt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",k,f,{source:!E,target:E,connectable:a,connectablestart:l,connectableend:o,clickconnecting:H,connectingfrom:M,connectingto:A,valid:B,connectionindicator:a&&(!V||L)&&(V||R?o:l)}]),onMouseDown:ee,onTouchStart:ee,onClick:N?q:void 0,ref:v,...g,children:d})}const xt=I.memo(iS(Z5));function K5({data:e,isConnectable:t,sourcePosition:n=ve.Bottom}){return y.jsxs(y.Fragment,{children:[e==null?void 0:e.label,y.jsx(xt,{type:"source",position:n,isConnectable:t})]})}function J5({data:e,isConnectable:t,targetPosition:n=ve.Top,sourcePosition:a=ve.Bottom}){return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,y.jsx(xt,{type:"source",position:a,isConnectable:t})]})}function W5(){return null}function ez({data:e,isConnectable:t,targetPosition:n=ve.Top}){return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const yc={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},db={input:K5,default:J5,output:ez,group:W5};function tz(e){var t,n,a,l;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((a=e.style)==null?void 0:a.width),height:e.height??((l=e.style)==null?void 0:l.height)}}const nz=e=>{const{width:t,height:n,x:a,y:l}=rs(e.nodeLookup,{filter:o=>!!o.selected});return{width:Vn(t)?t:null,height:Vn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${a}px,${l}px)`}};function rz({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const a=gt(),{width:l,height:o,transformString:s,userSelectionActive:c}=Ye(nz,mt),d=oS(),f=I.useRef(null);I.useEffect(()=>{var v;n||(v=f.current)==null||v.focus({preventScroll:!0})},[n]);const m=!c&&l!==null&&o!==null;if(lS({nodeRef:f,disabled:!m}),!m)return null;const p=e?v=>{const w=a.getState().nodes.filter(E=>E.selected);e(v,w)}:void 0,g=v=>{Object.prototype.hasOwnProperty.call(yc,v.key)&&(v.preventDefault(),d({direction:yc[v.key],factor:v.shiftKey?4:1}))};return y.jsx("div",{className:Mt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:y.jsx("div",{ref:f,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:l,height:o}})})}const hb=typeof window<"u"?window:void 0,iz=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function uS({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:a,onPaneMouseLeave:l,onPaneContextMenu:o,onPaneScroll:s,paneClickDistance:c,deleteKeyCode:d,selectionKeyCode:f,selectionOnDrag:m,selectionMode:p,onSelectionStart:g,onSelectionEnd:v,multiSelectionKeyCode:w,panActivationKeyCode:E,zoomActivationKeyCode:S,elementsSelectable:_,zoomOnScroll:N,zoomOnPinch:k,panOnScroll:T,panOnScrollSpeed:M,panOnScrollMode:A,zoomOnDoubleClick:H,panOnDrag:L,defaultViewport:V,translateExtent:R,minZoom:B,maxZoom:U,preventScrolling:ee,onSelectionContextMenu:q,noWheelClassName:F,noPanClassName:z,disableKeyboardA11y:G,onViewportChange:Q,isControlledViewport:K}){const{nodesSelectionActive:D,userSelectionActive:$}=Ye(iz,mt),Y=Qo(f,{target:hb}),C=Qo(E,{target:hb}),P=C||L,X=C||T,J=m&&P!==!0,ne=Y||$||J;return B5({deleteKeyCode:d,multiSelectionKeyCode:w}),y.jsx($5,{onPaneContextMenu:o,elementsSelectable:_,zoomOnScroll:N,zoomOnPinch:k,panOnScroll:X,panOnScrollSpeed:M,panOnScrollMode:A,zoomOnDoubleClick:H,panOnDrag:!Y&&P,defaultViewport:V,translateExtent:R,minZoom:B,maxZoom:U,zoomActivationKeyCode:S,preventScrolling:ee,noWheelClassName:F,noPanClassName:z,onViewportChange:Q,isControlledViewport:K,paneClickDistance:c,selectionOnDrag:J,children:y.jsxs(G5,{onSelectionStart:g,onSelectionEnd:v,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:a,onPaneMouseLeave:l,onPaneContextMenu:o,onPaneScroll:s,panOnDrag:P,isSelecting:!!ne,selectionMode:p,selectionKeyPressed:Y,paneClickDistance:c,selectionOnDrag:J,children:[e,D&&y.jsx(rz,{onSelectionContextMenu:q,noPanClassName:z,disableKeyboardA11y:G})]})})}uS.displayName="FlowRenderer";const az=I.memo(uS),lz=e=>t=>e?Dm(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function oz(e){return Ye(I.useCallback(lz(e),[e]),mt)}const sz=e=>e.updateNodeInternals;function uz(){const e=Ye(sz),[t]=I.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const a=new Map;n.forEach(l=>{const o=l.target.getAttribute("data-id");a.set(o,{id:o,nodeElement:l.target,force:!0})}),e(a)}));return I.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function cz({node:e,nodeType:t,hasDimensions:n,resizeObserver:a}){const l=gt(),o=I.useRef(null),s=I.useRef(null),c=I.useRef(e.sourcePosition),d=I.useRef(e.targetPosition),f=I.useRef(t),m=n&&!!e.internals.handleBounds;return I.useEffect(()=>{o.current&&!e.hidden&&(!m||s.current!==o.current)&&(s.current&&(a==null||a.unobserve(s.current)),a==null||a.observe(o.current),s.current=o.current)},[m,e.hidden]),I.useEffect(()=>()=>{s.current&&(a==null||a.unobserve(s.current),s.current=null)},[]),I.useEffect(()=>{if(o.current){const p=f.current!==t,g=c.current!==e.sourcePosition,v=d.current!==e.targetPosition;(p||g||v)&&(f.current=t,c.current=e.sourcePosition,d.current=e.targetPosition,l.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function fz({id:e,onClick:t,onMouseEnter:n,onMouseMove:a,onMouseLeave:l,onContextMenu:o,onDoubleClick:s,nodesDraggable:c,elementsSelectable:d,nodesConnectable:f,nodesFocusable:m,resizeObserver:p,noDragClassName:g,noPanClassName:v,disableKeyboardA11y:w,rfId:E,nodeTypes:S,nodeClickDistance:_,onError:N}){const{node:k,internals:T,isParent:M}=Ye(re=>{const ue=re.nodeLookup.get(e),xe=re.parentLookup.has(e);return{node:ue,internals:ue.internals,isParent:xe}},mt);let A=k.type||"default",H=(S==null?void 0:S[A])||db[A];H===void 0&&(N==null||N("003",lr.error003(A)),A="default",H=(S==null?void 0:S.default)||db.default);const L=!!(k.draggable||c&&typeof k.draggable>"u"),V=!!(k.selectable||d&&typeof k.selectable>"u"),R=!!(k.connectable||f&&typeof k.connectable>"u"),B=!!(k.focusable||m&&typeof k.focusable>"u"),U=gt(),ee=z_(k),q=cz({node:k,nodeType:A,hasDimensions:ee,resizeObserver:p}),F=lS({nodeRef:q,disabled:k.hidden||!L,noDragClassName:g,handleSelector:k.dragHandle,nodeId:e,isSelectable:V,nodeClickDistance:_}),z=oS();if(k.hidden)return null;const G=Hr(k),Q=tz(k),K=V||L||t||n||a||l,D=n?re=>n(re,{...T.userNode}):void 0,$=a?re=>a(re,{...T.userNode}):void 0,Y=l?re=>l(re,{...T.userNode}):void 0,C=o?re=>o(re,{...T.userNode}):void 0,P=s?re=>s(re,{...T.userNode}):void 0,X=re=>{const{selectNodesOnDrag:ue,nodeDragThreshold:xe}=U.getState();V&&(!ue||!L||xe>0)&&lm({id:e,store:U,nodeRef:q}),t&&t(re,{...T.userNode})},J=re=>{if(!(R_(re.nativeEvent)||w)){if(__.includes(re.key)&&V){const ue=re.key==="Escape";lm({id:e,store:U,unselect:ue,nodeRef:q})}else if(L&&k.selected&&Object.prototype.hasOwnProperty.call(yc,re.key)){re.preventDefault();const{ariaLabelConfig:ue}=U.getState();U.setState({ariaLiveMessage:ue["node.a11yDescription.ariaLiveMessage"]({direction:re.key.replace("Arrow","").toLowerCase(),x:~~T.positionAbsolute.x,y:~~T.positionAbsolute.y})}),z({direction:yc[re.key],factor:re.shiftKey?4:1})}}},ne=()=>{var Se;if(w||!((Se=q.current)!=null&&Se.matches(":focus-visible")))return;const{transform:re,width:ue,height:xe,autoPanOnNodeFocus:be,setCenter:ye}=U.getState();if(!be)return;Dm(new Map([[e,k]]),{x:0,y:0,width:ue,height:xe},re,!0).length>0||ye(k.position.x+G.width/2,k.position.y+G.height/2,{zoom:re[2]})};return y.jsx("div",{className:Mt(["react-flow__node",`react-flow__node-${A}`,{[v]:L},k.className,{selected:k.selected,selectable:V,parent:M,draggable:L,dragging:F}]),ref:q,style:{zIndex:T.z,transform:`translate(${T.positionAbsolute.x}px,${T.positionAbsolute.y}px)`,pointerEvents:K?"all":"none",visibility:ee?"visible":"hidden",...k.style,...Q},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:D,onMouseMove:$,onMouseLeave:Y,onContextMenu:C,onClick:X,onDoubleClick:P,onKeyDown:B?J:void 0,tabIndex:B?0:void 0,onFocus:B?ne:void 0,role:k.ariaRole??(B?"group":void 0),"aria-roledescription":"node","aria-describedby":w?void 0:`${J_}-${E}`,"aria-label":k.ariaLabel,...k.domAttributes,children:y.jsx(Y5,{value:e,children:y.jsx(H,{id:e,data:k.data,type:A,positionAbsoluteX:T.positionAbsolute.x,positionAbsoluteY:T.positionAbsolute.y,selected:k.selected??!1,selectable:V,draggable:L,deletable:k.deletable??!0,isConnectable:R,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:F,dragHandle:k.dragHandle,zIndex:T.z,parentId:k.parentId,...G})})})}var dz=I.memo(fz);const hz=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function cS(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:a,elementsSelectable:l,onError:o}=Ye(hz,mt),s=oz(e.onlyRenderVisibleElements),c=uz();return y.jsx("div",{className:"react-flow__nodes",style:qc,children:s.map(d=>y.jsx(dz,{id:d,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t,nodesConnectable:n,nodesFocusable:a,elementsSelectable:l,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}cS.displayName="NodeRenderer";const pz=I.memo(cS);function mz(e){return Ye(I.useCallback(n=>{if(!e)return n.edges.map(l=>l.id);const a=[];if(n.width&&n.height)for(const l of n.edges){const o=n.nodeLookup.get(l.source),s=n.nodeLookup.get(l.target);o&&s&&dA({sourceNode:o,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&a.push(l.id)}return a},[e]),mt)}const gz=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return y.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},xz=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return y.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},pb={[mc.Arrow]:gz,[mc.ArrowClosed]:xz};function yz(e){const t=gt();return I.useMemo(()=>{var l,o;return Object.prototype.hasOwnProperty.call(pb,e)?pb[e]:((o=(l=t.getState()).onError)==null||o.call(l,"009",lr.error009(e)),null)},[e])}const vz=({id:e,type:t,color:n,width:a=12.5,height:l=12.5,markerUnits:o="strokeWidth",strokeWidth:s,orient:c="auto-start-reverse"})=>{const d=yz(t);return d?y.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${a}`,markerHeight:`${l}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:c,refX:"0",refY:"0",children:y.jsx(d,{color:n,strokeWidth:s})}):null},fS=({defaultColor:e,rfId:t})=>{const n=Ye(o=>o.edges),a=Ye(o=>o.defaultEdgeOptions),l=I.useMemo(()=>bA(n,{id:t,defaultColor:e,defaultMarkerStart:a==null?void 0:a.markerStart,defaultMarkerEnd:a==null?void 0:a.markerEnd}),[n,a,t,e]);return l.length?y.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:y.jsx("defs",{children:l.map(o=>y.jsx(vz,{id:o.id,type:o.type,color:o.color,width:o.width,height:o.height,markerUnits:o.markerUnits,strokeWidth:o.strokeWidth,orient:o.orient},o.id))})}):null};fS.displayName="MarkerDefinitions";var bz=I.memo(fS);function dS({x:e,y:t,label:n,labelStyle:a,labelShowBg:l=!0,labelBgStyle:o,labelBgPadding:s=[2,4],labelBgBorderRadius:c=2,children:d,className:f,...m}){const[p,g]=I.useState({x:1,y:0,width:0,height:0}),v=Mt(["react-flow__edge-textwrapper",f]),w=I.useRef(null);return I.useEffect(()=>{if(w.current){const E=w.current.getBBox();g({x:E.x,y:E.y,width:E.width,height:E.height})}},[n]),n?y.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:v,visibility:p.width?"visible":"hidden",...m,children:[l&&y.jsx("rect",{width:p.width+2*s[0],x:-s[0],y:-s[1],height:p.height+2*s[1],className:"react-flow__edge-textbg",style:o,rx:c,ry:c}),y.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:w,style:a,children:n}),d]}):null}dS.displayName="EdgeText";const wz=I.memo(dS);function ls({path:e,labelX:t,labelY:n,label:a,labelStyle:l,labelShowBg:o,labelBgStyle:s,labelBgPadding:c,labelBgBorderRadius:d,interactionWidth:f=20,...m}){return y.jsxs(y.Fragment,{children:[y.jsx("path",{...m,d:e,fill:"none",className:Mt(["react-flow__edge-path",m.className])}),f?y.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:f,className:"react-flow__edge-interaction"}):null,a&&Vn(t)&&Vn(n)?y.jsx(wz,{x:t,y:n,label:a,labelStyle:l,labelShowBg:o,labelBgStyle:s,labelBgPadding:c,labelBgBorderRadius:d}):null]})}function mb({pos:e,x1:t,y1:n,x2:a,y2:l}){return e===ve.Left||e===ve.Right?[.5*(t+a),n]:[t,.5*(n+l)]}function hS({sourceX:e,sourceY:t,sourcePosition:n=ve.Bottom,targetX:a,targetY:l,targetPosition:o=ve.Top}){const[s,c]=mb({pos:n,x1:e,y1:t,x2:a,y2:l}),[d,f]=mb({pos:o,x1:a,y1:l,x2:e,y2:t}),[m,p,g,v]=L_({sourceX:e,sourceY:t,targetX:a,targetY:l,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${e},${t} C${s},${c} ${d},${f} ${a},${l}`,m,p,g,v]}function pS(e){return I.memo(({id:t,sourceX:n,sourceY:a,targetX:l,targetY:o,sourcePosition:s,targetPosition:c,label:d,labelStyle:f,labelShowBg:m,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:v,style:w,markerEnd:E,markerStart:S,interactionWidth:_})=>{const[N,k,T]=hS({sourceX:n,sourceY:a,sourcePosition:s,targetX:l,targetY:o,targetPosition:c}),M=e.isInternal?void 0:t;return y.jsx(ls,{id:M,path:N,labelX:k,labelY:T,label:d,labelStyle:f,labelShowBg:m,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:v,style:w,markerEnd:E,markerStart:S,interactionWidth:_})})}const _z=pS({isInternal:!1}),mS=pS({isInternal:!0});_z.displayName="SimpleBezierEdge";mS.displayName="SimpleBezierEdgeInternal";function gS(e){return I.memo(({id:t,sourceX:n,sourceY:a,targetX:l,targetY:o,label:s,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:m,labelBgBorderRadius:p,style:g,sourcePosition:v=ve.Bottom,targetPosition:w=ve.Top,markerEnd:E,markerStart:S,pathOptions:_,interactionWidth:N})=>{const[k,T,M]=nm({sourceX:n,sourceY:a,sourcePosition:v,targetX:l,targetY:o,targetPosition:w,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset,stepPosition:_==null?void 0:_.stepPosition}),A=e.isInternal?void 0:t;return y.jsx(ls,{id:A,path:k,labelX:T,labelY:M,label:s,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:m,labelBgBorderRadius:p,style:g,markerEnd:E,markerStart:S,interactionWidth:N})})}const xS=gS({isInternal:!1}),yS=gS({isInternal:!0});xS.displayName="SmoothStepEdge";yS.displayName="SmoothStepEdgeInternal";function vS(e){return I.memo(({id:t,...n})=>{var l;const a=e.isInternal?void 0:t;return y.jsx(xS,{...n,id:a,pathOptions:I.useMemo(()=>{var o;return{borderRadius:0,offset:(o=n.pathOptions)==null?void 0:o.offset}},[(l=n.pathOptions)==null?void 0:l.offset])})})}const Sz=vS({isInternal:!1}),bS=vS({isInternal:!0});Sz.displayName="StepEdge";bS.displayName="StepEdgeInternal";function wS(e){return I.memo(({id:t,sourceX:n,sourceY:a,targetX:l,targetY:o,label:s,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:m,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:w,interactionWidth:E})=>{const[S,_,N]=B_({sourceX:n,sourceY:a,targetX:l,targetY:o}),k=e.isInternal?void 0:t;return y.jsx(ls,{id:k,path:S,labelX:_,labelY:N,label:s,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:m,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:w,interactionWidth:E})})}const kz=wS({isInternal:!1}),_S=wS({isInternal:!0});kz.displayName="StraightEdge";_S.displayName="StraightEdgeInternal";function SS(e){return I.memo(({id:t,sourceX:n,sourceY:a,targetX:l,targetY:o,sourcePosition:s=ve.Bottom,targetPosition:c=ve.Top,label:d,labelStyle:f,labelShowBg:m,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:v,style:w,markerEnd:E,markerStart:S,pathOptions:_,interactionWidth:N})=>{const[k,T,M]=Lm({sourceX:n,sourceY:a,sourcePosition:s,targetX:l,targetY:o,targetPosition:c,curvature:_==null?void 0:_.curvature}),A=e.isInternal?void 0:t;return y.jsx(ls,{id:A,path:k,labelX:T,labelY:M,label:d,labelStyle:f,labelShowBg:m,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:v,style:w,markerEnd:E,markerStart:S,interactionWidth:N})})}const Ez=SS({isInternal:!1}),kS=SS({isInternal:!0});Ez.displayName="BezierEdge";kS.displayName="BezierEdgeInternal";const gb={default:kS,straight:_S,step:bS,smoothstep:yS,simplebezier:mS},xb={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Nz=(e,t,n)=>n===ve.Left?e-t:n===ve.Right?e+t:e,Cz=(e,t,n)=>n===ve.Top?e-t:n===ve.Bottom?e+t:e,yb="react-flow__edgeupdater";function vb({position:e,centerX:t,centerY:n,radius:a=10,onMouseDown:l,onMouseEnter:o,onMouseOut:s,type:c}){return y.jsx("circle",{onMouseDown:l,onMouseEnter:o,onMouseOut:s,className:Mt([yb,`${yb}-${c}`]),cx:Nz(t,a,e),cy:Cz(n,a,e),r:a,stroke:"transparent",fill:"transparent"})}function jz({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:a,sourceY:l,targetX:o,targetY:s,sourcePosition:c,targetPosition:d,onReconnect:f,onReconnectStart:m,onReconnectEnd:p,setReconnecting:g,setUpdateHover:v}){const w=gt(),E=(T,M)=>{if(T.button!==0)return;const{autoPanOnConnect:A,domNode:H,connectionMode:L,connectionRadius:V,lib:R,onConnectStart:B,cancelConnection:U,nodeLookup:ee,rfId:q,panBy:F,updateConnection:z}=w.getState(),G=M.type==="target",Q=($,Y)=>{g(!1),p==null||p($,n,M.type,Y)},K=$=>f==null?void 0:f(n,$),D=($,Y)=>{g(!0),m==null||m(T,n,M.type),B==null||B($,Y)};am.onPointerDown(T.nativeEvent,{autoPanOnConnect:A,connectionMode:L,connectionRadius:V,domNode:H,handleId:M.id,nodeId:M.nodeId,nodeLookup:ee,isTarget:G,edgeUpdaterType:M.type,lib:R,flowId:q,cancelConnection:U,panBy:F,isValidConnection:(...$)=>{var Y,C;return((C=(Y=w.getState()).isValidConnection)==null?void 0:C.call(Y,...$))??!0},onConnect:K,onConnectStart:D,onConnectEnd:(...$)=>{var Y,C;return(C=(Y=w.getState()).onConnectEnd)==null?void 0:C.call(Y,...$)},onReconnectEnd:Q,updateConnection:z,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,dragThreshold:w.getState().connectionDragThreshold,handleDomNode:T.currentTarget})},S=T=>E(T,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),_=T=>E(T,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),N=()=>v(!0),k=()=>v(!1);return y.jsxs(y.Fragment,{children:[(e===!0||e==="source")&&y.jsx(vb,{position:c,centerX:a,centerY:l,radius:t,onMouseDown:S,onMouseEnter:N,onMouseOut:k,type:"source"}),(e===!0||e==="target")&&y.jsx(vb,{position:d,centerX:o,centerY:s,radius:t,onMouseDown:_,onMouseEnter:N,onMouseOut:k,type:"target"})]})}function Tz({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:a,onClick:l,onDoubleClick:o,onContextMenu:s,onMouseEnter:c,onMouseMove:d,onMouseLeave:f,reconnectRadius:m,onReconnect:p,onReconnectStart:g,onReconnectEnd:v,rfId:w,edgeTypes:E,noPanClassName:S,onError:_,disableKeyboardA11y:N}){let k=Ye(ye=>ye.edgeLookup.get(e));const T=Ye(ye=>ye.defaultEdgeOptions);k=T?{...T,...k}:k;let M=k.type||"default",A=(E==null?void 0:E[M])||gb[M];A===void 0&&(_==null||_("011",lr.error011(M)),M="default",A=(E==null?void 0:E.default)||gb.default);const H=!!(k.focusable||t&&typeof k.focusable>"u"),L=typeof p<"u"&&(k.reconnectable||n&&typeof k.reconnectable>"u"),V=!!(k.selectable||a&&typeof k.selectable>"u"),R=I.useRef(null),[B,U]=I.useState(!1),[ee,q]=I.useState(!1),F=gt(),{zIndex:z,sourceX:G,sourceY:Q,targetX:K,targetY:D,sourcePosition:$,targetPosition:Y}=Ye(I.useCallback(ye=>{const pe=ye.nodeLookup.get(k.source),Se=ye.nodeLookup.get(k.target);if(!pe||!Se)return{zIndex:k.zIndex,...xb};const Oe=vA({id:e,sourceNode:pe,targetNode:Se,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:ye.connectionMode,onError:_});return{zIndex:fA({selected:k.selected,zIndex:k.zIndex,sourceNode:pe,targetNode:Se,elevateOnSelect:ye.elevateEdgesOnSelect,zIndexMode:ye.zIndexMode}),...Oe||xb}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex]),mt),C=I.useMemo(()=>k.markerStart?`url('#${rm(k.markerStart,w)}')`:void 0,[k.markerStart,w]),P=I.useMemo(()=>k.markerEnd?`url('#${rm(k.markerEnd,w)}')`:void 0,[k.markerEnd,w]);if(k.hidden||G===null||Q===null||K===null||D===null)return null;const X=ye=>{var Ae;const{addSelectedEdges:pe,unselectNodesAndEdges:Se,multiSelectionActive:Oe}=F.getState();V&&(F.setState({nodesSelectionActive:!1}),k.selected&&Oe?(Se({nodes:[],edges:[k]}),(Ae=R.current)==null||Ae.blur()):pe([e])),l&&l(ye,k)},J=o?ye=>{o(ye,{...k})}:void 0,ne=s?ye=>{s(ye,{...k})}:void 0,re=c?ye=>{c(ye,{...k})}:void 0,ue=d?ye=>{d(ye,{...k})}:void 0,xe=f?ye=>{f(ye,{...k})}:void 0,be=ye=>{var pe;if(!N&&__.includes(ye.key)&&V){const{unselectNodesAndEdges:Se,addSelectedEdges:Oe}=F.getState();ye.key==="Escape"?((pe=R.current)==null||pe.blur(),Se({edges:[k]})):Oe([e])}};return y.jsx("svg",{style:{zIndex:z},children:y.jsxs("g",{className:Mt(["react-flow__edge",`react-flow__edge-${M}`,k.className,S,{selected:k.selected,animated:k.animated,inactive:!V&&!l,updating:B,selectable:V}]),onClick:X,onDoubleClick:J,onContextMenu:ne,onMouseEnter:re,onMouseMove:ue,onMouseLeave:xe,onKeyDown:H?be:void 0,tabIndex:H?0:void 0,role:k.ariaRole??(H?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":k.ariaLabel===null?void 0:k.ariaLabel||`Edge from ${k.source} to ${k.target}`,"aria-describedby":H?`${W_}-${w}`:void 0,ref:R,...k.domAttributes,children:[!ee&&y.jsx(A,{id:e,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:V,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:G,sourceY:Q,targetX:K,targetY:D,sourcePosition:$,targetPosition:Y,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:C,markerEnd:P,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),L&&y.jsx(jz,{edge:k,isReconnectable:L,reconnectRadius:m,onReconnect:p,onReconnectStart:g,onReconnectEnd:v,sourceX:G,sourceY:Q,targetX:K,targetY:D,sourcePosition:$,targetPosition:Y,setUpdateHover:U,setReconnecting:q})]})})}var Az=I.memo(Tz);const zz=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ES({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:a,noPanClassName:l,onReconnect:o,onEdgeContextMenu:s,onEdgeMouseEnter:c,onEdgeMouseMove:d,onEdgeMouseLeave:f,onEdgeClick:m,reconnectRadius:p,onEdgeDoubleClick:g,onReconnectStart:v,onReconnectEnd:w,disableKeyboardA11y:E}){const{edgesFocusable:S,edgesReconnectable:_,elementsSelectable:N,onError:k}=Ye(zz,mt),T=mz(t);return y.jsxs("div",{className:"react-flow__edges",children:[y.jsx(bz,{defaultColor:e,rfId:n}),T.map(M=>y.jsx(Az,{id:M,edgesFocusable:S,edgesReconnectable:_,elementsSelectable:N,noPanClassName:l,onReconnect:o,onContextMenu:s,onMouseEnter:c,onMouseMove:d,onMouseLeave:f,onClick:m,reconnectRadius:p,onDoubleClick:g,onReconnectStart:v,onReconnectEnd:w,rfId:n,onError:k,edgeTypes:a,disableKeyboardA11y:E},M))]})}ES.displayName="EdgeRenderer";const Mz=I.memo(ES),Dz=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Rz({children:e}){const t=Ye(Dz);return y.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Oz(e){const t=fa(),n=I.useRef(!1);I.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Lz=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function Hz(e){const t=Ye(Lz),n=gt();return I.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Bz(e){return e.connection.inProgress?{...e.connection,to:as(e.connection.to,e.transform)}:{...e.connection}}function Iz(e){return Bz}function qz(e){const t=Iz();return Ye(t,mt)}const $z=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Uz({containerStyle:e,style:t,type:n,component:a}){const{nodesConnectable:l,width:o,height:s,isValid:c,inProgress:d}=Ye($z,mt);return!(o&&l&&d)?null:y.jsx("svg",{style:e,width:o,height:s,className:"react-flow__connectionline react-flow__container",children:y.jsx("g",{className:Mt(["react-flow__connection",E_(c)]),children:y.jsx(NS,{style:t,type:n,CustomComponent:a,isValid:c})})})}const NS=({style:e,type:t=wi.Bezier,CustomComponent:n,isValid:a})=>{const{inProgress:l,from:o,fromNode:s,fromHandle:c,fromPosition:d,to:f,toNode:m,toHandle:p,toPosition:g,pointer:v}=qz();if(!l)return;if(n)return y.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:c,fromX:o.x,fromY:o.y,toX:f.x,toY:f.y,fromPosition:d,toPosition:g,connectionStatus:E_(a),toNode:m,toHandle:p,pointer:v});let w="";const E={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:f.x,targetY:f.y,targetPosition:g};switch(t){case wi.Bezier:[w]=Lm(E);break;case wi.SimpleBezier:[w]=hS(E);break;case wi.Step:[w]=nm({...E,borderRadius:0});break;case wi.SmoothStep:[w]=nm(E);break;default:[w]=B_(E)}return y.jsx("path",{d:w,fill:"none",className:"react-flow__connection-path",style:e})};NS.displayName="ConnectionLine";const Vz={};function bb(e=Vz){I.useRef(e),gt(),I.useEffect(()=>{},[e])}function Pz(){gt(),I.useRef(!1),I.useEffect(()=>{},[])}function CS({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:a,onEdgeClick:l,onNodeDoubleClick:o,onEdgeDoubleClick:s,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:m,onSelectionContextMenu:p,onSelectionStart:g,onSelectionEnd:v,connectionLineType:w,connectionLineStyle:E,connectionLineComponent:S,connectionLineContainerStyle:_,selectionKeyCode:N,selectionOnDrag:k,selectionMode:T,multiSelectionKeyCode:M,panActivationKeyCode:A,zoomActivationKeyCode:H,deleteKeyCode:L,onlyRenderVisibleElements:V,elementsSelectable:R,defaultViewport:B,translateExtent:U,minZoom:ee,maxZoom:q,preventScrolling:F,defaultMarkerColor:z,zoomOnScroll:G,zoomOnPinch:Q,panOnScroll:K,panOnScrollSpeed:D,panOnScrollMode:$,zoomOnDoubleClick:Y,panOnDrag:C,onPaneClick:P,onPaneMouseEnter:X,onPaneMouseMove:J,onPaneMouseLeave:ne,onPaneScroll:re,onPaneContextMenu:ue,paneClickDistance:xe,nodeClickDistance:be,onEdgeContextMenu:ye,onEdgeMouseEnter:pe,onEdgeMouseMove:Se,onEdgeMouseLeave:Oe,reconnectRadius:Ae,onReconnect:ft,onReconnectStart:rt,onReconnectEnd:Dt,noDragClassName:Pt,noWheelClassName:Bt,noPanClassName:kn,disableKeyboardA11y:On,nodeExtent:Rt,rfId:qr,viewport:ce,onViewportChange:ge}){return bb(e),bb(t),Pz(),Oz(n),Hz(ce),y.jsx(az,{onPaneClick:P,onPaneMouseEnter:X,onPaneMouseMove:J,onPaneMouseLeave:ne,onPaneContextMenu:ue,onPaneScroll:re,paneClickDistance:xe,deleteKeyCode:L,selectionKeyCode:N,selectionOnDrag:k,selectionMode:T,onSelectionStart:g,onSelectionEnd:v,multiSelectionKeyCode:M,panActivationKeyCode:A,zoomActivationKeyCode:H,elementsSelectable:R,zoomOnScroll:G,zoomOnPinch:Q,zoomOnDoubleClick:Y,panOnScroll:K,panOnScrollSpeed:D,panOnScrollMode:$,panOnDrag:C,defaultViewport:B,translateExtent:U,minZoom:ee,maxZoom:q,onSelectionContextMenu:p,preventScrolling:F,noDragClassName:Pt,noWheelClassName:Bt,noPanClassName:kn,disableKeyboardA11y:On,onViewportChange:ge,isControlledViewport:!!ce,children:y.jsxs(Rz,{children:[y.jsx(Mz,{edgeTypes:t,onEdgeClick:l,onEdgeDoubleClick:s,onReconnect:ft,onReconnectStart:rt,onReconnectEnd:Dt,onlyRenderVisibleElements:V,onEdgeContextMenu:ye,onEdgeMouseEnter:pe,onEdgeMouseMove:Se,onEdgeMouseLeave:Oe,reconnectRadius:Ae,defaultMarkerColor:z,noPanClassName:kn,disableKeyboardA11y:On,rfId:qr}),y.jsx(Uz,{style:E,type:w,component:S,containerStyle:_}),y.jsx("div",{className:"react-flow__edgelabel-renderer"}),y.jsx(pz,{nodeTypes:e,onNodeClick:a,onNodeDoubleClick:o,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:m,nodeClickDistance:be,onlyRenderVisibleElements:V,noPanClassName:kn,noDragClassName:Pt,disableKeyboardA11y:On,nodeExtent:Rt,rfId:qr}),y.jsx("div",{className:"react-flow__viewport-portal"})]})})}CS.displayName="GraphView";const Gz=I.memo(CS),wb=({nodes:e,edges:t,defaultNodes:n,defaultEdges:a,width:l,height:o,fitView:s,fitViewOptions:c,minZoom:d=.5,maxZoom:f=2,nodeOrigin:m,nodeExtent:p,zIndexMode:g="basic"}={})=>{const v=new Map,w=new Map,E=new Map,S=new Map,_=a??t??[],N=n??e??[],k=m??[0,0],T=p??Go;$_(E,S,_);const M=im(N,v,w,{nodeOrigin:k,nodeExtent:T,zIndexMode:g});let A=[0,0,1];if(s&&l&&o){const H=rs(v,{filter:B=>!!((B.width||B.initialWidth)&&(B.height||B.initialHeight))}),{x:L,y:V,zoom:R}=Rm(H,l,o,d,f,(c==null?void 0:c.padding)??.1);A=[L,V,R]}return{rfId:"1",width:l??0,height:o??0,transform:A,nodes:N,nodesInitialized:M,nodeLookup:v,parentLookup:w,edges:_,edgeLookup:S,connectionLookup:E,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:a!==void 0,panZoom:null,minZoom:d,maxZoom:f,translateExtent:Go,nodeExtent:T,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:yl.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:k,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:c,fitViewResolver:null,connection:{...k_},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:aA,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:S_,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Fz=({nodes:e,edges:t,defaultNodes:n,defaultEdges:a,width:l,height:o,fitView:s,fitViewOptions:c,minZoom:d,maxZoom:f,nodeOrigin:m,nodeExtent:p,zIndexMode:g})=>u5((v,w)=>{async function E(){const{nodeLookup:S,panZoom:_,fitViewOptions:N,fitViewResolver:k,width:T,height:M,minZoom:A,maxZoom:H}=w();_&&(await rA({nodes:S,width:T,height:M,panZoom:_,minZoom:A,maxZoom:H},N),k==null||k.resolve(!0),v({fitViewResolver:null}))}return{...wb({nodes:e,edges:t,width:l,height:o,fitView:s,fitViewOptions:c,minZoom:d,maxZoom:f,nodeOrigin:m,nodeExtent:p,defaultNodes:n,defaultEdges:a,zIndexMode:g}),setNodes:S=>{const{nodeLookup:_,parentLookup:N,nodeOrigin:k,elevateNodesOnSelect:T,fitViewQueued:M,zIndexMode:A}=w(),H=im(S,_,N,{nodeOrigin:k,nodeExtent:p,elevateNodesOnSelect:T,checkEquality:!0,zIndexMode:A});M&&H?(E(),v({nodes:S,nodesInitialized:H,fitViewQueued:!1,fitViewOptions:void 0})):v({nodes:S,nodesInitialized:H})},setEdges:S=>{const{connectionLookup:_,edgeLookup:N}=w();$_(_,N,S),v({edges:S})},setDefaultNodesAndEdges:(S,_)=>{if(S){const{setNodes:N}=w();N(S),v({hasDefaultNodes:!0})}if(_){const{setEdges:N}=w();N(_),v({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:_,nodeLookup:N,parentLookup:k,domNode:T,nodeOrigin:M,nodeExtent:A,debug:H,fitViewQueued:L,zIndexMode:V}=w(),{changes:R,updatedInternals:B}=CA(S,N,k,T,M,A,V);B&&(SA(N,k,{nodeOrigin:M,nodeExtent:A,zIndexMode:V}),L?(E(),v({fitViewQueued:!1,fitViewOptions:void 0})):v({}),(R==null?void 0:R.length)>0&&(H&&console.log("React Flow: trigger node changes",R),_==null||_(R)))},updateNodePositions:(S,_=!1)=>{const N=[];let k=[];const{nodeLookup:T,triggerNodeChanges:M,connection:A,updateConnection:H,onNodesChangeMiddlewareMap:L}=w();for(const[V,R]of S){const B=T.get(V),U=!!(B!=null&&B.expandParent&&(B!=null&&B.parentId)&&(R!=null&&R.position)),ee={id:V,type:"position",position:U?{x:Math.max(0,R.position.x),y:Math.max(0,R.position.y)}:R.position,dragging:_};if(B&&A.inProgress&&A.fromNode.id===B.id){const q=oa(B,A.fromHandle,ve.Left,!0);H({...A,from:q})}U&&B.parentId&&N.push({id:V,parentId:B.parentId,rect:{...R.internals.positionAbsolute,width:R.measured.width??0,height:R.measured.height??0}}),k.push(ee)}if(N.length>0){const{parentLookup:V,nodeOrigin:R}=w(),B=$m(N,T,V,R);k.push(...B)}for(const V of L.values())k=V(k);M(k)},triggerNodeChanges:S=>{const{onNodesChange:_,setNodes:N,nodes:k,hasDefaultNodes:T,debug:M}=w();if(S!=null&&S.length){if(T){const A=nS(S,k);N(A)}M&&console.log("React Flow: trigger node changes",S),_==null||_(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:_,setEdges:N,edges:k,hasDefaultEdges:T,debug:M}=w();if(S!=null&&S.length){if(T){const A=rS(S,k);N(A)}M&&console.log("React Flow: trigger edge changes",S),_==null||_(S)}},addSelectedNodes:S=>{const{multiSelectionActive:_,edgeLookup:N,nodeLookup:k,triggerNodeChanges:T,triggerEdgeChanges:M}=w();if(_){const A=S.map(H=>Zi(H,!0));T(A);return}T(ul(k,new Set([...S]),!0)),M(ul(N))},addSelectedEdges:S=>{const{multiSelectionActive:_,edgeLookup:N,nodeLookup:k,triggerNodeChanges:T,triggerEdgeChanges:M}=w();if(_){const A=S.map(H=>Zi(H,!0));M(A);return}M(ul(N,new Set([...S]))),T(ul(k,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:_}={})=>{const{edges:N,nodes:k,nodeLookup:T,triggerNodeChanges:M,triggerEdgeChanges:A}=w(),H=S||k,L=_||N,V=[];for(const B of H){if(!B.selected)continue;const U=T.get(B.id);U&&(U.selected=!1),V.push(Zi(B.id,!1))}const R=[];for(const B of L)B.selected&&R.push(Zi(B.id,!1));M(V),A(R)},setMinZoom:S=>{const{panZoom:_,maxZoom:N}=w();_==null||_.setScaleExtent([S,N]),v({minZoom:S})},setMaxZoom:S=>{const{panZoom:_,minZoom:N}=w();_==null||_.setScaleExtent([N,S]),v({maxZoom:S})},setTranslateExtent:S=>{var _;(_=w().panZoom)==null||_.setTranslateExtent(S),v({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:_,triggerNodeChanges:N,triggerEdgeChanges:k,elementsSelectable:T}=w();if(!T)return;const M=_.reduce((H,L)=>L.selected?[...H,Zi(L.id,!1)]:H,[]),A=S.reduce((H,L)=>L.selected?[...H,Zi(L.id,!1)]:H,[]);N(M),k(A)},setNodeExtent:S=>{const{nodes:_,nodeLookup:N,parentLookup:k,nodeOrigin:T,elevateNodesOnSelect:M,nodeExtent:A,zIndexMode:H}=w();S[0][0]===A[0][0]&&S[0][1]===A[0][1]&&S[1][0]===A[1][0]&&S[1][1]===A[1][1]||(im(_,N,k,{nodeOrigin:T,nodeExtent:S,elevateNodesOnSelect:M,checkEquality:!1,zIndexMode:H}),v({nodeExtent:S}))},panBy:S=>{const{transform:_,width:N,height:k,panZoom:T,translateExtent:M}=w();return jA({delta:S,panZoom:T,transform:_,translateExtent:M,width:N,height:k})},setCenter:async(S,_,N)=>{const{width:k,height:T,maxZoom:M,panZoom:A}=w();if(!A)return Promise.resolve(!1);const H=typeof(N==null?void 0:N.zoom)<"u"?N.zoom:M;return await A.setViewport({x:k/2-S*H,y:T/2-_*H,zoom:H},{duration:N==null?void 0:N.duration,ease:N==null?void 0:N.ease,interpolate:N==null?void 0:N.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{v({connection:{...k_}})},updateConnection:S=>{v({connection:S})},reset:()=>v({...wb()})}},Object.is);function Yz({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:a,initialWidth:l,initialHeight:o,initialMinZoom:s,initialMaxZoom:c,initialFitViewOptions:d,fitView:f,nodeOrigin:m,nodeExtent:p,zIndexMode:g,children:v}){const[w]=I.useState(()=>Fz({nodes:e,edges:t,defaultNodes:n,defaultEdges:a,width:l,height:o,fitView:f,minZoom:s,maxZoom:c,fitViewOptions:d,nodeOrigin:m,nodeExtent:p,zIndexMode:g}));return y.jsx(f5,{value:w,children:y.jsx(R5,{children:v})})}function Xz({children:e,nodes:t,edges:n,defaultNodes:a,defaultEdges:l,width:o,height:s,fitView:c,fitViewOptions:d,minZoom:f,maxZoom:m,nodeOrigin:p,nodeExtent:g,zIndexMode:v}){return I.useContext(Bc)?y.jsx(y.Fragment,{children:e}):y.jsx(Yz,{initialNodes:t,initialEdges:n,defaultNodes:a,defaultEdges:l,initialWidth:o,initialHeight:s,fitView:c,initialFitViewOptions:d,initialMinZoom:f,initialMaxZoom:m,nodeOrigin:p,nodeExtent:g,zIndexMode:v,children:e})}const Qz={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Zz({nodes:e,edges:t,defaultNodes:n,defaultEdges:a,className:l,nodeTypes:o,edgeTypes:s,onNodeClick:c,onEdgeClick:d,onInit:f,onMove:m,onMoveStart:p,onMoveEnd:g,onConnect:v,onConnectStart:w,onConnectEnd:E,onClickConnectStart:S,onClickConnectEnd:_,onNodeMouseEnter:N,onNodeMouseMove:k,onNodeMouseLeave:T,onNodeContextMenu:M,onNodeDoubleClick:A,onNodeDragStart:H,onNodeDrag:L,onNodeDragStop:V,onNodesDelete:R,onEdgesDelete:B,onDelete:U,onSelectionChange:ee,onSelectionDragStart:q,onSelectionDrag:F,onSelectionDragStop:z,onSelectionContextMenu:G,onSelectionStart:Q,onSelectionEnd:K,onBeforeDelete:D,connectionMode:$,connectionLineType:Y=wi.Bezier,connectionLineStyle:C,connectionLineComponent:P,connectionLineContainerStyle:X,deleteKeyCode:J="Backspace",selectionKeyCode:ne="Shift",selectionOnDrag:re=!1,selectionMode:ue=Fo.Full,panActivationKeyCode:xe="Space",multiSelectionKeyCode:be=Xo()?"Meta":"Control",zoomActivationKeyCode:ye=Xo()?"Meta":"Control",snapToGrid:pe,snapGrid:Se,onlyRenderVisibleElements:Oe=!1,selectNodesOnDrag:Ae,nodesDraggable:ft,autoPanOnNodeFocus:rt,nodesConnectable:Dt,nodesFocusable:Pt,nodeOrigin:Bt=eS,edgesFocusable:kn,edgesReconnectable:On,elementsSelectable:Rt=!0,defaultViewport:qr=k5,minZoom:ce=.5,maxZoom:ge=2,translateExtent:Ne=Go,preventScrolling:qe=!0,nodeExtent:Xe,defaultMarkerColor:Zt="#b1b1b7",zoomOnScroll:Ln=!0,zoomOnPinch:It=!0,panOnScroll:wt=!1,panOnScrollSpeed:Gt=.5,panOnScrollMode:et=na.Free,zoomOnDoubleClick:Zn=!0,panOnDrag:fn=!0,onPaneClick:Xc,onPaneMouseEnter:pa,onPaneMouseMove:ma,onPaneMouseLeave:ga,onPaneScroll:ur,onPaneContextMenu:xa,paneClickDistance:Ei=1,nodeClickDistance:Qc=0,children:fs,onReconnect:Nl,onReconnectStart:Ni,onReconnectEnd:Zc,onEdgeContextMenu:ds,onEdgeDoubleClick:hs,onEdgeMouseEnter:ps,onEdgeMouseMove:Cl,onEdgeMouseLeave:jl,reconnectRadius:ms=10,onNodesChange:gs,onEdgesChange:Kn,noDragClassName:Ot="nodrag",noWheelClassName:Ft="nowheel",noPanClassName:cr="nopan",fitView:ya,fitViewOptions:xs,connectOnClick:Kc,attributionPosition:ys,proOptions:Ci,defaultEdgeOptions:Tl,elevateNodesOnSelect:$r=!0,elevateEdgesOnSelect:Ur=!1,disableKeyboardA11y:Vr=!1,autoPanOnConnect:Pr,autoPanOnNodeDrag:kt,autoPanSpeed:vs,connectionRadius:bs,isValidConnection:fr,onError:Gr,style:Jc,id:Al,nodeDragThreshold:ws,connectionDragThreshold:Wc,viewport:va,onViewportChange:ba,width:Hn,height:Wt,colorMode:_s="light",debug:ef,onScroll:Fr,ariaLabelConfig:Ss,zIndexMode:ji="basic",...tf},en){const Ti=Al||"1",ks=j5(_s),zl=I.useCallback(dr=>{dr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Fr==null||Fr(dr)},[Fr]);return y.jsx("div",{"data-testid":"rf__wrapper",...tf,onScroll:zl,style:{...Jc,...Qz},ref:en,className:Mt(["react-flow",l,ks]),id:Al,role:"application",children:y.jsxs(Xz,{nodes:e,edges:t,width:Hn,height:Wt,fitView:ya,fitViewOptions:xs,minZoom:ce,maxZoom:ge,nodeOrigin:Bt,nodeExtent:Xe,zIndexMode:ji,children:[y.jsx(Gz,{onInit:f,onNodeClick:c,onEdgeClick:d,onNodeMouseEnter:N,onNodeMouseMove:k,onNodeMouseLeave:T,onNodeContextMenu:M,onNodeDoubleClick:A,nodeTypes:o,edgeTypes:s,connectionLineType:Y,connectionLineStyle:C,connectionLineComponent:P,connectionLineContainerStyle:X,selectionKeyCode:ne,selectionOnDrag:re,selectionMode:ue,deleteKeyCode:J,multiSelectionKeyCode:be,panActivationKeyCode:xe,zoomActivationKeyCode:ye,onlyRenderVisibleElements:Oe,defaultViewport:qr,translateExtent:Ne,minZoom:ce,maxZoom:ge,preventScrolling:qe,zoomOnScroll:Ln,zoomOnPinch:It,zoomOnDoubleClick:Zn,panOnScroll:wt,panOnScrollSpeed:Gt,panOnScrollMode:et,panOnDrag:fn,onPaneClick:Xc,onPaneMouseEnter:pa,onPaneMouseMove:ma,onPaneMouseLeave:ga,onPaneScroll:ur,onPaneContextMenu:xa,paneClickDistance:Ei,nodeClickDistance:Qc,onSelectionContextMenu:G,onSelectionStart:Q,onSelectionEnd:K,onReconnect:Nl,onReconnectStart:Ni,onReconnectEnd:Zc,onEdgeContextMenu:ds,onEdgeDoubleClick:hs,onEdgeMouseEnter:ps,onEdgeMouseMove:Cl,onEdgeMouseLeave:jl,reconnectRadius:ms,defaultMarkerColor:Zt,noDragClassName:Ot,noWheelClassName:Ft,noPanClassName:cr,rfId:Ti,disableKeyboardA11y:Vr,nodeExtent:Xe,viewport:va,onViewportChange:ba}),y.jsx(C5,{nodes:e,edges:t,defaultNodes:n,defaultEdges:a,onConnect:v,onConnectStart:w,onConnectEnd:E,onClickConnectStart:S,onClickConnectEnd:_,nodesDraggable:ft,autoPanOnNodeFocus:rt,nodesConnectable:Dt,nodesFocusable:Pt,edgesFocusable:kn,edgesReconnectable:On,elementsSelectable:Rt,elevateNodesOnSelect:$r,elevateEdgesOnSelect:Ur,minZoom:ce,maxZoom:ge,nodeExtent:Xe,onNodesChange:gs,onEdgesChange:Kn,snapToGrid:pe,snapGrid:Se,connectionMode:$,translateExtent:Ne,connectOnClick:Kc,defaultEdgeOptions:Tl,fitView:ya,fitViewOptions:xs,onNodesDelete:R,onEdgesDelete:B,onDelete:U,onNodeDragStart:H,onNodeDrag:L,onNodeDragStop:V,onSelectionDrag:F,onSelectionDragStart:q,onSelectionDragStop:z,onMove:m,onMoveStart:p,onMoveEnd:g,noPanClassName:cr,nodeOrigin:Bt,rfId:Ti,autoPanOnConnect:Pr,autoPanOnNodeDrag:kt,autoPanSpeed:vs,onError:Gr,connectionRadius:bs,isValidConnection:fr,selectNodesOnDrag:Ae,nodeDragThreshold:ws,connectionDragThreshold:Wc,onBeforeDelete:D,debug:ef,ariaLabelConfig:Ss,zIndexMode:ji}),y.jsx(S5,{onSelectionChange:ee}),fs,y.jsx(y5,{proOptions:Ci,position:ys}),y.jsx(x5,{rfId:Ti,disableKeyboardA11y:Vr})]})})}var Kz=iS(Zz);const Jz=e=>{var t;return(t=e.domNode)==null?void 0:t.querySelector(".react-flow__edgelabel-renderer")};function Wz({children:e}){const t=Ye(Jz);return t?c5.createPortal(e,t):null}function eM(e){const[t,n]=I.useState(e),a=I.useCallback(l=>n(o=>nS(l,o)),[]);return[t,n,a]}function tM(e){const[t,n]=I.useState(e),a=I.useCallback(l=>n(o=>rS(l,o)),[]);return[t,n,a]}function nM({dimensions:e,lineWidth:t,variant:n,className:a}){return y.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Mt(["react-flow__background-pattern",n,a])})}function rM({radius:e,className:t}){return y.jsx("circle",{cx:e,cy:e,r:e,className:Mt(["react-flow__background-pattern","dots",t])})}var Rr;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Rr||(Rr={}));const iM={[Rr.Dots]:1,[Rr.Lines]:1,[Rr.Cross]:6},aM=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function jS({id:e,variant:t=Rr.Dots,gap:n=20,size:a,lineWidth:l=1,offset:o=0,color:s,bgColor:c,style:d,className:f,patternClassName:m}){const p=I.useRef(null),{transform:g,patternId:v}=Ye(aM,mt),w=a||iM[t],E=t===Rr.Dots,S=t===Rr.Cross,_=Array.isArray(n)?n:[n,n],N=[_[0]*g[2]||1,_[1]*g[2]||1],k=w*g[2],T=Array.isArray(o)?o:[o,o],M=S?[k,k]:N,A=[T[0]*g[2]||1+M[0]/2,T[1]*g[2]||1+M[1]/2],H=`${v}${e||""}`;return y.jsxs("svg",{className:Mt(["react-flow__background",f]),style:{...d,...qc,"--xy-background-color-props":c,"--xy-background-pattern-color-props":s},ref:p,"data-testid":"rf__background",children:[y.jsx("pattern",{id:H,x:g[0]%N[0],y:g[1]%N[1],width:N[0],height:N[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${A[0]},-${A[1]})`,children:E?y.jsx(rM,{radius:k/2,className:m}):y.jsx(nM,{dimensions:M,lineWidth:l,variant:t,className:m})}),y.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${H})`})]})}jS.displayName="Background";const lM=I.memo(jS);function oM(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:y.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function sM(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:y.jsx("path",{d:"M0 0h32v4.2H0z"})})}function uM(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:y.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function cM(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:y.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function fM(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:y.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Fu({children:e,className:t,...n}){return y.jsx("button",{type:"button",className:Mt(["react-flow__controls-button",t]),...n,children:e})}const dM=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function TS({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:a=!0,fitViewOptions:l,onZoomIn:o,onZoomOut:s,onFitView:c,onInteractiveChange:d,className:f,children:m,position:p="bottom-left",orientation:g="vertical","aria-label":v}){const w=gt(),{isInteractive:E,minZoomReached:S,maxZoomReached:_,ariaLabelConfig:N}=Ye(dM,mt),{zoomIn:k,zoomOut:T,fitView:M}=fa(),A=()=>{k(),o==null||o()},H=()=>{T(),s==null||s()},L=()=>{M(l),c==null||c()},V=()=>{w.setState({nodesDraggable:!E,nodesConnectable:!E,elementsSelectable:!E}),d==null||d(!E)},R=g==="horizontal"?"horizontal":"vertical";return y.jsxs(Ic,{className:Mt(["react-flow__controls",R,f]),position:p,style:e,"data-testid":"rf__controls","aria-label":v??N["controls.ariaLabel"],children:[t&&y.jsxs(y.Fragment,{children:[y.jsx(Fu,{onClick:A,className:"react-flow__controls-zoomin",title:N["controls.zoomIn.ariaLabel"],"aria-label":N["controls.zoomIn.ariaLabel"],disabled:_,children:y.jsx(oM,{})}),y.jsx(Fu,{onClick:H,className:"react-flow__controls-zoomout",title:N["controls.zoomOut.ariaLabel"],"aria-label":N["controls.zoomOut.ariaLabel"],disabled:S,children:y.jsx(sM,{})})]}),n&&y.jsx(Fu,{className:"react-flow__controls-fitview",onClick:L,title:N["controls.fitView.ariaLabel"],"aria-label":N["controls.fitView.ariaLabel"],children:y.jsx(uM,{})}),a&&y.jsx(Fu,{className:"react-flow__controls-interactive",onClick:V,title:N["controls.interactive.ariaLabel"],"aria-label":N["controls.interactive.ariaLabel"],children:E?y.jsx(fM,{}):y.jsx(cM,{})}),m]})}TS.displayName="Controls";const hM=I.memo(TS);function pM({id:e,x:t,y:n,width:a,height:l,style:o,color:s,strokeColor:c,strokeWidth:d,className:f,borderRadius:m,shapeRendering:p,selected:g,onClick:v}){const{background:w,backgroundColor:E}=o||{},S=s||w||E;return y.jsx("rect",{className:Mt(["react-flow__minimap-node",{selected:g},f]),x:t,y:n,rx:m,ry:m,width:a,height:l,style:{fill:S,stroke:c,strokeWidth:d},shapeRendering:p,onClick:v?_=>v(_,e):void 0})}const mM=I.memo(pM),gM=e=>e.nodes.map(t=>t.id),zh=e=>e instanceof Function?e:()=>e;function xM({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:a=5,nodeStrokeWidth:l,nodeComponent:o=mM,onClick:s}){const c=Ye(gM,mt),d=zh(t),f=zh(e),m=zh(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return y.jsx(y.Fragment,{children:c.map(g=>y.jsx(vM,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:f,nodeClassNameFunc:m,nodeBorderRadius:a,nodeStrokeWidth:l,NodeComponent:o,onClick:s,shapeRendering:p},g))})}function yM({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:a,nodeBorderRadius:l,nodeStrokeWidth:o,shapeRendering:s,NodeComponent:c,onClick:d}){const{node:f,x:m,y:p,width:g,height:v}=Ye(w=>{const E=w.nodeLookup.get(e);if(!E)return{node:void 0,x:0,y:0,width:0,height:0};const S=E.internals.userNode,{x:_,y:N}=E.internals.positionAbsolute,{width:k,height:T}=Hr(S);return{node:S,x:_,y:N,width:k,height:T}},mt);return!f||f.hidden||!z_(f)?null:y.jsx(c,{x:m,y:p,width:g,height:v,style:f.style,selected:!!f.selected,className:a(f),color:t(f),borderRadius:l,strokeColor:n(f),strokeWidth:o,shapeRendering:s,onClick:d,id:f.id})}const vM=I.memo(yM);var bM=I.memo(xM);const wM=200,_M=150,SM=e=>!e.hidden,kM=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?A_(rs(e.nodeLookup,{filter:SM}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},EM="react-flow__minimap-desc";function AS({style:e,className:t,nodeStrokeColor:n,nodeColor:a,nodeClassName:l="",nodeBorderRadius:o=5,nodeStrokeWidth:s,nodeComponent:c,bgColor:d,maskColor:f,maskStrokeColor:m,maskStrokeWidth:p,position:g="bottom-right",onClick:v,onNodeClick:w,pannable:E=!1,zoomable:S=!1,ariaLabel:_,inversePan:N,zoomStep:k=1,offsetScale:T=5}){const M=gt(),A=I.useRef(null),{boundingRect:H,viewBB:L,rfId:V,panZoom:R,translateExtent:B,flowWidth:U,flowHeight:ee,ariaLabelConfig:q}=Ye(kM,mt),F=(e==null?void 0:e.width)??wM,z=(e==null?void 0:e.height)??_M,G=H.width/F,Q=H.height/z,K=Math.max(G,Q),D=K*F,$=K*z,Y=T*K,C=H.x-(D-H.width)/2-Y,P=H.y-($-H.height)/2-Y,X=D+Y*2,J=$+Y*2,ne=`${EM}-${V}`,re=I.useRef(0),ue=I.useRef();re.current=K,I.useEffect(()=>{if(A.current&&R)return ue.current=HA({domNode:A.current,panZoom:R,getTransform:()=>M.getState().transform,getViewScale:()=>re.current}),()=>{var pe;(pe=ue.current)==null||pe.destroy()}},[R]),I.useEffect(()=>{var pe;(pe=ue.current)==null||pe.update({translateExtent:B,width:U,height:ee,inversePan:N,pannable:E,zoomStep:k,zoomable:S})},[E,S,N,k,B,U,ee]);const xe=v?pe=>{var Ae;const[Se,Oe]=((Ae=ue.current)==null?void 0:Ae.pointer(pe))||[0,0];v(pe,{x:Se,y:Oe})}:void 0,be=w?I.useCallback((pe,Se)=>{const Oe=M.getState().nodeLookup.get(Se).internals.userNode;w(pe,Oe)},[]):void 0,ye=_??q["minimap.ariaLabel"];return y.jsx(Ic,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*K:void 0,"--xy-minimap-node-background-color-props":typeof a=="string"?a:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:Mt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:y.jsxs("svg",{width:F,height:z,viewBox:`${C} ${P} ${X} ${J}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ne,ref:A,onClick:xe,children:[ye&&y.jsx("title",{id:ne,children:ye}),y.jsx(bM,{onClick:be,nodeColor:a,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:l,nodeStrokeWidth:s,nodeComponent:c}),y.jsx("path",{className:"react-flow__minimap-mask",d:`M${C-Y},${P-Y}h${X+Y*2}v${J+Y*2}h${-X-Y*2}z + M${L.x},${L.y}h${L.width}v${L.height}h${-L.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}AS.displayName="MiniMap";const NM=I.memo(AS),CM=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,jM={[_l.Line]:"right",[_l.Handle]:"bottom-right"};function TM({nodeId:e,position:t,variant:n=_l.Handle,className:a,style:l=void 0,children:o,color:s,minWidth:c=10,minHeight:d=10,maxWidth:f=Number.MAX_VALUE,maxHeight:m=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:g,autoScale:v=!0,shouldResize:w,onResizeStart:E,onResize:S,onResizeEnd:_}){const N=sS(),k=typeof e=="string"?e:N,T=gt(),M=I.useRef(null),A=n===_l.Handle,H=Ye(I.useCallback(CM(A&&v),[A,v]),mt),L=I.useRef(null),V=t??jM[n];I.useEffect(()=>{if(!(!M.current||!k))return L.current||(L.current=KA({domNode:M.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:B,transform:U,snapGrid:ee,snapToGrid:q,nodeOrigin:F,domNode:z}=T.getState();return{nodeLookup:B,transform:U,snapGrid:ee,snapToGrid:q,nodeOrigin:F,paneDomNode:z}},onChange:(B,U)=>{const{triggerNodeChanges:ee,nodeLookup:q,parentLookup:F,nodeOrigin:z}=T.getState(),G=[],Q={x:B.x,y:B.y},K=q.get(k);if(K&&K.expandParent&&K.parentId){const D=K.origin??z,$=B.width??K.measured.width??0,Y=B.height??K.measured.height??0,C={id:K.id,parentId:K.parentId,rect:{width:$,height:Y,...M_({x:B.x??K.position.x,y:B.y??K.position.y},{width:$,height:Y},K.parentId,q,D)}},P=$m([C],q,F,z);G.push(...P),Q.x=B.x?Math.max(D[0]*$,B.x):void 0,Q.y=B.y?Math.max(D[1]*Y,B.y):void 0}if(Q.x!==void 0&&Q.y!==void 0){const D={id:k,type:"position",position:{...Q}};G.push(D)}if(B.width!==void 0&&B.height!==void 0){const $={id:k,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:B.width,height:B.height}};G.push($)}for(const D of U){const $={...D,type:"position"};G.push($)}ee(G)},onEnd:({width:B,height:U})=>{const ee={id:k,type:"dimensions",resizing:!1,dimensions:{width:B,height:U}};T.getState().triggerNodeChanges([ee])}})),L.current.update({controlPosition:V,boundaries:{minWidth:c,minHeight:d,maxWidth:f,maxHeight:m},keepAspectRatio:p,resizeDirection:g,onResizeStart:E,onResize:S,onResizeEnd:_,shouldResize:w}),()=>{var B;(B=L.current)==null||B.destroy()}},[V,c,d,f,m,p,E,S,_,w]);const R=V.split("-");return y.jsx("div",{className:Mt(["react-flow__resize-control","nodrag",...R,n,a]),ref:M,style:{...l,scale:H,...s&&{[A?"backgroundColor":"borderColor"]:s}},children:o})}I.memo(TM);function os(e,t){if(t.length===0)return null;let n=e[t[0]];for(let a=1;aa.viewContextPath),t=se(a=>a.nodes),n=se(a=>a.subworkflowContexts);return I.useMemo(()=>{var a;return e.length===0?t:((a=os(n,e))==null?void 0:a.nodes)??t},[e,t,n])}function AM(){const e=se(a=>a.viewContextPath),t=se(a=>a.groupProgress),n=se(a=>a.subworkflowContexts);return I.useMemo(()=>{var a;return e.length===0?t:((a=os(n,e))==null?void 0:a.groupProgress)??t},[e,t,n])}function zM(){const e=se(a=>a.viewContextPath),t=se(a=>a.highlightedEdges),n=se(a=>a.subworkflowContexts);return I.useMemo(()=>{var a;return e.length===0?t:((a=os(n,e))==null?void 0:a.highlightedEdges)??t},[e,t,n])}function Vm(){const e=se(n=>n.viewContextPath),t=se(n=>n.subworkflowContexts);return I.useMemo(()=>{var n;return e.length===0?t:((n=os(t,e))==null?void 0:n.children)??[]},[e,t])}function MM(){const e=se(f=>f.viewContextPath),t=se(f=>f.agents),n=se(f=>f.routes),a=se(f=>f.parallelGroups),l=se(f=>f.forEachGroups),o=se(f=>f.nodes),s=se(f=>f.groupProgress),c=se(f=>f.entryPoint),d=se(f=>f.subworkflowContexts);return I.useMemo(()=>{if(e.length===0)return{agents:t,routes:n,parallelGroups:a,forEachGroups:l,nodes:o,groupProgress:s,entryPoint:c,subworkflowContexts:d,parentAgent:null};const f=os(d,e);return f?{agents:f.agents,routes:f.routes,parallelGroups:f.parallelGroups,forEachGroups:f.forEachGroups,nodes:f.nodes,groupProgress:f.groupProgress,entryPoint:f.entryPoint,subworkflowContexts:f.children,parentAgent:f.parentAgent}:{agents:t,routes:n,parallelGroups:a,forEachGroups:l,nodes:o,groupProgress:s,entryPoint:c,subworkflowContexts:d,parentAgent:null}},[e,t,n,a,l,o,s,c,d])}function DM(){const e=new URLSearchParams(window.location.search);return{subworkflowPath:e.get("subworkflow"),agent:e.get("agent")}}function _b(e,t){const n=[];let a=e;for(const l of t){let o=-1;for(let s=a.length-1;s>=0;s--)if(a[s].slotKey===l){o=s;break}if(o===-1){for(let s=a.length-1;s>=0;s--)if(a[s].parentAgent===l){o=s;break}}if(o===-1)return{path:n,failedSegment:l};n.push(o),a=a[o].children}return{path:n,failedSegment:null}}function om(e,t,n=[]){const a=[];for(let l=0;lc.name===t)&&a.push({path:s,ctx:o}),o.children.length>0&&a.push(...om(o.children,t,s))}return a}function RM(e){return e.length===0?null:[...e].sort((t,n)=>{const a=t.ctx.status==="running"?1:0,l=n.ctx.status==="running"?1:0;if(a!==l)return l-a;if(t.path.length!==n.path.length)return n.path.length-t.path.length;for(let o=0;o{if(n.current||!s)return;let c=null,d=null,f=null;const m=()=>{if(n.current)return;n.current=!0,c&&clearTimeout(c),d&&clearTimeout(d),f&&f();const v=se.getState();if(v.agents.length===0){t({message:"Workflow state did not load."});return}let w=[];if(l){const E=l.split("/").filter(Boolean),S=_b(v.subworkflowContexts,E);if(S.failedSegment){const _=E.slice(0,S.path.length).join("/");t({message:`Subworkflow "${S.failedSegment}" not found${_?` (resolved: ${_})`:""}. It may not have started yet.`});return}w=S.path}if(o){if((w.length===0?v.agents:(()=>{let S,_=v.subworkflowContexts;for(const N of w){if(S=_[N],!S)break;_=S.children}return(S==null?void 0:S.agents)??[]})()).some(S=>S.name===o))se.setState({viewContextPath:w,selectedNode:o});else{const S=om(v.subworkflowContexts,o);if(S.length===0){const N=l||"root workflow";se.setState({viewContextPath:w,selectedNode:null}),t({message:`Agent "${o}" not found in ${N}.`});return}if(l){const N=S.slice(0,5).map(T=>OM(v.subworkflowContexts,T.path)).join(", "),k=S.length>5?`, and ${S.length-5} more`:"";se.setState({viewContextPath:w,selectedNode:null}),t({message:`Agent "${o}" not found in ${l}. Found in: ${N}${k}`});return}const _=RM(S);se.setState({viewContextPath:_.path,selectedNode:o})}setTimeout(()=>{a({nodes:[{id:o}],padding:.5,duration:400})},200)}else l&&se.setState({viewContextPath:w,selectedNode:null})},p=()=>{const v=se.getState();if(v.agents.length===0)return!1;if(v.workflowStatus!=="running"&&v.workflowStatus!=="pending")return!0;if(l){const w=l.split("/").filter(Boolean),{failedSegment:E}=_b(v.subworkflowContexts,w);if(E)return!1}return!(o&&!l&&!v.agents.some(E=>E.name===o)&&om(v.subworkflowContexts,o).length===0)},g=()=>{c&&clearTimeout(c),c=setTimeout(()=>{n.current||p()&&m()},200)};return f=se.subscribe(g),d=setTimeout(()=>{n.current||m()},5e3),g(),()=>{c&&clearTimeout(c),d&&clearTimeout(d),f&&f()}},[s,l,o,a]),e}var Mh,Sb;function Pm(){if(Sb)return Mh;Sb=1;var e="\0",t="\0",n="";class a{constructor(m){Tt(this,"_isDirected",!0);Tt(this,"_isMultigraph",!1);Tt(this,"_isCompound",!1);Tt(this,"_label");Tt(this,"_defaultNodeLabelFn",()=>{});Tt(this,"_defaultEdgeLabelFn",()=>{});Tt(this,"_nodes",{});Tt(this,"_in",{});Tt(this,"_preds",{});Tt(this,"_out",{});Tt(this,"_sucs",{});Tt(this,"_edgeObjs",{});Tt(this,"_edgeLabels",{});Tt(this,"_nodeCount",0);Tt(this,"_edgeCount",0);Tt(this,"_parent");Tt(this,"_children");m&&(this._isDirected=Object.hasOwn(m,"directed")?m.directed:!0,this._isMultigraph=Object.hasOwn(m,"multigraph")?m.multigraph:!1,this._isCompound=Object.hasOwn(m,"compound")?m.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(m){return this._label=m,this}graph(){return this._label}setDefaultNodeLabel(m){return this._defaultNodeLabelFn=m,typeof m!="function"&&(this._defaultNodeLabelFn=()=>m),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var m=this;return this.nodes().filter(p=>Object.keys(m._in[p]).length===0)}sinks(){var m=this;return this.nodes().filter(p=>Object.keys(m._out[p]).length===0)}setNodes(m,p){var g=arguments,v=this;return m.forEach(function(w){g.length>1?v.setNode(w,p):v.setNode(w)}),this}setNode(m,p){return Object.hasOwn(this._nodes,m)?(arguments.length>1&&(this._nodes[m]=p),this):(this._nodes[m]=arguments.length>1?p:this._defaultNodeLabelFn(m),this._isCompound&&(this._parent[m]=t,this._children[m]={},this._children[t][m]=!0),this._in[m]={},this._preds[m]={},this._out[m]={},this._sucs[m]={},++this._nodeCount,this)}node(m){return this._nodes[m]}hasNode(m){return Object.hasOwn(this._nodes,m)}removeNode(m){var p=this;if(Object.hasOwn(this._nodes,m)){var g=v=>p.removeEdge(p._edgeObjs[v]);delete this._nodes[m],this._isCompound&&(this._removeFromParentsChildList(m),delete this._parent[m],this.children(m).forEach(function(v){p.setParent(v)}),delete this._children[m]),Object.keys(this._in[m]).forEach(g),delete this._in[m],delete this._preds[m],Object.keys(this._out[m]).forEach(g),delete this._out[m],delete this._sucs[m],--this._nodeCount}return this}setParent(m,p){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(p===void 0)p=t;else{p+="";for(var g=p;g!==void 0;g=this.parent(g))if(g===m)throw new Error("Setting "+p+" as parent of "+m+" would create a cycle");this.setNode(p)}return this.setNode(m),this._removeFromParentsChildList(m),this._parent[m]=p,this._children[p][m]=!0,this}_removeFromParentsChildList(m){delete this._children[this._parent[m]][m]}parent(m){if(this._isCompound){var p=this._parent[m];if(p!==t)return p}}children(m=t){if(this._isCompound){var p=this._children[m];if(p)return Object.keys(p)}else{if(m===t)return this.nodes();if(this.hasNode(m))return[]}}predecessors(m){var p=this._preds[m];if(p)return Object.keys(p)}successors(m){var p=this._sucs[m];if(p)return Object.keys(p)}neighbors(m){var p=this.predecessors(m);if(p){const v=new Set(p);for(var g of this.successors(m))v.add(g);return Array.from(v.values())}}isLeaf(m){var p;return this.isDirected()?p=this.successors(m):p=this.neighbors(m),p.length===0}filterNodes(m){var p=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});p.setGraph(this.graph());var g=this;Object.entries(this._nodes).forEach(function([E,S]){m(E)&&p.setNode(E,S)}),Object.values(this._edgeObjs).forEach(function(E){p.hasNode(E.v)&&p.hasNode(E.w)&&p.setEdge(E,g.edge(E))});var v={};function w(E){var S=g.parent(E);return S===void 0||p.hasNode(S)?(v[E]=S,S):S in v?v[S]:w(S)}return this._isCompound&&p.nodes().forEach(E=>p.setParent(E,w(E))),p}setDefaultEdgeLabel(m){return this._defaultEdgeLabelFn=m,typeof m!="function"&&(this._defaultEdgeLabelFn=()=>m),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(m,p){var g=this,v=arguments;return m.reduce(function(w,E){return v.length>1?g.setEdge(w,E,p):g.setEdge(w,E),E}),this}setEdge(){var m,p,g,v,w=!1,E=arguments[0];typeof E=="object"&&E!==null&&"v"in E?(m=E.v,p=E.w,g=E.name,arguments.length===2&&(v=arguments[1],w=!0)):(m=E,p=arguments[1],g=arguments[3],arguments.length>2&&(v=arguments[2],w=!0)),m=""+m,p=""+p,g!==void 0&&(g=""+g);var S=s(this._isDirected,m,p,g);if(Object.hasOwn(this._edgeLabels,S))return w&&(this._edgeLabels[S]=v),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(m),this.setNode(p),this._edgeLabels[S]=w?v:this._defaultEdgeLabelFn(m,p,g);var _=c(this._isDirected,m,p,g);return m=_.v,p=_.w,Object.freeze(_),this._edgeObjs[S]=_,l(this._preds[p],m),l(this._sucs[m],p),this._in[p][S]=_,this._out[m][S]=_,this._edgeCount++,this}edge(m,p,g){var v=arguments.length===1?d(this._isDirected,arguments[0]):s(this._isDirected,m,p,g);return this._edgeLabels[v]}edgeAsObj(){const m=this.edge(...arguments);return typeof m!="object"?{label:m}:m}hasEdge(m,p,g){var v=arguments.length===1?d(this._isDirected,arguments[0]):s(this._isDirected,m,p,g);return Object.hasOwn(this._edgeLabels,v)}removeEdge(m,p,g){var v=arguments.length===1?d(this._isDirected,arguments[0]):s(this._isDirected,m,p,g),w=this._edgeObjs[v];return w&&(m=w.v,p=w.w,delete this._edgeLabels[v],delete this._edgeObjs[v],o(this._preds[p],m),o(this._sucs[m],p),delete this._in[p][v],delete this._out[m][v],this._edgeCount--),this}inEdges(m,p){var g=this._in[m];if(g){var v=Object.values(g);return p?v.filter(w=>w.v===p):v}}outEdges(m,p){var g=this._out[m];if(g){var v=Object.values(g);return p?v.filter(w=>w.w===p):v}}nodeEdges(m,p){var g=this.inEdges(m,p);if(g)return g.concat(this.outEdges(m,p))}}function l(f,m){f[m]?f[m]++:f[m]=1}function o(f,m){--f[m]||delete f[m]}function s(f,m,p,g){var v=""+m,w=""+p;if(!f&&v>w){var E=v;v=w,w=E}return v+n+w+n+(g===void 0?e:g)}function c(f,m,p,g){var v=""+m,w=""+p;if(!f&&v>w){var E=v;v=w,w=E}var S={v,w};return g&&(S.name=g),S}function d(f,m){return s(f,m.v,m.w,m.name)}return Mh=a,Mh}var Dh,kb;function HM(){return kb||(kb=1,Dh="2.2.4"),Dh}var Rh,Eb;function BM(){return Eb||(Eb=1,Rh={Graph:Pm(),version:HM()}),Rh}var Oh,Nb;function IM(){if(Nb)return Oh;Nb=1;var e=Pm();Oh={write:t,read:l};function t(o){var s={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:a(o)};return o.graph()!==void 0&&(s.value=structuredClone(o.graph())),s}function n(o){return o.nodes().map(function(s){var c=o.node(s),d=o.parent(s),f={v:s};return c!==void 0&&(f.value=c),d!==void 0&&(f.parent=d),f})}function a(o){return o.edges().map(function(s){var c=o.edge(s),d={v:s.v,w:s.w};return s.name!==void 0&&(d.name=s.name),c!==void 0&&(d.value=c),d})}function l(o){var s=new e(o.options).setGraph(o.value);return o.nodes.forEach(function(c){s.setNode(c.v,c.value),c.parent&&s.setParent(c.v,c.parent)}),o.edges.forEach(function(c){s.setEdge({v:c.v,w:c.w,name:c.name},c.value)}),s}return Oh}var Lh,Cb;function qM(){if(Cb)return Lh;Cb=1,Lh=e;function e(t){var n={},a=[],l;function o(s){Object.hasOwn(n,s)||(n[s]=!0,l.push(s),t.successors(s).forEach(o),t.predecessors(s).forEach(o))}return t.nodes().forEach(function(s){l=[],o(s),l.length&&a.push(l)}),a}return Lh}var Hh,jb;function zS(){if(jb)return Hh;jb=1;class e{constructor(){Tt(this,"_arr",[]);Tt(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var a=this._keyIndices[n];if(a!==void 0)return this._arr[a].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,a){var l=this._keyIndices;if(n=String(n),!Object.hasOwn(l,n)){var o=this._arr,s=o.length;return l[n]=s,o.push({key:n,priority:a}),this._decrease(s),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,a){var l=this._keyIndices[n];if(a>this._arr[l].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[l].priority+" New: "+a);this._arr[l].priority=a,this._decrease(l)}_heapify(n){var a=this._arr,l=2*n,o=l+1,s=n;l>1,!(a[o].priority1;function n(l,o,s,c){return a(l,String(o),s||t,c||function(d){return l.outEdges(d)})}function a(l,o,s,c){var d={},f=new e,m,p,g=function(v){var w=v.v!==m?v.v:v.w,E=d[w],S=s(v),_=p.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+v+" Weight: "+S);_0&&(m=f.removeMin(),p=d[m],p.distance!==Number.POSITIVE_INFINITY);)c(m).forEach(g);return d}return Bh}var Ih,Ab;function $M(){if(Ab)return Ih;Ab=1;var e=MS();Ih=t;function t(n,a,l){return n.nodes().reduce(function(o,s){return o[s]=e(n,s,a,l),o},{})}return Ih}var qh,zb;function DS(){if(zb)return qh;zb=1,qh=e;function e(t){var n=0,a=[],l={},o=[];function s(c){var d=l[c]={onStack:!0,lowlink:n,index:n++};if(a.push(c),t.successors(c).forEach(function(p){Object.hasOwn(l,p)?l[p].onStack&&(d.lowlink=Math.min(d.lowlink,l[p].index)):(s(p),d.lowlink=Math.min(d.lowlink,l[p].lowlink))}),d.lowlink===d.index){var f=[],m;do m=a.pop(),l[m].onStack=!1,f.push(m);while(c!==m);o.push(f)}}return t.nodes().forEach(function(c){Object.hasOwn(l,c)||s(c)}),o}return qh}var $h,Mb;function UM(){if(Mb)return $h;Mb=1;var e=DS();$h=t;function t(n){return e(n).filter(function(a){return a.length>1||a.length===1&&n.hasEdge(a[0],a[0])})}return $h}var Uh,Db;function VM(){if(Db)return Uh;Db=1,Uh=t;var e=()=>1;function t(a,l,o){return n(a,l||e,o||function(s){return a.outEdges(s)})}function n(a,l,o){var s={},c=a.nodes();return c.forEach(function(d){s[d]={},s[d][d]={distance:0},c.forEach(function(f){d!==f&&(s[d][f]={distance:Number.POSITIVE_INFINITY})}),o(d).forEach(function(f){var m=f.v===d?f.w:f.v,p=l(f);s[d][m]={distance:p,predecessor:d}})}),c.forEach(function(d){var f=s[d];c.forEach(function(m){var p=s[m];c.forEach(function(g){var v=p[d],w=f[g],E=p[g],S=v.distance+w.distance;Sl.successors(p):p=>l.neighbors(p),d=s==="post"?t:n,f=[],m={};return o.forEach(p=>{if(!l.hasNode(p))throw new Error("Graph does not have node: "+p);d(p,c,m,f)}),f}function t(l,o,s,c){for(var d=[[l,!1]];d.length>0;){var f=d.pop();f[1]?c.push(f[0]):Object.hasOwn(s,f[0])||(s[f[0]]=!0,d.push([f[0],!0]),a(o(f[0]),m=>d.push([m,!1])))}}function n(l,o,s,c){for(var d=[l];d.length>0;){var f=d.pop();Object.hasOwn(s,f)||(s[f]=!0,c.push(f),a(o(f),m=>d.push(m)))}}function a(l,o){for(var s=l.length;s--;)o(l[s],s,l);return l}return Gh}var Fh,Hb;function GM(){if(Hb)return Fh;Hb=1;var e=OS();Fh=t;function t(n,a){return e(n,a,"post")}return Fh}var Yh,Bb;function FM(){if(Bb)return Yh;Bb=1;var e=OS();Yh=t;function t(n,a){return e(n,a,"pre")}return Yh}var Xh,Ib;function YM(){if(Ib)return Xh;Ib=1;var e=Pm(),t=zS();Xh=n;function n(a,l){var o=new e,s={},c=new t,d;function f(p){var g=p.v===d?p.w:p.v,v=c.priority(g);if(v!==void 0){var w=l(p);w0;){if(d=c.removeMin(),Object.hasOwn(s,d))o.setEdge(d,s[d]);else{if(m)throw new Error("Input graph is not connected: "+a);m=!0}a.nodeEdges(d).forEach(f)}return o}return Xh}var Qh,qb;function XM(){return qb||(qb=1,Qh={components:qM(),dijkstra:MS(),dijkstraAll:$M(),findCycles:UM(),floydWarshall:VM(),isAcyclic:PM(),postorder:GM(),preorder:FM(),prim:YM(),tarjan:DS(),topsort:RS()}),Qh}var Zh,$b;function Xn(){if($b)return Zh;$b=1;var e=BM();return Zh={Graph:e.Graph,json:IM(),alg:XM(),version:e.version},Zh}var Kh,Ub;function QM(){if(Ub)return Kh;Ub=1;class e{constructor(){let l={};l._next=l._prev=l,this._sentinel=l}dequeue(){let l=this._sentinel,o=l._prev;if(o!==l)return t(o),o}enqueue(l){let o=this._sentinel;l._prev&&l._next&&t(l),l._next=o._next,o._next._prev=l,o._next=l,l._prev=o}toString(){let l=[],o=this._sentinel,s=o._prev;for(;s!==o;)l.push(JSON.stringify(s,n)),s=s._prev;return"["+l.join(", ")+"]"}}function t(a){a._prev._next=a._next,a._next._prev=a._prev,delete a._next,delete a._prev}function n(a,l){if(a!=="_next"&&a!=="_prev")return l}return Kh=e,Kh}var Jh,Vb;function ZM(){if(Vb)return Jh;Vb=1;let e=Xn().Graph,t=QM();Jh=a;let n=()=>1;function a(f,m){if(f.nodeCount()<=1)return[];let p=s(f,m||n);return l(p.graph,p.buckets,p.zeroIdx).flatMap(v=>f.outEdges(v.v,v.w))}function l(f,m,p){let g=[],v=m[m.length-1],w=m[0],E;for(;f.nodeCount();){for(;E=w.dequeue();)o(f,m,p,E);for(;E=v.dequeue();)o(f,m,p,E);if(f.nodeCount()){for(let S=m.length-2;S>0;--S)if(E=m[S].dequeue(),E){g=g.concat(o(f,m,p,E,!0));break}}}return g}function o(f,m,p,g,v){let w=v?[]:void 0;return f.inEdges(g.v).forEach(E=>{let S=f.edge(E),_=f.node(E.v);v&&w.push({v:E.v,w:E.w}),_.out-=S,c(m,p,_)}),f.outEdges(g.v).forEach(E=>{let S=f.edge(E),_=E.w,N=f.node(_);N.in-=S,c(m,p,N)}),f.removeNode(g.v),w}function s(f,m){let p=new e,g=0,v=0;f.nodes().forEach(S=>{p.setNode(S,{v:S,in:0,out:0})}),f.edges().forEach(S=>{let _=p.edge(S.v,S.w)||0,N=m(S),k=_+N;p.setEdge(S.v,S.w,k),v=Math.max(v,p.node(S.v).out+=N),g=Math.max(g,p.node(S.w).in+=N)});let w=d(v+g+3).map(()=>new t),E=g+1;return p.nodes().forEach(S=>{c(w,E,p.node(S))}),{graph:p,buckets:w,zeroIdx:E}}function c(f,m,p){p.out?p.in?f[p.out-p.in+m].enqueue(p):f[f.length-1].enqueue(p):f[0].enqueue(p)}function d(f){const m=[];for(let p=0;pV.setNode(R,L.node(R))),L.edges().forEach(R=>{let B=V.edge(R.v,R.w)||{weight:0,minlen:1},U=L.edge(R);V.setEdge(R.v,R.w,{weight:B.weight+U.weight,minlen:Math.max(B.minlen,U.minlen)})}),V}function a(L){let V=new e({multigraph:L.isMultigraph()}).setGraph(L.graph());return L.nodes().forEach(R=>{L.children(R).length||V.setNode(R,L.node(R))}),L.edges().forEach(R=>{V.setEdge(R,L.edge(R))}),V}function l(L){let V=L.nodes().map(R=>{let B={};return L.outEdges(R).forEach(U=>{B[U.w]=(B[U.w]||0)+L.edge(U).weight}),B});return H(L.nodes(),V)}function o(L){let V=L.nodes().map(R=>{let B={};return L.inEdges(R).forEach(U=>{B[U.v]=(B[U.v]||0)+L.edge(U).weight}),B});return H(L.nodes(),V)}function s(L,V){let R=L.x,B=L.y,U=V.x-R,ee=V.y-B,q=L.width/2,F=L.height/2;if(!U&&!ee)throw new Error("Not possible to find intersection inside of the rectangle");let z,G;return Math.abs(ee)*q>Math.abs(U)*F?(ee<0&&(F=-F),z=F*U/ee,G=F):(U<0&&(q=-q),z=q,G=q*ee/U),{x:R+z,y:B+G}}function c(L){let V=T(w(L)+1).map(()=>[]);return L.nodes().forEach(R=>{let B=L.node(R),U=B.rank;U!==void 0&&(V[U][B.order]=R)}),V}function d(L){let V=L.nodes().map(B=>{let U=L.node(B).rank;return U===void 0?Number.MAX_VALUE:U}),R=v(Math.min,V);L.nodes().forEach(B=>{let U=L.node(B);Object.hasOwn(U,"rank")&&(U.rank-=R)})}function f(L){let V=L.nodes().map(q=>L.node(q).rank),R=v(Math.min,V),B=[];L.nodes().forEach(q=>{let F=L.node(q).rank-R;B[F]||(B[F]=[]),B[F].push(q)});let U=0,ee=L.graph().nodeRankFactor;Array.from(B).forEach((q,F)=>{q===void 0&&F%ee!==0?--U:q!==void 0&&U&&q.forEach(z=>L.node(z).rank+=U)})}function m(L,V,R,B){let U={width:0,height:0};return arguments.length>=4&&(U.rank=R,U.order=B),t(L,"border",U,V)}function p(L,V=g){const R=[];for(let B=0;Bg){const R=p(V);return L.apply(null,R.map(B=>L.apply(null,B)))}else return L.apply(null,V)}function w(L){const R=L.nodes().map(B=>{let U=L.node(B).rank;return U===void 0?Number.MIN_VALUE:U});return v(Math.max,R)}function E(L,V){let R={lhs:[],rhs:[]};return L.forEach(B=>{V(B)?R.lhs.push(B):R.rhs.push(B)}),R}function S(L,V){let R=Date.now();try{return V()}finally{console.log(L+" time: "+(Date.now()-R)+"ms")}}function _(L,V){return V()}let N=0;function k(L){var V=++N;return L+(""+V)}function T(L,V,R=1){V==null&&(V=L,L=0);let B=ee=>eeVB[V]),Object.entries(L).reduce((B,[U,ee])=>(B[U]=R(ee,U),B),{})}function H(L,V){return L.reduce((R,B,U)=>(R[B]=V[U],R),{})}return Wh}var ep,Gb;function KM(){if(Gb)return ep;Gb=1;let e=ZM(),t=zt().uniqueId;ep={run:n,undo:l};function n(o){(o.graph().acyclicer==="greedy"?e(o,c(o)):a(o)).forEach(d=>{let f=o.edge(d);o.removeEdge(d),f.forwardName=d.name,f.reversed=!0,o.setEdge(d.w,d.v,f,t("rev"))});function c(d){return f=>d.edge(f).weight}}function a(o){let s=[],c={},d={};function f(m){Object.hasOwn(d,m)||(d[m]=!0,c[m]=!0,o.outEdges(m).forEach(p=>{Object.hasOwn(c,p.w)?s.push(p):f(p.w)}),delete c[m])}return o.nodes().forEach(f),s}function l(o){o.edges().forEach(s=>{let c=o.edge(s);if(c.reversed){o.removeEdge(s);let d=c.forwardName;delete c.reversed,delete c.forwardName,o.setEdge(s.w,s.v,c,d)}})}return ep}var tp,Fb;function JM(){if(Fb)return tp;Fb=1;let e=zt();tp={run:t,undo:a};function t(l){l.graph().dummyChains=[],l.edges().forEach(o=>n(l,o))}function n(l,o){let s=o.v,c=l.node(s).rank,d=o.w,f=l.node(d).rank,m=o.name,p=l.edge(o),g=p.labelRank;if(f===c+1)return;l.removeEdge(o);let v,w,E;for(E=0,++c;c{let s=l.node(o),c=s.edgeLabel,d;for(l.setEdge(s.edgeObj,c);s.dummy;)d=l.successors(o)[0],l.removeNode(o),c.points.push({x:s.x,y:s.y}),s.dummy==="edge-label"&&(c.x=s.x,c.y=s.y,c.width=s.width,c.height=s.height),o=d,s=l.node(o)})}return tp}var np,Yb;function vc(){if(Yb)return np;Yb=1;const{applyWithChunking:e}=zt();np={longestPath:t,slack:n};function t(a){var l={};function o(s){var c=a.node(s);if(Object.hasOwn(l,s))return c.rank;l[s]=!0;let d=a.outEdges(s).map(m=>m==null?Number.POSITIVE_INFINITY:o(m.w)-a.edge(m).minlen);var f=e(Math.min,d);return f===Number.POSITIVE_INFINITY&&(f=0),c.rank=f}a.sources().forEach(o)}function n(a,l){return a.node(l.w).rank-a.node(l.v).rank-a.edge(l).minlen}return np}var rp,Xb;function LS(){if(Xb)return rp;Xb=1;var e=Xn().Graph,t=vc().slack;rp=n;function n(s){var c=new e({directed:!1}),d=s.nodes()[0],f=s.nodeCount();c.setNode(d,{});for(var m,p;a(c,s){var p=m.v,g=f===p?m.w:p;!s.hasNode(g)&&!t(c,m)&&(s.setNode(g,{}),s.setEdge(f,g,{}),d(g))})}return s.nodes().forEach(d),s.nodeCount()}function l(s,c){return c.edges().reduce((f,m)=>{let p=Number.POSITIVE_INFINITY;return s.hasNode(m.v)!==s.hasNode(m.w)&&(p=t(c,m)),pc.node(f).rank+=d)}return rp}var ip,Qb;function WM(){if(Qb)return ip;Qb=1;var e=LS(),t=vc().slack,n=vc().longestPath,a=Xn().alg.preorder,l=Xn().alg.postorder,o=zt().simplify;ip=s,s.initLowLimValues=m,s.initCutValues=c,s.calcCutValue=f,s.leaveEdge=g,s.enterEdge=v,s.exchangeEdges=w;function s(N){N=o(N),n(N);var k=e(N);m(k),c(k,N);for(var T,M;T=g(k);)M=v(k,N,T),w(k,N,T,M)}function c(N,k){var T=l(N,N.nodes());T=T.slice(0,T.length-1),T.forEach(M=>d(N,k,M))}function d(N,k,T){var M=N.node(T),A=M.parent;N.edge(T,A).cutvalue=f(N,k,T)}function f(N,k,T){var M=N.node(T),A=M.parent,H=!0,L=k.edge(T,A),V=0;return L||(H=!1,L=k.edge(A,T)),V=L.weight,k.nodeEdges(T).forEach(R=>{var B=R.v===T,U=B?R.w:R.v;if(U!==A){var ee=B===H,q=k.edge(R).weight;if(V+=ee?q:-q,S(N,T,U)){var F=N.edge(T,U).cutvalue;V+=ee?-F:F}}}),V}function m(N,k){arguments.length<2&&(k=N.nodes()[0]),p(N,{},1,k)}function p(N,k,T,M,A){var H=T,L=N.node(M);return k[M]=!0,N.neighbors(M).forEach(V=>{Object.hasOwn(k,V)||(T=p(N,k,T,V,M))}),L.low=H,L.lim=T++,A?L.parent=A:delete L.parent,T}function g(N){return N.edges().find(k=>N.edge(k).cutvalue<0)}function v(N,k,T){var M=T.v,A=T.w;k.hasEdge(M,A)||(M=T.w,A=T.v);var H=N.node(M),L=N.node(A),V=H,R=!1;H.lim>L.lim&&(V=L,R=!0);var B=k.edges().filter(U=>R===_(N,N.node(U.v),V)&&R!==_(N,N.node(U.w),V));return B.reduce((U,ee)=>t(k,ee)!k.node(A).parent),M=a(N,T);M=M.slice(1),M.forEach(A=>{var H=N.node(A).parent,L=k.edge(A,H),V=!1;L||(L=k.edge(H,A),V=!0),k.node(A).rank=k.node(H).rank+(V?L.minlen:-L.minlen)})}function S(N,k,T){return N.hasEdge(k,T)}function _(N,k,T){return T.low<=k.lim&&k.lim<=T.lim}return ip}var ap,Zb;function e4(){if(Zb)return ap;Zb=1;var e=vc(),t=e.longestPath,n=LS(),a=WM();ap=l;function l(d){var f=d.graph().ranker;if(f instanceof Function)return f(d);switch(d.graph().ranker){case"network-simplex":c(d);break;case"tight-tree":s(d);break;case"longest-path":o(d);break;case"none":break;default:c(d)}}var o=t;function s(d){t(d),n(d)}function c(d){a(d)}return ap}var lp,Kb;function t4(){if(Kb)return lp;Kb=1,lp=e;function e(a){let l=n(a);a.graph().dummyChains.forEach(o=>{let s=a.node(o),c=s.edgeObj,d=t(a,l,c.v,c.w),f=d.path,m=d.lca,p=0,g=f[p],v=!0;for(;o!==c.w;){if(s=a.node(o),v){for(;(g=f[p])!==m&&a.node(g).maxRankf||m>l[p].lim));for(g=p,p=s;(p=a.parent(p))!==g;)d.push(p);return{path:c.concat(d.reverse()),lca:g}}function n(a){let l={},o=0;function s(c){let d=o;a.children(c).forEach(s),l[c]={low:d,lim:o++}}return a.children().forEach(s),l}return lp}var op,Jb;function n4(){if(Jb)return op;Jb=1;let e=zt();op={run:t,cleanup:o};function t(s){let c=e.addDummyNode(s,"root",{},"_root"),d=a(s),f=Object.values(d),m=e.applyWithChunking(Math.max,f)-1,p=2*m+1;s.graph().nestingRoot=c,s.edges().forEach(v=>s.edge(v).minlen*=p);let g=l(s)+1;s.children().forEach(v=>n(s,c,p,g,m,d,v)),s.graph().nodeRankFactor=p}function n(s,c,d,f,m,p,g){let v=s.children(g);if(!v.length){g!==c&&s.setEdge(c,g,{weight:0,minlen:d});return}let w=e.addBorderNode(s,"_bt"),E=e.addBorderNode(s,"_bb"),S=s.node(g);s.setParent(w,g),S.borderTop=w,s.setParent(E,g),S.borderBottom=E,v.forEach(_=>{n(s,c,d,f,m,p,_);let N=s.node(_),k=N.borderTop?N.borderTop:_,T=N.borderBottom?N.borderBottom:_,M=N.borderTop?f:2*f,A=k!==T?1:m-p[g]+1;s.setEdge(w,k,{weight:M,minlen:A,nestingEdge:!0}),s.setEdge(T,E,{weight:M,minlen:A,nestingEdge:!0})}),s.parent(g)||s.setEdge(c,w,{weight:0,minlen:m+p[g]})}function a(s){var c={};function d(f,m){var p=s.children(f);p&&p.length&&p.forEach(g=>d(g,m+1)),c[f]=m}return s.children().forEach(f=>d(f,1)),c}function l(s){return s.edges().reduce((c,d)=>c+s.edge(d).weight,0)}function o(s){var c=s.graph();s.removeNode(c.nestingRoot),delete c.nestingRoot,s.edges().forEach(d=>{var f=s.edge(d);f.nestingEdge&&s.removeEdge(d)})}return op}var sp,Wb;function r4(){if(Wb)return sp;Wb=1;let e=zt();sp=t;function t(a){function l(o){let s=a.children(o),c=a.node(o);if(s.length&&s.forEach(l),Object.hasOwn(c,"minRank")){c.borderLeft=[],c.borderRight=[];for(let d=c.minRank,f=c.maxRank+1;da(d.node(f))),d.edges().forEach(f=>a(d.edge(f)))}function a(d){let f=d.width;d.width=d.height,d.height=f}function l(d){d.nodes().forEach(f=>o(d.node(f))),d.edges().forEach(f=>{let m=d.edge(f);m.points.forEach(o),Object.hasOwn(m,"y")&&o(m)})}function o(d){d.y=-d.y}function s(d){d.nodes().forEach(f=>c(d.node(f))),d.edges().forEach(f=>{let m=d.edge(f);m.points.forEach(c),Object.hasOwn(m,"x")&&c(m)})}function c(d){let f=d.x;d.x=d.y,d.y=f}return up}var cp,t1;function a4(){if(t1)return cp;t1=1;let e=zt();cp=t;function t(n){let a={},l=n.nodes().filter(m=>!n.children(m).length),o=l.map(m=>n.node(m).rank),s=e.applyWithChunking(Math.max,o),c=e.range(s+1).map(()=>[]);function d(m){if(a[m])return;a[m]=!0;let p=n.node(m);c[p.rank].push(m),n.successors(m).forEach(d)}return l.sort((m,p)=>n.node(m).rank-n.node(p).rank).forEach(d),c}return cp}var fp,n1;function l4(){if(n1)return fp;n1=1;let e=zt().zipObject;fp=t;function t(a,l){let o=0;for(let s=1;sv)),c=l.flatMap(g=>a.outEdges(g).map(v=>({pos:s[v.w],weight:a.edge(v).weight})).sort((v,w)=>v.pos-w.pos)),d=1;for(;d{let v=g.pos+d;m[v]+=g.weight;let w=0;for(;v>0;)v%2&&(w+=m[v+1]),v=v-1>>1,m[v]+=g.weight;p+=g.weight*w}),p}return fp}var dp,r1;function o4(){if(r1)return dp;r1=1,dp=e;function e(t,n=[]){return n.map(a=>{let l=t.inEdges(a);if(l.length){let o=l.reduce((s,c)=>{let d=t.edge(c),f=t.node(c.v);return{sum:s.sum+d.weight*f.order,weight:s.weight+d.weight}},{sum:0,weight:0});return{v:a,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:a}})}return dp}var hp,i1;function s4(){if(i1)return hp;i1=1;let e=zt();hp=t;function t(l,o){let s={};l.forEach((d,f)=>{let m=s[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:f};d.barycenter!==void 0&&(m.barycenter=d.barycenter,m.weight=d.weight)}),o.edges().forEach(d=>{let f=s[d.v],m=s[d.w];f!==void 0&&m!==void 0&&(m.indegree++,f.out.push(s[d.w]))});let c=Object.values(s).filter(d=>!d.indegree);return n(c)}function n(l){let o=[];function s(d){return f=>{f.merged||(f.barycenter===void 0||d.barycenter===void 0||f.barycenter>=d.barycenter)&&a(d,f)}}function c(d){return f=>{f.in.push(d),--f.indegree===0&&l.push(f)}}for(;l.length;){let d=l.pop();o.push(d),d.in.reverse().forEach(s(d)),d.out.forEach(c(d))}return o.filter(d=>!d.merged).map(d=>e.pick(d,["vs","i","barycenter","weight"]))}function a(l,o){let s=0,c=0;l.weight&&(s+=l.barycenter*l.weight,c+=l.weight),o.weight&&(s+=o.barycenter*o.weight,c+=o.weight),l.vs=o.vs.concat(l.vs),l.barycenter=s/c,l.weight=c,l.i=Math.min(o.i,l.i),o.merged=!0}return hp}var pp,a1;function u4(){if(a1)return pp;a1=1;let e=zt();pp=t;function t(l,o){let s=e.partition(l,w=>Object.hasOwn(w,"barycenter")),c=s.lhs,d=s.rhs.sort((w,E)=>E.i-w.i),f=[],m=0,p=0,g=0;c.sort(a(!!o)),g=n(f,d,g),c.forEach(w=>{g+=w.vs.length,f.push(w.vs),m+=w.barycenter*w.weight,p+=w.weight,g=n(f,d,g)});let v={vs:f.flat(!0)};return p&&(v.barycenter=m/p,v.weight=p),v}function n(l,o,s){let c;for(;o.length&&(c=o[o.length-1]).i<=s;)o.pop(),l.push(c.vs),s++;return s}function a(l){return(o,s)=>o.barycenters.barycenter?1:l?s.i-o.i:o.i-s.i}return pp}var mp,l1;function c4(){if(l1)return mp;l1=1;let e=o4(),t=s4(),n=u4();mp=a;function a(s,c,d,f){let m=s.children(c),p=s.node(c),g=p?p.borderLeft:void 0,v=p?p.borderRight:void 0,w={};g&&(m=m.filter(N=>N!==g&&N!==v));let E=e(s,m);E.forEach(N=>{if(s.children(N.v).length){let k=a(s,N.v,d,f);w[N.v]=k,Object.hasOwn(k,"barycenter")&&o(N,k)}});let S=t(E,d);l(S,w);let _=n(S,f);if(g&&(_.vs=[g,_.vs,v].flat(!0),s.predecessors(g).length)){let N=s.node(s.predecessors(g)[0]),k=s.node(s.predecessors(v)[0]);Object.hasOwn(_,"barycenter")||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+N.order+k.order)/(_.weight+2),_.weight+=2}return _}function l(s,c){s.forEach(d=>{d.vs=d.vs.flatMap(f=>c[f]?c[f].vs:f)})}function o(s,c){s.barycenter!==void 0?(s.barycenter=(s.barycenter*s.weight+c.barycenter*c.weight)/(s.weight+c.weight),s.weight+=c.weight):(s.barycenter=c.barycenter,s.weight=c.weight)}return mp}var gp,o1;function f4(){if(o1)return gp;o1=1;let e=Xn().Graph,t=zt();gp=n;function n(l,o,s,c){c||(c=l.nodes());let d=a(l),f=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(m=>l.node(m));return c.forEach(m=>{let p=l.node(m),g=l.parent(m);(p.rank===o||p.minRank<=o&&o<=p.maxRank)&&(f.setNode(m),f.setParent(m,g||d),l[s](m).forEach(v=>{let w=v.v===m?v.w:v.v,E=f.edge(w,m),S=E!==void 0?E.weight:0;f.setEdge(w,m,{weight:l.edge(v).weight+S})}),Object.hasOwn(p,"minRank")&&f.setNode(m,{borderLeft:p.borderLeft[o],borderRight:p.borderRight[o]}))}),f}function a(l){for(var o;l.hasNode(o=t.uniqueId("_root")););return o}return gp}var xp,s1;function d4(){if(s1)return xp;s1=1,xp=e;function e(t,n,a){let l={},o;a.forEach(s=>{let c=t.parent(s),d,f;for(;c;){if(d=t.parent(c),d?(f=l[d],l[d]=c):(f=o,o=c),f&&f!==c){n.setEdge(f,c);return}c=d}})}return xp}var yp,u1;function h4(){if(u1)return yp;u1=1;let e=a4(),t=l4(),n=c4(),a=f4(),l=d4(),o=Xn().Graph,s=zt();yp=c;function c(p,g){if(g&&typeof g.customOrder=="function"){g.customOrder(p,c);return}let v=s.maxRank(p),w=d(p,s.range(1,v+1),"inEdges"),E=d(p,s.range(v-1,-1,-1),"outEdges"),S=e(p);if(m(p,S),g&&g.disableOptimalOrderHeuristic)return;let _=Number.POSITIVE_INFINITY,N;for(let k=0,T=0;T<4;++k,++T){f(k%2?w:E,k%4>=2),S=s.buildLayerMatrix(p);let M=t(p,S);M<_&&(T=0,N=Object.assign({},S),_=M)}m(p,N)}function d(p,g,v){const w=new Map,E=(S,_)=>{w.has(S)||w.set(S,[]),w.get(S).push(_)};for(const S of p.nodes()){const _=p.node(S);if(typeof _.rank=="number"&&E(_.rank,S),typeof _.minRank=="number"&&typeof _.maxRank=="number")for(let N=_.minRank;N<=_.maxRank;N++)N!==_.rank&&E(N,S)}return g.map(function(S){return a(p,S,v,w.get(S)||[])})}function f(p,g){let v=new o;p.forEach(function(w){let E=w.graph().root,S=n(w,E,v,g);S.vs.forEach((_,N)=>w.node(_).order=N),l(w,v,S.vs)})}function m(p,g){Object.values(g).forEach(v=>v.forEach((w,E)=>p.node(w).order=E))}return yp}var vp,c1;function p4(){if(c1)return vp;c1=1;let e=Xn().Graph,t=zt();vp={positionX:v,findType1Conflicts:n,findType2Conflicts:a,addConflict:o,hasConflict:s,verticalAlignment:c,horizontalCompaction:d,alignCoordinates:p,findSmallestWidthAlignment:m,balance:g};function n(S,_){let N={};function k(T,M){let A=0,H=0,L=T.length,V=M[M.length-1];return M.forEach((R,B)=>{let U=l(S,R),ee=U?S.node(U).order:L;(U||R===V)&&(M.slice(H,B+1).forEach(q=>{S.predecessors(q).forEach(F=>{let z=S.node(F),G=z.order;(G{R=M[B],S.node(R).dummy&&S.predecessors(R).forEach(U=>{let ee=S.node(U);ee.dummy&&(ee.orderV)&&o(N,U,R)})})}function T(M,A){let H=-1,L,V=0;return A.forEach((R,B)=>{if(S.node(R).dummy==="border"){let U=S.predecessors(R);U.length&&(L=S.node(U[0]).order,k(A,V,B,H,L),V=B,H=L)}k(A,V,A.length,L,M.length)}),A}return _.length&&_.reduce(T),N}function l(S,_){if(S.node(_).dummy)return S.predecessors(_).find(N=>S.node(N).dummy)}function o(S,_,N){if(_>N){let T=_;_=N,N=T}let k=S[_];k||(S[_]=k={}),k[N]=!0}function s(S,_,N){if(_>N){let k=_;_=N,N=k}return!!S[_]&&Object.hasOwn(S[_],N)}function c(S,_,N,k){let T={},M={},A={};return _.forEach(H=>{H.forEach((L,V)=>{T[L]=L,M[L]=L,A[L]=V})}),_.forEach(H=>{let L=-1;H.forEach(V=>{let R=k(V);if(R.length){R=R.sort((U,ee)=>A[U]-A[ee]);let B=(R.length-1)/2;for(let U=Math.floor(B),ee=Math.ceil(B);U<=ee;++U){let q=R[U];M[V]===V&&LMath.max(U,M[ee.v]+A.edge(ee)),0)}function R(B){let U=A.outEdges(B).reduce((q,F)=>Math.min(q,M[F.w]-A.edge(F)),Number.POSITIVE_INFINITY),ee=S.node(B);U!==Number.POSITIVE_INFINITY&&ee.borderType!==H&&(M[B]=Math.max(M[B],U))}return L(V,A.predecessors.bind(A)),L(R,A.successors.bind(A)),Object.keys(k).forEach(B=>M[B]=M[N[B]]),M}function f(S,_,N,k){let T=new e,M=S.graph(),A=w(M.nodesep,M.edgesep,k);return _.forEach(H=>{let L;H.forEach(V=>{let R=N[V];if(T.setNode(R),L){var B=N[L],U=T.edge(B,R);T.setEdge(B,R,Math.max(A(S,V,L),U||0))}L=V})}),T}function m(S,_){return Object.values(_).reduce((N,k)=>{let T=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([H,L])=>{let V=E(S,H)/2;T=Math.max(L+V,T),M=Math.min(L-V,M)});const A=T-M;return A{["l","r"].forEach(A=>{let H=M+A,L=S[H];if(L===_)return;let V=Object.values(L),R=k-t.applyWithChunking(Math.min,V);A!=="l"&&(R=T-t.applyWithChunking(Math.max,V)),R&&(S[H]=t.mapValues(L,B=>B+R))})})}function g(S,_){return t.mapValues(S.ul,(N,k)=>{if(_)return S[_.toLowerCase()][k];{let T=Object.values(S).map(M=>M[k]).sort((M,A)=>M-A);return(T[1]+T[2])/2}})}function v(S){let _=t.buildLayerMatrix(S),N=Object.assign(n(S,_),a(S,_)),k={},T;["u","d"].forEach(A=>{T=A==="u"?_:Object.values(_).reverse(),["l","r"].forEach(H=>{H==="r"&&(T=T.map(B=>Object.values(B).reverse()));let L=(A==="u"?S.predecessors:S.successors).bind(S),V=c(S,T,N,L),R=d(S,T,V.root,V.align,H==="r");H==="r"&&(R=t.mapValues(R,B=>-B)),k[A+H]=R})});let M=m(S,k);return p(k,M),g(k,S.graph().align)}function w(S,_,N){return(k,T,M)=>{let A=k.node(T),H=k.node(M),L=0,V;if(L+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":V=-A.width/2;break;case"r":V=A.width/2;break}if(V&&(L+=N?V:-V),V=0,L+=(A.dummy?_:S)/2,L+=(H.dummy?_:S)/2,L+=H.width/2,Object.hasOwn(H,"labelpos"))switch(H.labelpos.toLowerCase()){case"l":V=H.width/2;break;case"r":V=-H.width/2;break}return V&&(L+=N?V:-V),V=0,L}}function E(S,_){return S.node(_).width}return vp}var bp,f1;function m4(){if(f1)return bp;f1=1;let e=zt(),t=p4().positionX;bp=n;function n(l){l=e.asNonCompoundGraph(l),a(l),Object.entries(t(l)).forEach(([o,s])=>l.node(o).x=s)}function a(l){let o=e.buildLayerMatrix(l),s=l.graph().ranksep,c=0;o.forEach(d=>{const f=d.reduce((m,p)=>{const g=l.node(p).height;return m>g?m:g},0);d.forEach(m=>l.node(m).y=c+f/2),c+=f+s})}return bp}var wp,d1;function g4(){if(d1)return wp;d1=1;let e=KM(),t=JM(),n=e4(),a=zt().normalizeRanks,l=t4(),o=zt().removeEmptyRanks,s=n4(),c=r4(),d=i4(),f=h4(),m=m4(),p=zt(),g=Xn().Graph;wp=v;function v(C,P){let X=P&&P.debugTiming?p.time:p.notime;X("layout",()=>{let J=X(" buildLayoutGraph",()=>L(C));X(" runLayout",()=>w(J,X,P)),X(" updateInputGraph",()=>E(C,J))})}function w(C,P,X){P(" makeSpaceForEdgeLabels",()=>V(C)),P(" removeSelfEdges",()=>Q(C)),P(" acyclic",()=>e.run(C)),P(" nestingGraph.run",()=>s.run(C)),P(" rank",()=>n(p.asNonCompoundGraph(C))),P(" injectEdgeLabelProxies",()=>R(C)),P(" removeEmptyRanks",()=>o(C)),P(" nestingGraph.cleanup",()=>s.cleanup(C)),P(" normalizeRanks",()=>a(C)),P(" assignRankMinMax",()=>B(C)),P(" removeEdgeLabelProxies",()=>U(C)),P(" normalize.run",()=>t.run(C)),P(" parentDummyChains",()=>l(C)),P(" addBorderSegments",()=>c(C)),P(" order",()=>f(C,X)),P(" insertSelfEdges",()=>K(C)),P(" adjustCoordinateSystem",()=>d.adjust(C)),P(" position",()=>m(C)),P(" positionSelfEdges",()=>D(C)),P(" removeBorderNodes",()=>G(C)),P(" normalize.undo",()=>t.undo(C)),P(" fixupEdgeLabelCoords",()=>F(C)),P(" undoCoordinateSystem",()=>d.undo(C)),P(" translateGraph",()=>ee(C)),P(" assignNodeIntersects",()=>q(C)),P(" reversePoints",()=>z(C)),P(" acyclic.undo",()=>e.undo(C))}function E(C,P){C.nodes().forEach(X=>{let J=C.node(X),ne=P.node(X);J&&(J.x=ne.x,J.y=ne.y,J.rank=ne.rank,P.children(X).length&&(J.width=ne.width,J.height=ne.height))}),C.edges().forEach(X=>{let J=C.edge(X),ne=P.edge(X);J.points=ne.points,Object.hasOwn(ne,"x")&&(J.x=ne.x,J.y=ne.y)}),C.graph().width=P.graph().width,C.graph().height=P.graph().height}let S=["nodesep","edgesep","ranksep","marginx","marginy"],_={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],k=["width","height","rank"],T={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},H=["labelpos"];function L(C){let P=new g({multigraph:!0,compound:!0}),X=Y(C.graph());return P.setGraph(Object.assign({},_,$(X,S),p.pick(X,N))),C.nodes().forEach(J=>{let ne=Y(C.node(J));const re=$(ne,k);Object.keys(T).forEach(ue=>{re[ue]===void 0&&(re[ue]=T[ue])}),P.setNode(J,re),P.setParent(J,C.parent(J))}),C.edges().forEach(J=>{let ne=Y(C.edge(J));P.setEdge(J,Object.assign({},A,$(ne,M),p.pick(ne,H)))}),P}function V(C){let P=C.graph();P.ranksep/=2,C.edges().forEach(X=>{let J=C.edge(X);J.minlen*=2,J.labelpos.toLowerCase()!=="c"&&(P.rankdir==="TB"||P.rankdir==="BT"?J.width+=J.labeloffset:J.height+=J.labeloffset)})}function R(C){C.edges().forEach(P=>{let X=C.edge(P);if(X.width&&X.height){let J=C.node(P.v),re={rank:(C.node(P.w).rank-J.rank)/2+J.rank,e:P};p.addDummyNode(C,"edge-proxy",re,"_ep")}})}function B(C){let P=0;C.nodes().forEach(X=>{let J=C.node(X);J.borderTop&&(J.minRank=C.node(J.borderTop).rank,J.maxRank=C.node(J.borderBottom).rank,P=Math.max(P,J.maxRank))}),C.graph().maxRank=P}function U(C){C.nodes().forEach(P=>{let X=C.node(P);X.dummy==="edge-proxy"&&(C.edge(X.e).labelRank=X.rank,C.removeNode(P))})}function ee(C){let P=Number.POSITIVE_INFINITY,X=0,J=Number.POSITIVE_INFINITY,ne=0,re=C.graph(),ue=re.marginx||0,xe=re.marginy||0;function be(ye){let pe=ye.x,Se=ye.y,Oe=ye.width,Ae=ye.height;P=Math.min(P,pe-Oe/2),X=Math.max(X,pe+Oe/2),J=Math.min(J,Se-Ae/2),ne=Math.max(ne,Se+Ae/2)}C.nodes().forEach(ye=>be(C.node(ye))),C.edges().forEach(ye=>{let pe=C.edge(ye);Object.hasOwn(pe,"x")&&be(pe)}),P-=ue,J-=xe,C.nodes().forEach(ye=>{let pe=C.node(ye);pe.x-=P,pe.y-=J}),C.edges().forEach(ye=>{let pe=C.edge(ye);pe.points.forEach(Se=>{Se.x-=P,Se.y-=J}),Object.hasOwn(pe,"x")&&(pe.x-=P),Object.hasOwn(pe,"y")&&(pe.y-=J)}),re.width=X-P+ue,re.height=ne-J+xe}function q(C){C.edges().forEach(P=>{let X=C.edge(P),J=C.node(P.v),ne=C.node(P.w),re,ue;X.points?(re=X.points[0],ue=X.points[X.points.length-1]):(X.points=[],re=ne,ue=J),X.points.unshift(p.intersectRect(J,re)),X.points.push(p.intersectRect(ne,ue))})}function F(C){C.edges().forEach(P=>{let X=C.edge(P);if(Object.hasOwn(X,"x"))switch((X.labelpos==="l"||X.labelpos==="r")&&(X.width-=X.labeloffset),X.labelpos){case"l":X.x-=X.width/2+X.labeloffset;break;case"r":X.x+=X.width/2+X.labeloffset;break}})}function z(C){C.edges().forEach(P=>{let X=C.edge(P);X.reversed&&X.points.reverse()})}function G(C){C.nodes().forEach(P=>{if(C.children(P).length){let X=C.node(P),J=C.node(X.borderTop),ne=C.node(X.borderBottom),re=C.node(X.borderLeft[X.borderLeft.length-1]),ue=C.node(X.borderRight[X.borderRight.length-1]);X.width=Math.abs(ue.x-re.x),X.height=Math.abs(ne.y-J.y),X.x=re.x+X.width/2,X.y=J.y+X.height/2}}),C.nodes().forEach(P=>{C.node(P).dummy==="border"&&C.removeNode(P)})}function Q(C){C.edges().forEach(P=>{if(P.v===P.w){var X=C.node(P.v);X.selfEdges||(X.selfEdges=[]),X.selfEdges.push({e:P,label:C.edge(P)}),C.removeEdge(P)}})}function K(C){var P=p.buildLayerMatrix(C);P.forEach(X=>{var J=0;X.forEach((ne,re)=>{var ue=C.node(ne);ue.order=re+J,(ue.selfEdges||[]).forEach(xe=>{p.addDummyNode(C,"selfedge",{width:xe.label.width,height:xe.label.height,rank:ue.rank,order:re+ ++J,e:xe.e,label:xe.label},"_se")}),delete ue.selfEdges})})}function D(C){C.nodes().forEach(P=>{var X=C.node(P);if(X.dummy==="selfedge"){var J=C.node(X.e.v),ne=J.x+J.width/2,re=J.y,ue=X.x-ne,xe=J.height/2;C.setEdge(X.e,X.label),C.removeNode(P),X.label.points=[{x:ne+2*ue/3,y:re-xe},{x:ne+5*ue/6,y:re-xe},{x:ne+ue,y:re},{x:ne+5*ue/6,y:re+xe},{x:ne+2*ue/3,y:re+xe}],X.label.x=X.x,X.label.y=X.y}})}function $(C,P){return p.mapValues(p.pick(C,P),Number)}function Y(C){var P={};return C&&Object.entries(C).forEach(([X,J])=>{typeof X=="string"&&(X=X.toLowerCase()),P[X]=J}),P}return wp}var _p,h1;function x4(){if(h1)return _p;h1=1;let e=zt(),t=Xn().Graph;_p={debugOrdering:n};function n(a){let l=e.buildLayerMatrix(a),o=new t({compound:!0,multigraph:!0}).setGraph({});return a.nodes().forEach(s=>{o.setNode(s,{label:s}),o.setParent(s,"layer"+a.node(s).rank)}),a.edges().forEach(s=>o.setEdge(s.v,s.w,{},s.name)),l.forEach((s,c)=>{let d="layer"+c;o.setNode(d,{rank:"same"}),s.reduce((f,m)=>(o.setEdge(f,m,{style:"invis"}),m))}),o}return _p}var Sp,p1;function y4(){return p1||(p1=1,Sp="1.1.8"),Sp}var kp,m1;function v4(){return m1||(m1=1,kp={graphlib:Xn(),layout:g4(),debug:x4(),util:{time:zt().time,notime:zt().notime},version:y4()}),kp}var b4=v4();const g1=Jo(b4),Do=200,cl=56,x1=20,y1=40,w4=20,v1=12;function _4(e,t,n,a,l,o,s,c){const d=[],f=[],m=new Set,p=new Set,g=new Map;for(const N of n)for(const k of N.agents)p.add(k),g.set(k,N.name);for(const N of n){const k=l[N.name],T=N.agents.length,M=Do+x1*2,A=y1+T*cl+(T-1)*v1+w4;d.push({id:N.name,type:"groupNode",position:{x:0,y:0},data:{label:N.name,type:"parallel_group",status:(k==null?void 0:k.status)||"pending",groupName:N.name,progress:o[N.name]},style:{width:M,height:A}});for(let H=0;H$entryPoint",source:"$start",target:s,type:"animatedEdge",data:{},animated:!1})}const w=new Set(d.map(N=>N.id)),E=new Map;for(const N of d)N.parentId&&E.set(N.id,N.parentId);const S=new Map;for(const N of t){const k=E.get(N.from)??N.from,T=E.get(N.to)??N.to;if(!w.has(k)||!w.has(T)||k===T)continue;const M=`${k}->${T}`,A=S.get(M);if(A){A.when!==N.when&&(f[A.idx].data={when:void 0});continue}const H=f.length;S.set(M,{when:N.when,idx:H});const L=`${M}${N.when?`[${N.when}]`:""}`;f.push({id:L,source:k,target:T,type:"animatedEdge",data:{when:N.when},animated:!1})}const _=S4(d,f,"$start");return k4(d,f,_),{nodes:d,edges:f}}function S4(e,t,n){const a=new Set(e.filter(f=>!f.parentId).map(f=>f.id)),l=new Map;for(const f of t)!a.has(f.source)||!a.has(f.target)||(l.has(f.source)||l.set(f.source,[]),l.get(f.source).push({target:f.target,edgeId:f.id}));for(const f of l.values())f.sort((m,p)=>m.targetp.target?1:0);const o=new Set,s=new Set,c=new Set,d=f=>{c.add(f),s.add(f);for(const{target:m,edgeId:p}of l.get(f)??[])s.has(m)?o.add(p):c.has(m)||d(m);s.delete(f)};a.has(n)&&d(n);for(const f of[...l.keys()].sort())c.has(f)||d(f);return o}function k4(e,t,n){var l,o,s,c;const a=new g1.graphlib.Graph;a.setDefaultEdgeLabel(()=>({})),a.setGraph({rankdir:"TB",nodesep:50,ranksep:70,marginx:30,marginy:30});for(const d of e){if(d.parentId)continue;const f=d.type==="groupNode",m=f&&((l=d.style)==null?void 0:l.width)||Do,p=f&&((o=d.style)==null?void 0:o.height)||cl;a.setNode(d.id,{width:m,height:p})}for(const d of t)!a.hasNode(d.source)||!a.hasNode(d.target)||(n.has(d.id)?a.setEdge(d.target,d.source):a.setEdge(d.source,d.target));g1.layout(a);for(const d of e){if(d.parentId)continue;const f=a.node(d.id);if(!f)continue;const m=d.type==="groupNode",p=m&&((s=d.style)==null?void 0:s.width)||Do,g=m&&((c=d.style)==null?void 0:c.height)||cl;d.position={x:f.x-p/2,y:f.y-g/2}}}const Me={pending:"#6b7280",running:"#3b82f6",completed:"#22c55e",failed:"#ef4444",paused:"#f59e0b",idle:"#6b7280",waiting:"#a855f7"},E4=70,b1=90;function da({data:e,children:t}){const[n,a]=I.useState(!1),l=I.useRef(null),o=I.useCallback(()=>{l.current=setTimeout(()=>a(!0),200)},[]),s=I.useCallback(()=>{l.current&&clearTimeout(l.current),a(!1)},[]),c=Me[e.status]||Me.pending;return y.jsxs("div",{className:"relative",onMouseEnter:o,onMouseLeave:s,children:[t,n&&y.jsxs("div",{className:Te("absolute z-50 bottom-full left-1/2 -translate-x-1/2 mb-2","bg-[var(--surface-raised)] border border-[var(--border)] shadow-lg","rounded-lg px-3 py-2 max-w-[260px] pointer-events-none","animate-[tooltip-in_150ms_ease-out]"),children:[y.jsx("div",{className:"absolute top-full left-1/2 -translate-x-1/2 w-0 h-0 border-x-[6px] border-x-transparent border-t-[6px] border-t-[var(--border)]"}),y.jsxs("div",{className:"flex flex-col gap-1.5 text-[11px]",children:[y.jsxs("div",{className:"flex items-center gap-1.5",children:[y.jsx("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:c}}),y.jsx("span",{className:"font-medium text-[var(--text)] capitalize",children:e.status}),e.iteration!=null&&e.iteration>1&&y.jsxs("span",{className:"text-[var(--text-muted)] ml-auto",children:["iter ",e.iteration]})]}),y.jsx("div",{className:"h-px bg-[var(--border)]"}),y.jsxs("div",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5",children:[e.elapsed!=null&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Elapsed"}),y.jsx("span",{className:"text-[var(--text)] font-mono",children:ot(e.elapsed)})]}),e.model&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Model"}),y.jsx("span",{className:"text-[var(--text)] truncate",children:e.model})]}),e.tokens!=null&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Tokens"}),y.jsxs("span",{className:"text-[var(--text)] font-mono",children:[Gn(e.tokens),e.inputTokens!=null&&e.outputTokens!=null&&y.jsxs("span",{className:"text-[var(--text-muted)]",children:[" ","(",Gn(e.inputTokens),"↑ ",Gn(e.outputTokens),"↓)"]})]})]}),e.costUsd!=null&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Cost"}),y.jsx("span",{className:"text-[var(--text)] font-mono",children:_i(e.costUsd)})]}),e.exitCode!=null&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Exit code"}),y.jsx("span",{className:Te("font-mono",e.exitCode===0?"text-[var(--completed)]":"text-[var(--failed)]"),children:e.exitCode})]}),e.selectedOption&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Selected"}),y.jsx("span",{className:"text-[var(--text)] truncate",children:e.selectedOption})]}),e.terminationStatus&&y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-[var(--text-muted)]",children:"Termination"}),y.jsx("span",{className:Te("font-mono capitalize",e.terminationStatus==="success"?"text-[var(--completed)]":"text-[var(--failed)]"),children:e.terminationStatus})]})]}),e.reason&&y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"h-px bg-[var(--border)]"}),y.jsxs("div",{className:Te("leading-tight break-words",e.terminationStatus==="failed"?"text-red-400":"text-[var(--text)]"),children:[y.jsx("span",{className:"text-[var(--text-muted)] mr-1",children:"Reason:"}),e.reason.slice(0,160),e.reason.length>160?"...":""]})]}),e.errorMessage&&y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"h-px bg-[var(--border)]"}),y.jsxs("div",{className:"text-red-400 leading-tight",children:[e.errorType&&y.jsxs("span",{className:"font-medium",children:[e.errorType,": "]}),y.jsxs("span",{className:"break-words",children:[e.errorMessage.slice(0,120),e.errorMessage.length>120?"...":""]})]})]})]})]})]})}const N4=I.memo(function({data:t,id:n,selected:a}){var V;const l=t,o=Rn(),c=((V=o[n])==null?void 0:V.status)||l.status||"pending",d=Me[c]||Me.pending,f=o[n],m=f==null?void 0:f.elapsed,p=f==null?void 0:f.model,g=f==null?void 0:f.tokens,v=f==null?void 0:f.input_tokens,w=f==null?void 0:f.output_tokens,E=f==null?void 0:f.cost_usd,S=f==null?void 0:f.iteration,_=f==null?void 0:f.error_type,N=f==null?void 0:f.error_message,k=f==null?void 0:f.context_pct,T=f==null?void 0:f.provider_tier,M=f==null?void 0:f.provider_name,A=C4(n,c),H=j4(c),L=(()=>{if(c==="failed"&&N)return{text:N.length>40?N.slice(0,37)+"...":N,className:"text-red-400"};if(c==="running")return{text:A,className:"text-[var(--text-muted)]"};if(c==="completed"){const R=[];return m!=null&&R.push(ot(m)),g!=null&&R.push(`${Gn(g)} tok`),E!=null&&R.push(_i(E)),{text:R.join(" · ")||null,className:"text-[var(--text-muted)]"}}return{text:null,className:""}})();return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,elapsed:m,model:p,tokens:g,inputTokens:v,outputTokens:w,costUsd:E,iteration:S,errorType:_,errorMessage:N},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="running"&&"shadow-[0_0_12px_var(--running-glow)]",H),style:{borderColor:d},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",c==="running"&&"animate-pulse"),style:{backgroundColor:`${d}20`},children:y.jsx(dN,{className:"w-3.5 h-3.5",style:{color:d}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),S!=null&&S>1&&y.jsxs("span",{className:"flex-shrink-0 inline-flex items-center justify-center px-1.5 py-0.5 rounded-full text-[9px] font-bold leading-none",style:{backgroundColor:`${d}25`,color:d},children:["x",S]}),T==="experimental"&&y.jsx("span",{className:"flex-shrink-0 inline-flex items-center justify-center px-1.5 py-0.5 rounded-full text-[9px] font-bold leading-none uppercase tracking-wide",style:{backgroundColor:"rgba(245, 158, 11, 0.18)",color:"#f59e0b"},title:`Experimental provider: ${M??"unknown"}`,children:"exp"})]}),L.text&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight",L.className),children:L.text})]}),k!=null&&y.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] rounded-b-lg overflow-hidden",style:{backgroundColor:"rgba(255,255,255,0.06)"},children:y.jsx("div",{className:Te("h-full transition-all duration-500",k>=b1?"animate-[context-pulse_2s_ease-in-out_infinite]":""),style:{width:`${Math.min(k,100)}%`,backgroundColor:k>=b1?"#ef4444":k>=E4?"#f59e0b":"#22c55e"}})})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function C4(e,t){var d;const n=(d=Rn()[e])==null?void 0:d.startedAt,a=se(f=>f.replayMode),l=se(f=>f.lastEventTime),[o,s]=I.useState("0.0s"),c=I.useRef(null);return I.useEffect(()=>{if(t==="running"){if(a){c.current&&clearInterval(c.current);const p=n??l??0;s(ot((l??p)-p));return}const f=n!=null?n*1e3:Date.now(),m=()=>{const p=(Date.now()-f)/1e3;s(ot(p))};return m(),c.current=setInterval(m,1e3),()=>{c.current&&clearInterval(c.current)}}else c.current&&clearInterval(c.current)},[t,n,a,l]),o}function j4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"?a("node-activate"):l==="running"&&(e==="completed"||e==="failed")&&a(e==="completed"?"node-complete":"node-fail");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const T4=I.memo(function({data:t,id:n,selected:a}){var _;const l=t,o=Rn(),c=((_=o[n])==null?void 0:_.status)||l.status||"pending",d=Me[c]||Me.pending,f=o[n],m=f==null?void 0:f.elapsed,p=f==null?void 0:f.exit_code,g=f==null?void 0:f.error_type,v=f==null?void 0:f.error_message,w=A4(n,c),E=z4(c),S=(()=>{if(c==="failed"&&v)return{text:v.length>40?v.slice(0,37)+"...":v,className:"text-red-400"};if(c==="running")return{text:w,className:"text-[var(--text-muted)]"};if(c==="completed"){const N=[];return m!=null&&N.push(ot(m)),p!=null&&N.push(`exit ${p}`),{text:N.join(" · ")||null,className:"text-[var(--text-muted)]"}}return{text:null,className:""}})();return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,elapsed:m,exitCode:p,errorType:g,errorMessage:v},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="running"&&"shadow-[0_0_12px_var(--running-glow)]",E),style:{borderColor:d},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",c==="running"&&"animate-pulse"),style:{backgroundColor:`${d}20`},children:y.jsx(NN,{className:"w-3.5 h-3.5",style:{color:d}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),S.text&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight",S.className),children:S.text})]})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function A4(e,t){var d;const n=(d=Rn()[e])==null?void 0:d.startedAt,a=se(f=>f.replayMode),l=se(f=>f.lastEventTime),[o,s]=I.useState("0.0s"),c=I.useRef(null);return I.useEffect(()=>{if(t==="running"){if(a){c.current&&clearInterval(c.current);const p=n??l??0;s(ot((l??p)-p));return}const f=n!=null?n*1e3:Date.now(),m=()=>{const p=(Date.now()-f)/1e3;s(ot(p))};return m(),c.current=setInterval(m,1e3),()=>{c.current&&clearInterval(c.current)}}else c.current&&clearInterval(c.current)},[t,n,a,l]),o}function z4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"?a("node-activate"):l==="running"&&(e==="completed"||e==="failed")&&a(e==="completed"?"node-complete":"node-fail");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const M4=I.memo(function({data:t,id:n,selected:a}){var N;const l=t,o=Rn(),c=((N=o[n])==null?void 0:N.status)||l.status||"pending",d=Me[c]||Me.pending,f=o[n],m=f==null?void 0:f.elapsed,p=f==null?void 0:f.set_output_keys,g=f==null?void 0:f.set_value_repr,v=f==null?void 0:f.error_type,w=f==null?void 0:f.error_message,E=D4(n,c),S=R4(c),_=(()=>{if(c==="failed"&&w)return{text:w.length>40?w.slice(0,37)+"...":w,className:"text-red-400"};if(c==="running")return{text:E,className:"text-[var(--text-muted)]"};if(c==="completed"){const k=[];if(m!=null&&k.push(ot(m)),p&&p.length>0)k.push(`${p.length} key${p.length===1?"":"s"}`);else if(g){const T=g.length>24?g.slice(0,21)+"…":g;k.push(T)}return{text:k.join(" · ")||null,className:"text-[var(--text-muted)]"}}return{text:null,className:""}})();return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,elapsed:m,errorType:v,errorMessage:w},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="running"&&"shadow-[0_0_12px_var(--running-glow)]",S),style:{borderColor:d},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",c==="running"&&"animate-pulse"),style:{backgroundColor:`${d}20`},children:y.jsx(CN,{className:"w-3.5 h-3.5",style:{color:d}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),_.text&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight",_.className),children:_.text})]})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function D4(e,t){var d;const n=(d=Rn()[e])==null?void 0:d.startedAt,a=se(f=>f.replayMode),l=se(f=>f.lastEventTime),[o,s]=I.useState("0.0s"),c=I.useRef(null);return I.useEffect(()=>{if(t==="running"){if(a){c.current&&clearInterval(c.current);const p=n??l??0;s(ot((l??p)-p));return}const f=n!=null?n*1e3:Date.now(),m=()=>{const p=(Date.now()-f)/1e3;s(ot(p))};return m(),c.current=setInterval(m,1e3),()=>{c.current&&clearInterval(c.current)}}else c.current&&clearInterval(c.current)},[t,n,a,l]),o}function R4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"?a("node-activate"):l==="running"&&(e==="completed"||e==="failed")&&a(e==="completed"?"node-complete":"node-fail");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const O4=I.memo(function({data:t,id:n,selected:a}){var p,g;const l=t,o=Rn(),c=((p=o[n])==null?void 0:p.status)||l.status||"pending",d=Me[c]||Me.pending,f=(g=o[n])==null?void 0:g.selected_option,m=L4(c);return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,selectedOption:f},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 border-dashed bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="waiting"&&"shadow-[0_0_12px_var(--waiting-muted)]",c==="running"&&"shadow-[0_0_12px_var(--running-glow)]",m),style:{borderColor:d},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",c==="waiting"&&"animate-pulse"),style:{backgroundColor:`${d}20`},children:y.jsx(EN,{className:"w-3.5 h-3.5",style:{color:d}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),c==="waiting"&&y.jsx("span",{className:"text-[10px] text-[var(--waiting)] truncate leading-tight",children:"Awaiting input..."}),c==="completed"&&f&&y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] truncate leading-tight",children:f})]})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function L4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"||e==="waiting"?a("node-activate"):(l==="running"||l==="waiting")&&e==="completed"&&a("node-complete");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const H4=I.memo(function({data:t,id:n,selected:a}){var S;const l=t,s=l.type==="for_each_group"?SN:vN,c=l.progress,m=((S=Rn()[n])==null?void 0:S.status)||l.status||"pending",p=Me[m]||Me.pending,g=B4(m),v=c?`${c.completed+c.failed}/${c.total}${c.failed>0?` (${c.failed} failed)`:""}`:null,w=c&&c.total>0?(c.completed+c.failed)/c.total*100:0,E=c!=null&&c.failed>0;return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsxs("div",{className:Te("flex flex-col gap-1 px-4 py-3 rounded-xl border-2 border-dashed bg-[var(--surface)]/80 min-w-[180px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",m==="running"&&"shadow-[0_0_16px_var(--running-glow)]",g),style:{borderColor:p,minHeight:"100%"},children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(s,{className:"w-3.5 h-3.5",style:{color:p}}),y.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:l.label})]}),v&&y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] font-mono",children:v}),c&&c.total>0&&m==="running"&&y.jsx("div",{className:"w-full h-1 rounded-full bg-[var(--border)] overflow-hidden mt-0.5",children:y.jsx("div",{className:"h-full rounded-full transition-all duration-500 ease-out",style:{width:`${w}%`,backgroundColor:E?"var(--failed)":"var(--completed)"}})})]}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function B4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"?a("node-activate"):l==="running"&&(e==="completed"||e==="failed")&&a(e==="completed"?"node-complete":"node-fail");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const I4=I.memo(function({data:t,id:n,selected:a}){const l=t,s=se(S=>{var _;return(_=S.nodes[n])==null?void 0:_.status})||l.status||"pending",c=Me[s]||Me.pending,d=se(S=>{var _;return(_=S.nodes[n])==null?void 0:_.elapsed}),f=se(S=>{var _;return(_=S.nodes[n])==null?void 0:_.error_message}),m=se(S=>S.navigateIntoSubworkflow),p=Vm(),g=p.some(S=>S.parentAgent===n),v=p.find(S=>S.parentAgent===n),w=v==null?void 0:v.workflowName,E=(()=>{if(s==="failed"&&f)return{text:f.length>35?f.slice(0,32)+"...":f,className:"text-red-400"};if(s==="running")return{text:w||"Running subworkflow…",className:"text-[var(--text-muted)]"};if(s==="completed"){const S=[];return w&&S.push(w),d!=null&&S.push(`${d.toFixed(1)}s`),{text:S.join(" · ")||"Done",className:"text-[var(--text-muted)]"}}return{text:w||null,className:"text-[var(--text-muted)]"}})();return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:s,elapsed:d,errorType:void 0,errorMessage:f,iteration:void 0},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[240px] transition-all duration-300 cursor-pointer",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",s==="running"&&"shadow-[0_0_12px_var(--running-glow)]"),style:{borderColor:c,borderStyle:"dashed"},onDoubleClick:S=>{g&&(S.stopPropagation(),m(n))},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",s==="running"&&"animate-pulse"),style:{backgroundColor:`${c}20`},children:y.jsx(kc,{className:"w-3.5 h-3.5",style:{color:c}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("div",{className:"flex items-center gap-1",children:y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label})}),E.text&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight",E.className),children:E.text})]}),g&&y.jsx(Lr,{className:"w-3.5 h-3.5 flex-shrink-0 text-[var(--text-muted)]"})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})}),q4=I.memo(function({data:t,id:n,selected:a}){var k;const l=t,o=Rn(),c=((k=o[n])==null?void 0:k.status)||l.status||"pending",d=Me[c]||Me.pending,f=o[n],m=(f==null?void 0:f.duration_seconds)??(f==null?void 0:f.requested_seconds),p=f==null?void 0:f.waited_seconds,g=f==null?void 0:f.elapsed,v=f==null?void 0:f.interrupted,w=f==null?void 0:f.error_type,E=f==null?void 0:f.error_message,S=$4(n,c),_=U4(c),N=(()=>{if(c==="failed"&&E)return{text:E.length>40?E.slice(0,37)+"...":E,className:"text-red-400"};if(c==="running"){const T=typeof m=="number"?` / ${ot(m)}`:"";return{text:`${S}${T}`,className:"text-[var(--text-muted)]"}}if(c==="completed"){const T=[];return p!=null?T.push(ot(p)):g!=null&&T.push(ot(g)),v&&T.push("interrupted"),{text:T.join(" · ")||null,className:"text-[var(--text-muted)]"}}return c==="pending"&&typeof m=="number"?{text:ot(m),className:"text-[var(--text-muted)]"}:{text:null,className:""}})();return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,elapsed:p??g,errorType:w,errorMessage:E},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="running"&&"shadow-[0_0_12px_var(--running-glow)]",_),style:{borderColor:d},children:[y.jsx("div",{className:Te("flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",c==="running"&&"animate-pulse"),style:{backgroundColor:`${d}20`},children:y.jsx(bw,{className:"w-3.5 h-3.5",style:{color:d}})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),N.text&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight",N.className),children:N.text})]})]})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})});function $4(e,t){var d;const n=(d=Rn()[e])==null?void 0:d.startedAt,a=se(f=>f.replayMode),l=se(f=>f.lastEventTime),[o,s]=I.useState("0.0s"),c=I.useRef(null);return I.useEffect(()=>{if(t==="running"){if(a){c.current&&clearInterval(c.current);const p=n??l??0;s(ot((l??p)-p));return}const f=n!=null?n*1e3:Date.now(),m=()=>{const p=(Date.now()-f)/1e3;s(ot(p))};return m(),c.current=setInterval(m,1e3),()=>{c.current&&clearInterval(c.current)}}else c.current&&clearInterval(c.current)},[t,n,a,l]),o}function U4(e){const t=I.useRef(e),[n,a]=I.useState("");return I.useEffect(()=>{const l=t.current;if(t.current=e,l===e)return;e==="running"?a("node-activate"):l==="running"&&(e==="completed"||e==="failed")&&a(e==="completed"?"node-complete":"node-fail");const o=setTimeout(()=>a(""),400);return()=>clearTimeout(o)},[e]),n}const V4=I.memo(function({data:t,id:n,selected:a}){var S;const l=t,o=Rn(),c=((S=o[n])==null?void 0:S.status)||l.status||"pending",d=Me[c]||Me.pending,f=o[n],m=f==null?void 0:f.termination_reason,p=f==null?void 0:f.termination_status,g=f==null?void 0:f.error_message,v=f==null?void 0:f.error_type,w=m||g,E=c==="failed"?"text-red-400":c==="completed"?"text-green-400":"text-[var(--text-muted)]";return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx(da,{data:{status:c,reason:m,terminationStatus:p,errorType:v,errorMessage:g},children:y.jsxs("div",{className:Te("flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[260px] transition-all duration-300",a&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",c==="completed"&&"shadow-[0_0_12px_var(--completed-muted)]",c==="failed"&&"shadow-[0_0_12px_var(--failed-muted)]"),style:{borderColor:d},children:[y.jsx("div",{className:"flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0",style:{backgroundColor:`${d}20`},children:y.jsx(wN,{className:"w-3.5 h-3.5",style:{color:d},fill:c==="completed"||c==="failed"?d:"transparent",fillOpacity:.2})}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:l.label}),y.jsxs("span",{className:"text-[10px] uppercase tracking-wide text-[var(--text-muted)] truncate leading-tight",children:["terminate",p?` · ${p}`:""]}),w&&y.jsx("span",{className:Te("text-[10px] truncate leading-tight mt-0.5",E),title:w,children:w.length>50?w.slice(0,47)+"...":w})]})]})})]})}),P4=I.memo(function({data:t,selected:n}){const l=t.status||"pending",o=l==="completed",s=l==="failed",c=!o&&!s,d=o?Me.completed:s?Me.failed:Me.pending;return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsx("div",{className:Te("flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300",o?"bg-[var(--completed)] shadow-[0_0_16px_var(--completed-muted)]":s?"bg-[var(--failed)] shadow-[0_0_16px_var(--failed-muted)]":"bg-[var(--node-bg)]",n&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]"),style:{borderColor:d},children:o?y.jsx(Wi,{className:"w-5 h-5 text-white",strokeWidth:3}):s?y.jsx(bm,{className:"w-3.5 h-3.5 text-white",fill:"white"}):y.jsx(Wi,{className:"w-5 h-5",strokeWidth:2.5,style:{color:c?Me.pending:d}})})]})}),G4=I.memo(function({data:t,selected:n}){const l=t.status||"pending",o=Me[l]||Me.pending,s=l==="running"||l==="completed";return y.jsxs(y.Fragment,{children:[y.jsx("div",{className:Te("flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300",s?"bg-[var(--completed)]":"bg-[var(--node-bg)]",n&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",s&&"shadow-[0_0_12px_var(--completed-muted)]"),style:{borderColor:o},children:y.jsx(Ec,{className:"w-4 h-4 ml-0.5",style:{color:s?"white":o}})}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})}),w1="#a78bfa",F4=I.memo(function({data:t,selected:n}){const a=t,l=a.status||"pending",o=l==="running"||l==="completed",s=o?w1:Me[l]||w1,c=a.parentAgent,d=se(f=>f.navigateUp);return y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex flex-col items-center gap-1",children:[y.jsx("div",{className:Te("flex items-center justify-center w-11 h-11 rounded-full border-2 border-dashed transition-all duration-300 cursor-pointer",o?"bg-[#a78bfa]":"bg-[var(--node-bg)]",n&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]",o&&"shadow-[0_0_12px_rgba(167,139,250,0.4)]"),style:{borderColor:s},onDoubleClick:f=>{f.stopPropagation(),d()},children:y.jsx(cN,{className:"w-4 h-4",style:{color:o?"white":s}})}),c&&y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)] whitespace-nowrap",children:["from ",y.jsx("span",{className:"font-medium text-[var(--text)]",children:c})]})]}),y.jsx(xt,{type:"source",position:ve.Bottom,className:"!bg-[var(--border)] !border-none !w-2 !h-2"})]})}),_1="#a78bfa",Y4=I.memo(function({data:t,selected:n}){const a=t,l=a.status||"pending",o=l==="completed",s=l==="failed",c=o?_1:s?Me.failed:_1,d=a.parentAgent,f=se(m=>m.navigateUp);return y.jsxs(y.Fragment,{children:[y.jsx(xt,{type:"target",position:ve.Top,className:"!bg-[var(--border)] !border-none !w-2 !h-2"}),y.jsxs("div",{className:"flex flex-col items-center gap-1",children:[y.jsx("div",{className:Te("flex items-center justify-center w-11 h-11 rounded-full border-2 border-dashed transition-all duration-300 cursor-pointer",o?"bg-[#a78bfa] shadow-[0_0_12px_rgba(167,139,250,0.4)]":s?"bg-[var(--failed)] shadow-[0_0_16px_var(--failed-muted)]":"bg-[var(--node-bg)]",n&&"ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]"),style:{borderColor:c},onDoubleClick:m=>{m.stopPropagation(),f()},children:y.jsx(fN,{className:"w-4 h-4",style:{color:o||s?"white":c}})}),d&&y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)] whitespace-nowrap",children:["return to ",y.jsx("span",{className:"font-medium text-[var(--text)]",children:d})]})]})]})}),X4=I.memo(function({id:t,sourceX:n,sourceY:a,targetX:l,targetY:o,sourcePosition:s,targetPosition:c,source:d,target:f,data:m}){const p=zM(),g=I.useMemo(()=>p.find(V=>V.from===d&&V.to===f),[p,d,f]),[v,w,E]=Lm({sourceX:n,sourceY:a,targetX:l,targetY:o,sourcePosition:s,targetPosition:c}),S=m==null?void 0:m.when,_=!!S,N=(g==null?void 0:g.state)==="taken",k=(g==null?void 0:g.state)==="highlighted",T=(g==null?void 0:g.state)==="failed";let M="var(--edge-color)",A=2,H;T?(M="var(--failed)",A=3):N?(M="var(--edge-taken)",A=3):k&&(M="var(--edge-active)",A=3),_&&!N&&!k&&!T&&(H="6 3");const L=T?"failed":N?"taken":k?"active":"default";return y.jsxs(y.Fragment,{children:[y.jsx(ls,{id:t,path:v,style:{stroke:M,strokeWidth:A,strokeDasharray:H,transition:"stroke 0.3s ease, stroke-width 0.3s ease"},markerEnd:`url(#arrow-${L})`}),_&&y.jsx(Wz,{children:y.jsx("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, -50%) translate(${w}px,${E}px)`,pointerEvents:"all"},children:y.jsx("span",{className:"inline-block px-1.5 py-0.5 rounded-full text-[9px] font-mono leading-tight max-w-[140px] truncate",style:{backgroundColor:T?"var(--failed)":N?"var(--edge-taken)":"var(--surface)",color:T||N?"var(--bg)":"var(--text-muted)",border:`1px solid ${T?"var(--failed)":N?"var(--edge-taken)":"var(--border)"}`},title:S,children:S})})}),N&&y.jsx("circle",{r:"3",fill:"var(--edge-taken)",children:y.jsx("animateMotion",{dur:"1s",repeatCount:"indefinite",path:v})}),T&&y.jsx("circle",{r:"3",fill:"var(--failed)",opacity:"0.8",children:y.jsx("animateMotion",{dur:"1.5s",repeatCount:"indefinite",path:v})})]})});function Q4(){var f;const e=se(m=>m.workflowStatus),t=se(m=>m.workflowFailure),n=se(m=>m.workflowFailedAgent),a=se(m=>m.workflowTermination),l=se(m=>m.selectNode);if(e!=="failed"||!t)return null;if(t.stopped_by_user){const m=(f=t.checkpoint_path)==null?void 0:f.split("/").pop();return y.jsx("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]",children:y.jsxs("div",{className:Te("flex items-center gap-2 px-4 py-2 rounded-lg","bg-slate-900/90 border border-slate-500/40 shadow-lg shadow-slate-500/10","backdrop-blur-sm max-w-[560px]"),children:[y.jsx(bm,{className:"w-4 h-4 text-slate-300 flex-shrink-0"}),y.jsxs("div",{className:"flex flex-col min-w-0",children:[y.jsx("span",{className:"text-xs font-medium text-slate-200",children:"Workflow Stopped"}),t.checkpoint_path?y.jsxs(y.Fragment,{children:[y.jsxs("span",{className:"text-[11px] text-slate-300/80 truncate",title:t.checkpoint_path,children:["Checkpoint saved: ",m]}),y.jsx("span",{className:"text-[10px] text-slate-400/70 truncate",children:"Resume from the CLI with: conductor resume"})]}):t.checkpoint_unavailable_reason?y.jsxs("span",{className:"text-[11px] text-amber-300/80 truncate",title:t.checkpoint_unavailable_reason,children:["No checkpoint could be saved — ",t.checkpoint_unavailable_reason]}):y.jsx("span",{className:"text-[11px] text-slate-400/70 truncate",children:"Saving checkpoint…"})]}),n&&y.jsxs("button",{onClick:()=>l(n),className:"flex items-center gap-1 px-2 py-1 rounded text-[10px] font-medium text-slate-200 bg-slate-500/20 hover:bg-slate-500/30 transition-colors flex-shrink-0 ml-1",children:[y.jsx(nv,{className:"w-3 h-3"}),"View"]})]})})}const o=(a==null?void 0:a.is_explicit)&&a.status==="failed",s=o?a.termination_reason||t.message||"Workflow terminated":t.message||t.error_type||"Unknown error",c=o?"Workflow Terminated":"Workflow Failed",d=t.error_type==="TimeoutError";return y.jsx("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]",children:y.jsxs("div",{className:Te("flex items-center gap-2 px-4 py-2 rounded-lg","bg-red-950/90 border border-red-500/40 shadow-lg shadow-red-500/10","backdrop-blur-sm max-w-[560px]"),children:[y.jsx(ac,{className:"w-4 h-4 text-red-400 flex-shrink-0"}),y.jsxs("div",{className:"flex flex-col min-w-0",children:[y.jsx("span",{className:"text-xs font-medium text-red-300",children:c}),y.jsx("span",{className:"text-[11px] text-red-400/80 truncate",children:s}),o&&(a==null?void 0:a.terminated_by)&&y.jsxs("span",{className:"text-[10px] text-red-400/60 truncate",children:["Terminated by: ",a.terminated_by]}),d&&t.current_agent&&y.jsxs("span",{className:"text-[10px] text-red-400/60 truncate",children:["Timed out on agent: ",t.current_agent]}),t.checkpoint_path&&y.jsxs("span",{className:"text-[10px] text-red-400/50 truncate",title:t.checkpoint_path,children:["Checkpoint: ",t.checkpoint_path.split("/").pop()]})]}),n&&y.jsxs("button",{onClick:()=>l(n),className:"flex items-center gap-1 px-2 py-1 rounded text-[10px] font-medium text-red-300 bg-red-500/20 hover:bg-red-500/30 transition-colors flex-shrink-0 ml-1",children:[y.jsx(nv,{className:"w-3 h-3"}),"View"]})]})})}function Z4(){const[e,t]=I.useState(!1),n=se(m=>m.workflowStatus),a=se(m=>m.workflowTermination),l=se(m=>m.totalCost),o=se(m=>m.totalTokens),s=se(m=>m.agentsCompleted),c=se(m=>m.agentsTotal),d=Cw();if(n!=="completed"||e)return null;const f=(a==null?void 0:a.is_explicit)&&a.status==="success";return y.jsx("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]",children:y.jsxs("div",{className:Te("flex items-center gap-3 px-4 py-2 rounded-lg","bg-green-950/90 border border-green-500/40 shadow-lg shadow-green-500/10","backdrop-blur-sm max-w-[560px]"),children:[y.jsx(pN,{className:"w-4 h-4 text-green-400 flex-shrink-0"}),y.jsxs("div",{className:"flex flex-col min-w-0",children:[y.jsx("span",{className:"text-xs font-medium text-green-300",children:f?"Workflow Terminated":"Completed"}),f&&(a==null?void 0:a.termination_reason)&&y.jsx("span",{className:"text-[11px] text-green-400/80 truncate",children:a.termination_reason}),f&&(a==null?void 0:a.terminated_by)&&y.jsxs("span",{className:"text-[10px] text-green-400/60 truncate",children:["Terminated by: ",a.terminated_by]})]}),y.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-green-400/80 font-mono flex-shrink-0 ml-auto",children:[y.jsx("span",{children:d}),c>0&&y.jsxs("span",{children:[s,"/",c," agents"]}),o>0&&y.jsxs("span",{children:[Gn(o)," tok"]}),l>0&&y.jsx("span",{children:_i(l)})]}),y.jsx("button",{onClick:()=>t(!0),className:"p-0.5 rounded text-green-500/60 hover:text-green-300 transition-colors flex-shrink-0 ml-1",children:y.jsx(ca,{className:"w-3.5 h-3.5"})})]})})}const K4={agentNode:N4,scriptNode:T4,setNode:M4,gateNode:O4,groupNode:H4,workflowNode:I4,waitNode:q4,terminateNode:V4,endNode:P4,startNode:G4,ingressNode:F4,egressNode:Y4},J4={animatedEdge:X4},W4={type:"animatedEdge"};function eD(){return y.jsx("svg",{style:{position:"absolute",width:0,height:0},children:y.jsxs("defs",{children:[y.jsx("marker",{id:"arrow-default",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:y.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"var(--edge-color)"})}),y.jsx("marker",{id:"arrow-active",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:y.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"var(--edge-active)"})}),y.jsx("marker",{id:"arrow-taken",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:y.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"var(--edge-taken)"})}),y.jsx("marker",{id:"arrow-failed",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:y.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"var(--failed)"})})]})})}function tD(){const e=MM(),t=se(z=>z.viewContextPath),n=se(z=>z.selectNode),a=se(z=>z.selectedNode),l=se(z=>z.workflowStatus),o=se(z=>z.wsStatus),s=se(z=>z.workflowFailedAgent),c=se(z=>z.navigateIntoSubworkflow),{agents:d,routes:f,parallelGroups:m,forEachGroups:p,nodes:g,groupProgress:v,entryPoint:w,subworkflowContexts:E,parentAgent:S}=e,[_,N,k]=eM([]),[T,M,A]=tM([]),H=I.useRef(!1),L=I.useRef(""),V=JSON.stringify(t);I.useEffect(()=>{if(d.length===0){L.current!==V&&(H.current=!1,L.current=V,N([]),M([]));return}if(L.current!==V&&(H.current=!1,L.current=V),H.current)return;H.current=!0;const{nodes:z,edges:G}=_4(d,f,m,p,g,v,w,S);N(z),M(G)},[d,f,m,p,g,v,w,N,M,V,S]),I.useEffect(()=>{H.current&&N(z=>z.map(G=>{const Q=g[G.id];if(!Q)return G;const K=Q.status||"pending",D=G.data.status;if(K!==D){const $={...G.data,status:K};return G.data.groupName&&v[G.data.groupName]&&($.progress=v[G.data.groupName]),{...G,data:$}}if(G.data.groupName&&v[G.data.groupName]){const $=G.data.progress,Y=v[G.data.groupName];if(Y&&(!$||$.completed!==Y.completed||$.failed!==Y.failed))return{...G,data:{...G.data,progress:Y}}}return G}))},[g,v,N]);const R=I.useCallback((z,G)=>{G.type==="groupNode"&&G.data.type!=="for_each_group"||n(G.id)},[n]),B=I.useCallback((z,G)=>{E.some(K=>K.parentAgent===G.id)&&c(G.id)},[E,c]),U=I.useCallback(()=>{n(null)},[n]),ee=I.useCallback(z=>{var Q;const G=((Q=z.data)==null?void 0:Q.status)||"pending";return Me[G]??Me.pending??"#6b7280"},[]);I.useEffect(()=>{N(z=>z.map(G=>({...G,selected:G.id===a})))},[a,N]),I.useEffect(()=>{l==="failed"&&s&&n(s)},[l,s,n]);const q=l==="pending"&&d.length===0,F=(()=>{switch(o){case"connecting":return"Connecting to workflow…";case"reconnecting":return"Reconnecting…";case"disconnected":return"Connection lost. Retrying…";default:return"Waiting for workflow…"}})();return y.jsxs("div",{className:"w-full h-full relative",children:[y.jsx(eD,{}),y.jsx(Q4,{}),y.jsx(Z4,{}),q&&y.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center pointer-events-none",children:[y.jsxs("div",{className:"relative mb-3",children:[y.jsx(AN,{className:"w-8 h-8 text-[var(--accent)] opacity-20"}),y.jsx(ml,{className:"w-8 h-8 text-[var(--text-muted)] animate-spin absolute inset-0 opacity-40"})]}),y.jsx("p",{className:"text-sm text-[var(--text-muted)] animate-pulse",children:F})]}),y.jsxs(Kz,{nodes:_,edges:T,onNodesChange:k,onEdgesChange:A,onNodeClick:R,onNodeDoubleClick:B,onPaneClick:U,nodeTypes:K4,edgeTypes:J4,defaultEdgeOptions:W4,fitView:!0,fitViewOptions:{padding:.2},minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,children:[y.jsx(lM,{variant:Rr.Dots,gap:20,size:1,color:"var(--border-subtle)"}),y.jsx(NM,{nodeColor:ee,maskColor:"var(--minimap-mask)",style:{background:"var(--minimap-bg)"},pannable:!0,zoomable:!0}),y.jsx(hM,{showInteractive:!1,children:y.jsx(nD,{})}),y.jsx(rD,{}),y.jsx(iD,{viewPathKey:V}),y.jsx(aD,{})]})]})}function nD(){const{fitView:e}=fa(),t=I.useCallback(()=>{e({padding:.2,duration:300})},[e]);return y.jsx("button",{onClick:t,className:"react-flow__controls-button",title:"Fit view (F)",style:{display:"flex",alignItems:"center",justifyContent:"center"},children:y.jsx(bN,{className:"w-3.5 h-3.5"})})}function rD(){const{fitView:e}=fa();return I.useEffect(()=>{const t=n=>{var l;const a=(l=n.target)==null?void 0:l.tagName;a==="INPUT"||a==="TEXTAREA"||a==="SELECT"||n.key==="f"&&!n.ctrlKey&&!n.metaKey&&!n.altKey&&e({padding:.2,duration:300})};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e]),null}function iD({viewPathKey:e}){const{fitView:t}=fa(),n=I.useRef(e);return I.useEffect(()=>{n.current!==e&&(n.current=e,setTimeout(()=>t({padding:.2,duration:300}),50))},[e,t]),null}function aD(){const e=LM();return e?y.jsx("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]",children:y.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 rounded-lg bg-amber-950/90 border border-amber-500/40 shadow-lg shadow-amber-500/10 backdrop-blur-sm max-w-[560px]",children:[y.jsx("span",{className:"text-xs text-amber-300",children:"⚠"}),y.jsx("span",{className:"text-[11px] text-amber-400/80",children:e.message}),y.jsx("a",{href:window.location.pathname,className:"px-2 py-0.5 rounded text-[10px] font-medium text-amber-300 bg-amber-500/20 hover:bg-amber-500/30 transition-colors flex-shrink-0 ml-1",children:"Root"})]})}):null}function Br({items:e}){const t=e.filter(n=>n.value!=null&&n.value!=="");return t.length===0?null:y.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs",children:t.map(({label:n,value:a})=>y.jsxs("div",{className:"contents",children:[y.jsx("dt",{className:"text-[var(--text-muted)] whitespace-nowrap",children:n}),y.jsx("dd",{className:"text-[var(--text)] break-words",children:typeof a=="object"?JSON.stringify(a):String(a)})]},n))})}function HS(e){const t=[];return e.elapsed!=null&&t.push({label:"Elapsed",value:ot(e.elapsed)}),e.model&&t.push({label:"Model",value:e.model}),e.reasoning_effort&&t.push({label:"Reasoning",value:e.reasoning_effort}),e.tokens!=null&&t.push({label:"Tokens",value:Gn(e.tokens)}),e.input_tokens!=null&&e.output_tokens!=null&&t.push({label:"In / Out",value:`${Gn(e.input_tokens)} / ${Gn(e.output_tokens)}`}),e.cost_usd!=null&&t.push({label:"Cost",value:_i(e.cost_usd)}),e.context_window_used!=null&&e.context_window_max!=null&&t.push({label:"Context",value:UN(e.context_window_used,e.context_window_max)}),e.iteration!=null&&t.push({label:"Iteration",value:e.iteration}),e.error_type&&t.push({label:"Error",value:e.error_type}),e.error_message&&t.push({label:"Message",value:e.error_message}),t}function Si({output:e,title:t="Output",defaultExpanded:n=!0,maxHeight:a="300px"}){const[l,o]=I.useState(n),[s,c]=I.useState(!1),d=Nw(e);if(!d)return null;const f=typeof e=="object"&&e!==null,m=async()=>{await navigator.clipboard.writeText(d),c(!0),setTimeout(()=>c(!1),2e3)};return y.jsxs("div",{className:"space-y-1.5",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("button",{onClick:()=>o(!l),className:"flex items-center gap-1 text-[10px] uppercase tracking-wider text-[var(--text-muted)] hover:text-[var(--text)] transition-colors font-semibold",children:[l?y.jsx(ua,{className:"w-3 h-3"}):y.jsx(Lr,{className:"w-3 h-3"}),t]}),l&&y.jsx("button",{onClick:m,className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors",title:"Copy to clipboard",children:s?y.jsx(Wi,{className:"w-3 h-3 text-[var(--completed)]"}):y.jsx(_w,{className:"w-3 h-3"})})]}),l&&y.jsx("pre",{className:"bg-[var(--bg)] border border-[var(--border)] rounded-md p-3 font-mono text-[11px] leading-relaxed text-[var(--text)] overflow-auto whitespace-pre-wrap break-words",style:{maxHeight:a},children:f?y.jsx(lD,{text:d}):d})]})}function lD({text:e}){const t=e.split(/("(?:[^"\\]|\\.)*")/g);return y.jsx(y.Fragment,{children:t.map((n,a)=>{if(a%2===1){const o=t.slice(a+1).join(""),s=/^\s*:/.test(o);return y.jsx("span",{className:s?"text-blue-400":"text-green-400",children:n},a)}const l=n.replace(/\b(true|false|null)\b|(-?\d+\.?\d*(?:e[+-]?\d+)?)/gi,(o,s,c)=>s?`${o}`:c?`${o}`:o);return y.jsx("span",{dangerouslySetInnerHTML:{__html:l}},a)})})}function Gm({activity:e,defaultExpanded:t=!0}){const[n,a]=I.useState(t),l=I.useRef(null);return I.useEffect(()=>{l.current&&n&&(l.current.scrollTop=l.current.scrollHeight)},[e.length,n]),e.length===0?null:y.jsxs("div",{className:"space-y-1.5",children:[y.jsxs("button",{onClick:()=>a(!n),className:"flex items-center gap-1 text-[10px] uppercase tracking-wider text-[var(--text-muted)] hover:text-[var(--text)] transition-colors font-semibold",children:[n?y.jsx(ua,{className:"w-3 h-3"}):y.jsx(Lr,{className:"w-3 h-3"}),"Activity (",e.length,")"]}),n&&y.jsx("div",{ref:l,className:"max-h-[400px] overflow-y-auto space-y-0.5",children:e.map((o,s)=>y.jsx(oD,{entry:o},s))})]})}function oD({entry:e}){const t={reasoning:"text-indigo-400/70","tool-start":"text-blue-400","tool-complete":"text-green-400",turn:"text-amber-400",message:"text-[var(--text)]"};return y.jsxs("div",{className:Te("py-1.5 px-2 rounded text-[11px] leading-relaxed border-b border-[var(--border-subtle)] last:border-b-0"),children:[y.jsxs("div",{className:"flex items-start gap-1.5",children:[y.jsx("span",{className:"w-4 text-center flex-shrink-0",children:e.icon}),y.jsx("span",{className:"text-[var(--text-muted)] uppercase text-[9px] font-semibold tracking-wider w-12 flex-shrink-0 pt-px",children:e.label}),y.jsx("span",{className:Te("break-words",t[e.type]||"text-[var(--text)]"),children:typeof e.text=="object"?JSON.stringify(e.text):e.text})]}),e.detail&&y.jsx("div",{className:"mt-1 ml-[4.25rem] px-2 py-1 bg-[var(--bg)] rounded text-[10px] font-mono text-[var(--text-muted)] whitespace-pre-wrap break-words max-h-24 overflow-y-auto",children:typeof e.detail=="object"?JSON.stringify(e.detail,null,2):e.detail})]})}const sD={running:{label:"Validating…",color:"#3b82f6"},passed:{label:"Passed",color:"#22c55e"},failed:{label:"Failed",color:"#f59e0b"},error:{label:"Validator error (treated as pass)",color:"#f59e0b"}};function uD({node:e}){const t=e.validator_state;if(!t)return null;const n=sD[t]??{label:"Validating…",color:"#3b82f6"},a=e.validator_issues??[],l=(t==="failed"||t==="error")&&a.length>0;return y.jsxs("div",{className:"border border-[var(--border)] rounded-lg overflow-hidden",children:[y.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-[var(--bg)]",children:[y.jsx("span",{className:"text-xs font-semibold text-[var(--text)]",children:"Validation"}),y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider ml-auto",style:{backgroundColor:`${n.color}20`,color:n.color},children:n.label})]}),y.jsxs("div",{className:"px-3 py-3 space-y-2 border-t border-[var(--border)]",children:[y.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-[10px] text-[var(--text-muted)]",children:[e.validator_model&&y.jsxs("span",{children:["model: ",e.validator_model]}),e.validator_cost_usd!=null&&y.jsxs("span",{children:["cost: $",e.validator_cost_usd.toFixed(4)]}),e.validator_attempts!=null&&e.validator_attempts>1&&y.jsxs("span",{children:["runs: ",e.validator_attempts]})]}),l&&y.jsxs("div",{className:"space-y-1",children:[y.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wider text-[var(--text-muted)]",children:"Issues"}),y.jsx("ul",{className:"space-y-1",children:a.map((o,s)=>y.jsxs("li",{className:"text-xs text-[var(--text)] flex gap-1.5",children:[y.jsx("span",{className:"text-[var(--text-muted)] flex-shrink-0",children:"•"}),y.jsx("span",{children:o})]},s))})]}),e.validator_will_retry&&y.jsx("div",{className:"text-[10px] text-[var(--text-muted)] italic",children:"Primary agent re-run once with this feedback appended."})]})]})}function S1({node:e}){const t=e.status,n=Me[t]||Me.pending,a=e.iterationHistory&&e.iterationHistory.length>0;return y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Agent"})]}),y.jsx(uD,{node:e}),a?y.jsx(k1,{label:`Iteration ${e.iteration??"?"} (current)`,defaultExpanded:!0,status:t,snapshot:{iteration:e.iteration??0,prompt:e.prompt,output:e.output,elapsed:e.elapsed,model:e.model,reasoning_effort:e.reasoning_effort,tokens:e.tokens,input_tokens:e.input_tokens,output_tokens:e.output_tokens,cost_usd:e.cost_usd,activity:e.activity,error_type:e.error_type,error_message:e.error_message}}):y.jsxs(y.Fragment,{children:[y.jsx(Br,{items:HS(e)}),e.prompt&&y.jsx(Si,{output:e.prompt,title:"Input / Prompt",defaultExpanded:!0}),y.jsx(Gm,{activity:e.activity,defaultExpanded:t!=="completed"}),e.output!=null&&y.jsx(Si,{output:e.output,title:"Output"})]}),a&&[...e.iterationHistory].reverse().map(l=>y.jsx(k1,{label:`Iteration ${l.iteration}`,defaultExpanded:!1,status:t,snapshot:l},l.iteration))]})}function k1({label:e,defaultExpanded:t,snapshot:n,status:a}){const[l,o]=I.useState(t);return y.jsxs("div",{className:"border border-[var(--border)] rounded-lg overflow-hidden",children:[y.jsxs("button",{onClick:()=>o(!l),className:"flex items-center gap-2 w-full px-3 py-2 bg-[var(--bg)] hover:bg-[var(--node-bg)] transition-colors text-left",children:[l?y.jsx(ua,{className:"w-3.5 h-3.5 text-[var(--text-muted)] flex-shrink-0"}):y.jsx(Lr,{className:"w-3.5 h-3.5 text-[var(--text-muted)] flex-shrink-0"}),y.jsx("span",{className:"text-xs font-semibold text-[var(--text)]",children:e}),n.elapsed!=null&&y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] ml-auto",children:cD(n.elapsed)})]}),l&&y.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-[var(--border)]",children:[y.jsx(Br,{items:HS(n)}),n.prompt&&y.jsx(Si,{output:n.prompt,title:"Input / Prompt",defaultExpanded:!1}),y.jsx(Gm,{activity:n.activity,defaultExpanded:t&&a!=="completed"}),n.output!=null&&y.jsx(Si,{output:n.output,title:"Output",defaultExpanded:!0}),n.error_type&&y.jsxs("div",{className:"text-xs text-red-400",children:[y.jsx("span",{className:"font-semibold",children:n.error_type}),n.error_message&&y.jsxs("span",{className:"ml-1",children:["— ",n.error_message]})]})]})]})}function cD(e){if(e<1)return`${(e*1e3).toFixed(0)}ms`;if(e<60)return`${e.toFixed(1)}s`;const t=Math.floor(e/60),n=(e%60).toFixed(0);return`${t}m ${n}s`}function fD({node:e}){const t=e.status,n=Me[t]||Me.pending,a=[];e.elapsed!=null&&a.push({label:"Elapsed",value:ot(e.elapsed)}),e.exit_code!=null&&a.push({label:"Exit Code",value:e.exit_code}),e.error_type&&a.push({label:"Error",value:e.error_type}),e.error_message&&a.push({label:"Message",value:e.error_message});let l="";return e.stdout&&(l+=e.stdout),e.stderr&&(l+=(l?` + +--- stderr --- +`:"")+e.stderr),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Script"})]}),y.jsx(Br,{items:a}),l&&y.jsx(Si,{output:l,title:"Output"})]})}function dD({node:e}){const t=e.status,n=Me[t]||Me.pending,a=e.set_output_type,l=e.set_output_keys,o=e.set_value_repr,s=(l==null?void 0:l.length)??0,c=[];return e.elapsed!=null&&c.push({label:"Elapsed",value:ot(e.elapsed)}),a&&c.push({label:"Output Type",value:a}),s>0?c.push({label:"Bindings",value:l.join(", ")}):t==="completed"&&c.push({label:"Bindings",value:"scalar"}),e.error_type&&c.push({label:"Error",value:e.error_type}),e.error_message&&c.push({label:"Message",value:e.error_message}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Set"})]}),y.jsx(Br,{items:c}),o&&y.jsx(Si,{output:o,title:"Value preview"})]})}function hD(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const pD=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,mD=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,gD={};function E1(e,t){return(gD.jsx?mD:pD).test(e)}const xD=/[ \t\n\f\r]/g;function yD(e){return typeof e=="object"?e.type==="text"?N1(e.value):!1:N1(e)}function N1(e){return e.replace(xD,"")===""}class ss{constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space=a)}}ss.prototype.normal={};ss.prototype.property={};ss.prototype.space=void 0;function BS(e,t){const n={},a={};for(const l of e)Object.assign(n,l.property),Object.assign(a,l.normal);return new ss(n,a,t)}function sm(e){return e.toLowerCase()}class cn{constructor(t,n){this.attribute=n,this.property=t}}cn.prototype.attribute="";cn.prototype.booleanish=!1;cn.prototype.boolean=!1;cn.prototype.commaOrSpaceSeparated=!1;cn.prototype.commaSeparated=!1;cn.prototype.defined=!1;cn.prototype.mustUseProperty=!1;cn.prototype.number=!1;cn.prototype.overloadedBoolean=!1;cn.prototype.property="";cn.prototype.spaceSeparated=!1;cn.prototype.space=void 0;let vD=0;const He=ha(),At=ha(),um=ha(),me=ha(),ct=ha(),pl=ha(),vn=ha();function ha(){return 2**++vD}const cm=Object.freeze(Object.defineProperty({__proto__:null,boolean:He,booleanish:At,commaOrSpaceSeparated:vn,commaSeparated:pl,number:me,overloadedBoolean:um,spaceSeparated:ct},Symbol.toStringTag,{value:"Module"})),Ep=Object.keys(cm);class Fm extends cn{constructor(t,n,a,l){let o=-1;if(super(t,n),C1(this,"space",l),typeof a=="number")for(;++o4&&n.slice(0,4)==="data"&&kD.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(j1,CD);a="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!j1.test(o)){let s=o.replace(SD,ND);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}l=Fm}return new l(a,t)}function ND(e){return"-"+e.toLowerCase()}function CD(e){return e.charAt(1).toUpperCase()}const jD=BS([IS,bD,US,VS,PS],"html"),Ym=BS([IS,wD,US,VS,PS],"svg");function TD(e){return e.join(" ").trim()}var nl={},Np,T1;function AD(){if(T1)return Np;T1=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,c=/^\s+|\s+$/g,d=` +`,f="/",m="*",p="",g="comment",v="declaration";function w(S,_){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];_=_||{};var N=1,k=1;function T(q){var F=q.match(t);F&&(N+=F.length);var z=q.lastIndexOf(d);k=~z?q.length-z:k+q.length}function M(){var q={line:N,column:k};return function(F){return F.position=new A(q),V(),F}}function A(q){this.start=q,this.end={line:N,column:k},this.source=_.source}A.prototype.content=S;function H(q){var F=new Error(_.source+":"+N+":"+k+": "+q);if(F.reason=q,F.filename=_.source,F.line=N,F.column=k,F.source=S,!_.silent)throw F}function L(q){var F=q.exec(S);if(F){var z=F[0];return T(z),S=S.slice(z.length),F}}function V(){L(n)}function R(q){var F;for(q=q||[];F=B();)F!==!1&&q.push(F);return q}function B(){var q=M();if(!(f!=S.charAt(0)||m!=S.charAt(1))){for(var F=2;p!=S.charAt(F)&&(m!=S.charAt(F)||f!=S.charAt(F+1));)++F;if(F+=2,p===S.charAt(F-1))return H("End of comment missing");var z=S.slice(2,F-2);return k+=2,T(z),S=S.slice(F),k+=2,q({type:g,comment:z})}}function U(){var q=M(),F=L(a);if(F){if(B(),!L(l))return H("property missing ':'");var z=L(o),G=q({type:v,property:E(F[0].replace(e,p)),value:z?E(z[0].replace(e,p)):p});return L(s),G}}function ee(){var q=[];R(q);for(var F;F=U();)F!==!1&&(q.push(F),R(q));return q}return V(),ee()}function E(S){return S?S.replace(c,p):p}return Np=w,Np}var A1;function zD(){if(A1)return nl;A1=1;var e=nl&&nl.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(nl,"__esModule",{value:!0}),nl.default=n;const t=e(AD());function n(a,l){let o=null;if(!a||typeof a!="string")return o;const s=(0,t.default)(a),c=typeof l=="function";return s.forEach(d=>{if(d.type!=="declaration")return;const{property:f,value:m}=d;c?l(f,m,d):m&&(o=o||{},o[f]=m)}),o}return nl}var ko={},z1;function MD(){if(z1)return ko;z1=1,Object.defineProperty(ko,"__esModule",{value:!0}),ko.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,a=/^-(webkit|moz|ms|o|khtml)-/,l=/^-(ms)-/,o=function(f){return!f||n.test(f)||e.test(f)},s=function(f,m){return m.toUpperCase()},c=function(f,m){return"".concat(m,"-")},d=function(f,m){return m===void 0&&(m={}),o(f)?f:(f=f.toLowerCase(),m.reactCompat?f=f.replace(l,c):f=f.replace(a,c),f.replace(t,s))};return ko.camelCase=d,ko}var Eo,M1;function DD(){if(M1)return Eo;M1=1;var e=Eo&&Eo.__importDefault||function(l){return l&&l.__esModule?l:{default:l}},t=e(zD()),n=MD();function a(l,o){var s={};return!l||typeof l!="string"||(0,t.default)(l,function(c,d){c&&d&&(s[(0,n.camelCase)(c,o)]=d)}),s}return a.default=a,Eo=a,Eo}var RD=DD();const OD=Jo(RD),GS=FS("end"),Xm=FS("start");function FS(e){return t;function t(n){const a=n&&n.position&&n.position[e]||{};if(typeof a.line=="number"&&a.line>0&&typeof a.column=="number"&&a.column>0)return{line:a.line,column:a.column,offset:typeof a.offset=="number"&&a.offset>-1?a.offset:void 0}}}function LD(e){const t=Xm(e),n=GS(e);if(t&&n)return{start:t,end:n}}function Lo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?D1(e.position):"start"in e||"end"in e?D1(e):"line"in e||"column"in e?fm(e):""}function fm(e){return R1(e&&e.line)+":"+R1(e&&e.column)}function D1(e){return fm(e&&e.start)+"-"+fm(e&&e.end)}function R1(e){return e&&typeof e=="number"?e:1}class Qt extends Error{constructor(t,n,a){super(),typeof n=="string"&&(a=n,n=void 0);let l="",o={},s=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?l=t:!o.cause&&t&&(s=!0,l=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof a=="string"){const d=a.indexOf(":");d===-1?o.ruleId=a:(o.source=a.slice(0,d),o.ruleId=a.slice(d+1))}if(!o.place&&o.ancestors&&o.ancestors){const d=o.ancestors[o.ancestors.length-1];d&&(o.place=d.position)}const c=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=c?c.column:void 0,this.fatal=void 0,this.file="",this.message=l,this.line=c?c.line:void 0,this.name=Lo(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=s&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Qt.prototype.file="";Qt.prototype.name="";Qt.prototype.reason="";Qt.prototype.message="";Qt.prototype.stack="";Qt.prototype.column=void 0;Qt.prototype.line=void 0;Qt.prototype.ancestors=void 0;Qt.prototype.cause=void 0;Qt.prototype.fatal=void 0;Qt.prototype.place=void 0;Qt.prototype.ruleId=void 0;Qt.prototype.source=void 0;const Qm={}.hasOwnProperty,HD=new Map,BD=/[A-Z]/g,ID=new Set(["table","tbody","thead","tfoot","tr"]),qD=new Set(["td","th"]),YS="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function $D(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let a;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");a=QD(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");a=XD(n,t.jsx,t.jsxs)}const l={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:a,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Ym:jD,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=XS(l,e,void 0);return o&&typeof o!="string"?o:l.create(e,l.Fragment,{children:o||void 0},void 0)}function XS(e,t,n){if(t.type==="element")return UD(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return VD(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return GD(e,t,n);if(t.type==="mdxjsEsm")return PD(e,t);if(t.type==="root")return FD(e,t,n);if(t.type==="text")return YD(e,t)}function UD(e,t,n){const a=e.schema;let l=a;t.tagName.toLowerCase()==="svg"&&a.space==="html"&&(l=Ym,e.schema=l),e.ancestors.push(t);const o=ZS(e,t.tagName,!1),s=ZD(e,t);let c=Km(e,t);return ID.has(t.tagName)&&(c=c.filter(function(d){return typeof d=="string"?!yD(d):!0})),QS(e,s,o,t),Zm(s,c),e.ancestors.pop(),e.schema=a,e.create(t,o,s,n)}function VD(e,t){if(t.data&&t.data.estree&&e.evaluater){const a=t.data.estree.body[0];return a.type,e.evaluater.evaluateExpression(a.expression)}Zo(e,t.position)}function PD(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Zo(e,t.position)}function GD(e,t,n){const a=e.schema;let l=a;t.name==="svg"&&a.space==="html"&&(l=Ym,e.schema=l),e.ancestors.push(t);const o=t.name===null?e.Fragment:ZS(e,t.name,!0),s=KD(e,t),c=Km(e,t);return QS(e,s,o,t),Zm(s,c),e.ancestors.pop(),e.schema=a,e.create(t,o,s,n)}function FD(e,t,n){const a={};return Zm(a,Km(e,t)),e.create(t,e.Fragment,a,n)}function YD(e,t){return t.value}function QS(e,t,n,a){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=a)}function Zm(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function XD(e,t,n){return a;function a(l,o,s,c){const f=Array.isArray(s.children)?n:t;return c?f(o,s,c):f(o,s)}}function QD(e,t){return n;function n(a,l,o,s){const c=Array.isArray(o.children),d=Xm(a);return t(l,o,s,c,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function ZD(e,t){const n={};let a,l;for(l in t.properties)if(l!=="children"&&Qm.call(t.properties,l)){const o=JD(e,l,t.properties[l]);if(o){const[s,c]=o;e.tableCellAlignToStyle&&s==="align"&&typeof c=="string"&&qD.has(t.tagName)?a=c:n[s]=c}}if(a){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=a}return n}function KD(e,t){const n={};for(const a of t.attributes)if(a.type==="mdxJsxExpressionAttribute")if(a.data&&a.data.estree&&e.evaluater){const o=a.data.estree.body[0];o.type;const s=o.expression;s.type;const c=s.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Zo(e,t.position);else{const l=a.name;let o;if(a.value&&typeof a.value=="object")if(a.value.data&&a.value.data.estree&&e.evaluater){const c=a.value.data.estree.body[0];c.type,o=e.evaluater.evaluateExpression(c.expression)}else Zo(e,t.position);else o=a.value===null?!0:a.value;n[l]=o}return n}function Km(e,t){const n=[];let a=-1;const l=e.passKeys?new Map:HD;for(;++al?0:l+t:t=t>l?l:t,n=n>0?n:0,a.length<1e4)s=Array.from(a),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);o0?(_n(e,e.length,0,t),e):t}const H1={}.hasOwnProperty;function JS(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Yn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Jt=ki(/[A-Za-z]/),Xt=ki(/[\dA-Za-z]/),oR=ki(/[#-'*+\--9=?A-Z^-~]/);function bc(e){return e!==null&&(e<32||e===127)}const dm=ki(/\d/),sR=ki(/[\dA-Fa-f]/),uR=ki(/[!-/:-@[-`{-~]/);function Ee(e){return e!==null&&e<-2}function ut(e){return e!==null&&(e<0||e===32)}function Ve(e){return e===-2||e===-1||e===32}const $c=ki(new RegExp("\\p{P}|\\p{S}","u")),sa=ki(/\s/);function ki(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function El(e){const t=[];let n=-1,a=0,l=0;for(;++n55295&&o<57344){const c=e.charCodeAt(n+1);o<56320&&c>56319&&c<57344?(s=String.fromCharCode(o,c),l=1):s="�"}else s=String.fromCharCode(o);s&&(t.push(e.slice(a,n),encodeURIComponent(s)),a=n+l+1,s=""),l&&(n+=l,l=0)}return t.join("")+e.slice(a)}function Qe(e,t,n,a){const l=a?a-1:Number.POSITIVE_INFINITY;let o=0;return s;function s(d){return Ve(d)?(e.enter(n),c(d)):t(d)}function c(d){return Ve(d)&&o++s))return;const H=t.events.length;let L=H,V,R;for(;L--;)if(t.events[L][0]==="exit"&&t.events[L][1].type==="chunkFlow"){if(V){R=t.events[L][1].end;break}V=!0}for(_(a),A=H;Ak;){const M=n[T];t.containerState=M[1],M[0].exit.call(t,e)}n.length=k}function N(){l.write([null]),o=void 0,l=void 0,t.containerState._closeFlow=void 0}}function pR(e,t,n){return Qe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Sl(e){if(e===null||ut(e)||sa(e))return 1;if($c(e))return 2}function Uc(e,t,n){const a=[];let l=-1;for(;++l1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[a][1].end},g={...e[n][1].start};I1(p,-d),I1(g,d),s={type:d>1?"strongSequence":"emphasisSequence",start:p,end:{...e[a][1].end}},c={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[a][1].end},end:{...e[n][1].start}},l={type:d>1?"strong":"emphasis",start:{...s.start},end:{...c.end}},e[a][1].end={...s.start},e[n][1].start={...c.end},f=[],e[a][1].end.offset-e[a][1].start.offset&&(f=Dn(f,[["enter",e[a][1],t],["exit",e[a][1],t]])),f=Dn(f,[["enter",l,t],["enter",s,t],["exit",s,t],["enter",o,t]]),f=Dn(f,Uc(t.parser.constructs.insideSpan.null,e.slice(a+1,n),t)),f=Dn(f,[["exit",o,t],["enter",c,t],["exit",c,t],["exit",l,t]]),e[n][1].end.offset-e[n][1].start.offset?(m=2,f=Dn(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):m=0,_n(e,a-1,n-a+3,f),n=a+f.length-m-2;break}}for(n=-1;++n0&&Ve(A)?Qe(e,N,"linePrefix",o+1)(A):N(A)}function N(A){return A===null||Ee(A)?e.check(q1,E,T)(A):(e.enter("codeFlowValue"),k(A))}function k(A){return A===null||Ee(A)?(e.exit("codeFlowValue"),N(A)):(e.consume(A),k)}function T(A){return e.exit("codeFenced"),t(A)}function M(A,H,L){let V=0;return R;function R(F){return A.enter("lineEnding"),A.consume(F),A.exit("lineEnding"),B}function B(F){return A.enter("codeFencedFence"),Ve(F)?Qe(A,U,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):U(F)}function U(F){return F===c?(A.enter("codeFencedFenceSequence"),ee(F)):L(F)}function ee(F){return F===c?(V++,A.consume(F),ee):V>=s?(A.exit("codeFencedFenceSequence"),Ve(F)?Qe(A,q,"whitespace")(F):q(F)):L(F)}function q(F){return F===null||Ee(F)?(A.exit("codeFencedFence"),H(F)):L(F)}}}function NR(e,t,n){const a=this;return l;function l(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o)}function o(s){return a.parser.lazy[a.now().line]?n(s):t(s)}}const jp={name:"codeIndented",tokenize:jR},CR={partial:!0,tokenize:TR};function jR(e,t,n){const a=this;return l;function l(f){return e.enter("codeIndented"),Qe(e,o,"linePrefix",5)(f)}function o(f){const m=a.events[a.events.length-1];return m&&m[1].type==="linePrefix"&&m[2].sliceSerialize(m[1],!0).length>=4?s(f):n(f)}function s(f){return f===null?d(f):Ee(f)?e.attempt(CR,s,d)(f):(e.enter("codeFlowValue"),c(f))}function c(f){return f===null||Ee(f)?(e.exit("codeFlowValue"),s(f)):(e.consume(f),c)}function d(f){return e.exit("codeIndented"),t(f)}}function TR(e,t,n){const a=this;return l;function l(s){return a.parser.lazy[a.now().line]?n(s):Ee(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),l):Qe(e,o,"linePrefix",5)(s)}function o(s){const c=a.events[a.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(s):Ee(s)?l(s):n(s)}}const AR={name:"codeText",previous:MR,resolve:zR,tokenize:DR};function zR(e){let t=e.length-4,n=3,a,l;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(a=n;++a=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-a+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-a+this.left.length).reverse())}splice(t,n,a){const l=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-l,Number.POSITIVE_INFINITY);return a&&No(this.left,a),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),No(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),No(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(s):e.interrupt(a.parser.constructs.flow,n,t)(s)}}function ik(e,t,n,a,l,o,s,c,d){const f=d||Number.POSITIVE_INFINITY;let m=0;return p;function p(_){return _===60?(e.enter(a),e.enter(l),e.enter(o),e.consume(_),e.exit(o),g):_===null||_===32||_===41||bc(_)?n(_):(e.enter(a),e.enter(s),e.enter(c),e.enter("chunkString",{contentType:"string"}),E(_))}function g(_){return _===62?(e.enter(o),e.consume(_),e.exit(o),e.exit(l),e.exit(a),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),v(_))}function v(_){return _===62?(e.exit("chunkString"),e.exit(c),g(_)):_===null||_===60||Ee(_)?n(_):(e.consume(_),_===92?w:v)}function w(_){return _===60||_===62||_===92?(e.consume(_),v):v(_)}function E(_){return!m&&(_===null||_===41||ut(_))?(e.exit("chunkString"),e.exit(c),e.exit(s),e.exit(a),t(_)):m999||v===null||v===91||v===93&&!d||v===94&&!c&&"_hiddenFootnoteSupport"in s.parser.constructs?n(v):v===93?(e.exit(o),e.enter(l),e.consume(v),e.exit(l),e.exit(a),t):Ee(v)?(e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),m):(e.enter("chunkString",{contentType:"string"}),p(v))}function p(v){return v===null||v===91||v===93||Ee(v)||c++>999?(e.exit("chunkString"),m(v)):(e.consume(v),d||(d=!Ve(v)),v===92?g:p)}function g(v){return v===91||v===92||v===93?(e.consume(v),c++,p):p(v)}}function lk(e,t,n,a,l,o){let s;return c;function c(g){return g===34||g===39||g===40?(e.enter(a),e.enter(l),e.consume(g),e.exit(l),s=g===40?41:g,d):n(g)}function d(g){return g===s?(e.enter(l),e.consume(g),e.exit(l),e.exit(a),t):(e.enter(o),f(g))}function f(g){return g===s?(e.exit(o),d(s)):g===null?n(g):Ee(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Qe(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),m(g))}function m(g){return g===s||g===null||Ee(g)?(e.exit("chunkString"),f(g)):(e.consume(g),g===92?p:m)}function p(g){return g===s||g===92?(e.consume(g),m):m(g)}}function Ho(e,t){let n;return a;function a(l){return Ee(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),n=!0,a):Ve(l)?Qe(e,a,n?"linePrefix":"lineSuffix")(l):t(l)}}const $R={name:"definition",tokenize:VR},UR={partial:!0,tokenize:PR};function VR(e,t,n){const a=this;let l;return o;function o(v){return e.enter("definition"),s(v)}function s(v){return ak.call(a,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(v)}function c(v){return l=Yn(a.sliceSerialize(a.events[a.events.length-1][1]).slice(1,-1)),v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),d):n(v)}function d(v){return ut(v)?Ho(e,f)(v):f(v)}function f(v){return ik(e,m,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(v)}function m(v){return e.attempt(UR,p,p)(v)}function p(v){return Ve(v)?Qe(e,g,"whitespace")(v):g(v)}function g(v){return v===null||Ee(v)?(e.exit("definition"),a.parser.defined.push(l),t(v)):n(v)}}function PR(e,t,n){return a;function a(c){return ut(c)?Ho(e,l)(c):n(c)}function l(c){return lk(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function o(c){return Ve(c)?Qe(e,s,"whitespace")(c):s(c)}function s(c){return c===null||Ee(c)?t(c):n(c)}}const GR={name:"hardBreakEscape",tokenize:FR};function FR(e,t,n){return a;function a(o){return e.enter("hardBreakEscape"),e.consume(o),l}function l(o){return Ee(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const YR={name:"headingAtx",resolve:XR,tokenize:QR};function XR(e,t){let n=e.length-2,a=3,l,o;return e[a][1].type==="whitespace"&&(a+=2),n-2>a&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(a===n-1||n-4>a&&e[n-2][1].type==="whitespace")&&(n-=a+1===n?2:4),n>a&&(l={type:"atxHeadingText",start:e[a][1].start,end:e[n][1].end},o={type:"chunkText",start:e[a][1].start,end:e[n][1].end,contentType:"text"},_n(e,a,n-a+1,[["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t]])),e}function QR(e,t,n){let a=0;return l;function l(m){return e.enter("atxHeading"),o(m)}function o(m){return e.enter("atxHeadingSequence"),s(m)}function s(m){return m===35&&a++<6?(e.consume(m),s):m===null||ut(m)?(e.exit("atxHeadingSequence"),c(m)):n(m)}function c(m){return m===35?(e.enter("atxHeadingSequence"),d(m)):m===null||Ee(m)?(e.exit("atxHeading"),t(m)):Ve(m)?Qe(e,c,"whitespace")(m):(e.enter("atxHeadingText"),f(m))}function d(m){return m===35?(e.consume(m),d):(e.exit("atxHeadingSequence"),c(m))}function f(m){return m===null||m===35||ut(m)?(e.exit("atxHeadingText"),c(m)):(e.consume(m),f)}}const ZR=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],U1=["pre","script","style","textarea"],KR={concrete:!0,name:"htmlFlow",resolveTo:eO,tokenize:tO},JR={partial:!0,tokenize:rO},WR={partial:!0,tokenize:nO};function eO(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function tO(e,t,n){const a=this;let l,o,s,c,d;return f;function f(C){return m(C)}function m(C){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(C),p}function p(C){return C===33?(e.consume(C),g):C===47?(e.consume(C),o=!0,E):C===63?(e.consume(C),l=3,a.interrupt?t:D):Jt(C)?(e.consume(C),s=String.fromCharCode(C),S):n(C)}function g(C){return C===45?(e.consume(C),l=2,v):C===91?(e.consume(C),l=5,c=0,w):Jt(C)?(e.consume(C),l=4,a.interrupt?t:D):n(C)}function v(C){return C===45?(e.consume(C),a.interrupt?t:D):n(C)}function w(C){const P="CDATA[";return C===P.charCodeAt(c++)?(e.consume(C),c===P.length?a.interrupt?t:U:w):n(C)}function E(C){return Jt(C)?(e.consume(C),s=String.fromCharCode(C),S):n(C)}function S(C){if(C===null||C===47||C===62||ut(C)){const P=C===47,X=s.toLowerCase();return!P&&!o&&U1.includes(X)?(l=1,a.interrupt?t(C):U(C)):ZR.includes(s.toLowerCase())?(l=6,P?(e.consume(C),_):a.interrupt?t(C):U(C)):(l=7,a.interrupt&&!a.parser.lazy[a.now().line]?n(C):o?N(C):k(C))}return C===45||Xt(C)?(e.consume(C),s+=String.fromCharCode(C),S):n(C)}function _(C){return C===62?(e.consume(C),a.interrupt?t:U):n(C)}function N(C){return Ve(C)?(e.consume(C),N):R(C)}function k(C){return C===47?(e.consume(C),R):C===58||C===95||Jt(C)?(e.consume(C),T):Ve(C)?(e.consume(C),k):R(C)}function T(C){return C===45||C===46||C===58||C===95||Xt(C)?(e.consume(C),T):M(C)}function M(C){return C===61?(e.consume(C),A):Ve(C)?(e.consume(C),M):k(C)}function A(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),d=C,H):Ve(C)?(e.consume(C),A):L(C)}function H(C){return C===d?(e.consume(C),d=null,V):C===null||Ee(C)?n(C):(e.consume(C),H)}function L(C){return C===null||C===34||C===39||C===47||C===60||C===61||C===62||C===96||ut(C)?M(C):(e.consume(C),L)}function V(C){return C===47||C===62||Ve(C)?k(C):n(C)}function R(C){return C===62?(e.consume(C),B):n(C)}function B(C){return C===null||Ee(C)?U(C):Ve(C)?(e.consume(C),B):n(C)}function U(C){return C===45&&l===2?(e.consume(C),z):C===60&&l===1?(e.consume(C),G):C===62&&l===4?(e.consume(C),$):C===63&&l===3?(e.consume(C),D):C===93&&l===5?(e.consume(C),K):Ee(C)&&(l===6||l===7)?(e.exit("htmlFlowData"),e.check(JR,Y,ee)(C)):C===null||Ee(C)?(e.exit("htmlFlowData"),ee(C)):(e.consume(C),U)}function ee(C){return e.check(WR,q,Y)(C)}function q(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),F}function F(C){return C===null||Ee(C)?ee(C):(e.enter("htmlFlowData"),U(C))}function z(C){return C===45?(e.consume(C),D):U(C)}function G(C){return C===47?(e.consume(C),s="",Q):U(C)}function Q(C){if(C===62){const P=s.toLowerCase();return U1.includes(P)?(e.consume(C),$):U(C)}return Jt(C)&&s.length<8?(e.consume(C),s+=String.fromCharCode(C),Q):U(C)}function K(C){return C===93?(e.consume(C),D):U(C)}function D(C){return C===62?(e.consume(C),$):C===45&&l===2?(e.consume(C),D):U(C)}function $(C){return C===null||Ee(C)?(e.exit("htmlFlowData"),Y(C)):(e.consume(C),$)}function Y(C){return e.exit("htmlFlow"),t(C)}}function nO(e,t,n){const a=this;return l;function l(s){return Ee(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o):n(s)}function o(s){return a.parser.lazy[a.now().line]?n(s):t(s)}}function rO(e,t,n){return a;function a(l){return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),e.attempt(us,t,n)}}const iO={name:"htmlText",tokenize:aO};function aO(e,t,n){const a=this;let l,o,s;return c;function c(D){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(D),d}function d(D){return D===33?(e.consume(D),f):D===47?(e.consume(D),M):D===63?(e.consume(D),k):Jt(D)?(e.consume(D),L):n(D)}function f(D){return D===45?(e.consume(D),m):D===91?(e.consume(D),o=0,w):Jt(D)?(e.consume(D),N):n(D)}function m(D){return D===45?(e.consume(D),v):n(D)}function p(D){return D===null?n(D):D===45?(e.consume(D),g):Ee(D)?(s=p,G(D)):(e.consume(D),p)}function g(D){return D===45?(e.consume(D),v):p(D)}function v(D){return D===62?z(D):D===45?g(D):p(D)}function w(D){const $="CDATA[";return D===$.charCodeAt(o++)?(e.consume(D),o===$.length?E:w):n(D)}function E(D){return D===null?n(D):D===93?(e.consume(D),S):Ee(D)?(s=E,G(D)):(e.consume(D),E)}function S(D){return D===93?(e.consume(D),_):E(D)}function _(D){return D===62?z(D):D===93?(e.consume(D),_):E(D)}function N(D){return D===null||D===62?z(D):Ee(D)?(s=N,G(D)):(e.consume(D),N)}function k(D){return D===null?n(D):D===63?(e.consume(D),T):Ee(D)?(s=k,G(D)):(e.consume(D),k)}function T(D){return D===62?z(D):k(D)}function M(D){return Jt(D)?(e.consume(D),A):n(D)}function A(D){return D===45||Xt(D)?(e.consume(D),A):H(D)}function H(D){return Ee(D)?(s=H,G(D)):Ve(D)?(e.consume(D),H):z(D)}function L(D){return D===45||Xt(D)?(e.consume(D),L):D===47||D===62||ut(D)?V(D):n(D)}function V(D){return D===47?(e.consume(D),z):D===58||D===95||Jt(D)?(e.consume(D),R):Ee(D)?(s=V,G(D)):Ve(D)?(e.consume(D),V):z(D)}function R(D){return D===45||D===46||D===58||D===95||Xt(D)?(e.consume(D),R):B(D)}function B(D){return D===61?(e.consume(D),U):Ee(D)?(s=B,G(D)):Ve(D)?(e.consume(D),B):V(D)}function U(D){return D===null||D===60||D===61||D===62||D===96?n(D):D===34||D===39?(e.consume(D),l=D,ee):Ee(D)?(s=U,G(D)):Ve(D)?(e.consume(D),U):(e.consume(D),q)}function ee(D){return D===l?(e.consume(D),l=void 0,F):D===null?n(D):Ee(D)?(s=ee,G(D)):(e.consume(D),ee)}function q(D){return D===null||D===34||D===39||D===60||D===61||D===96?n(D):D===47||D===62||ut(D)?V(D):(e.consume(D),q)}function F(D){return D===47||D===62||ut(D)?V(D):n(D)}function z(D){return D===62?(e.consume(D),e.exit("htmlTextData"),e.exit("htmlText"),t):n(D)}function G(D){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),Q}function Q(D){return Ve(D)?Qe(e,K,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(D):K(D)}function K(D){return e.enter("htmlTextData"),s(D)}}const eg={name:"labelEnd",resolveAll:uO,resolveTo:cO,tokenize:fO},lO={tokenize:dO},oO={tokenize:hO},sO={tokenize:pO};function uO(e){let t=-1;const n=[];for(;++t=3&&(f===null||Ee(f))?(e.exit("thematicBreak"),t(f)):n(f)}function d(f){return f===l?(e.consume(f),a++,d):(e.exit("thematicBreakSequence"),Ve(f)?Qe(e,c,"whitespace")(f):c(f))}}const sn={continuation:{tokenize:kO},exit:NO,name:"list",tokenize:SO},wO={partial:!0,tokenize:CO},_O={partial:!0,tokenize:EO};function SO(e,t,n){const a=this,l=a.events[a.events.length-1];let o=l&&l[1].type==="linePrefix"?l[2].sliceSerialize(l[1],!0).length:0,s=0;return c;function c(v){const w=a.containerState.type||(v===42||v===43||v===45?"listUnordered":"listOrdered");if(w==="listUnordered"?!a.containerState.marker||v===a.containerState.marker:dm(v)){if(a.containerState.type||(a.containerState.type=w,e.enter(w,{_container:!0})),w==="listUnordered")return e.enter("listItemPrefix"),v===42||v===45?e.check(rc,n,f)(v):f(v);if(!a.interrupt||v===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(v)}return n(v)}function d(v){return dm(v)&&++s<10?(e.consume(v),d):(!a.interrupt||s<2)&&(a.containerState.marker?v===a.containerState.marker:v===41||v===46)?(e.exit("listItemValue"),f(v)):n(v)}function f(v){return e.enter("listItemMarker"),e.consume(v),e.exit("listItemMarker"),a.containerState.marker=a.containerState.marker||v,e.check(us,a.interrupt?n:m,e.attempt(wO,g,p))}function m(v){return a.containerState.initialBlankLine=!0,o++,g(v)}function p(v){return Ve(v)?(e.enter("listItemPrefixWhitespace"),e.consume(v),e.exit("listItemPrefixWhitespace"),g):n(v)}function g(v){return a.containerState.size=o+a.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(v)}}function kO(e,t,n){const a=this;return a.containerState._closeFlow=void 0,e.check(us,l,o);function l(c){return a.containerState.furtherBlankLines=a.containerState.furtherBlankLines||a.containerState.initialBlankLine,Qe(e,t,"listItemIndent",a.containerState.size+1)(c)}function o(c){return a.containerState.furtherBlankLines||!Ve(c)?(a.containerState.furtherBlankLines=void 0,a.containerState.initialBlankLine=void 0,s(c)):(a.containerState.furtherBlankLines=void 0,a.containerState.initialBlankLine=void 0,e.attempt(_O,t,s)(c))}function s(c){return a.containerState._closeFlow=!0,a.interrupt=void 0,Qe(e,e.attempt(sn,t,n),"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function EO(e,t,n){const a=this;return Qe(e,l,"listItemIndent",a.containerState.size+1);function l(o){const s=a.events[a.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===a.containerState.size?t(o):n(o)}}function NO(e){e.exit(this.containerState.type)}function CO(e,t,n){const a=this;return Qe(e,l,"listItemPrefixWhitespace",a.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function l(o){const s=a.events[a.events.length-1];return!Ve(o)&&s&&s[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const V1={name:"setextUnderline",resolveTo:jO,tokenize:TO};function jO(e,t){let n=e.length,a,l,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){a=n;break}e[n][1].type==="paragraph"&&(l=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const s={type:"setextHeading",start:{...e[a][1].start},end:{...e[e.length-1][1].end}};return e[l][1].type="setextHeadingText",o?(e.splice(l,0,["enter",s,t]),e.splice(o+1,0,["exit",e[a][1],t]),e[a][1].end={...e[o][1].end}):e[a][1]=s,e.push(["exit",s,t]),e}function TO(e,t,n){const a=this;let l;return o;function o(f){let m=a.events.length,p;for(;m--;)if(a.events[m][1].type!=="lineEnding"&&a.events[m][1].type!=="linePrefix"&&a.events[m][1].type!=="content"){p=a.events[m][1].type==="paragraph";break}return!a.parser.lazy[a.now().line]&&(a.interrupt||p)?(e.enter("setextHeadingLine"),l=f,s(f)):n(f)}function s(f){return e.enter("setextHeadingLineSequence"),c(f)}function c(f){return f===l?(e.consume(f),c):(e.exit("setextHeadingLineSequence"),Ve(f)?Qe(e,d,"lineSuffix")(f):d(f))}function d(f){return f===null||Ee(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const AO={tokenize:zO};function zO(e){const t=this,n=e.attempt(us,a,e.attempt(this.parser.constructs.flowInitial,l,Qe(e,e.attempt(this.parser.constructs.flow,l,e.attempt(LR,l)),"linePrefix")));return n;function a(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function l(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const MO={resolveAll:sk()},DO=ok("string"),RO=ok("text");function ok(e){return{resolveAll:sk(e==="text"?OO:void 0),tokenize:t};function t(n){const a=this,l=this.parser.constructs[e],o=n.attempt(l,s,c);return s;function s(m){return f(m)?o(m):c(m)}function c(m){if(m===null){n.consume(m);return}return n.enter("data"),n.consume(m),d}function d(m){return f(m)?(n.exit("data"),o(m)):(n.consume(m),d)}function f(m){if(m===null)return!0;const p=l[m];let g=-1;if(p)for(;++g-1){const c=s[0];typeof c=="string"?s[0]=c.slice(a):s.shift()}o>0&&s.push(e[l].slice(0,o))}return s}function XO(e,t){let n=-1;const a=[];let l;for(;++n0){const Zt=Ne.tokenStack[Ne.tokenStack.length-1];(Zt[1]||G1).call(Ne,void 0,Zt[0])}for(ge.position={start:vi(ce.length>0?ce[0][1].start:{line:1,column:1,offset:0}),end:vi(ce.length>0?ce[ce.length-2][1].end:{line:1,column:1,offset:0})},Xe=-1;++Xe0&&(a.className=["language-"+l[0]]);let o={type:"element",tagName:"code",properties:a,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function s6(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function u6(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function c6(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",a=String(t.identifier).toUpperCase(),l=El(a.toLowerCase()),o=e.footnoteOrder.indexOf(a);let s,c=e.footnoteCounts.get(a);c===void 0?(c=0,e.footnoteOrder.push(a),s=e.footnoteOrder.length):s=o+1,c+=1,e.footnoteCounts.set(a,c);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+l,id:n+"fnref-"+l+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(s)}]};e.patch(t,d);const f={type:"element",tagName:"sup",properties:{},children:[d]};return e.patch(t,f),e.applyData(t,f)}function f6(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function d6(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function fk(e,t){const n=t.referenceType;let a="]";if(n==="collapsed"?a+="[]":n==="full"&&(a+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+a}];const l=e.all(t),o=l[0];o&&o.type==="text"?o.value="["+o.value:l.unshift({type:"text",value:"["});const s=l[l.length-1];return s&&s.type==="text"?s.value+=a:l.push({type:"text",value:a}),l}function h6(e,t){const n=String(t.identifier).toUpperCase(),a=e.definitionById.get(n);if(!a)return fk(e,t);const l={src:El(a.url||""),alt:t.alt};a.title!==null&&a.title!==void 0&&(l.title=a.title);const o={type:"element",tagName:"img",properties:l,children:[]};return e.patch(t,o),e.applyData(t,o)}function p6(e,t){const n={src:El(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const a={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,a),e.applyData(t,a)}function m6(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const a={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,a),e.applyData(t,a)}function g6(e,t){const n=String(t.identifier).toUpperCase(),a=e.definitionById.get(n);if(!a)return fk(e,t);const l={href:El(a.url||"")};a.title!==null&&a.title!==void 0&&(l.title=a.title);const o={type:"element",tagName:"a",properties:l,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function x6(e,t){const n={href:El(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const a={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function y6(e,t,n){const a=e.all(t),l=n?v6(n):dk(t),o={},s=[];if(typeof t.checked=="boolean"){const m=a[0];let p;m&&m.type==="element"&&m.tagName==="p"?p=m:(p={type:"element",tagName:"p",properties:{},children:[]},a.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let c=-1;for(;++c1}function b6(e,t){const n={},a=e.all(t);let l=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++l0){const s={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=Xm(t.children[1]),d=GS(t.children[t.children.length-1]);c&&d&&(s.position={start:c,end:d}),l.push(s)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(l,!0)};return e.patch(t,o),e.applyData(t,o)}function E6(e,t,n){const a=n?n.children:void 0,o=(a?a.indexOf(t):1)===0?"th":"td",s=n&&n.type==="table"?n.align:void 0,c=s?s.length:t.children.length;let d=-1;const f=[];for(;++d0,!0),a[0]),l=a.index+a[0].length,a=n.exec(t);return o.push(X1(t.slice(l),l>0,!1)),o.join("")}function X1(e,t,n){let a=0,l=e.length;if(t){let o=e.codePointAt(a);for(;o===F1||o===Y1;)a++,o=e.codePointAt(a)}if(n){let o=e.codePointAt(l-1);for(;o===F1||o===Y1;)l--,o=e.codePointAt(l-1)}return l>a?e.slice(a,l):""}function j6(e,t){const n={type:"text",value:C6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function T6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const A6={blockquote:a6,break:l6,code:o6,delete:s6,emphasis:u6,footnoteReference:c6,heading:f6,html:d6,imageReference:h6,image:p6,inlineCode:m6,linkReference:g6,link:x6,listItem:y6,list:b6,paragraph:w6,root:_6,strong:S6,table:k6,tableCell:N6,tableRow:E6,text:j6,thematicBreak:T6,toml:Yu,yaml:Yu,definition:Yu,footnoteDefinition:Yu};function Yu(){}const hk=-1,Vc=0,Bo=1,wc=2,tg=3,ng=4,rg=5,ig=6,pk=7,mk=8,Q1=typeof self=="object"?self:globalThis,z6=(e,t)=>{const n=(l,o)=>(e.set(o,l),l),a=l=>{if(e.has(l))return e.get(l);const[o,s]=t[l];switch(o){case Vc:case hk:return n(s,l);case Bo:{const c=n([],l);for(const d of s)c.push(a(d));return c}case wc:{const c=n({},l);for(const[d,f]of s)c[a(d)]=a(f);return c}case tg:return n(new Date(s),l);case ng:{const{source:c,flags:d}=s;return n(new RegExp(c,d),l)}case rg:{const c=n(new Map,l);for(const[d,f]of s)c.set(a(d),a(f));return c}case ig:{const c=n(new Set,l);for(const d of s)c.add(a(d));return c}case pk:{const{name:c,message:d}=s;return n(new Q1[c](d),l)}case mk:return n(BigInt(s),l);case"BigInt":return n(Object(BigInt(s)),l);case"ArrayBuffer":return n(new Uint8Array(s).buffer,s);case"DataView":{const{buffer:c}=new Uint8Array(s);return n(new DataView(c),s)}}return n(new Q1[o](s),l)};return a},Z1=e=>z6(new Map,e)(0),rl="",{toString:M6}={},{keys:D6}=Object,Co=e=>{const t=typeof e;if(t!=="object"||!e)return[Vc,t];const n=M6.call(e).slice(8,-1);switch(n){case"Array":return[Bo,rl];case"Object":return[wc,rl];case"Date":return[tg,rl];case"RegExp":return[ng,rl];case"Map":return[rg,rl];case"Set":return[ig,rl];case"DataView":return[Bo,n]}return n.includes("Array")?[Bo,n]:n.includes("Error")?[pk,n]:[wc,n]},Xu=([e,t])=>e===Vc&&(t==="function"||t==="symbol"),R6=(e,t,n,a)=>{const l=(s,c)=>{const d=a.push(s)-1;return n.set(c,d),d},o=s=>{if(n.has(s))return n.get(s);let[c,d]=Co(s);switch(c){case Vc:{let m=s;switch(d){case"bigint":c=mk,m=s.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);m=null;break;case"undefined":return l([hk],s)}return l([c,m],s)}case Bo:{if(d){let g=s;return d==="DataView"?g=new Uint8Array(s.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(s)),l([d,[...g]],s)}const m=[],p=l([c,m],s);for(const g of s)m.push(o(g));return p}case wc:{if(d)switch(d){case"BigInt":return l([d,s.toString()],s);case"Boolean":case"Number":case"String":return l([d,s.valueOf()],s)}if(t&&"toJSON"in s)return o(s.toJSON());const m=[],p=l([c,m],s);for(const g of D6(s))(e||!Xu(Co(s[g])))&&m.push([o(g),o(s[g])]);return p}case tg:return l([c,s.toISOString()],s);case ng:{const{source:m,flags:p}=s;return l([c,{source:m,flags:p}],s)}case rg:{const m=[],p=l([c,m],s);for(const[g,v]of s)(e||!(Xu(Co(g))||Xu(Co(v))))&&m.push([o(g),o(v)]);return p}case ig:{const m=[],p=l([c,m],s);for(const g of s)(e||!Xu(Co(g)))&&m.push(o(g));return p}}const{message:f}=s;return l([c,{name:d,message:f}],s)};return o},K1=(e,{json:t,lossy:n}={})=>{const a=[];return R6(!(t||n),!!t,new Map,a)(e),a},_c=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Z1(K1(e,t)):structuredClone(e):(e,t)=>Z1(K1(e,t));function O6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function L6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function H6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||O6,a=e.options.footnoteBackLabel||L6,l=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",s=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let d=-1;for(;++d0&&w.push({type:"text",value:" "});let N=typeof n=="string"?n:n(d,v);typeof N=="string"&&(N={type:"text",value:N}),w.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(v>1?"-"+v:""),dataFootnoteBackref:"",ariaLabel:typeof a=="string"?a:a(d,v),className:["data-footnote-backref"]},children:Array.isArray(N)?N:[N]})}const S=m[m.length-1];if(S&&S.type==="element"&&S.tagName==="p"){const N=S.children[S.children.length-1];N&&N.type==="text"?N.value+=" ":S.children.push({type:"text",value:" "}),S.children.push(...w)}else m.push(...w);const _={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(m,!0)};e.patch(f,_),c.push(_)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{..._c(s),id:"footnote-label"},children:[{type:"text",value:l}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(c,!0)},{type:"text",value:` +`}]}}const Pc=(function(e){if(e==null)return $6;if(typeof e=="function")return Gc(e);if(typeof e=="object")return Array.isArray(e)?B6(e):I6(e);if(typeof e=="string")return q6(e);throw new Error("Expected function, string, or object as test")});function B6(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let v=gk,w,E,S;if((!t||o(d,f,m[m.length-1]||void 0))&&(v=G6(n(d,m)),v[0]===pm))return v;if("children"in d&&d.children){const _=d;if(_.children&&v[0]!==P6)for(E=(a?_.children.length:-1)+s,S=m.concat(_);E>-1&&E<_.children.length;){const N=_.children[E];if(w=c(N,E,S)(),w[0]===pm)return w;E=typeof w[1]=="number"?w[1]:E+s}}return v}}}function G6(e){return Array.isArray(e)?e:typeof e=="number"?[V6,e]:e==null?gk:[e]}function ag(e,t,n,a){let l,o,s;typeof t=="function"&&typeof n!="function"?(o=void 0,s=t,l=n):(o=t,s=n,l=a),xk(e,o,c,l);function c(d,f){const m=f[f.length-1],p=m?m.children.indexOf(d):void 0;return s(d,p,m)}}const mm={}.hasOwnProperty,F6={};function Y6(e,t){const n=t||F6,a=new Map,l=new Map,o=new Map,s={...A6,...n.handlers},c={all:f,applyData:Q6,definitionById:a,footnoteById:l,footnoteCounts:o,footnoteOrder:[],handlers:s,one:d,options:n,patch:X6,wrap:K6};return ag(e,function(m){if(m.type==="definition"||m.type==="footnoteDefinition"){const p=m.type==="definition"?a:l,g=String(m.identifier).toUpperCase();p.has(g)||p.set(g,m)}}),c;function d(m,p){const g=m.type,v=c.handlers[g];if(mm.call(c.handlers,g)&&v)return v(c,m,p);if(c.options.passThrough&&c.options.passThrough.includes(g)){if("children"in m){const{children:E,...S}=m,_=_c(S);return _.children=c.all(m),_}return _c(m)}return(c.options.unknownHandler||Z6)(c,m,p)}function f(m){const p=[];if("children"in m){const g=m.children;let v=-1;for(;++v0&&n.push({type:"text",value:` +`}),n}function J1(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function W1(e,t){const n=Y6(e,t),a=n.one(e,void 0),l=H6(n),o=Array.isArray(a)?{type:"root",children:a}:a||{type:"root",children:[]};return l&&o.children.push({type:"text",value:` +`},l),o}function J6(e,t){return e&&"run"in e?async function(n,a){const l=W1(n,{file:a,...t});await e.run(l,a)}:function(n,a){return W1(n,{file:a,...e||t})}}function ew(e){if(e)throw e}var Ap,tw;function W6(){if(tw)return Ap;tw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=function(f){return typeof Array.isArray=="function"?Array.isArray(f):t.call(f)==="[object Array]"},o=function(f){if(!f||t.call(f)!=="[object Object]")return!1;var m=e.call(f,"constructor"),p=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!m&&!p)return!1;var g;for(g in f);return typeof g>"u"||e.call(f,g)},s=function(f,m){n&&m.name==="__proto__"?n(f,m.name,{enumerable:!0,configurable:!0,value:m.newValue,writable:!0}):f[m.name]=m.newValue},c=function(f,m){if(m==="__proto__")if(e.call(f,m)){if(a)return a(f,m).value}else return;return f[m]};return Ap=function d(){var f,m,p,g,v,w,E=arguments[0],S=1,_=arguments.length,N=!1;for(typeof E=="boolean"&&(N=E,E=arguments[1]||{},S=2),(E==null||typeof E!="object"&&typeof E!="function")&&(E={});S<_;++S)if(f=arguments[S],f!=null)for(m in f)p=c(E,m),g=c(f,m),E!==g&&(N&&g&&(o(g)||(v=l(g)))?(v?(v=!1,w=p&&l(p)?p:[]):w=p&&o(p)?p:{},s(E,{name:m,newValue:d(N,w,g)})):typeof g<"u"&&s(E,{name:m,newValue:g}));return E},Ap}var eL=W6();const zp=Jo(eL);function gm(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function tL(){const e=[],t={run:n,use:a};return t;function n(...l){let o=-1;const s=l.pop();if(typeof s!="function")throw new TypeError("Expected function as last argument, not "+s);c(null,...l);function c(d,...f){const m=e[++o];let p=-1;if(d){s(d);return}for(;++ps.length;let d;c&&s.push(l);try{d=e.apply(this,s)}catch(f){const m=f;if(c&&n)throw m;return l(m)}c||(d&&d.then&&typeof d.then=="function"?d.then(o,l):d instanceof Error?l(d):o(d))}function l(s,...c){n||(n=!0,t(s,...c))}function o(s){l(null,s)}}const rr={basename:rL,dirname:iL,extname:aL,join:lL,sep:"/"};function rL(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');cs(e);let n=0,a=-1,l=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;l--;)if(e.codePointAt(l)===47){if(o){n=l+1;break}}else a<0&&(o=!0,a=l+1);return a<0?"":e.slice(n,a)}if(t===e)return"";let s=-1,c=t.length-1;for(;l--;)if(e.codePointAt(l)===47){if(o){n=l+1;break}}else s<0&&(o=!0,s=l+1),c>-1&&(e.codePointAt(l)===t.codePointAt(c--)?c<0&&(a=l):(c=-1,a=s));return n===a?a=s:a<0&&(a=e.length),e.slice(n,a)}function iL(e){if(cs(e),e.length===0)return".";let t=-1,n=e.length,a;for(;--n;)if(e.codePointAt(n)===47){if(a){t=n;break}}else a||(a=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function aL(e){cs(e);let t=e.length,n=-1,a=0,l=-1,o=0,s;for(;t--;){const c=e.codePointAt(t);if(c===47){if(s){a=t+1;break}continue}n<0&&(s=!0,n=t+1),c===46?l<0?l=t:o!==1&&(o=1):l>-1&&(o=-1)}return l<0||n<0||o===0||o===1&&l===n-1&&l===a+1?"":e.slice(l,n)}function lL(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function sL(e,t){let n="",a=0,l=-1,o=0,s=-1,c,d;for(;++s<=e.length;){if(s2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",a=0):(n=n.slice(0,d),a=n.length-1-n.lastIndexOf("/")),l=s,o=0;continue}}else if(n.length>0){n="",a=0,l=s,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",a=2)}else n.length>0?n+="/"+e.slice(l+1,s):n=e.slice(l+1,s),a=s-l-1;l=s,o=0}else c===46&&o>-1?o++:o=-1}return n}function cs(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const uL={cwd:cL};function cL(){return"/"}function xm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function fL(e){if(typeof e=="string")e=new URL(e);else if(!xm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return dL(e)}function dL(e){if(e.hostname!==""){const a=new TypeError('File URL host must be "localhost" or empty on darwin');throw a.code="ERR_INVALID_FILE_URL_HOST",a}const t=e.pathname;let n=-1;for(;++n0){let[v,...w]=m;const E=a[g][1];gm(E)&&gm(v)&&(v=zp(!0,E,v)),a[g]=[f,v,...w]}}}}const gL=new lg().freeze();function Op(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Lp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Hp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function rw(e){if(!gm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function iw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Qu(e){return xL(e)?e:new yk(e)}function xL(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function yL(e){return typeof e=="string"||vL(e)}function vL(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const bL="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",aw=[],lw={allowDangerousHtml:!0},wL=/^(https?|ircs?|mailto|xmpp)$/i,_L=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Fc(e){const t=SL(e),n=kL(e);return EL(t.runSync(t.parse(n),n),e)}function SL(e){const t=e.rehypePlugins||aw,n=e.remarkPlugins||aw,a=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...lw}:lw;return gL().use(i6).use(n).use(J6,a).use(t)}function kL(e){const t=e.children||"",n=new yk;return typeof t=="string"&&(n.value=t),n}function EL(e,t){const n=t.allowedElements,a=t.allowElement,l=t.components,o=t.disallowedElements,s=t.skipHtml,c=t.unwrapDisallowed,d=t.urlTransform||NL;for(const m of _L)Object.hasOwn(t,m.from)&&(""+m.from+(m.to?"use `"+m.to+"` instead":"remove it")+bL+m.id,void 0);return ag(e,f),$D(e,{Fragment:y.Fragment,components:l,ignoreInvalidStyle:!0,jsx:y.jsx,jsxs:y.jsxs,passKeys:!0,passNode:!0});function f(m,p,g){if(m.type==="raw"&&g&&typeof p=="number")return s?g.children.splice(p,1):g.children[p]={type:"text",value:m.value},p;if(m.type==="element"){let v;for(v in Cp)if(Object.hasOwn(Cp,v)&&Object.hasOwn(m.properties,v)){const w=m.properties[v],E=Cp[v];(E===null||E.includes(m.tagName))&&(m.properties[v]=d(String(w||""),v,m))}}if(m.type==="element"){let v=n?!n.includes(m.tagName):o?o.includes(m.tagName):!1;if(!v&&a&&typeof p=="number"&&(v=!a(m,p,g)),v&&g&&typeof p=="number")return c&&m.children?g.children.splice(p,1,...m.children):g.children.splice(p,1),p}}}function NL(e){const t=e.indexOf(":"),n=e.indexOf("?"),a=e.indexOf("#"),l=e.indexOf("/");return t===-1||l!==-1&&t>l||n!==-1&&t>n||a!==-1&&t>a||wL.test(e.slice(0,t))?e:""}function ow(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let a=0,l=n.indexOf(t);for(;l!==-1;)a++,l=n.indexOf(t,l+t.length);return a}function CL(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function jL(e,t,n){const l=Pc((n||{}).ignore||[]),o=TL(t);let s=-1;for(;++s0?{type:"text",value:A}:void 0),A===!1?g.lastIndex=T+1:(w!==T&&N.push({type:"text",value:f.value.slice(w,T)}),Array.isArray(A)?N.push(...A):A&&N.push(A),w=T+k[0].length,_=!0),!g.global)break;k=g.exec(f.value)}return _?(w?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],a=n.indexOf(")");const l=ow(e,"(");let o=ow(e,")");for(;a!==-1&&l>o;)e+=n.slice(0,a+1),n=n.slice(a+1),a=n.indexOf(")"),o++;return[e,n]}function vk(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||sa(n)||$c(n))&&(!t||n!==47)}bk.peek=JL;function PL(){this.buffer()}function GL(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function FL(){this.buffer()}function YL(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function XL(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Yn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function QL(e){this.exit(e)}function ZL(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Yn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function KL(e){this.exit(e)}function JL(){return"["}function bk(e,t,n,a){const l=n.createTracker(a);let o=l.move("[^");const s=n.enter("footnoteReference"),c=n.enter("reference");return o+=l.move(n.safe(n.associationId(e),{after:"]",before:o})),c(),s(),o+=l.move("]"),o}function WL(){return{enter:{gfmFootnoteCallString:PL,gfmFootnoteCall:GL,gfmFootnoteDefinitionLabelString:FL,gfmFootnoteDefinition:YL},exit:{gfmFootnoteCallString:XL,gfmFootnoteCall:QL,gfmFootnoteDefinitionLabelString:ZL,gfmFootnoteDefinition:KL}}}function e8(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:bk},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(a,l,o,s){const c=o.createTracker(s);let d=c.move("[^");const f=o.enter("footnoteDefinition"),m=o.enter("label");return d+=c.move(o.safe(o.associationId(a),{before:d,after:"]"})),m(),d+=c.move("]:"),a.children&&a.children.length>0&&(c.shift(4),d+=c.move((t?` +`:" ")+o.indentLines(o.containerFlow(a,c.current()),t?wk:t8))),f(),d}}function t8(e,t,n){return t===0?e:wk(e,t,n)}function wk(e,t,n){return(n?"":" ")+e}const n8=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];_k.peek=o8;function r8(){return{canContainEols:["delete"],enter:{strikethrough:a8},exit:{strikethrough:l8}}}function i8(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:n8}],handlers:{delete:_k}}}function a8(e){this.enter({type:"delete",children:[]},e)}function l8(e){this.exit(e)}function _k(e,t,n,a){const l=n.createTracker(a),o=n.enter("strikethrough");let s=l.move("~~");return s+=n.containerPhrasing(e,{...l.current(),before:s,after:"~"}),s+=l.move("~~"),o(),s}function o8(){return"~"}function s8(e){return e.length}function u8(e,t){const n=t||{},a=(n.align||[]).concat(),l=n.stringLength||s8,o=[],s=[],c=[],d=[];let f=0,m=-1;for(;++mf&&(f=e[m].length);++_d[_])&&(d[_]=k)}E.push(N)}s[m]=E,c[m]=S}let p=-1;if(typeof a=="object"&&"length"in a)for(;++pd[p]&&(d[p]=N),v[p]=N),g[p]=k}s.splice(1,0,g),c.splice(1,0,v),m=-1;const w=[];for(;++m "),o.shift(2);const s=n.indentLines(n.containerFlow(e,o.current()),d8);return l(),s}function d8(e,t,n){return">"+(n?"":" ")+e}function h8(e,t){return uw(e,t.inConstruct,!0)&&!uw(e,t.notInConstruct,!1)}function uw(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let a=-1;for(;++as&&(s=o):o=1,l=a+t.length,a=n.indexOf(t,l);return s}function m8(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function g8(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function x8(e,t,n,a){const l=g8(n),o=e.value||"",s=l==="`"?"GraveAccent":"Tilde";if(m8(e,n)){const p=n.enter("codeIndented"),g=n.indentLines(o,y8);return p(),g}const c=n.createTracker(a),d=l.repeat(Math.max(p8(o,l)+1,3)),f=n.enter("codeFenced");let m=c.move(d);if(e.lang){const p=n.enter(`codeFencedLang${s}`);m+=c.move(n.safe(e.lang,{before:m,after:" ",encode:["`"],...c.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${s}`);m+=c.move(" "),m+=c.move(n.safe(e.meta,{before:m,after:` +`,encode:["`"],...c.current()})),p()}return m+=c.move(` +`),o&&(m+=c.move(o+` +`)),m+=c.move(d),f(),m}function y8(e,t,n){return(n?"":" ")+e}function og(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function v8(e,t,n,a){const l=og(n),o=l==='"'?"Quote":"Apostrophe",s=n.enter("definition");let c=n.enter("label");const d=n.createTracker(a);let f=d.move("[");return f+=d.move(n.safe(n.associationId(e),{before:f,after:"]",...d.current()})),f+=d.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=d.move("<"),f+=d.move(n.safe(e.url,{before:f,after:">",...d.current()})),f+=d.move(">")):(c=n.enter("destinationRaw"),f+=d.move(n.safe(e.url,{before:f,after:e.title?" ":` +`,...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),f+=d.move(" "+l),f+=d.move(n.safe(e.title,{before:f,after:l,...d.current()})),f+=d.move(l),c()),s(),f}function b8(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function Ko(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Sc(e,t,n){const a=Sl(e),l=Sl(t);return a===void 0?l===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:a===1?l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Sk.peek=w8;function Sk(e,t,n,a){const l=b8(n),o=n.enter("emphasis"),s=n.createTracker(a),c=s.move(l);let d=s.move(n.containerPhrasing(e,{after:l,before:c,...s.current()}));const f=d.charCodeAt(0),m=Sc(a.before.charCodeAt(a.before.length-1),f,l);m.inside&&(d=Ko(f)+d.slice(1));const p=d.charCodeAt(d.length-1),g=Sc(a.after.charCodeAt(0),p,l);g.inside&&(d=d.slice(0,-1)+Ko(p));const v=s.move(l);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:m.outside},c+d+v}function w8(e,t,n){return n.options.emphasis||"*"}function _8(e,t){let n=!1;return ag(e,function(a){if("value"in a&&/\r?\n|\r/.test(a.value)||a.type==="break")return n=!0,pm}),!!((!e.depth||e.depth<3)&&Jm(e)&&(t.options.setext||n))}function S8(e,t,n,a){const l=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(a);if(_8(e,n)){const m=n.enter("headingSetext"),p=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return p(),m(),g+` +`+(l===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` +`))+1))}const s="#".repeat(l),c=n.enter("headingAtx"),d=n.enter("phrasing");o.move(s+" ");let f=n.containerPhrasing(e,{before:"# ",after:` +`,...o.current()});return/^[\t ]/.test(f)&&(f=Ko(f.charCodeAt(0))+f.slice(1)),f=f?s+" "+f:s,n.options.closeAtx&&(f+=" "+s),d(),c(),f}kk.peek=k8;function kk(e){return e.value||""}function k8(){return"<"}Ek.peek=E8;function Ek(e,t,n,a){const l=og(n),o=l==='"'?"Quote":"Apostrophe",s=n.enter("image");let c=n.enter("label");const d=n.createTracker(a);let f=d.move("![");return f+=d.move(n.safe(e.alt,{before:f,after:"]",...d.current()})),f+=d.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),f+=d.move("<"),f+=d.move(n.safe(e.url,{before:f,after:">",...d.current()})),f+=d.move(">")):(c=n.enter("destinationRaw"),f+=d.move(n.safe(e.url,{before:f,after:e.title?" ":")",...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),f+=d.move(" "+l),f+=d.move(n.safe(e.title,{before:f,after:l,...d.current()})),f+=d.move(l),c()),f+=d.move(")"),s(),f}function E8(){return"!"}Nk.peek=N8;function Nk(e,t,n,a){const l=e.referenceType,o=n.enter("imageReference");let s=n.enter("label");const c=n.createTracker(a);let d=c.move("![");const f=n.safe(e.alt,{before:d,after:"]",...c.current()});d+=c.move(f+"]["),s();const m=n.stack;n.stack=[],s=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return s(),n.stack=m,o(),l==="full"||!f||f!==p?d+=c.move(p+"]"):l==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function N8(){return"!"}Ck.peek=C8;function Ck(e,t,n){let a=e.value||"",l="`",o=-1;for(;new RegExp("(^|[^`])"+l+"([^`]|$)").test(a);)l+="`";for(/[^ \r\n]/.test(a)&&(/^[ \r\n]/.test(a)&&/[ \r\n]$/.test(a)||/^`|`$/.test(a))&&(a=" "+a+" ");++o\u007F]/.test(e.url))}Tk.peek=j8;function Tk(e,t,n,a){const l=og(n),o=l==='"'?"Quote":"Apostrophe",s=n.createTracker(a);let c,d;if(jk(e,n)){const m=n.stack;n.stack=[],c=n.enter("autolink");let p=s.move("<");return p+=s.move(n.containerPhrasing(e,{before:p,after:">",...s.current()})),p+=s.move(">"),c(),n.stack=m,p}c=n.enter("link"),d=n.enter("label");let f=s.move("[");return f+=s.move(n.containerPhrasing(e,{before:f,after:"](",...s.current()})),f+=s.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),f+=s.move("<"),f+=s.move(n.safe(e.url,{before:f,after:">",...s.current()})),f+=s.move(">")):(d=n.enter("destinationRaw"),f+=s.move(n.safe(e.url,{before:f,after:e.title?" ":")",...s.current()}))),d(),e.title&&(d=n.enter(`title${o}`),f+=s.move(" "+l),f+=s.move(n.safe(e.title,{before:f,after:l,...s.current()})),f+=s.move(l),d()),f+=s.move(")"),c(),f}function j8(e,t,n){return jk(e,n)?"<":"["}Ak.peek=T8;function Ak(e,t,n,a){const l=e.referenceType,o=n.enter("linkReference");let s=n.enter("label");const c=n.createTracker(a);let d=c.move("[");const f=n.containerPhrasing(e,{before:d,after:"]",...c.current()});d+=c.move(f+"]["),s();const m=n.stack;n.stack=[],s=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return s(),n.stack=m,o(),l==="full"||!f||f!==p?d+=c.move(p+"]"):l==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function T8(){return"["}function sg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function A8(e){const t=sg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function z8(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function zk(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function M8(e,t,n,a){const l=n.enter("list"),o=n.bulletCurrent;let s=e.ordered?z8(n):sg(n);const c=e.ordered?s==="."?")":".":A8(n);let d=t&&n.bulletLastUsed?s===n.bulletLastUsed:!1;if(!e.ordered){const m=e.children?e.children[0]:void 0;if((s==="*"||s==="-")&&m&&(!m.children||!m.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(d=!0),zk(n)===s&&m){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let s=o.length+1;(l==="tab"||l==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(s=Math.ceil(s/4)*4);const c=n.createTracker(a);c.move(o+" ".repeat(s-o.length)),c.shift(s);const d=n.enter("listItem"),f=n.indentLines(n.containerFlow(e,c.current()),m);return d(),f;function m(p,g,v){return g?(v?"":" ".repeat(s))+p:(v?o:o+" ".repeat(s-o.length))+p}}function O8(e,t,n,a){const l=n.enter("paragraph"),o=n.enter("phrasing"),s=n.containerPhrasing(e,a);return o(),l(),s}const L8=Pc(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function H8(e,t,n,a){return(e.children.some(function(s){return L8(s)})?n.containerPhrasing:n.containerFlow).call(n,e,a)}function B8(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Mk.peek=I8;function Mk(e,t,n,a){const l=B8(n),o=n.enter("strong"),s=n.createTracker(a),c=s.move(l+l);let d=s.move(n.containerPhrasing(e,{after:l,before:c,...s.current()}));const f=d.charCodeAt(0),m=Sc(a.before.charCodeAt(a.before.length-1),f,l);m.inside&&(d=Ko(f)+d.slice(1));const p=d.charCodeAt(d.length-1),g=Sc(a.after.charCodeAt(0),p,l);g.inside&&(d=d.slice(0,-1)+Ko(p));const v=s.move(l+l);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:m.outside},c+d+v}function I8(e,t,n){return n.options.strong||"*"}function q8(e,t,n,a){return n.safe(e.value,a)}function $8(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function U8(e,t,n){const a=(zk(n)+(n.options.ruleSpaces?" ":"")).repeat($8(n));return n.options.ruleSpaces?a.slice(0,-1):a}const Dk={blockquote:f8,break:cw,code:x8,definition:v8,emphasis:Sk,hardBreak:cw,heading:S8,html:kk,image:Ek,imageReference:Nk,inlineCode:Ck,link:Tk,linkReference:Ak,list:M8,listItem:R8,paragraph:O8,root:H8,strong:Mk,text:q8,thematicBreak:U8};function V8(){return{enter:{table:P8,tableData:fw,tableHeader:fw,tableRow:F8},exit:{codeText:Y8,table:G8,tableData:$p,tableHeader:$p,tableRow:$p}}}function P8(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function G8(e){this.exit(e),this.data.inTable=void 0}function F8(e){this.enter({type:"tableRow",children:[]},e)}function $p(e){this.exit(e)}function fw(e){this.enter({type:"tableCell",children:[]},e)}function Y8(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,X8));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function X8(e,t){return t==="|"?t:e}function Q8(e){const t=e||{},n=t.tableCellPadding,a=t.tablePipeAlign,l=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:g,table:s,tableCell:d,tableRow:c}};function s(v,w,E,S){return f(m(v,E,S),v.align)}function c(v,w,E,S){const _=p(v,E,S),N=f([_]);return N.slice(0,N.indexOf(` +`))}function d(v,w,E,S){const _=E.enter("tableCell"),N=E.enter("phrasing"),k=E.containerPhrasing(v,{...S,before:o,after:o});return N(),_(),k}function f(v,w){return u8(v,{align:w,alignDelimiters:a,padding:n,stringLength:l})}function m(v,w,E){const S=v.children;let _=-1;const N=[],k=w.enter("table");for(;++_0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const h9={tokenize:w9,partial:!0};function p9(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:y9,continuation:{tokenize:v9},exit:b9}},text:{91:{name:"gfmFootnoteCall",tokenize:x9},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:m9,resolveTo:g9}}}}function m9(e,t,n){const a=this;let l=a.events.length;const o=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let s;for(;l--;){const d=a.events[l][1];if(d.type==="labelImage"){s=d;break}if(d.type==="gfmFootnoteCall"||d.type==="labelLink"||d.type==="label"||d.type==="image"||d.type==="link")break}return c;function c(d){if(!s||!s._balanced)return n(d);const f=Yn(a.sliceSerialize({start:s.end,end:a.now()}));return f.codePointAt(0)!==94||!o.includes(f.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function g9(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const a={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},l={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};l.end.column++,l.end.offset++,l.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},l.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[e[n+1],e[n+2],["enter",a,t],e[n+3],e[n+4],["enter",l,t],["exit",l,t],["enter",o,t],["enter",s,t],["exit",s,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",a,t]];return e.splice(n,e.length-n+1,...c),e}function x9(e,t,n){const a=this,l=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let o=0,s;return c;function c(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),d}function d(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",f)}function f(p){if(o>999||p===93&&!s||p===null||p===91||ut(p))return n(p);if(p===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return l.includes(Yn(a.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return ut(p)||(s=!0),o++,e.consume(p),p===92?m:f}function m(p){return p===91||p===92||p===93?(e.consume(p),o++,f):f(p)}}function y9(e,t,n){const a=this,l=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let o,s=0,c;return d;function d(w){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),f}function f(w){return w===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",m):n(w)}function m(w){if(s>999||w===93&&!c||w===null||w===91||ut(w))return n(w);if(w===93){e.exit("chunkString");const E=e.exit("gfmFootnoteDefinitionLabelString");return o=Yn(a.sliceSerialize(E)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(w),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return ut(w)||(c=!0),s++,e.consume(w),w===92?p:m}function p(w){return w===91||w===92||w===93?(e.consume(w),s++,m):m(w)}function g(w){return w===58?(e.enter("definitionMarker"),e.consume(w),e.exit("definitionMarker"),l.includes(o)||l.push(o),Qe(e,v,"gfmFootnoteDefinitionWhitespace")):n(w)}function v(w){return t(w)}}function v9(e,t,n){return e.check(us,t,e.attempt(h9,t,n))}function b9(e){e.exit("gfmFootnoteDefinition")}function w9(e,t,n){const a=this;return Qe(e,l,"gfmFootnoteDefinitionIndent",5);function l(o){const s=a.events[a.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(o):n(o)}}function _9(e){let n=(e||{}).singleTilde;const a={name:"strikethrough",tokenize:o,resolveAll:l};return n==null&&(n=!0),{text:{126:a},insideSpan:{null:[a]},attentionMarkers:{null:[126]}};function l(s,c){let d=-1;for(;++d1?d(w):(s.consume(w),p++,v);if(p<2&&!n)return d(w);const S=s.exit("strikethroughSequenceTemporary"),_=Sl(w);return S._open=!_||_===2&&!!E,S._close=!E||E===2&&!!_,c(w)}}}class S9{constructor(){this.map=[]}add(t,n,a){k9(this,t,n,a)}consume(t){if(this.map.sort(function(o,s){return o[0]-s[0]}),this.map.length===0)return;let n=this.map.length;const a=[];for(;n>0;)n-=1,a.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];a.push(t.slice()),t.length=0;let l=a.pop();for(;l;){for(const o of l)t.push(o);l=a.pop()}this.map.length=0}}function k9(e,t,n,a){let l=0;if(!(n===0&&a.length===0)){for(;l-1;){const q=a.events[B][1].type;if(q==="lineEnding"||q==="linePrefix")B--;else break}const U=B>-1?a.events[B][1].type:null,ee=U==="tableHead"||U==="tableRow"?A:d;return ee===A&&a.parser.lazy[a.now().line]?n(R):ee(R)}function d(R){return e.enter("tableHead"),e.enter("tableRow"),f(R)}function f(R){return R===124||(s=!0,o+=1),m(R)}function m(R){return R===null?n(R):Ee(R)?o>1?(o=0,a.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(R),e.exit("lineEnding"),v):n(R):Ve(R)?Qe(e,m,"whitespace")(R):(o+=1,s&&(s=!1,l+=1),R===124?(e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),s=!0,m):(e.enter("data"),p(R)))}function p(R){return R===null||R===124||ut(R)?(e.exit("data"),m(R)):(e.consume(R),R===92?g:p)}function g(R){return R===92||R===124?(e.consume(R),p):p(R)}function v(R){return a.interrupt=!1,a.parser.lazy[a.now().line]?n(R):(e.enter("tableDelimiterRow"),s=!1,Ve(R)?Qe(e,w,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(R):w(R))}function w(R){return R===45||R===58?S(R):R===124?(s=!0,e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),E):M(R)}function E(R){return Ve(R)?Qe(e,S,"whitespace")(R):S(R)}function S(R){return R===58?(o+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(R),e.exit("tableDelimiterMarker"),_):R===45?(o+=1,_(R)):R===null||Ee(R)?T(R):M(R)}function _(R){return R===45?(e.enter("tableDelimiterFiller"),N(R)):M(R)}function N(R){return R===45?(e.consume(R),N):R===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(R),e.exit("tableDelimiterMarker"),k):(e.exit("tableDelimiterFiller"),k(R))}function k(R){return Ve(R)?Qe(e,T,"whitespace")(R):T(R)}function T(R){return R===124?w(R):R===null||Ee(R)?!s||l!==o?M(R):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(R)):M(R)}function M(R){return n(R)}function A(R){return e.enter("tableRow"),H(R)}function H(R){return R===124?(e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),H):R===null||Ee(R)?(e.exit("tableRow"),t(R)):Ve(R)?Qe(e,H,"whitespace")(R):(e.enter("data"),L(R))}function L(R){return R===null||R===124||ut(R)?(e.exit("data"),H(R)):(e.consume(R),R===92?V:L)}function V(R){return R===92||R===124?(e.consume(R),L):L(R)}}function j9(e,t){let n=-1,a=!0,l=0,o=[0,0,0,0],s=[0,0,0,0],c=!1,d=0,f,m,p;const g=new S9;for(;++nn[2]+1){const w=n[2]+1,E=n[3]-n[2]-1;e.add(w,E,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return l!==void 0&&(o.end=Object.assign({},al(t.events,l)),e.add(l,0,[["exit",o,t]]),o=void 0),o}function hw(e,t,n,a,l){const o=[],s=al(t.events,n);l&&(l.end=Object.assign({},s),o.push(["exit",l,t])),a.end=Object.assign({},s),o.push(["exit",a,t]),e.add(n+1,0,o)}function al(e,t){const n=e[t],a=n[0]==="enter"?"start":"end";return n[1][a]}const T9={name:"tasklistCheck",tokenize:z9};function A9(){return{text:{91:T9}}}function z9(e,t,n){const a=this;return l;function l(d){return a.previous!==null||!a._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return ut(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),s):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),s):n(d)}function s(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(d)}function c(d){return Ee(d)?t(d):Ve(d)?e.check({tokenize:M9},t,n)(d):n(d)}}function M9(e,t,n){return Qe(e,a,"whitespace");function a(l){return l===null?n(l):t(l)}}function D9(e){return JS([i9(),p9(),_9(e),N9(),A9()])}const R9={};function Yc(e){const t=this,n=e||R9,a=t.data(),l=a.micromarkExtensions||(a.micromarkExtensions=[]),o=a.fromMarkdownExtensions||(a.fromMarkdownExtensions=[]),s=a.toMarkdownExtensions||(a.toMarkdownExtensions=[]);l.push(D9(n)),o.push(e9()),s.push(t9(n))}const O9=new Set([".md",".markdown",".mdx"]);function L9({filePath:e,onClose:t}){const[n,a]=I.useState(null),[l,o]=I.useState(null),[s,c]=I.useState(!0),d=I.useCallback(async()=>{c(!0),o(null);try{const m=e.split("/").map(v=>encodeURIComponent(v)).join("/"),p=await fetch(`/api/files/${m}`);if(!p.ok){const v=await p.json().catch(()=>({}));o(v.error||`HTTP ${p.status}`);return}const g=await p.json();a(g)}catch(m){o(m instanceof Error?m.message:"Failed to load file")}finally{c(!1)}},[e]);I.useEffect(()=>{d()},[d]),I.useEffect(()=>{const m=p=>{p.key==="Escape"&&t()};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[t]);const f=n?O9.has(n.extension):!1;return y.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",children:y.jsxs("div",{className:"relative flex flex-col w-[90vw] max-w-3xl max-h-[80vh] rounded-xl border border-[var(--border)] bg-[var(--surface)] shadow-2xl overflow-hidden",children:[y.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 border-b border-[var(--border)] bg-[var(--surface-raised)] flex-shrink-0",children:[y.jsx(Sw,{className:"w-4 h-4 text-[var(--text-muted)] flex-shrink-0"}),y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate flex-1",title:e,children:e}),n&&y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] flex-shrink-0 tabular-nums",children:B9(n.size)}),y.jsx("button",{onClick:t,className:"p-1 rounded-md text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-hover)] transition-colors flex-shrink-0",title:"Close (Esc)",children:y.jsx(ca,{className:"w-4 h-4"})})]}),y.jsxs("div",{className:"flex-1 overflow-auto px-5 py-4 min-h-0",children:[s&&y.jsx("div",{className:"flex items-center justify-center py-12",children:y.jsx(ml,{className:"w-5 h-5 text-[var(--text-muted)] animate-spin"})}),l&&y.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-red-500/10 border border-red-500/30",children:[y.jsx(ac,{className:"w-4 h-4 text-red-400 flex-shrink-0"}),y.jsx("span",{className:"text-xs text-red-300",children:l})]}),n&&!l&&(f?y.jsx("div",{className:"file-viewer-markdown text-xs leading-relaxed text-[var(--text)]",children:y.jsx(H9,{content:n.content})}):y.jsx("pre",{className:"font-mono text-[11px] leading-[1.6] text-[var(--text)] whitespace-pre-wrap break-words",children:n.content}))]})]})})}function H9({content:e}){return y.jsx(Fc,{remarkPlugins:[Yc],components:{h1:({children:t})=>y.jsx("h1",{className:"text-base font-bold mb-3 mt-2 text-[var(--text)]",children:t}),h2:({children:t})=>y.jsx("h2",{className:"text-sm font-bold mb-2 mt-3 text-[var(--text)]",children:t}),h3:({children:t})=>y.jsx("h3",{className:"text-xs font-bold mb-1.5 mt-2 text-[var(--text)]",children:t}),p:({children:t})=>y.jsx("p",{className:"mb-2 last:mb-0",children:t}),ul:({children:t})=>y.jsx("ul",{className:"list-disc list-inside mb-2 space-y-1 ml-2",children:t}),ol:({children:t})=>y.jsx("ol",{className:"list-decimal list-inside mb-2 space-y-1 ml-2",children:t}),li:({children:t})=>y.jsx("li",{children:t}),code:({children:t,className:n})=>(n==null?void 0:n.includes("language-"))?y.jsx("code",{className:"block bg-[var(--bg)] border border-[var(--border)] rounded px-3 py-2 font-mono text-[11px] my-2 overflow-x-auto whitespace-pre",children:t}):y.jsx("code",{className:"bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]",children:t}),pre:({children:t})=>y.jsx("pre",{className:"bg-[var(--bg)] border border-[var(--border)] rounded-md px-3 py-2.5 font-mono text-[11px] my-2 overflow-x-auto",children:t}),strong:({children:t})=>y.jsx("strong",{className:"font-semibold",children:t}),em:({children:t})=>y.jsx("em",{className:"italic",children:t}),a:({href:t,children:n})=>y.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 hover:text-blue-300 underline underline-offset-2",children:n}),blockquote:({children:t})=>y.jsx("blockquote",{className:"border-l-2 border-[var(--border)] pl-3 my-2 opacity-80",children:t}),hr:()=>y.jsx("hr",{className:"border-[var(--border)] my-3"}),table:({children:t})=>y.jsx("div",{className:"overflow-x-auto my-2",children:y.jsx("table",{className:"text-[11px] border-collapse w-full",children:t})}),th:({children:t})=>y.jsx("th",{className:"border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold",children:t}),td:({children:t})=>y.jsx("td",{className:"border border-[var(--border)] px-2 py-1",children:t})},children:e})}function B9(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function I9({node:e}){const t=se(M=>M.sendGateResponse),n=se(M=>M.wsStatus),[a,l]=I.useState(null),[o,s]=I.useState(""),[c,d]=I.useState(null),[f,m]=I.useState(!1),[p,g]=I.useState(null),v=e.status==="waiting",w=e.status==="completed";I.useEffect(()=>{v&&(l(null),s(""),d(null),m(!1))},[v]);const E=v&&n==="connected"&&a===null,S=(M,A)=>{if(E){if(A){l(M),d(A);return}l(M),m(!0),t(e.name,M)}},_=()=>{if(a===null||c===null)return;const M={[c]:o};m(!0),t(e.name,a,M),d(null)},N=e.option_details,k=N==null?void 0:N.find(M=>M.value===e.selected_option),T=(k==null?void 0:k.label)||e.selected_option;return y.jsxs("div",{className:"space-y-3",children:[v&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/30",children:[y.jsxs("span",{className:"relative flex h-2.5 w-2.5 flex-shrink-0",children:[y.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"}),y.jsx("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-amber-500"})]}),y.jsx("span",{className:"text-xs font-semibold text-amber-400 tracking-wide",children:"Decision Required"})]}),e.prompt&&y.jsx("div",{className:"border-l-2 border-amber-500/50 pl-3 py-0.5",children:y.jsx(Up,{text:e.prompt,muted:!1,onFileClick:g})}),N&&N.length>0&&y.jsxs("div",{className:"space-y-2",children:[y.jsx("div",{className:"flex flex-col gap-1.5",children:N.map(M=>{const A=a===M.value,H=a!==null&&!A;return y.jsx("button",{disabled:!E&&!A,onClick:()=>S(M.value,M.prompt_for),className:`w-full text-left px-3 py-2.5 rounded-lg border transition-all duration-150 ${A?"border-green-500/60 bg-green-500/10":H?"border-[var(--border)] opacity-40 cursor-default":"border-[var(--border)] bg-[var(--surface)] hover:border-amber-400/60 hover:bg-amber-500/5 cursor-pointer group"}`,children:y.jsxs("div",{className:"flex items-center gap-2.5",children:[y.jsx("div",{className:"flex-shrink-0",children:A?y.jsx("div",{className:"w-4 h-4 rounded-full bg-green-500 flex items-center justify-center",children:y.jsx(Wi,{className:"w-2.5 h-2.5 text-white",strokeWidth:3})}):y.jsx("div",{className:`w-4 h-4 rounded-full border-2 transition-colors ${H?"border-[var(--border)]":"border-[var(--border)] group-hover:border-amber-400"}`})}),y.jsx("div",{className:"flex-1 min-w-0",children:y.jsx("span",{className:`text-xs font-medium ${A?"text-green-400":"text-[var(--text)]"}`,children:M.label})}),M.route&&y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)] flex-shrink-0",children:["→ ",M.route]})]})},M.value)})}),f&&!c&&y.jsxs("div",{className:"flex items-center gap-2 px-1",children:[y.jsx(ml,{className:"w-3 h-3 text-green-400 animate-spin"}),y.jsx("span",{className:"text-[10px] text-green-400",children:"Sending..."})]}),E&&y.jsx("p",{className:"text-[10px] text-[var(--text-muted)] px-1",children:"Select an option to continue the workflow"})]}),!N&&e.options&&e.options.length>0&&y.jsxs("div",{className:"space-y-1.5",children:[y.jsx("h4",{className:"text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:"Options"}),y.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.options.map(M=>y.jsx("span",{className:"text-[11px] px-2 py-0.5 rounded border border-[var(--border)] text-[var(--text-muted)]",children:M},M))})]}),c&&y.jsxs("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--bg)] overflow-hidden",children:[y.jsx("div",{className:"px-3 py-2 border-b border-[var(--border)] bg-[var(--surface)]",children:y.jsx("h4",{className:"text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:c})}),y.jsxs("div",{className:"p-3 space-y-2",children:[y.jsx("input",{type:"text",value:o,onChange:M=>s(M.target.value),onKeyDown:M=>M.key==="Enter"&&_(),placeholder:`Enter ${c}...`,className:"w-full text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-amber-400 transition-colors",autoFocus:!0}),y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx("span",{className:"text-[10px] text-[var(--text-muted)]",children:"Press Enter or click Submit"}),y.jsxs("button",{onClick:_,className:"flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg bg-amber-500 text-white hover:bg-amber-600 transition-colors font-medium",children:[y.jsx(Ew,{className:"w-3 h-3"}),"Submit"]})]})]})]})]}),w&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg bg-green-500/10 border border-green-500/30",children:[y.jsx(Wi,{className:"w-3.5 h-3.5 text-green-400 flex-shrink-0"}),y.jsx("span",{className:"text-xs font-semibold text-green-400 tracking-wide",children:"Decision Completed"})]}),e.prompt&&y.jsx("div",{className:"border-l-2 border-[var(--border)] pl-3 py-0.5",children:y.jsx(Up,{text:e.prompt,muted:!0,onFileClick:g})}),T&&y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-green-500/30 bg-green-500/5",children:[y.jsx("div",{className:"w-4 h-4 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0",children:y.jsx(Wi,{className:"w-2.5 h-2.5 text-white",strokeWidth:3})}),y.jsx("span",{className:"text-xs font-medium text-[var(--text)]",children:T}),e.route&&y.jsxs("span",{className:"ml-auto text-[10px] text-[var(--text-muted)]",children:["→ ",e.route]})]}),N&&N.length>1&&y.jsx("div",{className:"space-y-1",children:N.filter(M=>M.value!==e.selected_option).map(M=>y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg opacity-35",children:[y.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-[var(--border)] flex-shrink-0"}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:M.label}),M.route&&y.jsxs("span",{className:"ml-auto text-[10px] text-[var(--text-muted)]",children:["→ ",M.route]})]},M.value))}),!N&&e.options&&e.options.length>0&&y.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.options.map(M=>y.jsxs("span",{className:`text-[11px] px-2.5 py-1 rounded-lg border ${M===e.selected_option?"border-green-500/30 text-green-400 bg-green-500/5":"border-[var(--border)] text-[var(--text-muted)] opacity-40"}`,children:[M===e.selected_option&&"✓ ",M]},M))}),y.jsx($9,{node:e})]}),!v&&!w&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Human Gate"}),y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)] capitalize",children:["(",e.status,")"]})]}),e.prompt&&y.jsx("div",{className:"border-l-2 border-[var(--border)] pl-3 py-0.5",children:y.jsx(Up,{text:e.prompt,muted:!0,onFileClick:g})})]}),p&&y.jsx(L9,{filePath:p,onClose:()=>g(null)})]})}function q9(e){return!(!e||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith("//")||e.startsWith("#")||e.startsWith("/")||e.startsWith("\\"))}function Up({text:e,muted:t,onFileClick:n}){const a=t?"text-[var(--text-muted)]":"text-[var(--text)]";return y.jsx("div",{className:`gate-markdown text-xs leading-relaxed ${a}`,children:y.jsx(Fc,{remarkPlugins:[Yc],components:{h1:({children:l})=>y.jsx("h1",{className:"text-sm font-bold mb-2 mt-1",children:l}),h2:({children:l})=>y.jsx("h2",{className:"text-xs font-bold mb-1.5 mt-1",children:l}),h3:({children:l})=>y.jsx("h3",{className:"text-xs font-semibold mb-1 mt-1",children:l}),p:({children:l})=>y.jsx("p",{className:"mb-1.5 last:mb-0",children:l}),ul:({children:l})=>y.jsx("ul",{className:"list-disc list-inside mb-1.5 space-y-0.5",children:l}),ol:({children:l})=>y.jsx("ol",{className:"list-decimal list-inside mb-1.5 space-y-0.5",children:l}),li:({children:l})=>y.jsx("li",{children:l}),code:({children:l,className:o})=>(o==null?void 0:o.includes("language-"))?y.jsx("code",{className:"block bg-[var(--bg)] border border-[var(--border)] rounded px-2 py-1.5 font-mono text-[11px] my-1 overflow-x-auto whitespace-pre",children:l}):y.jsx("code",{className:"bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]",children:l}),pre:({children:l})=>y.jsx("pre",{className:"bg-[var(--bg)] border border-[var(--border)] rounded-md px-2.5 py-2 font-mono text-[11px] my-1.5 overflow-x-auto",children:l}),strong:({children:l})=>y.jsx("strong",{className:"font-semibold",children:l}),em:({children:l})=>y.jsx("em",{className:"italic",children:l}),a:({href:l,children:o})=>n&&q9(l)?y.jsxs("button",{onClick:s=>{s.preventDefault(),n(l)},className:"inline-flex items-center gap-0.5 text-blue-400 hover:text-blue-300 underline underline-offset-2 cursor-pointer",title:`Open ${l}`,children:[y.jsx(Sw,{className:"w-3 h-3 inline flex-shrink-0"}),o]}):y.jsx("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 hover:text-blue-300 underline underline-offset-2",children:o}),blockquote:({children:l})=>y.jsx("blockquote",{className:"border-l-2 border-[var(--border)] pl-2.5 my-1.5 opacity-80",children:l}),hr:()=>y.jsx("hr",{className:"border-[var(--border)] my-2"}),table:({children:l})=>y.jsx("div",{className:"overflow-x-auto my-2",children:y.jsx("table",{className:"text-[11px] border-collapse w-full",children:l})}),th:({children:l})=>y.jsx("th",{className:"border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold",children:l}),td:({children:l})=>y.jsx("td",{className:"border border-[var(--border)] px-2 py-1",children:l})},children:e})})}function $9({node:e}){const t=[];if(e.route&&t.push({label:"Route",value:`→ ${e.route}`}),e.additional_input){const n=typeof e.additional_input=="object"?JSON.stringify(e.additional_input):e.additional_input;t.push({label:"Additional Input",value:n})}return t.length===0?null:y.jsx(Br,{items:t})}function U9({node:e}){const t=e.status,n=Me[t]||Me.pending,l=AM()[e.name],o=e.type==="for_each_group",[s,c]=I.useState(!0),d=[];e.elapsed!=null&&d.push({label:"Elapsed",value:ot(e.elapsed)}),l&&(d.push({label:"Total",value:l.total}),d.push({label:"Completed",value:l.completed}),l.failed>0&&d.push({label:"Failed",value:l.failed})),e.success_count!=null&&d.push({label:"Success",value:e.success_count}),e.failure_count!=null&&d.push({label:"Failures",value:e.failure_count});const f=e.for_each_items;return y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:o?"For-Each Group":"Parallel Group"})]}),l&&l.total>0&&y.jsxs("div",{className:"space-y-1",children:[y.jsxs("div",{className:"flex justify-between text-[10px] text-[var(--text-muted)]",children:[y.jsx("span",{children:"Progress"}),y.jsxs("span",{children:[l.completed+l.failed,"/",l.total]})]}),y.jsx("div",{className:"h-1.5 bg-[var(--bg)] rounded-full overflow-hidden",children:y.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${(l.completed+l.failed)/l.total*100}%`,background:l.failed>0?`linear-gradient(90deg, var(--completed) ${l.completed/(l.completed+l.failed)*100}%, var(--failed) 0%)`:"var(--completed)"}})})]}),y.jsx(Br,{items:d}),o&&f&&f.length>0&&y.jsxs("div",{className:"space-y-2",children:[y.jsxs("button",{onClick:()=>c(!s),className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold hover:text-[var(--text)] transition-colors",children:[s?y.jsx(ua,{className:"w-3 h-3"}):y.jsx(Lr,{className:"w-3 h-3"}),"Items (",f.length,")"]}),s&&y.jsx("div",{className:"space-y-1",children:f.map(m=>y.jsx(P9,{groupName:e.name,item:m},`${m.key}-${m.index}`))})]})]})}const V9={running:Me.running,completed:Me.completed,failed:Me.failed};function P9({groupName:e,item:t}){const[n,a]=I.useState(t.status==="running"),l=V9[t.status],o=Vm(),s=se(g=>g.navigateIntoSubworkflow),c=`${e}[${t.key}]`,d=o.find(g=>g.slotKey===c),f=!!d,m=!!(t.prompt||t.output!=null||t.activity&&t.activity.length>0||t.error_type),p=[];return t.elapsed!=null&&p.push({label:"Elapsed",value:ot(t.elapsed)}),t.tokens!=null&&p.push({label:"Tokens",value:Gn(t.tokens)}),t.cost_usd!=null&&p.push({label:"Cost",value:_i(t.cost_usd)}),y.jsxs("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--surface)] overflow-hidden",children:[y.jsxs("button",{onClick:()=>m&&a(!n),className:"flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-[var(--node-bg)] transition-colors",disabled:!m,children:[m?n?y.jsx(ua,{className:"w-3 h-3 text-[var(--text-muted)] flex-shrink-0"}):y.jsx(Lr,{className:"w-3 h-3 text-[var(--text-muted)] flex-shrink-0"}):t.status==="running"?y.jsx(ml,{className:"w-3 h-3 animate-spin flex-shrink-0",style:{color:l}}):y.jsx("span",{className:"w-2 h-2 rounded-full flex-shrink-0 ml-0.5 mr-0.5",style:{backgroundColor:l}}),y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate flex-1 min-w-0",children:t.key}),!n&&(t.elapsed!=null||t.tokens!=null||t.cost_usd!=null)&&y.jsxs("span",{className:"flex items-center gap-2 text-[10px] text-[var(--text-muted)] flex-shrink-0",children:[t.elapsed!=null&&y.jsx("span",{children:ot(t.elapsed)}),t.tokens!=null&&y.jsx("span",{children:Gn(t.tokens)}),t.cost_usd!=null&&y.jsx("span",{children:_i(t.cost_usd)})]}),y.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider flex-shrink-0 px-1.5 py-0.5 rounded",style:{backgroundColor:`${l}20`,color:l},children:t.status}),f&&y.jsx("span",{role:"button",tabIndex:0,onClick:g=>{g.stopPropagation(),s(c)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.stopPropagation(),g.preventDefault(),s(c))},title:`Dive into ${(d==null?void 0:d.workflowName)??c}`,className:"flex-shrink-0 p-1 rounded hover:bg-[var(--accent)]/20 hover:text-[var(--accent)] transition-colors text-[var(--text-muted)] cursor-pointer",children:y.jsx(kc,{className:"w-3 h-3"})})]}),n&&m&&y.jsxs("div",{className:"px-3 py-3 space-y-3 border-t border-[var(--border)]",children:[p.length>0&&y.jsx(Br,{items:p}),t.prompt&&y.jsx(Si,{output:t.prompt,title:"Input / Prompt",defaultExpanded:!1}),t.activity&&t.activity.length>0&&y.jsx(Gm,{activity:t.activity,defaultExpanded:t.status!=="completed"}),t.output!=null&&y.jsx(Si,{output:t.output,title:"Output",defaultExpanded:!0}),t.status==="failed"&&(t.error_type||t.error_message)&&y.jsxs("div",{className:"text-xs text-red-400",children:[t.error_type&&y.jsx("span",{className:"font-semibold",children:t.error_type}),t.error_message&&y.jsxs("span",{className:"ml-1",children:["— ",t.error_message]})]})]})]})}function G9({node:e}){const t=se(f=>f.engageDialog),n=se(f=>f.sendDialogDecline),a=se(f=>f.wsStatus),l=e.dialog_id||"",o=e.dialog_messages||[],s=a==="connected",c=o.find(f=>f.role==="agent"),d=()=>{s&&n(e.name,l)};return y.jsxs("div",{className:"flex flex-col gap-4",children:[y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg bg-fuchsia-500/10 border border-fuchsia-500/30",children:[y.jsxs("span",{className:"relative flex h-2.5 w-2.5 flex-shrink-0",children:[y.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-fuchsia-400 opacity-75"}),y.jsx("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-fuchsia-500"})]}),y.jsx("span",{className:"text-xs font-semibold text-fuchsia-400 tracking-wide",children:"Dialog Requested"})]}),c&&y.jsxs("div",{className:"rounded-lg px-3 py-2 bg-amber-500/10 border border-amber-500/30",children:[y.jsx("div",{className:"text-[10px] font-semibold mb-1 text-[var(--text-muted)]",children:e.name}),y.jsx("div",{className:"dialog-markdown text-xs leading-relaxed text-[var(--text)]",children:y.jsx(Fc,{remarkPlugins:[Yc],children:c.content})})]}),y.jsxs("div",{className:"space-y-2",children:[y.jsx("div",{className:"text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:"How would you like to proceed?"}),y.jsxs("div",{className:"flex gap-2",children:[y.jsxs("button",{onClick:t,disabled:!s,className:"flex-1 flex items-center justify-center gap-1.5 text-xs px-3 py-2 rounded-lg border border-fuchsia-500/40 bg-fuchsia-500/10 text-fuchsia-300 hover:bg-fuchsia-500/20 transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed",children:[y.jsx(vm,{className:"w-3 h-3"}),"💬 Discuss"]}),y.jsxs("button",{onClick:d,disabled:!s,className:"flex-1 flex items-center justify-center gap-1.5 text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--surface)] text-[var(--text-muted)] hover:bg-[var(--surface-hover)] transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed",children:[y.jsx(ca,{className:"w-3 h-3"}),"✕ Skip & continue"]})]})]})]})}function F9({node:e}){const t=e.status,n=Me[t]||Me.pending,a=se(c=>c.navigateIntoSubworkflow),o=Vm().filter(c=>c.parentAgent===e.name),s=[];return e.elapsed!=null&&s.push({label:"Elapsed",value:ot(e.elapsed)}),e.cost_usd!=null&&s.push({label:"Cost",value:_i(e.cost_usd)}),e.tokens!=null&&s.push({label:"Tokens",value:Gn(e.tokens)}),e.iteration!=null&&e.iteration>1&&s.push({label:"Iteration",value:e.iteration}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Subworkflow Agent"})]}),y.jsx(Br,{items:s}),o.length>0&&y.jsxs("div",{className:"space-y-2",children:[y.jsxs("div",{className:"text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:["Subworkflow Runs (",o.length,")"]}),y.jsx("div",{className:"space-y-1",children:o.map((c,d)=>y.jsx(Y9,{ctx:c,onClick:()=>a(c.slotKey)},`${c.slotKey}-${c.iteration}-${d}`))})]}),t==="failed"&&(e.error_type||e.error_message)&&y.jsxs("div",{className:"text-xs text-red-400",children:[e.error_type&&y.jsx("span",{className:"font-semibold",children:e.error_type}),e.error_message&&y.jsxs("span",{className:"ml-1",children:["— ",e.error_message]})]}),o.length===0&&t==="pending"&&y.jsx("div",{className:"text-xs text-[var(--text-muted)] italic",children:"Subworkflow has not started yet."})]})}function Y9({ctx:e,onClick:t}){const n=Me[e.status]||Me.pending;return y.jsxs("button",{onClick:t,className:"flex items-center gap-2 w-full px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--surface)] hover:bg-[var(--node-bg)] transition-colors text-left",children:[y.jsx(kc,{className:"w-3.5 h-3.5 flex-shrink-0",style:{color:n}}),y.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[y.jsx("span",{className:"text-xs font-medium text-[var(--text)] truncate",children:e.workflowName||e.workflowFile||"Subworkflow"}),y.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-[var(--text-muted)]",children:[e.agentsTotal>0&&y.jsxs("span",{className:"flex items-center gap-0.5",children:[y.jsx(kw,{className:"w-2.5 h-2.5"}),e.agentsCompleted,"/",e.agentsTotal," agents"]}),e.totalCost>0&&y.jsxs("span",{className:"flex items-center gap-0.5",children:[y.jsx(ww,{className:"w-2.5 h-2.5"}),_i(e.totalCost)]})]})]}),y.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider flex-shrink-0 px-1.5 py-0.5 rounded",style:{backgroundColor:`${n}20`,color:n},children:e.status}),y.jsx(Lr,{className:"w-3.5 h-3.5 flex-shrink-0 text-[var(--text-muted)]"})]})}function X9({node:e}){const t=e.status,n=Me[t]||Me.pending,a=[],l=e.requested_seconds??e.duration_seconds;return l!=null&&a.push({label:"Requested",value:ot(l)}),e.waited_seconds!=null?a.push({label:"Waited",value:ot(e.waited_seconds)}):e.elapsed!=null&&a.push({label:"Elapsed",value:ot(e.elapsed)}),e.interrupted&&a.push({label:"Interrupted",value:"yes"}),e.reason&&a.push({label:"Reason",value:e.reason}),e.error_type&&a.push({label:"Error",value:e.error_type}),e.error_message&&a.push({label:"Message",value:e.error_message}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${n}20`,color:n},children:t}),y.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:"Wait"})]}),y.jsx(Br,{items:a})]})}function Q9(){const e=se(d=>d.selectedNode),t=Rn(),n=se(d=>d.selectNode),a=se(d=>d.dialogEngaged),[l,o]=I.useState(!1);I.useEffect(()=>(requestAnimationFrame(()=>o(!0)),()=>o(!1)),[e]);const s=e?t[e]:null;if(!e||!s)return y.jsxs("div",{className:"h-full flex flex-col bg-[var(--surface)]",children:[y.jsx("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:y.jsx("h2",{className:"text-sm font-semibold text-[var(--text)]",children:"Detail"})}),y.jsx("div",{className:"flex-1 flex items-center justify-center",children:y.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Click a node to view details"})})]});const c=(()=>{if(s.dialog_active&&!a)return G9;if(s.dialog_active&&a)return S1;switch(s.type){case"script":return fD;case"wait":return X9;case"set":return dD;case"human_gate":return I9;case"parallel_group":case"for_each_group":return U9;case"workflow":return F9;default:return S1}})();return y.jsxs("div",{className:Te("h-full flex flex-col bg-[var(--surface)] transition-all duration-150 ease-out",l?"translate-x-0 opacity-100":"translate-x-4 opacity-0"),children:[y.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)] flex-shrink-0",children:[y.jsx("h2",{className:"text-sm font-semibold text-[var(--text)] truncate",children:e}),y.jsx("button",{onClick:()=>n(null),className:"p-1 rounded hover:bg-[var(--surface-hover)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors",title:"Close panel",children:y.jsx(ca,{className:"w-4 h-4"})})]}),y.jsx("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:y.jsx(c,{node:s})})]})}function ic(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Z9(){const e=se(S=>S.eventLog),t=se(S=>S.activityLog),n=se(S=>S.workflowOutput),a=se(S=>S.workflowStatus),[l,o]=I.useState("log"),[s,c]=I.useState(!1),[d,f]=I.useState(0),[m,p]=I.useState(0),g=I.useCallback(S=>{o(S),S==="log"&&f(e.length),S==="activity"&&p(t.length)},[e.length,t.length]);I.useEffect(()=>{l==="log"&&f(e.length)},[l,e.length]),I.useEffect(()=>{l==="activity"&&p(t.length)},[l,t.length]),I.useEffect(()=>{a==="completed"&&n!=null&&o("output")},[a,n]);const v=n!=null,w=l!=="log"?Math.max(0,e.length-d):0,E=l!=="activity"?Math.max(0,t.length-m):0;return s?y.jsx("div",{className:"flex items-center bg-[var(--surface)] border-t border-[var(--border)] px-3 py-1",children:y.jsxs("button",{onClick:()=>c(!1),className:"flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text)] transition-colors",children:[y.jsx(hN,{className:"w-3 h-3"}),y.jsx(rv,{className:"w-3 h-3"}),y.jsx("span",{children:"Output"}),t.length>0&&y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)]",children:["(",t.length,")"]})]})}):y.jsxs("div",{className:"flex flex-col h-full bg-[var(--surface)] border-t border-[var(--border)]",children:[y.jsxs("div",{className:"flex items-center justify-between px-2 flex-shrink-0 border-b border-[var(--border)]",children:[y.jsxs("div",{className:"flex items-center gap-0.5",children:[y.jsx(Vp,{active:l==="log",onClick:()=>g("log"),icon:y.jsx(rv,{className:"w-3 h-3"}),label:"Log",count:e.length,unread:w}),y.jsx(Vp,{active:l==="activity",onClick:()=>g("activity"),icon:y.jsx(vw,{className:"w-3 h-3"}),label:"Activity",count:t.length,unread:E}),y.jsx(Vp,{active:l==="output",onClick:()=>g("output"),icon:y.jsx(yN,{className:"w-3 h-3"}),label:"Output",badge:v?a==="failed"?"error":"success":void 0})]}),y.jsx("button",{onClick:()=>c(!0),className:"p-1 rounded text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-hover)] transition-colors",title:"Collapse panel",children:y.jsx(ua,{className:"w-3.5 h-3.5"})})]}),y.jsx("div",{className:"flex-1 overflow-hidden",children:l==="activity"?y.jsx(K9,{entries:t}):l==="log"?y.jsx(J9,{entries:e}):y.jsx(W9,{output:n,status:a})})]})}function Vp({active:e,onClick:t,icon:n,label:a,count:l,badge:o,unread:s}){return y.jsxs("button",{onClick:t,className:Te("relative flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors border-b-2 -mb-px",e?"text-[var(--text)] border-[var(--accent)]":"text-[var(--text-muted)] border-transparent hover:text-[var(--text-secondary)]"),children:[n,y.jsx("span",{children:a}),l!=null&&l>0&&y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] tabular-nums",children:l}),o&&y.jsx("span",{className:Te("w-1.5 h-1.5 rounded-full",o==="success"?"bg-[var(--completed)]":"bg-[var(--failed)]")}),!e&&s!=null&&s>0&&y.jsx("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 min-w-[14px] items-center justify-center rounded-full bg-[var(--accent)] px-1",children:y.jsx("span",{className:"text-[8px] font-bold text-white leading-none tabular-nums",children:s>99?"99+":s})})]})}const pw={reasoning:{color:"text-indigo-400/70",label:"THINK",labelColor:"text-indigo-500"},"tool-start":{color:"text-blue-400",label:"TOOL →",labelColor:"text-blue-500"},"tool-complete":{color:"text-green-400",label:"TOOL ←",labelColor:"text-green-600"},turn:{color:"text-amber-400",label:"STEP",labelColor:"text-amber-500"},message:{color:"text-[var(--text)]",label:"MSG",labelColor:"text-[var(--text-muted)]"},prompt:{color:"text-cyan-400/70",label:"PROMPT",labelColor:"text-cyan-600"}};function K9({entries:e}){const t=I.useRef(null),n=I.useRef(!0),a=se(d=>d.selectNode),[l,o]=I.useState(""),s=I.useCallback(()=>{const d=t.current;if(!d)return;const f=d.scrollHeight-d.scrollTop-d.clientHeight<30;n.current=f},[]),c=I.useMemo(()=>{if(!l)return e;const d=l.toLowerCase();return e.filter(f=>f.source.toLowerCase().includes(d)||ic(f.message).toLowerCase().includes(d))},[e,l]);return I.useEffect(()=>{t.current&&n.current&&(t.current.scrollTop=t.current.scrollHeight)},[c.length]),e.length===0?y.jsx("div",{className:"h-full flex items-center justify-center",children:y.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Waiting for agent activity…"})}):y.jsxs("div",{className:"h-full flex flex-col",children:[y.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-[var(--border-subtle)] flex-shrink-0",children:[y.jsx(kN,{className:"w-3 h-3 text-[var(--text-muted)] flex-shrink-0"}),y.jsx("input",{type:"text",value:l,onChange:d=>o(d.target.value),placeholder:"Filter by agent or message…",className:"flex-1 bg-transparent text-[11px] text-[var(--text)] placeholder:text-[var(--text-muted)] outline-none min-w-0"}),l&&y.jsxs(y.Fragment,{children:[y.jsxs("span",{className:"text-[10px] text-[var(--text-muted)] tabular-nums flex-shrink-0",children:[c.length," of ",e.length]}),y.jsx("button",{onClick:()=>o(""),className:"text-[var(--text-muted)] hover:text-[var(--text)] transition-colors flex-shrink-0",title:"Clear filter",children:y.jsx(ca,{className:"w-3 h-3"})})]})]}),y.jsxs("div",{ref:t,onScroll:s,className:"flex-1 overflow-y-auto font-mono text-[11px] leading-[1.6] px-3 py-2",children:[c.map((d,f)=>{const m=pw[d.type]||pw.message,p=Uk(d.timestamp);return y.jsxs("div",{className:"group",children:[y.jsxs("div",{className:"flex gap-1.5 hover:bg-[var(--surface-hover)] rounded px-1 -mx-1",children:[y.jsx("span",{className:"text-[var(--text-muted)] flex-shrink-0 select-none tabular-nums",children:p}),y.jsx("span",{className:Te("flex-shrink-0 w-[5ch] text-[10px] font-semibold tabular-nums select-none",m.labelColor),children:m.label}),y.jsx("button",{onClick:()=>a(d.source),className:"text-[var(--text-secondary)] flex-shrink-0 min-w-[8ch] max-w-[16ch] truncate hover:text-[var(--accent)] hover:underline transition-colors text-left",title:`Select ${d.source}`,children:d.source}),y.jsx("span",{className:Te("break-words min-w-0",m.color,d.type==="reasoning"&&"italic"),children:ic(d.message)})]}),d.detail&&y.jsx("div",{className:"ml-[calc(7ch+5ch+8ch+1rem)] px-2 py-1 my-0.5 bg-[var(--bg)] rounded text-[10px] text-[var(--text-muted)] whitespace-pre-wrap break-words max-h-24 overflow-y-auto border-l-2 border-[var(--border)]",children:ic(d.detail)})]},f)}),l&&c.length===0&&y.jsx("div",{className:"flex items-center justify-center py-4",children:y.jsxs("p",{className:"text-xs text-[var(--text-muted)]",children:['No matches for "',l,'"']})})]})]})}const mw={info:{color:"text-blue-400",icon:"›"},success:{color:"text-green-400",icon:"✓"},error:{color:"text-red-400",icon:"✗"},warning:{color:"text-amber-400",icon:"⚠"},debug:{color:"text-[var(--text-muted)]",icon:"·"}};function J9({entries:e}){const t=I.useRef(null),n=I.useRef(!0),a=se(o=>o.selectNode),l=I.useCallback(()=>{const o=t.current;if(!o)return;const s=o.scrollHeight-o.scrollTop-o.clientHeight<30;n.current=s},[]);return I.useEffect(()=>{t.current&&n.current&&(t.current.scrollTop=t.current.scrollHeight)},[e.length]),e.length===0?y.jsx("div",{className:"h-full flex items-center justify-center",children:y.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"Waiting for events…"})}):y.jsx("div",{ref:t,onScroll:l,className:"h-full overflow-y-auto font-mono text-[11px] leading-[1.6] px-3 py-2",children:e.map((o,s)=>{const c=mw[o.level]||mw.info,d=Uk(o.timestamp);return y.jsxs("div",{className:"flex gap-2 hover:bg-[var(--surface-hover)] rounded px-1 -mx-1",children:[y.jsx("span",{className:"text-[var(--text-muted)] flex-shrink-0 select-none tabular-nums",children:d}),y.jsx("span",{className:Te("flex-shrink-0 w-3 text-center select-none",c.color),children:c.icon}),y.jsx("button",{onClick:()=>a(o.source),className:"text-[var(--text-secondary)] flex-shrink-0 min-w-[8ch] max-w-[16ch] truncate hover:text-[var(--accent)] hover:underline transition-colors text-left",title:`Select ${o.source}`,children:o.source}),y.jsx("span",{className:Te("break-words",o.level==="error"?"text-red-400":o.level==="success"?"text-green-400":"text-[var(--text)]"),children:ic(o.message)})]},s)})})}function Uk(e){const t=new Date(e*1e3),n=t.getHours().toString().padStart(2,"0"),a=t.getMinutes().toString().padStart(2,"0"),l=t.getSeconds().toString().padStart(2,"0");return`${n}:${a}:${l}`}function W9({output:e,status:t}){const[n,a]=I.useState(!1),l=Nw(e),o=async()=>{l&&(await navigator.clipboard.writeText(l),a(!0),setTimeout(()=>a(!1),2e3))};return e==null?y.jsx("div",{className:"h-full flex items-center justify-center",children:y.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:t==="running"?"Workflow running — output will appear when complete…":t==="failed"?"Workflow failed — no output produced":"No output yet"})}):y.jsxs("div",{className:"h-full flex flex-col",children:[y.jsxs("div",{className:"flex items-center justify-between px-3 py-1 border-b border-[var(--border-subtle)] flex-shrink-0",children:[y.jsx("span",{className:"text-[10px] text-[var(--text-muted)] uppercase tracking-wider font-semibold",children:"Workflow Result"}),y.jsx("button",{onClick:o,className:"flex items-center gap-1 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors px-1.5 py-0.5 rounded hover:bg-[var(--surface-hover)]",title:"Copy to clipboard",children:n?y.jsxs(y.Fragment,{children:[y.jsx(Wi,{className:"w-3 h-3 text-[var(--completed)]"}),y.jsx("span",{className:"text-[var(--completed)]",children:"Copied"})]}):y.jsxs(y.Fragment,{children:[y.jsx(_w,{className:"w-3 h-3"}),y.jsx("span",{children:"Copy"})]})})]}),y.jsx("div",{className:"flex-1 overflow-auto px-3 py-2",children:y.jsx("pre",{className:"font-mono text-[11px] leading-relaxed text-[var(--text)] whitespace-pre-wrap break-words",children:typeof e=="object"?y.jsx(eH,{text:l}):l})})]})}function eH({text:e}){const t=e.split(/("(?:[^"\\]|\\.)*")/g);return y.jsx(y.Fragment,{children:t.map((n,a)=>{if(a%2===1){const o=t.slice(a+1).join(""),s=/^\s*:/.test(o);return y.jsx("span",{className:s?"text-blue-400":"text-green-400",children:n},a)}const l=n.replace(/\b(true|false|null)\b|(-?\d+\.?\d*(?:e[+-]?\d+)?)/gi,(o,s,c)=>s?`${o}`:c?`${o}`:o);return y.jsx("span",{dangerouslySetInnerHTML:{__html:l}},a)})})}function tH({text:e}){return y.jsx("div",{className:"dialog-markdown text-xs leading-relaxed text-[var(--text)]",children:y.jsx(Fc,{remarkPlugins:[Yc],components:{h1:({children:t})=>y.jsx("h1",{className:"text-sm font-bold mb-2 mt-1",children:t}),h2:({children:t})=>y.jsx("h2",{className:"text-xs font-bold mb-1.5 mt-1",children:t}),h3:({children:t})=>y.jsx("h3",{className:"text-xs font-semibold mb-1 mt-1",children:t}),p:({children:t})=>y.jsx("p",{className:"mb-1.5 last:mb-0",children:t}),ul:({children:t})=>y.jsx("ul",{className:"list-disc list-inside mb-1.5 space-y-0.5",children:t}),ol:({children:t})=>y.jsx("ol",{className:"list-decimal list-inside mb-1.5 space-y-0.5",children:t}),li:({children:t})=>y.jsx("li",{children:t}),code:({children:t,className:n})=>(n==null?void 0:n.includes("language-"))?y.jsx("code",{className:"block bg-[var(--bg)] border border-[var(--border)] rounded px-2 py-1.5 font-mono text-[11px] my-1 overflow-x-auto whitespace-pre",children:t}):y.jsx("code",{className:"bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]",children:t}),pre:({children:t})=>y.jsx("pre",{className:"bg-[var(--bg)] border border-[var(--border)] rounded-md px-2.5 py-2 font-mono text-[11px] my-1.5 overflow-x-auto",children:t}),strong:({children:t})=>y.jsx("strong",{className:"font-semibold",children:t}),em:({children:t})=>y.jsx("em",{className:"italic",children:t}),a:({href:t,children:n})=>y.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 hover:text-blue-300 underline underline-offset-2",children:n}),blockquote:({children:t})=>y.jsx("blockquote",{className:"border-l-2 border-[var(--border)] pl-2.5 my-1.5 opacity-80",children:t}),hr:()=>y.jsx("hr",{className:"border-[var(--border)] my-2"}),table:({children:t})=>y.jsx("div",{className:"overflow-x-auto my-2",children:y.jsx("table",{className:"text-[11px] border-collapse w-full",children:t})}),th:({children:t})=>y.jsx("th",{className:"border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold",children:t}),td:({children:t})=>y.jsx("td",{className:"border border-[var(--border)] px-2 py-1",children:t})},children:e})})}function nH({node:e}){const t=se(g=>g.sendDialogMessage),n=se(g=>g.wsStatus),[a,l]=I.useState(""),o=I.useRef(null),s=e.dialog_active===!0,c=e.dialog_id||"",d=e.dialog_messages||[],f=s&&n==="connected";I.useEffect(()=>{var g;(g=o.current)==null||g.scrollIntoView({behavior:"smooth"})},[d.length,e.dialog_awaiting_response]);const m=()=>{!a.trim()||!f||(t(e.name,c,a.trim()),l(""))},p=g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),m())};return y.jsxs("div",{className:"flex flex-col h-full",children:[s?y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg bg-fuchsia-500/10 border border-fuchsia-500/30 mb-3 flex-shrink-0",children:[y.jsxs("span",{className:"relative flex h-2.5 w-2.5 flex-shrink-0",children:[y.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-fuchsia-400 opacity-75"}),y.jsx("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-fuchsia-500"})]}),y.jsx("span",{className:"text-xs font-semibold text-fuchsia-400 tracking-wide",children:"Dialog Mode"}),y.jsxs("span",{className:"ml-auto text-[10px] text-[var(--text-muted)]",children:[d.length," message",d.length!==1?"s":""]})]}):y.jsxs("div",{className:"flex items-center gap-2.5 px-3 py-2 rounded-lg bg-[var(--surface)] border border-[var(--border)] mb-3 flex-shrink-0",children:[y.jsx(vm,{className:"w-3.5 h-3.5 text-[var(--text-muted)]"}),y.jsx("span",{className:"text-xs font-semibold text-[var(--text-muted)] tracking-wide",children:"Dialog Completed"}),y.jsxs("span",{className:"ml-auto text-[10px] text-[var(--text-muted)]",children:[d.length," message",d.length!==1?"s":""]})]}),y.jsxs("div",{className:"flex-1 overflow-y-auto space-y-3 min-h-0 mb-3",children:[d.map((g,v)=>y.jsx("div",{className:`flex ${g.role==="user"?"justify-end":"justify-start"}`,children:y.jsxs("div",{className:`max-w-[85%] rounded-lg px-3 py-2 ${g.role==="agent"?"bg-amber-500/10 border border-amber-500/30":"bg-blue-500/10 border border-blue-500/30"}`,children:[y.jsx("div",{className:"text-[10px] font-semibold mb-1 text-[var(--text-muted)]",children:g.role==="agent"?e.name:"You"}),y.jsx(tH,{text:g.content})]})},v)),e.dialog_awaiting_response&&y.jsx("div",{className:"flex justify-start",children:y.jsxs("div",{className:"max-w-[85%] rounded-lg px-3 py-2 bg-amber-500/10 border border-amber-500/30",children:[y.jsx("div",{className:"text-[10px] font-semibold mb-1 text-[var(--text-muted)]",children:e.name}),y.jsxs("div",{className:"flex gap-1 items-center h-4",children:[y.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:0ms]"}),y.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:150ms]"}),y.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:300ms]"})]})]})}),y.jsx("div",{ref:o})]}),s&&y.jsxs("div",{className:"flex-shrink-0 border-t border-[var(--border)] pt-3",children:[y.jsxs("div",{className:"flex gap-2",children:[y.jsx("input",{type:"text",value:a,onChange:g=>l(g.target.value),onKeyDown:p,placeholder:"Type your message...",className:"flex-1 text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-fuchsia-400 transition-colors",disabled:!f,autoFocus:!0}),y.jsxs("button",{onClick:m,disabled:!f||!a.trim(),className:"flex items-center justify-center gap-1.5 text-xs px-8 py-2 rounded-lg bg-fuchsia-500 text-white hover:bg-fuchsia-600 transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed",children:[y.jsx(Ew,{className:"w-3 h-3"}),"Send"]})]}),y.jsx("p",{className:"text-[10px] text-[var(--text-muted)] mt-1.5 px-1",children:'Press Enter to send · Type "done" to end dialog'})]})]})}function rH(){const e=se(a=>a.activeDialog),t=se(a=>a.nodes);if(!e)return null;const n=t[e.agentName];return n?y.jsxs("div",{className:"h-full flex flex-col bg-[var(--bg)] overflow-hidden",children:[y.jsxs("div",{className:"flex items-center gap-2.5 px-5 py-3 border-b border-[var(--border)] bg-[var(--surface)] flex-shrink-0",children:[y.jsx(vm,{className:"w-4 h-4 text-fuchsia-400"}),y.jsxs("h2",{className:"text-sm font-semibold text-[var(--text)]",children:["Dialog with ",e.agentName]})]}),y.jsx("div",{className:"flex-1 overflow-hidden px-5 py-4",children:y.jsx(nH,{node:n})})]}):null}function iH(){const e=se(a=>a.selectedNode),t=se(a=>a.activeDialog),n=se(a=>a.dialogEngaged);return y.jsxs(Gp,{direction:"vertical",className:"flex-1 overflow-hidden",children:[y.jsx(jo,{defaultSize:70,minSize:30,children:y.jsxs(Gp,{direction:"horizontal",className:"h-full",children:[y.jsx(jo,{defaultSize:e?65:100,minSize:40,children:t&&n?y.jsx(rH,{}):y.jsx(tD,{})}),e&&y.jsxs(y.Fragment,{children:[y.jsx(Fp,{className:"w-[3px] bg-[var(--border)] hover:bg-[var(--text-muted)] transition-colors cursor-col-resize"}),y.jsx(jo,{defaultSize:35,minSize:20,maxSize:60,children:y.jsx(Q9,{})})]})]})}),y.jsx(Fp,{className:"h-[3px] bg-[var(--border)] hover:bg-[var(--text-muted)] transition-colors cursor-row-resize"}),y.jsx(jo,{defaultSize:30,minSize:5,maxSize:70,collapsible:!0,children:y.jsx(Z9,{})})]})}const gw=10;function aH(){const e=se(E=>E.iterationLimitGate),t=se(E=>E.wsStatus),n=se(E=>E.sendIterationLimitResponse),[a,l]=I.useState(String(gw)),[o,s]=I.useState(!1);I.useEffect(()=>{e!=null&&e.gate_id&&(l(String(gw)),s(!1))},[e==null?void 0:e.gate_id]);const c=I.useMemo(()=>{const E=Number(a);return!Number.isFinite(E)||E<0?null:Math.floor(E)},[a]);if(!e||e.skip_gates)return null;const d=e.agent_name??e.group_name??"workflow",f=t==="connected"&&!o,m=!f||c==null||c<=0,p=()=>e.agent_name!==void 0?{agent_name:e.agent_name}:{group_name:e.group_name},g=()=>{m||c==null||(s(!0),n(p(),e.gate_id,c))},v=()=>{f&&(s(!0),n(p(),e.gate_id,0))},w=E=>{E.key==="Enter"&&(E.preventDefault(),g())};return y.jsx("div",{role:"dialog","aria-modal":"true","aria-labelledby":"iteration-limit-title","data-testid":"iteration-limit-modal",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",children:y.jsxs("div",{className:"relative flex flex-col w-[90vw] max-w-md rounded-xl border border-amber-500/40 bg-[var(--surface)] shadow-2xl overflow-hidden",children:[y.jsxs("div",{className:"flex items-center gap-2.5 px-4 py-3 border-b border-[var(--border)] bg-amber-500/10",children:[y.jsx(ac,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}),y.jsx("h2",{id:"iteration-limit-title",className:"text-sm font-semibold text-[var(--text)]",children:"Max iterations reached"})]}),y.jsxs("div",{className:"px-4 py-4 space-y-3",children:[y.jsxs("p",{className:"text-xs text-[var(--text)]",children:[y.jsx("span",{className:"font-semibold",children:d})," reached"," ",y.jsxs("span",{className:"tabular-nums",children:[e.current_iteration,"/",e.max_iterations]})," ","iterations."]}),e.possible_loop&&y.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/5 border border-amber-500/30",children:[y.jsx(ac,{className:"w-3.5 h-3.5 text-amber-400 flex-shrink-0"}),y.jsx("span",{className:"text-[11px] text-amber-300",children:"The same agent has run repeatedly — this may indicate a loop."})]}),e.agent_history.length>0&&y.jsxs("div",{className:"space-y-1",children:[y.jsx("h3",{className:"text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:"Recent agents"}),y.jsx("ol",{className:"text-[11px] text-[var(--text-muted)] list-decimal list-inside space-y-0.5",children:e.agent_history.map((E,S)=>y.jsx("li",{children:E},`${S}-${E}`))})]}),y.jsxs("div",{className:"space-y-1.5",children:[y.jsx("label",{htmlFor:"iteration-limit-additional",className:"block text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold",children:"Additional iterations"}),y.jsx("input",{id:"iteration-limit-additional","data-testid":"iteration-limit-input",type:"number",min:0,step:1,value:a,onChange:E=>l(E.target.value),onKeyDown:w,disabled:!f,autoFocus:!0,className:"w-full text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-amber-400 transition-colors disabled:opacity-50"}),y.jsx("p",{className:"text-[10px] text-[var(--text-muted)]",children:"Enter a positive number to continue, or press Stop to end the workflow."})]}),t!=="connected"&&y.jsx("div",{className:"text-[11px] text-red-300",children:"Disconnected from server — reconnect to resolve this gate."})]}),y.jsxs("div",{className:"flex items-center justify-end gap-2 px-4 py-3 border-t border-[var(--border)] bg-[var(--surface-raised)]",children:[y.jsxs("button",{type:"button","data-testid":"iteration-limit-stop",onClick:v,disabled:!f,className:"flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-hover)] disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[y.jsx(mN,{className:"w-3.5 h-3.5"}),"Stop"]}),y.jsxs("button",{type:"button","data-testid":"iteration-limit-continue",onClick:g,disabled:m,className:"flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg bg-amber-500 text-white hover:bg-amber-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors font-medium",children:[y.jsx(Ec,{className:"w-3.5 h-3.5"}),"Continue"]})]})]})})}const lH=3e4;function oH(){const e=se(p=>p.processEvent),t=se(p=>p.replayState),n=se(p=>p.setWsStatus),a=se(p=>p.setWsSend),l=I.useRef(null),o=I.useRef(1e3),s=I.useRef(null),c=I.useRef(null),d=I.useRef(()=>{}),f=I.useCallback(()=>{n("reconnecting"),s.current=setTimeout(()=>{o.current=Math.min(o.current*2,lH),d.current()},o.current)},[n]),m=I.useCallback(()=>{n("connecting"),c.current&&c.current.abort();const p=new AbortController;c.current=p,fetch("/api/state",{signal:p.signal}).then(g=>g.json()).then(g=>{g&&g.length>0&&t(g);const w=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;try{const E=new WebSocket(w);l.current=E,E.onopen=()=>{o.current=1e3,n("connected"),a(S=>{E.readyState===WebSocket.OPEN&&E.send(JSON.stringify(S))})},E.onmessage=S=>{try{const _=JSON.parse(S.data);e(_)}catch(_){console.error("Failed to parse WebSocket message:",_)}},E.onclose=()=>{n("disconnected"),a(null),l.current=null,f()},E.onerror=()=>{}}catch{f()}}).catch(g=>{p.signal.aborted||(console.error("Failed to fetch state:",g),f())})},[e,t,n,a,f]);d.current=m,I.useEffect(()=>(m(),()=>{c.current&&c.current.abort(),s.current&&clearTimeout(s.current),l.current&&l.current.close(),a(null)}),[m,a])}function sH(){const e=se(f=>f.setReplayMode),t=se(f=>f.setWsStatus),n=se(f=>f.replayPlaying),a=se(f=>f.replayPosition),l=se(f=>f.replayTotalEvents),o=se(f=>f.replaySpeed),s=se(f=>f.replayEvents),c=se(f=>f.setReplayPosition);I.useEffect(()=>{t("connecting"),fetch("/api/state").then(f=>f.json()).then(f=>{e(f),t("connected")}).catch(f=>{console.error("Failed to load replay events:",f),t("disconnected")})},[e,t]);const d=I.useRef(null);I.useEffect(()=>{if(!n||a>=l){d.current&&clearTimeout(d.current),n&&a>=l&&se.getState().setReplayPlaying(!1);return}const f=s[a-1],m=s[a];let p=100;if(f&&m){const g=(m.timestamp-f.timestamp)*1e3;p=Math.max(16,Math.min(g/o,2e3))}return d.current=setTimeout(()=>{c(a+1)},p),()=>{d.current&&clearTimeout(d.current)}},[n,a,l,o,s,c])}function uH(){return oH(),null}function cH(){return sH(),null}function fH(){const[e,t]=I.useState(null),n=se(o=>o.replayMode),a=se(o=>o.selectNode),l=se(o=>o.workflowName);return I.useEffect(()=>{fetch("/api/replay/info").then(o=>{o.ok?t(!0):t(!1)}).catch(()=>t(!1))},[]),I.useEffect(()=>{document.title=l?`Conductor — ${l}`:"Conductor Dashboard"},[l]),I.useEffect(()=>{const o=s=>{s.key==="Escape"&&a(null)};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[a]),e===null?null:y.jsxs("div",{className:"h-full flex flex-col bg-[var(--bg)]",children:[e?y.jsx(cH,{}):y.jsx(uH,{}),y.jsx(qN,{}),y.jsx($N,{}),y.jsx(iH,{}),n?y.jsx(FN,{}):y.jsx(VN,{}),!n&&y.jsx(aH,{})]})}lN.createRoot(document.getElementById("root")).render(y.jsx(I.StrictMode,{children:y.jsx(fH,{})})); diff --git a/src/conductor/web/static/assets/index-DDvkfLRb.css b/src/conductor/web/static/assets/index-DDvkfLRb.css deleted file mode 100644 index 71de7447..00000000 --- a/src/conductor/web/static/assets/index-DDvkfLRb.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-950:oklch(25.8% .092 26.042);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-950:oklch(27.9% .077 45.635);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-400:oklch(71.4% .203 305.504);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-3{top:calc(var(--spacing) * 3)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-\[4\.25rem\]{margin-left:4.25rem}.ml-\[calc\(7ch\+5ch\+8ch\+1rem\)\]{margin-left:calc(20ch + 1rem)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0{height:0}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-11{height:calc(var(--spacing) * 11)}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[90\%\]{height:90%}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:0}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-0{width:0}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-\[3px\]{width:3px}.w-\[5ch\]{width:5ch}.w-\[80\%\]{width:80%}.w-\[90vw\]{width:90vw}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[16ch\]{max-width:16ch}.max-w-\[85\%\]{max-width:85%}.max-w-\[140px\]{max-width:140px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[560px\]{max-width:560px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[8ch\]{min-width:8ch}.min-w-\[14px\]{min-width:14px}.min-w-\[140px\]{min-width:140px}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[banner-in_200ms_ease-out\]{animation:.2s ease-out banner-in}.animate-\[context-pulse_2s_ease-in-out_infinite\]{animation:2s ease-in-out infinite context-pulse}.animate-\[tooltip-in_150ms_ease-out\]{animation:.15s ease-out tooltip-in}.animate-bounce{animation:var(--animate-bounce)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x-\[6px\]{border-inline-style:var(--tw-border-style);border-inline-width:6px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-\[6px\]{border-top-style:var(--tw-border-style);border-top-width:6px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.\!border-none{--tw-border-style:none!important;border-style:none!important}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/50{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-fuchsia-500\/40{border-color:#e12afb66}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/40{border-color:color-mix(in oklab, var(--color-fuchsia-500) 40%, transparent)}}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab, red, red)){.border-green-500\/40{border-color:color-mix(in oklab, var(--color-green-500) 40%, transparent)}}.border-green-500\/60{border-color:#00c75899}@supports (color:color-mix(in lab, red, red)){.border-green-500\/60{border-color:color-mix(in oklab, var(--color-green-500) 60%, transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-slate-500\/40{border-color:#62748e66}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/40{border-color:color-mix(in oklab, var(--color-slate-500) 40%, transparent)}}.border-transparent{border-color:#0000}.border-x-transparent{border-inline-color:#0000}.border-t-\[var\(--border\)\]{border-top-color:var(--border)}.\!bg-\[var\(--border\)\]{background-color:var(--border)!important}.bg-\[\#a78bfa\]{background-color:#a78bfa}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--completed\)\]{background-color:var(--completed)}.bg-\[var\(--failed\)\]{background-color:var(--failed)}.bg-\[var\(--node-bg\)\]{background-color:var(--node-bg)}.bg-\[var\(--pending\)\]{background-color:var(--pending)}.bg-\[var\(--running\)\]{background-color:var(--running)}.bg-\[var\(--surface\)\],.bg-\[var\(--surface\)\]\/80{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--surface\)\]\/80{background-color:color-mix(in oklab, var(--surface) 80%, transparent)}}.bg-\[var\(--surface-hover\)\]{background-color:var(--surface-hover)}.bg-\[var\(--surface-raised\)\]{background-color:var(--surface-raised)}.bg-\[var\(--waiting\)\]{background-color:var(--waiting)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/60{background-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/60{background-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/20{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.bg-amber-950\/30{background-color:#4619014d}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/30{background-color:color-mix(in oklab, var(--color-amber-950) 30%, transparent)}}.bg-amber-950\/90{background-color:#461901e6}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/90{background-color:color-mix(in oklab, var(--color-amber-950) 90%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-fuchsia-400{background-color:var(--color-fuchsia-400)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab, var(--color-fuchsia-500) 10%, transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/5{background-color:color-mix(in oklab, var(--color-green-500) 5%, transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-950\/90{background-color:#032e15e6}@supports (color:color-mix(in lab, red, red)){.bg-green-950\/90{background-color:color-mix(in oklab, var(--color-green-950) 90%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/20{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.bg-red-950\/50{background-color:#46080980}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/50{background-color:color-mix(in oklab, var(--color-red-950) 50%, transparent)}}.bg-red-950\/90{background-color:#460809e6}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/90{background-color:color-mix(in oklab, var(--color-red-950) 90%, transparent)}}.bg-slate-500\/20{background-color:#62748e33}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/20{background-color:color-mix(in oklab, var(--color-slate-500) 20%, transparent)}}.bg-slate-900\/90{background-color:#0f172be6}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/90{background-color:color-mix(in oklab, var(--color-slate-900) 90%, transparent)}}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-px{padding-top:1px}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--completed\)\]{color:var(--completed)}.text-\[var\(--failed\)\]{color:var(--failed)}.text-\[var\(--running\)\]{color:var(--running)}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--waiting\)\]{color:var(--waiting)}.text-amber-200{color:var(--color-amber-200)}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/80{color:color-mix(in oklab, var(--color-amber-300) 80%, transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/80{color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-cyan-400\/70{color:#00d2efb3}@supports (color:color-mix(in lab, red, red)){.text-cyan-400\/70{color:color-mix(in oklab, var(--color-cyan-400) 70%, transparent)}}.text-cyan-600{color:var(--color-cyan-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500\/70{color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.text-emerald-500\/70{color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-400\/60{color:#05df7299}@supports (color:color-mix(in lab, red, red)){.text-green-400\/60{color:color-mix(in oklab, var(--color-green-400) 60%, transparent)}}.text-green-400\/80{color:#05df72cc}@supports (color:color-mix(in lab, red, red)){.text-green-400\/80{color:color-mix(in oklab, var(--color-green-400) 80%, transparent)}}.text-green-500\/60{color:#00c75899}@supports (color:color-mix(in lab, red, red)){.text-green-500\/60{color:color-mix(in oklab, var(--color-green-500) 60%, transparent)}}.text-green-600{color:var(--color-green-600)}.text-indigo-400\/70{color:#7d87ffb3}@supports (color:color-mix(in lab, red, red)){.text-indigo-400\/70{color:color-mix(in oklab, var(--color-indigo-400) 70%, transparent)}}.text-indigo-500{color:var(--color-indigo-500)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-400\/50{color:#ff656880}@supports (color:color-mix(in lab, red, red)){.text-red-400\/50{color:color-mix(in oklab, var(--color-red-400) 50%, transparent)}}.text-red-400\/60{color:#ff656899}@supports (color:color-mix(in lab, red, red)){.text-red-400\/60{color:color-mix(in oklab, var(--color-red-400) 60%, transparent)}}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab, red, red)){.text-red-400\/80{color:color-mix(in oklab, var(--color-red-400) 80%, transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-300\/80{color:#cad5e2cc}@supports (color:color-mix(in lab, red, red)){.text-slate-300\/80{color:color-mix(in oklab, var(--color-slate-300) 80%, transparent)}}.text-slate-400\/70{color:#90a1b9b3}@supports (color:color-mix(in lab, red, red)){.text-slate-400\/70{color:color-mix(in oklab, var(--color-slate-400) 70%, transparent)}}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(167\,139\,250\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a78bfa66);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_var\(--completed-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--completed-muted));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_var\(--failed-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--failed-muted));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_var\(--running-glow\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--running-glow));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_var\(--waiting-muted\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,var(--waiting-muted));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_16px_var\(--completed-muted\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--completed-muted));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_16px_var\(--failed-muted\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--failed-muted));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_16px_var\(--running-glow\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,var(--running-glow));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/10{--tw-shadow-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/10{--tw-shadow-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.shadow-red-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-slate-500\/10{--tw-shadow-color:#62748e1a}@supports (color:color-mix(in lab, red, red)){.shadow-slate-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-slate-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--accent\)\]{--tw-ring-color:var(--accent)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-\[var\(--bg\)\]{--tw-ring-offset-color:var(--bg)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:0ms\]{animation-delay:0s}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}@media (hover:hover){.group-hover\:border-amber-400:is(:where(.group):hover *){border-color:var(--color-amber-400)}}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-amber-400\/60:hover{border-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-400\/60:hover{border-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.hover\:border-emerald-500\/30:hover{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/30:hover{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.hover\:border-red-500\/30:hover{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/30:hover{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.hover\:bg-\[var\(--accent\)\]\/20:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--accent\)\]\/20:hover{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.hover\:bg-\[var\(--node-bg\)\]:hover{background-color:var(--node-bg)}.hover\:bg-\[var\(--surface\)\]:hover{background-color:var(--surface)}.hover\:bg-\[var\(--surface-hover\)\]:hover{background-color:var(--surface-hover)}.hover\:bg-\[var\(--text-muted\)\]:hover{background-color:var(--text-muted)}.hover\:bg-amber-500\/5:hover{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/5:hover{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.hover\:bg-amber-500\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/30:hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.hover\:bg-fuchsia-500\/20:hover{background-color:#e12afb33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-fuchsia-500\/20:hover{background-color:color-mix(in oklab, var(--color-fuchsia-500) 20%, transparent)}}.hover\:bg-fuchsia-600:hover{background-color:var(--color-fuchsia-600)}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-500\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/30:hover{background-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.hover\:bg-slate-500\/30:hover{background-color:#62748e4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-500\/30:hover{background-color:color-mix(in oklab, var(--color-slate-500) 30%, transparent)}}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:text-\[var\(--running\)\]:hover{color:var(--running)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-amber-400:focus{border-color:var(--color-amber-400)}.focus\:border-fuchsia-400:focus{border-color:var(--color-fuchsia-400)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}}:root{--bg:#0a0a0f;--bg-subtle:#111118;--surface:#16161e;--surface-hover:#1c1c26;--surface-raised:#1e1e28;--border:#2a2a3a;--border-subtle:#223;--text:#e4e4ef;--text-secondary:#a0a0b8;--text-muted:#6b6b80;--pending:#52525b;--running:#3b82f6;--running-glow:#3b82f680;--completed:#22c55e;--completed-muted:#22c55e40;--failed:#ef4444;--failed-muted:#ef444440;--waiting:#f59e0b;--waiting-muted:#f59e0b40;--skipped:#6b7280;--accent:#6366f1;--accent-muted:#6366f140;--node-bg:#1e1e2a;--node-border:#2e2e42;--edge-color:#2e2e42;--edge-active:#3b82f6;--edge-taken:#22c55e;--minimap-bg:#0d0d14;--minimap-mask:#ffffff10;--minimap-node:#3b82f680;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.react-flow__background{background:var(--bg)!important}.react-flow__minimap{background:var(--minimap-bg)!important;border:1px solid var(--border)!important;border-radius:8px!important}.react-flow__controls{overflow:hidden;border:1px solid var(--border)!important;border-radius:8px!important;box-shadow:0 4px 12px #0006!important}.react-flow__controls-button{background:var(--surface)!important;border:none!important;border-bottom:1px solid var(--border)!important;color:var(--text-secondary)!important;fill:var(--text-secondary)!important;width:32px!important;height:32px!important}.react-flow__controls-button:hover{background:var(--surface-hover)!important;color:var(--text)!important;fill:var(--text)!important}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--running-glow)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes context-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes dash-flow{to{stroke-dashoffset:-20px}}@keyframes node-activate{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes node-complete-glow{0%{box-shadow:0 0 0 0 var(--completed-muted)}50%{box-shadow:0 0 16px 4px var(--completed-muted)}to{box-shadow:0 0 #0000}}@keyframes node-fail-glow{0%{box-shadow:0 0 0 0 var(--failed-muted)}50%{box-shadow:0 0 16px 4px var(--failed-muted)}to{box-shadow:0 0 #0000}}.node-activate{animation:.3s ease-out node-activate}.node-complete{animation:.4s ease-out node-complete-glow}.node-fail{animation:.4s ease-out node-fail-glow}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-panel-group-direction=horizontal]>[data-resize-handle-active],[data-panel-group-direction=vertical]>[data-resize-handle-active]{background-color:var(--accent)!important}[data-resize-handle]{transition:background-color .15s;background-color:var(--border)!important}[data-resize-handle]:hover{background-color:var(--text-muted)!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))} diff --git a/src/conductor/web/static/assets/index-DzgmsZ8Q.js b/src/conductor/web/static/assets/index-DzgmsZ8Q.js deleted file mode 100644 index ceff6bb0..00000000 --- a/src/conductor/web/static/assets/index-DzgmsZ8Q.js +++ /dev/null @@ -1,87 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.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`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(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 N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=u()})),f=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=p(),n=d(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1ie||(e.current=re[ie],re[ie]=null,ie--)}function L(e,t){ie++,re[ie]=e.current,e.current=t}var oe=ae(null),se=ae(null),ce=ae(null),le=ae(null);function ue(e,t){switch(L(ce,t),L(se,e),L(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Gd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Gd(t),e=Kd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}I(oe),L(oe,e)}function de(){I(oe),I(se),I(ce)}function fe(e){e.memoizedState!==null&&L(le,e);var t=oe.current,n=Kd(t,e.type);t!==n&&(L(se,e),L(oe,n))}function pe(e){se.current===e&&(I(oe),I(se)),le.current===e&&(I(le),np._currentValue=ne)}var me,he;function ge(e){if(me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);me=t&&t[1]||``,he=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{_e=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ge(n):``}function ye(e,t){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge(`Lazy`);case 13:return e.child!==t&&t!==null?ge(`Suspense Fallback`):ge(`Suspense`);case 19:return ge(`SuspenseList`);case 0:case 15:return ve(e.type,!1);case 11:return ve(e.type.render,!1);case 1:return ve(e.type,!0);case 31:return ge(`Activity`);default:return``}}function be(e){try{var t=``,n=null;do t+=ye(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var xe=Object.prototype.hasOwnProperty,Se=t.unstable_scheduleCallback,Ce=t.unstable_cancelCallback,we=t.unstable_shouldYield,Te=t.unstable_requestPaint,Ee=t.unstable_now,De=t.unstable_getCurrentPriorityLevel,Oe=t.unstable_ImmediatePriority,ke=t.unstable_UserBlockingPriority,Ae=t.unstable_NormalPriority,je=t.unstable_LowPriority,Me=t.unstable_IdlePriority,R=t.log,Ne=t.unstable_setDisableYieldValue,z=null,Pe=null;function Fe(e){if(typeof R==`function`&&Ne(e),Pe&&typeof Pe.setStrictMode==`function`)try{Pe.setStrictMode(z,e)}catch{}}var Ie=Math.clz32?Math.clz32:B,Le=Math.log,Re=Math.LN2;function B(e){return e>>>=0,e===0?32:31-(Le(e)/Re|0)|0}var V=256,ze=262144,Be=4194304;function Ve(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ve(n))):i=Ve(o):i=Ve(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ve(n))):i=Ve(o)):i=Ve(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ue(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function We(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var e=Be;return Be<<=1,!(Be&62914560)&&(Be=4194304),e}function H(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ke(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),an=!1;if(rn)try{var on={};Object.defineProperty(on,"passive",{get:function(){an=!0}}),window.addEventListener(`test`,on,on),window.removeEventListener(`test`,on,on)}catch{an=!1}var sn=null,cn=null,ln=null;function un(){if(ln)return ln;var e,t=cn,n=t.length,r,i=`value`in sn?sn.value:sn.textContent,a=i.length;for(e=0;e=Vn),Wn=` `,Gn=!1;function Kn(e,t){switch(e){case`keyup`:return zn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function qn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Jn=!1;function Yn(e,t){switch(e){case`compositionend`:return qn(t);case`keypress`:return t.which===32?(Gn=!0,Wn):null;case`textInput`:return e=t.data,e===Wn&&Gn?null:e;default:return null}}function Xn(e,t){if(Jn)return e===`compositionend`||!Bn&&Kn(e,t)?(e=un(),ln=cn=sn=null,Jn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=vr(n)}}function br(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?br(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function xr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=jt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=jt(e.document)}return t}function Sr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Cr=rn&&`documentMode`in document&&11>=document.documentMode,wr=null,Tr=null,Er=null,Dr=!1;function Or(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dr||wr==null||wr!==jt(r)||(r=wr,`selectionStart`in r&&Sr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Er&&_r(Er,r)||(Er=r,r=kd(Tr,`onSelect`),0>=o,i-=o,bi=1<<32-Ie(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),ki&&Si(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),ki&&Si(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return ki&&Si(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),ki&&Si(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Ca(l)===r.type){n(e,r.sibling),c=a(r,o.props),Aa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=si(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=oi(o.type,o.key,o.props,null,e.mode,c),Aa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=ui(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Ca(o),b(e,r,o,c)}if(te(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,ka(o),c);if(o.$$typeof===C)return b(e,r,Zi(e,o),c);ja(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=ci(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Oa=0;var i=b(e,t,n,r);return Da=null,i}catch(t){if(t===_a||t===ya)throw t;var a=ni(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Na=Ma(!0),Pa=Ma(!1),Fa=!1;function Ia(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function La(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ra(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Rl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=$r(e),Qr(e,null,n),t}return Yr(e,r,t,n),$r(e)}function Ba(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}function Va(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ha=!1;function Ua(){if(Ha){var e=ca;if(e!==null)throw e}}function Wa(e,t,n,r){Ha=!1;var i=e.updateQueue;Fa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===sa&&(Ha=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Fa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),ql|=o,e.lanes=o,e.memoizedState=d}}function Ga(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Ka(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=P.T,s={};P.T=s,Ms(e,!1,t,n);try{var c=i(),l=P.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?js(e,t,da(c,r),hu(e)):js(e,t,r,hu(e))}catch(n){js(e,t,{then:function(){},status:`rejected`,reason:n},hu())}finally{F.p=a,o!==null&&s.types!==null&&(o.types=s.types),P.T=o}}function xs(){}function Ss(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Cs(e).queue;bs(e,a,t,ne,n===null?xs:function(){return ws(e),n(r)})}function Cs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ws(e){var t=Cs(e);t.next===null&&(t=e.alternate.memoizedState),js(e,t.next.queue,{},hu())}function Ts(){return Xi(np)}function Es(){return Oo().memoizedState}function Ds(){return Oo().memoizedState}function Os(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=hu();e=Ra(n);var r=za(t,e,n);r!==null&&(_u(r,t,n),Ba(r,t,n)),t={cache:ra()},e.payload=t;return}t=t.return}}function ks(e,t,n){var r=hu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ns(e)?Ps(t,n):(n=Xr(e,t,n,r),n!==null&&(_u(n,e,r),Fs(n,t,r)))}function As(e,t,n){js(e,t,n,hu())}function js(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ns(e))Ps(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,gr(s,o))return Yr(e,t,i,0),zl===null&&Jr(),!1}catch{}if(n=Xr(e,t,i,r),n!==null)return _u(n,e,r),Fs(n,t,r),!0}return!1}function Ms(e,t,n,r){if(r={lane:2,revertLane:md(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ns(e)){if(t)throw Error(i(479))}else t=Xr(e,n,r,2),t!==null&&_u(t,e,2)}function Ns(e){var t=e.alternate;return e===G||t!==null&&t===G}function Ps(e,t){fo=uo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Fs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}var Is={readContext:Xi,use:jo,useCallback:vo,useContext:vo,useEffect:vo,useImperativeHandle:vo,useLayoutEffect:vo,useInsertionEffect:vo,useMemo:vo,useReducer:vo,useRef:vo,useState:vo,useDebugValue:vo,useDeferredValue:vo,useTransition:vo,useSyncExternalStore:vo,useId:vo,useHostTransitionStatus:vo,useFormState:vo,useActionState:vo,useOptimistic:vo,useMemoCache:vo,useCacheRefresh:vo};Is.useEffectEvent=vo;var Ls={readContext:Xi,use:jo,useCallback:function(e,t){return Do().memoizedState=[e,t===void 0?null:t],e},useContext:Xi,useEffect:ss,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),as(4194308,4,ps.bind(null,t,e),n)},useLayoutEffect:function(e,t){return as(4194308,4,e,t)},useInsertionEffect:function(e,t){as(4,2,e,t)},useMemo:function(e,t){var n=Do();t=t===void 0?null:t;var r=e();if(po){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Do();if(n!==void 0){var i=n(t);if(po){Fe(!0);try{n(t)}finally{Fe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ks.bind(null,G,e),[r.memoizedState,e]},useRef:function(e){var t=Do();return e={current:e},t.memoizedState=e},useState:function(e){e=Uo(e);var t=e.queue,n=As.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:hs,useDeferredValue:function(e,t){return vs(Do(),e,t)},useTransition:function(){var e=Uo(!1);return e=bs.bind(null,G,e.queue,!0,!1),Do().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=G,a=Do();if(ki){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),zl===null)throw Error(i(349));J&127||Ro(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ss(Bo.bind(null,r,o,e),[e]),r.flags|=2048,rs(9,{destroy:void 0},zo.bind(null,r,o,n,t),null),n},useId:function(){var e=Do(),t=zl.identifierPrefix;if(ki){var n=xi,r=bi;n=(r&~(1<<32-Ie(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=mo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[tt]=t,o[nt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Rd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&jc(t)}}return Ic(t),Mc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ce.current,Ii(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Di,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[tt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Fd(e.nodeValue,n)),e||Ni(t,!0)}else e=Wd(e).createTextNode(r),e[tt]=t,t.stateNode=e}return Ic(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ii(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[tt]=t}else Li(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),e=!1}else n=Ri(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(io(t),t):(io(t),null);if(t.flags&128)throw Error(i(558))}return Ic(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Ii(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[tt]=t}else Li(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),a=!1}else a=Ri(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(io(t),t):(io(t),null)}return io(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Pc(t,t.updateQueue),Ic(t),null);case 4:return de(),e===null&&Td(t.stateNode.containerInfo),Ic(t),null;case 10:return Wi(t.type),Ic(t),null;case 19:if(I(ao),r=t.memoizedState,r===null)return Ic(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Fc(r,!1);else{if(Kl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=oo(e),o!==null){for(t.flags|=128,Fc(r,!1),e=o.updateQueue,t.updateQueue=e,Pc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ai(n,e),n=n.sibling;return L(ao,ao.current&1|2),ki&&Si(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ee()>ru&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}else{if(!a)if(e=oo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Pc(t,e),Fc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!ki)return Ic(t),null}else 2*Ee()-r.renderingStartTime>ru&&n!==536870912&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ic(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ee(),e.sibling=null,n=ao.current,L(ao,a?n&1|2:n&1),ki&&Si(t,r.treeForkCount),e);case 22:case 23:return io(t),Za(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ic(t),t.subtreeFlags&6&&(t.flags|=8192)):Ic(t),n=t.updateQueue,n!==null&&Pc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&I(pa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Wi(na),Ic(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Rc(e,t){switch(Ti(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wi(na),de(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return pe(t),null;case 31:if(t.memoizedState!==null){if(io(t),t.alternate===null)throw Error(i(340));Li()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(io(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Li()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return I(ao),null;case 4:return de(),null;case 10:return Wi(t.type),null;case 22:case 23:return io(t),Za(),e!==null&&I(pa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Wi(na),null;case 25:return null;default:return null}}function zc(e,t){switch(Ti(t),t.tag){case 3:Wi(na),de();break;case 26:case 27:case 5:pe(t);break;case 4:de();break;case 31:t.memoizedState!==null&&io(t);break;case 13:io(t);break;case 19:I(ao);break;case 10:Wi(t.type);break;case 22:case 23:io(t),Za(),e!==null&&I(pa);break;case 24:Wi(na)}}function Bc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){qu(t,t.return,e)}}function Vc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){qu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){qu(t,t.return,e)}}function Hc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ka(t,n)}catch(t){qu(e,e.return,t)}}}function Uc(e,t,n){n.props=Ws(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){qu(e,t,n)}}function K(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){qu(e,t,n)}}function Wc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){qu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){qu(e,t,n)}else n.current=null}function Gc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){qu(e,e.return,t)}}function Kc(e,t,n){try{var r=e.stateNode;zd(r,e.type,n,t),r[nt]=t}catch(t){qu(e,e.return,t)}}function qc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&tf(e.type)||e.tag===4}function Jc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||qc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&tf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Jt));else if(r!==4&&(r===27&&tf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&tf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Rd(t,r,n),t[tt]=e,t[nt]=n}catch(t){qu(e,e.return,t)}}var Qc=!1,$c=!1,el=!1,tl=typeof WeakSet==`function`?WeakSet:Set,nl=null;function rl(e,t){if(e=e.containerInfo,Hd=dp,e=xr(e),Sr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Ud={focusedElem:e,selectionRange:n},dp=!1,nl=t;nl!==null;)if(t=nl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,nl=e;else for(;nl!==null;){switch(t=nl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Rd(o,r,n),o[tt]=e,mt(o),r=o;break a;case`link`:var s=Gf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=yr(s,h),v=yr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,P.T=null,n=du,du=null;var o=su,s=lu;if(ou=0,cu=su=null,lu=0,Rl&6)throw Error(i(331));var c=Rl;if(Rl|=4,Nl(o.current),Tl(o,o.current,s,n),Rl=c,sd(0,!1),Pe&&typeof Pe.onPostCommitFiberRoot==`function`)try{Pe.onPostCommitFiberRoot(z,o)}catch{}return!0}finally{F.p=a,P.T=r,Uu(e,t)}}function Ku(e,t,n){t=fi(n,t),t=Xs(e.stateNode,t,2),e=za(e,t,2),e!==null&&(Ke(e,2),od(e))}function qu(e,t,n){if(e.tag===3)Ku(e,e,n);else for(;t!==null;){if(t.tag===3){Ku(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(au===null||!au.has(r))){e=fi(n,e),n=Zs(2),r=za(t,n,2),r!==null&&(Qs(n,r,t,e),Ke(r,2),od(r));break}}t=t.return}}function Ju(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ll;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Wl=!0,i.add(n),e=Yu.bind(null,e,t,n),t.then(e,e))}function Yu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,zl===e&&(J&n)===n&&(Kl===4||Kl===3&&(J&62914560)===J&&300>Ee()-tu?!(Rl&2)&&wu(e,0):Yl|=n,Zl===J&&(Zl=0)),od(e)}function Xu(e,t){t===0&&(t=Ge()),e=Zr(e,t),e!==null&&(Ke(e,t),od(e))}function Zu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Xu(e,n)}function Qu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Xu(e,n)}function $u(e,t){return Se(e,t)}var ed=null,td=null,nd=!1,rd=!1,id=!1,ad=0;function od(e){e!==td&&e.next===null&&(td===null?ed=td=e:td=td.next=e),rd=!0,nd||(nd=!0,pd())}function sd(e,t){if(!id&&rd){id=!0;do for(var n=!1,r=ed;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ie(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,fd(r,a))}else a=J,a=He(r,r===zl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ue(r,a)||(n=!0,fd(r,a));r=r.next}while(n);id=!1}}function cd(){ld()}function ld(){rd=nd=!1;var e=0;ad!==0&&Yd()&&(e=ad);for(var t=Ee(),n=null,r=ed;r!==null;){var i=r.next,a=ud(r,t);a===0?(r.next=null,n===null?ed=i:n.next=i,i===null&&(td=n)):(n=r,(e!==0||a&3)&&(rd=!0)),r=i}ou!==0&&ou!==5||sd(e,!1),ad!==0&&(ad=0)}function ud(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Bd(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Tf(e,t,n){var r=wf;if(r&&typeof t==`string`&&t){var i=Nt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),yf.has(i)||(yf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Rd(t,`link`,e),mt(t),r.head.appendChild(t)))}}function Ef(e){xf.D(e),Tf(`dns-prefetch`,e,null)}function Df(e,t){xf.C(e,t),Tf(`preconnect`,e,t)}function Of(e,t,n){xf.L(e,t,n);var r=wf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Nt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Nt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Nt(n.imageSizes)+`"]`)):i+=`[href="`+Nt(e)+`"]`;var a=i;switch(t){case`style`:a=Pf(e);break;case`script`:a=Rf(e)}vf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Ff(a))||t===`script`&&r.querySelector(zf(a))||(t=r.createElement(`link`),Rd(t,`link`,e),mt(t),r.head.appendChild(t)))}}function kf(e,t){xf.m(e,t);var n=wf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Nt(r)+`"][href="`+Nt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rf(e)}if(!vf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),vf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zf(a)))return}r=n.createElement(`link`),Rd(r,`link`,e),mt(r),n.head.appendChild(r)}}}function Af(e,t,n){xf.S(e,t,n);var r=wf;if(r&&e){var i=pt(r).hoistableStyles,a=Pf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Ff(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vf.get(a))&&Hf(e,n);var c=o=r.createElement(`link`);mt(c),Rd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jf(e,t){xf.X(e,t);var n=wf;if(n&&e){var r=pt(n).hoistableScripts,i=Rf(e),a=r.get(i);a||(a=n.querySelector(zf(i)),a||(e=m({src:e,async:!0},t),(t=vf.get(i))&&Uf(e,t),a=n.createElement(`script`),mt(a),Rd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mf(e,t){xf.M(e,t);var n=wf;if(n&&e){var r=pt(n).hoistableScripts,i=Rf(e),a=r.get(i);a||(a=n.querySelector(zf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=vf.get(i))&&Uf(e,t),a=n.createElement(`script`),mt(a),Rd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nf(e,t,n,r){var a=(a=ce.current)?bf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Pf(n.href),n=pt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pf(n.href);var o=pt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Ff(e)))&&!o._p&&(s.instance=o,s.state.loading=5),vf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vf.set(e,n),o||Lf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Rf(n),n=pt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pf(e){return`href="`+Nt(e)+`"`}function Ff(e){return`link[rel="stylesheet"][`+e+`]`}function If(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Lf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Rd(t,`link`,n),mt(t),e.head.appendChild(t))}function Rf(e){return`[src="`+Nt(e)+`"]`}function zf(e){return`script[async]`+e}function Bf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Nt(n.href)+`"]`);if(r)return t.instance=r,mt(r),r;var a=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),mt(r),Rd(r,`style`,a),Vf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pf(n.href);var o=e.querySelector(Ff(a));if(o)return t.state.loading|=4,t.instance=o,mt(o),o;r=If(n),(a=vf.get(a))&&Hf(r,a),o=(e.ownerDocument||e).createElement(`link`),mt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Rd(o,`link`,r),t.state.loading|=4,Vf(o,n.precedence,e),t.instance=o;case`script`:return o=Rf(n.src),(a=e.querySelector(zf(o)))?(t.instance=a,mt(a),a):(r=n,(a=vf.get(o))&&(r=m({},n),Uf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),mt(a),Rd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vf(r,n.precedence,e));return t.instance}function Vf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Yf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pf(r.href),a=t.querySelector(Ff(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Qf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,mt(a);return}a=t.ownerDocument||t,r=If(r),(i=vf.get(i))&&Hf(r,i),a=a.createElement(`link`),mt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Rd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Qf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Xf=0;function Zf(e,t){return e.stylesheets&&e.count===0&&ep(e,e.stylesheets),0Xf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Qf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ep(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var $f=null;function ep(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,$f=new Map,t.forEach(tp,e),$f=null,Qf.call(e))}function tp(e,t){if(!(t.state.loading&4)){var n=$f.get(e);if(n)var r=n.get(null);else{n=new Map,$f.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=l(d()),y=_(),b=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),x=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),S={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},C=(0,v.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>(0,v.createElement)(`svg`,{ref:c,...S,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:x(`lucide`,i),...s},[...o.map(([e,t])=>(0,v.createElement)(e,t)),...Array.isArray(a)?a:[a]])),w=(e,t)=>{let n=(0,v.forwardRef)(({className:n,...r},i)=>(0,v.createElement)(C,{ref:i,iconNode:t,className:x(`lucide-${b(e)}`,n),...r}));return n.displayName=`${e}`,n},T=w(`Activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),E=w(`ArrowDownToLine`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),D=w(`ArrowUpFromLine`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),O=w(`Bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),k=w(`Check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),A=w(`ChevronDown`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),j=w(`ChevronRight`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),M=w(`ChevronUp`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),N=w(`CircleCheck`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ee=w(`CircleStop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),te=w(`Clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`polyline`,{points:`12 6 12 12 16 14`,key:`68esgv`}]]),P=w(`Coins`,[[`circle`,{cx:`8`,cy:`8`,r:`6`,key:`3yglwk`}],[`path`,{d:`M18.09 10.37A6 6 0 1 1 10.34 18`,key:`t5s6rm`}],[`path`,{d:`M7 6h1v4`,key:`1obek4`}],[`path`,{d:`m16.71 13.88.7.71-2.82 2.82`,key:`1rbuyh`}]]),F=w(`Copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),ne=w(`Download`,[[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`polyline`,{points:`7 10 12 15 17 10`,key:`2ggqvy`}],[`line`,{x1:`12`,x2:`12`,y1:`15`,y2:`3`,key:`1vk2je`}]]),re=w(`Eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),ie=w(`FileCode`,[[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`,key:`tnqrlb`}],[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z`,key:`1mlx9k`}]]),ae=w(`FileOutput`,[[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`,key:`tnqrlb`}],[`path`,{d:`M4 7V4a2 2 0 0 1 2-2 2 2 0 0 0-2 2`,key:`1vk7w2`}],[`path`,{d:`M4.063 20.999a2 2 0 0 0 2 1L18 22a2 2 0 0 0 2-2V7l-5-5H6`,key:`1jink5`}],[`path`,{d:`m5 11-3 3`,key:`1dgrs4`}],[`path`,{d:`m5 17-3-3h10`,key:`1mvvaf`}]]),I=w(`FileText`,[[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`,key:`1rqfz7`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`,key:`tnqrlb`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),L=w(`GitBranch`,[[`line`,{x1:`6`,x2:`6`,y1:`3`,y2:`15`,key:`17qcm7`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M18 9a9 9 0 0 1-9 9`,key:`n2h4wq`}]]),oe=w(`Hash`,[[`line`,{x1:`4`,x2:`20`,y1:`9`,y2:`9`,key:`4lhtct`}],[`line`,{x1:`4`,x2:`20`,y1:`15`,y2:`15`,key:`vyu0kd`}],[`line`,{x1:`10`,x2:`8`,y1:`3`,y2:`21`,key:`1ggp8o`}],[`line`,{x1:`16`,x2:`14`,y1:`3`,y2:`21`,key:`weycgp`}]]),se=w(`Layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),ce=w(`LoaderCircle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),le=w(`Maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),ue=w(`MessageCircle`,[[`path`,{d:`M7.9 20A9 9 0 1 0 4 16.1L2 22Z`,key:`vv11sd`}]]),de=w(`Octagon`,[[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}]]),fe=w(`Pause`,[[`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`zuxfzm`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`1okwgv`}]]),pe=w(`Play`,[[`polygon`,{points:`6 3 20 12 6 21 6 3`,key:`1oa8hb`}]]),me=w(`Repeat`,[[`path`,{d:`m17 2 4 4-4 4`,key:`nntrym`}],[`path`,{d:`M3 11v-1a4 4 0 0 1 4-4h14`,key:`84bu3i`}],[`path`,{d:`m7 22-4-4 4-4`,key:`1wqhfi`}],[`path`,{d:`M21 13v1a4 4 0 0 1-4 4H3`,key:`1rx37r`}]]),he=w(`Search`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),ge=w(`Send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),_e=w(`ShieldCheck`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ve=w(`SquareTerminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),ye=w(`Square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),be=w(`Terminal`,[[`polyline`,{points:`4 17 10 11 4 5`,key:`akl6gq`}],[`line`,{x1:`12`,x2:`20`,y1:`19`,y2:`19`,key:`q2wloq`}]]),xe=w(`TriangleAlert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Se=w(`Variable`,[[`path`,{d:`M8 21s-4-3-4-9 4-9 4-9`,key:`uto9ud`}],[`path`,{d:`M16 3s4 3 4 9-4 9-4 9`,key:`4w2vsq`}],[`line`,{x1:`15`,x2:`9`,y1:`9`,y2:`15`,key:`f7djnv`}],[`line`,{x1:`9`,x2:`15`,y1:`9`,y2:`15`,key:`1shsy8`}]]),Ce=w(`WifiOff`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),we=w(`Wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),Te=w(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Ee=w(`Zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]),De=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Oe=(e=>e?De(e):De),ke=e=>e;function Ae(e,t=ke){let n=v.useSyncExternalStore(e.subscribe,v.useCallback(()=>t(e.getState()),[e,t]),v.useCallback(()=>t(e.getInitialState()),[e,t]));return v.useDebugValue(n),n}var je=e=>{let t=Oe(e),n=e=>Ae(t,e);return Object.assign(n,t),n},Me=(e=>e?je(e):je);function R(e,t,n=`agent`){return e[t]||(e[t]={name:t,status:`pending`,type:n,activity:[]}),e[t].activity||(e[t].activity=[]),e[t]}function Ne(e,t,n){R(e,t).activity.push(n)}function z(e,t){e[t]&&(e[t]={...e[t]})}function Pe(e,t,n,r){let i=e[t];if(!i?.for_each_items)return;let a=i.for_each_items.find(e=>e.key===n);a&&a.activity.push(r)}function Fe(e,t,n,r){return{parentAgent:e,iteration:t,slotKey:r??e,workflowFile:n,workflowName:``,status:`pending`,agents:[],routes:[],parallelGroups:[],forEachGroups:[],nodes:{},groupProgress:{},highlightedEdges:[],entryPoint:null,children:[],agentsCompleted:0,agentsTotal:0,totalCost:0,totalTokens:0,eventLog:[],activityLog:[],workflowOutput:null,workflowFailure:null}}function Ie(e,t){if(t.length===0)return null;let n=e[t[0]];for(let e=1;e=0;n--)if(r[n].slotKey===e){t=n;break}if(t===-1)return null;n.push(t),i=r[t],r=i.children}return{indexPath:n,ctx:i}}function Re(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.slotKey===t)return{ctx:r,index:n}}return null}var B=Me((e,t)=>({workflowName:``,workflowStatus:`pending`,workflowStartTime:null,workflowFailure:null,workflowFailedAgent:null,workflowTermination:null,workflowYaml:null,conductorVersion:null,entryPoint:null,agents:[],routes:[],parallelGroups:[],forEachGroups:[],nodes:{},groupProgress:{},highlightedEdges:[],agentsCompleted:0,agentsTotal:0,totalCost:0,totalTokens:0,selectedNode:null,wsStatus:`connecting`,eventLog:[],activityLog:[],workflowOutput:null,lastEventTime:null,isPaused:!1,iterationLimitGate:null,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[],replayMode:!1,replayEvents:[],replayPosition:0,replayTotalEvents:0,replayPlaying:!1,replaySpeed:1,_wsSend:null,setWsSend:t=>{e({_wsSend:t})},sendGateResponse:(e,t,n)=>{let r=B.getState()._wsSend;r&&r({type:`gate_response`,agent_name:e,selected_value:t,additional_input:n||{}})},activeDialog:null,dialogEngaged:!1,engageDialog:()=>{e({dialogEngaged:!0})},sendDialogMessage:(e,t,n)=>{let r=B.getState()._wsSend;r&&r({type:`dialog_message`,agent_name:e,dialog_id:t,content:n})},sendDialogDecline:(e,t)=>{let n=B.getState()._wsSend;n&&n({type:`dialog_decline`,agent_name:e,dialog_id:t})},sendIterationLimitResponse:(e,t,n)=>{let r=B.getState()._wsSend;if(!r)return;let i=Math.max(0,Math.floor(Number(n)||0));r({type:`iteration_limit_response`,gate_id:t,...`agent_name`in e?{agent_name:e.agent_name}:{group_name:e.group_name},additional_iterations:i})},processEvent:t=>{let n=ze[t.type];e(e=>{let r={...e,nodes:{...e.nodes},groupProgress:{...e.groupProgress},eventLog:[...e.eventLog],activityLog:[...e.activityLog],lastEventTime:t.timestamp};n&&n(r,t.data,t.timestamp);let i=Ve(t);i&&r.eventLog.push(i);let a=Ue(t);return a&&r.activityLog.push(a),r})},replayState:t=>{e(e=>{let n={...e,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[]};for(let e of t){let t=ze[e.type];t&&t(n,e.data,e.timestamp);let r=Ve(e);r&&n.eventLog.push(r);let i=Ue(e);i&&n.activityLog.push(i),n.lastEventTime=e.timestamp}return n})},selectNode:t=>{e({selectedNode:t})},setReplayMode:t=>{e(e=>{let n={...e,replayMode:!0,replayEvents:t,replayTotalEvents:t.length,replayPosition:t.length,replayPlaying:!1,replaySpeed:1,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[]};for(let e of t){let t=ze[e.type];t&&t(n,e.data,e.timestamp);let r=Ve(e);r&&n.eventLog.push(r);let i=Ue(e);i&&n.activityLog.push(i),n.lastEventTime=e.timestamp}return n})},setReplayPosition:t=>{e(e=>{let n=e.replayEvents.slice(0,t),r={...e,replayPosition:t,agentsCompleted:0,totalCost:0,totalTokens:0,nodes:{},groupProgress:{},highlightedEdges:[],eventLog:[],activityLog:[],workflowOutput:null,workflowFailedAgent:null,workflowTermination:null,workflowStatus:`pending`,workflowStartTime:null,workflowName:``,workflowFailure:null,entryPoint:null,agents:[],routes:[],parallelGroups:[],forEachGroups:[],isPaused:!1,iterationLimitGate:null,lastEventTime:null,activeDialog:null,dialogEngaged:!1,wfDepth:0,subworkflowContexts:[],activeContextPath:[],viewContextPath:[]};for(let e of n){let t=ze[e.type];t&&t(r,e.data,e.timestamp);let n=Ve(e);n&&r.eventLog.push(n);let i=Ue(e);i&&r.activityLog.push(i),r.lastEventTime=e.timestamp}return r})},setReplayPlaying:t=>{e({replayPlaying:t})},setReplaySpeed:t=>{e({replaySpeed:t})},setWsStatus:t=>{e({wsStatus:t})},setEdgeHighlight:(t,n,r)=>{e(e=>({highlightedEdges:[...e.highlightedEdges.filter(e=>!(e.from===t&&e.to===n)),{from:t,to:n,state:r}]}))},clearEdgeHighlight:(t,n)=>{e(e=>({highlightedEdges:e.highlightedEdges.filter(e=>!(e.from===t&&e.to===n))}))},navigateToContext:t=>{e({viewContextPath:t,selectedNode:null})},navigateUp:()=>{e(e=>({viewContextPath:e.viewContextPath.slice(0,-1),selectedNode:null}))},navigateIntoSubworkflow:n=>{let r=t(),i=r.viewContextPath,a;if(i.length===0)a=r.subworkflowContexts;else{let e=Ie(r.subworkflowContexts,i);if(!e)return;a=e.children}let o=Re(a,n);o&&e({viewContextPath:[...i,o.index],selectedNode:null})},getViewedContext:()=>{let e=t();if(e.viewContextPath.length===0)return{workflowName:e.workflowName,agents:e.agents,routes:e.routes,parallelGroups:e.parallelGroups,forEachGroups:e.forEachGroups,nodes:e.nodes,groupProgress:e.groupProgress,highlightedEdges:e.highlightedEdges,entryPoint:e.entryPoint,subworkflowContexts:e.subworkflowContexts};let n=Ie(e.subworkflowContexts,e.viewContextPath);return n?{workflowName:n.workflowName,agents:n.agents,routes:n.routes,parallelGroups:n.parallelGroups,forEachGroups:n.forEachGroups,nodes:n.nodes,groupProgress:n.groupProgress,highlightedEdges:n.highlightedEdges,entryPoint:n.entryPoint,subworkflowContexts:n.children}:{workflowName:e.workflowName,agents:e.agents,routes:e.routes,parallelGroups:e.parallelGroups,forEachGroups:e.forEachGroups,nodes:e.nodes,groupProgress:e.groupProgress,highlightedEdges:e.highlightedEdges,entryPoint:e.entryPoint,subworkflowContexts:e.subworkflowContexts}},getBreadcrumbs:()=>{let e=t(),n=[{label:e.workflowName||`Root`,path:[]}],r=e.subworkflowContexts;for(let t=0;t0&&(n=Le(e.subworkflowContexts,r)?.ctx??null),n){let t=n;return{nodes:t.nodes,groupProgress:t.groupProgress,routes:t.routes,highlightedEdges:t.highlightedEdges,addCost:n=>{t.totalCost+=n,e.totalCost+=n},addTokens:n=>{t.totalTokens+=n,e.totalTokens+=n},incrCompleted:()=>{t.agentsCompleted++,e.agentsCompleted++}}}return{nodes:e.nodes,groupProgress:e.groupProgress,routes:e.routes,highlightedEdges:e.highlightedEdges,addCost:t=>{e.totalCost+=t},addTokens:t=>{e.totalTokens+=t},incrCompleted:()=>{e.agentsCompleted++}}}var ze={workflow_started:(e,t,n)=>{let r=t;if(e.wfDepth===0){e.workflowStatus=`running`,e.workflowStartTime=n??Date.now()/1e3,e.workflowName=r.name||``,e.workflowYaml=t.yaml_source??null,e.conductorVersion=t.version??null,e.entryPoint=r.entry_point||null,e.agents=r.agents||[],e.routes=r.routes||[],e.parallelGroups=r.parallel_groups||[],e.forEachGroups=r.for_each_groups||[],R(e.nodes,`$start`,`start`),e.nodes.$start.status=`running`,z(e.nodes,`$start`);let i=new Set,a=new Set;for(let t of e.parallelGroups){for(let e of t.agents)i.add(e);a.add(t.name),R(e.nodes,t.name,`parallel_group`),e.groupProgress[t.name]={total:t.agents.length,completed:0,failed:0};for(let n of t.agents)R(e.nodes,n,`agent`)}for(let t of e.forEachGroups)a.add(t.name),R(e.nodes,t.name,`for_each_group`),e.groupProgress[t.name]={total:0,completed:0,failed:0};for(let t of e.agents)if(!a.has(t.name)&&!i.has(t.name)){let n=t.type||`agent`;if(R(e.nodes,t.name,n),t.model&&(e.nodes[t.name].model=t.model),t.reasoning_effort&&(e.nodes[t.name].reasoning_effort=t.reasoning_effort),t.provider_name){e.nodes[t.name].provider_name=t.provider_name;let n=r.providers?.[t.provider_name];n?.tier&&(e.nodes[t.name].provider_tier=n.tier)}a.add(t.name)}e.agentsTotal=a.size}else{let n=t.subworkflow_path,i=Array.isArray(n)&&n.length>0?Le(e.subworkflowContexts,n)?.ctx??null:Ie(e.subworkflowContexts,e.activeContextPath);if(i){i.workflowName=r.name||``,i.status=`running`,i.entryPoint=r.entry_point||null,i.agents=r.agents||[],i.routes=r.routes||[],i.parallelGroups=r.parallel_groups||[],i.forEachGroups=r.for_each_groups||[],R(i.nodes,`$start`,`start`),i.nodes.$start.status=`running`;let e=new Set,t=new Set;for(let n of i.parallelGroups){for(let t of n.agents)e.add(t);t.add(n.name),R(i.nodes,n.name,`parallel_group`),i.groupProgress[n.name]={total:n.agents.length,completed:0,failed:0};for(let e of n.agents)R(i.nodes,e,`agent`)}for(let e of i.forEachGroups)t.add(e.name),R(i.nodes,e.name,`for_each_group`),i.groupProgress[e.name]={total:0,completed:0,failed:0};for(let n of i.agents)if(!t.has(n.name)&&!e.has(n.name)){let e=n.type||`agent`;if(R(i.nodes,n.name,e),n.model&&(i.nodes[n.name].model=n.model),n.reasoning_effort&&(i.nodes[n.name].reasoning_effort=n.reasoning_effort),n.provider_name){i.nodes[n.name].provider_name=n.provider_name;let e=r.providers?.[n.provider_name];e?.tier&&(i.nodes[n.name].provider_tier=e.tier)}t.add(n.name)}i.agentsTotal=t.size}}e.wfDepth++},agent_started:(e,t,n)=>{let r=t,i=V(e,t),a=R(i.nodes,r.agent_name);a.iteration!=null&&(a.output!=null||a.error_type!=null)&&(a.iterationHistory||=[],a.iterationHistory.push({iteration:a.iteration,prompt:a.prompt,output:a.output,elapsed:a.elapsed,model:a.model,reasoning_effort:a.reasoning_effort,tokens:a.tokens,input_tokens:a.input_tokens,output_tokens:a.output_tokens,cost_usd:a.cost_usd,activity:a.activity,error_type:a.error_type,error_message:a.error_message})),a.status=`running`,a.iteration=r.iteration,a.startedAt=n??Date.now()/1e3,a.activity=[],r.context_window_max!=null&&(a.context_window_max=r.context_window_max),a.prompt=void 0,a.output=void 0,a.error_type=void 0,a.error_message=void 0,z(i.nodes,r.agent_name)},agent_completed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`completed`,r.incrCompleted(),i.elapsed=n.elapsed,i.model=n.model,i.tokens=n.tokens,i.input_tokens=n.input_tokens,i.output_tokens=n.output_tokens,i.cost_usd=n.cost_usd,i.output=n.output,i.output_keys=n.output_keys,i.context_window_used=n.context_window_used,i.context_window_max=n.context_window_max,n.context_window_used!=null&&n.context_window_max!=null&&n.context_window_max>0&&(i.context_pct=Math.round(n.context_window_used/n.context_window_max*100)),n.cost_usd&&r.addCost(n.cost_usd),n.tokens&&r.addTokens(n.tokens);let a=t;a.terminated_by&&(i.termination_status=a.status??`success`,i.termination_reason=a.termination_reason,i.terminated_by=a.terminated_by),z(r.nodes,n.agent_name)},agent_failed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`failed`,i.elapsed=n.elapsed,i.error_type=n.error_type,i.error_message=n.message;for(let e of r.routes)e.to===n.agent_name&&r.highlightedEdges.push({from:e.from,to:e.to,state:`failed`});let a=t;a.terminated_by&&(i.termination_status=a.status??`failed`,i.termination_reason=a.termination_reason,i.terminated_by=a.terminated_by),z(r.nodes,n.agent_name)},agent_prompt_rendered:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a=R(i.nodes,n.agent_name);if(a.prompt=n.rendered_prompt,a.context_keys=n.context_keys,r){Pe(i.nodes,n.agent_name,r,{type:`prompt`,icon:`📝`,label:`prompt`,text:`Prompt rendered`,detail:n.rendered_prompt?.slice(0,500)||null});let e=i.nodes[n.agent_name];if(e?.for_each_items){let t=e.for_each_items.find(e=>e.key===r);t&&(t.prompt=n.rendered_prompt)}}z(i.nodes,n.agent_name)},agent_reasoning:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a={type:`reasoning`,icon:`💭`,label:`thinking`,text:n.content};Ne(i.nodes,n.agent_name,a),r&&Pe(i.nodes,n.agent_name,r,a),z(i.nodes,n.agent_name)},agent_tool_start:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a={type:`tool-start`,icon:`🔧`,label:`tool`,text:n.tool_name,detail:n.arguments||null};Ne(i.nodes,n.agent_name,a),r&&Pe(i.nodes,n.agent_name,r,a),z(i.nodes,n.agent_name)},agent_tool_complete:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a={type:`tool-complete`,icon:`✓`,label:`result`,text:n.tool_name||`done`,detail:n.result||null};Ne(i.nodes,n.agent_name,a),r&&Pe(i.nodes,n.agent_name,r,a),z(i.nodes,n.agent_name)},agent_turn_start:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a={type:`turn`,icon:`⏳`,label:`turn`,text:`Turn ${n.turn??`?`}`};Ne(i.nodes,n.agent_name,a),r&&Pe(i.nodes,n.agent_name,r,a),z(i.nodes,n.agent_name)},agent_message:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.latest_message=n.content,z(r.nodes,n.agent_name)},script_started:(e,t,n)=>{let r=t,i=V(e,t),a=R(i.nodes,r.agent_name);a.status=`running`,a.startedAt=n??Date.now()/1e3,z(i.nodes,r.agent_name)},script_completed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`completed`,r.incrCompleted(),i.elapsed=n.elapsed,i.stdout=n.stdout,i.stderr=n.stderr,i.exit_code=n.exit_code,z(r.nodes,n.agent_name)},script_failed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`failed`,i.elapsed=n.elapsed,i.error_type=n.error_type,i.error_message=n.message,z(r.nodes,n.agent_name)},wait_started:(e,t,n)=>{let r=t,i=V(e,t),a=R(i.nodes,r.agent_name);a.status=`running`,a.startedAt=n??Date.now()/1e3,a.duration_seconds=r.duration_seconds??null,a.reason=r.reason??null,a.iteration=r.iteration,z(i.nodes,r.agent_name)},wait_completed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`completed`,r.incrCompleted(),i.elapsed=n.elapsed,i.waited_seconds=n.waited_seconds,i.requested_seconds=n.requested_seconds,i.reason=n.reason??null,i.interrupted=n.interrupted,z(r.nodes,n.agent_name)},wait_failed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`failed`,i.elapsed=n.elapsed,i.error_type=n.error_type,i.error_message=n.message,z(r.nodes,n.agent_name)},set_started:(e,t,n)=>{let r=t,i=V(e,t),a=R(i.nodes,r.agent_name);a.status=`running`,a.startedAt=n??Date.now()/1e3,z(i.nodes,r.agent_name)},set_completed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`completed`,r.incrCompleted(),i.elapsed=n.elapsed,i.set_output_type=n.output_type,i.set_output_keys=n.output_keys,i.set_value_repr=n.value_repr,z(r.nodes,n.agent_name)},set_failed:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`failed`,i.elapsed=n.elapsed,i.error_type=n.error_type,i.error_message=n.message,z(r.nodes,n.agent_name)},gate_presented:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`waiting`,i.options=n.options,i.option_details=n.option_details,i.prompt=n.prompt,z(r.nodes,n.agent_name)},gate_resolved:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.agent_name);i.status=`completed`,r.incrCompleted(),i.selected_option=n.selected_option,i.route=n.route,i.additional_input=n.additional_input,z(r.nodes,n.agent_name)},route_taken:(e,t)=>{let n=t;V(e,t).highlightedEdges.push({from:n.from_agent,to:n.to_agent,state:`taken`})},parallel_started:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.group_name,`parallel_group`);i.status=`running`,r.groupProgress[n.group_name]&&(r.groupProgress[n.group_name].total=n.agents.length,r.groupProgress[n.group_name].completed=0,r.groupProgress[n.group_name].failed=0),z(r.nodes,n.group_name)},parallel_agent_completed:(e,t)=>{let n=t,r=V(e,t);r.groupProgress[n.group_name]&&r.groupProgress[n.group_name].completed++;let i=R(r.nodes,n.agent_name);i.status=`completed`,i.elapsed=n.elapsed,i.model=n.model,i.tokens=n.tokens,i.cost_usd=n.cost_usd,i.context_window_used=n.context_window_used,i.context_window_max=n.context_window_max,n.context_window_used!=null&&n.context_window_max!=null&&n.context_window_max>0&&(i.context_pct=Math.round(n.context_window_used/n.context_window_max*100)),n.cost_usd&&r.addCost(n.cost_usd),n.tokens&&r.addTokens(n.tokens),z(r.nodes,n.agent_name),z(r.nodes,n.group_name)},parallel_agent_failed:(e,t)=>{let n=t,r=V(e,t);r.groupProgress[n.group_name]&&r.groupProgress[n.group_name].failed++;let i=R(r.nodes,n.agent_name);i.status=`failed`,i.elapsed=n.elapsed,i.error_type=n.error_type,i.error_message=n.message,z(r.nodes,n.agent_name),z(r.nodes,n.group_name)},parallel_completed:(e,t)=>{let n=t,r=V(e,t);r.incrCompleted();let i=R(r.nodes,n.group_name,`parallel_group`);i.status=n.failure_count===0?`completed`:`failed`,z(r.nodes,n.group_name)},for_each_started:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.group_name,`for_each_group`);i.status=`running`,i.for_each_items=[],r.groupProgress[n.group_name]&&(r.groupProgress[n.group_name].total=n.item_count,r.groupProgress[n.group_name].completed=0,r.groupProgress[n.group_name].failed=0),z(r.nodes,n.group_name)},for_each_item_started:(e,t)=>{let n=t,r=V(e,t),i=R(r.nodes,n.group_name,`for_each_group`);i.for_each_items||=[],i.for_each_items.push({key:n.item_key??String(n.index),index:n.index,status:`running`,activity:[]}),z(r.nodes,n.group_name)},for_each_item_completed:(e,t)=>{let n=t,r=V(e,t);r.groupProgress[n.group_name]&&r.groupProgress[n.group_name].completed++;let i=R(r.nodes,n.group_name,`for_each_group`);if(i.for_each_items){let e=n.item_key??String(n.index),t=i.for_each_items.find(t=>t.key===e);t&&(t.status=`completed`,t.elapsed=n.elapsed,t.tokens=n.tokens,t.cost_usd=n.cost_usd,t.output=n.output)}z(r.nodes,n.group_name)},for_each_item_failed:(e,t)=>{let n=t,r=V(e,t);r.groupProgress[n.group_name]&&r.groupProgress[n.group_name].failed++;let i=R(r.nodes,n.group_name,`for_each_group`);if(i.for_each_items){let e=n.item_key??String(n.index),t=i.for_each_items.find(t=>t.key===e);t&&(t.status=`failed`,t.elapsed=n.elapsed,t.error_type=n.error_type,t.error_message=n.message)}z(r.nodes,n.group_name)},for_each_completed:(e,t)=>{let n=t,r=V(e,t);r.incrCompleted();let i=R(r.nodes,n.group_name,`for_each_group`);i.status=(n.failure_count??0)===0?`completed`:`failed`,i.elapsed=n.elapsed,i.success_count=n.success_count,i.failure_count=n.failure_count,z(r.nodes,n.group_name)},workflow_completed:(e,t)=>{if(e.wfDepth=Math.max(0,e.wfDepth-1),e.wfDepth===0){let n=t;e.workflowStatus=`completed`,e.isPaused=!1,e.iterationLimitGate=null,e.workflowOutput=n.output??null,n.is_explicit?e.workflowTermination={is_explicit:!0,status:n.status??`success`,termination_reason:n.termination_reason,terminated_by:n.terminated_by}:e.workflowTermination=null,e.nodes.$end&&(e.nodes.$end.status=`completed`,z(e.nodes,`$end`)),e.nodes.$start&&(e.nodes.$start.status=`completed`,z(e.nodes,`$start`)),e.highlightedEdges=[]}else{let n=t,r=n.subworkflow_path?Le(e.subworkflowContexts,n.subworkflow_path)?.ctx:Ie(e.subworkflowContexts,e.activeContextPath);r&&(r.status=`completed`,r.workflowOutput=n.output??null,r.nodes.$end&&(r.nodes.$end.status=`completed`),r.nodes.$start&&(r.nodes.$start.status=`completed`),r.highlightedEdges=[])}},workflow_failed:(e,t)=>{let n=t;if(e.wfDepth=n.stopped_by_user&&!n.subworkflow_path?0:Math.max(0,e.wfDepth-1),e.wfDepth===0){if(e.workflowStatus=`failed`,e.isPaused=!1,e.iterationLimitGate=null,e.workflowFailedAgent=n.agent_name||null,n.agent_name&&e.nodes[n.agent_name]){e.nodes[n.agent_name].status=`failed`,z(e.nodes,n.agent_name);for(let t of e.routes)t.to===n.agent_name&&e.highlightedEdges.push({from:t.from,to:t.to,state:`failed`})}e.workflowFailure={error_type:n.error_type,message:n.message,elapsed_seconds:n.elapsed_seconds,timeout_seconds:n.timeout_seconds,current_agent:n.current_agent,checkpoint_path:n.checkpoint_path,checkpoint_unavailable_reason:n.checkpoint_unavailable_reason,stopped_by_user:n.stopped_by_user,termination_reason:n.termination_reason,terminated_by:n.terminated_by,is_explicit:n.is_explicit,status:n.status},n.is_explicit?e.workflowTermination={is_explicit:!0,status:n.status??`failed`,termination_reason:n.termination_reason,terminated_by:n.terminated_by}:e.workflowTermination=null,e.nodes.$start&&(e.nodes.$start.status=`completed`,z(e.nodes,`$start`))}else{let t=n.subworkflow_path?Le(e.subworkflowContexts,n.subworkflow_path)?.ctx:Ie(e.subworkflowContexts,e.activeContextPath);t&&(t.status=`failed`,t.workflowFailure={error_type:n.error_type,message:n.message})}},subworkflow_started:(e,t)=>{let n=t,r=n.slot_key??(n.item_key==null?n.agent_name:`${n.agent_name}[${n.item_key}]`),i=Fe(n.agent_name,n.iteration??1,n.workflow,r),a;if(n.parent_path!==void 0){let t=Le(e.subworkflowContexts,n.parent_path);if(!t)return;a=t.indexPath}else a=e.activeContextPath;let o;if(a.length===0)e.subworkflowContexts.push(i),o=[e.subworkflowContexts.length-1];else{let t=Ie(e.subworkflowContexts,a);if(!t)return;t.children.push(i),o=[...a,t.children.length-1]}if(e.activeContextPath=o,a.length===0){let t=e.nodes[n.agent_name];t&&(t.status=`running`,z(e.nodes,n.agent_name))}else{let t=Ie(e.subworkflowContexts,a);if(t){let e=t.nodes[n.agent_name];e&&(e.status=`running`,z(t.nodes,n.agent_name))}}},subworkflow_completed:(e,t)=>{let n=t,r;if(n.parent_path!==void 0){let t=Le(e.subworkflowContexts,n.parent_path);if(!t)return;r=t.indexPath}else r=e.activeContextPath;let i=r.length===0?e.nodes:Ie(e.subworkflowContexts,r)?.nodes;if(i){let t=i[n.agent_name];if(t){if(n.item_key==null)if(t.status=`completed`,t.elapsed=n.elapsed,r.length===0)e.agentsCompleted++;else{let t=Ie(e.subworkflowContexts,r);t&&t.agentsCompleted++}z(i,n.agent_name)}}e.activeContextPath=r},subworkflow_failed:(e,t)=>{let n=t,r;if(n.parent_path!==void 0){let t=Le(e.subworkflowContexts,n.parent_path);if(!t)return;r=t.indexPath}else r=e.activeContextPath;let i=r.length===0?e.nodes:Ie(e.subworkflowContexts,r)?.nodes;if(i){let e=i[n.agent_name];e&&n.item_key==null&&(e.status=`failed`,e.elapsed=n.elapsed,e.error_type=n.error_type,e.error_message=n.message,z(i,n.agent_name))}e.activeContextPath=r},checkpoint_saved:(e,t)=>{let n=t;n.path&&e.workflowFailure&&(e.workflowFailure={...e.workflowFailure,checkpoint_path:n.path})},agent_paused:(e,t)=>{let n=t,r=R(e.nodes,n.agent_name);r.status=`waiting`,r.activity.push({type:`agent_paused`,icon:`⏸`,label:`Paused`,text:`Agent paused — click Resume to re-execute`}),z(e.nodes,n.agent_name),e.isPaused=!0},agent_resumed:(e,t)=>{let n=t,r=R(e.nodes,n.agent_name);r.status=`running`,r.activity.push({type:`agent_resumed`,icon:`▶`,label:`Resumed`,text:`Agent resumed — re-executing`}),z(e.nodes,n.agent_name),e.isPaused=!1},iteration_limit_reached:(e,t)=>{let n=t;e.iterationLimitGate=n;let r=n.agent_name??n.group_name;r?(R(e.nodes,r).activity.push({type:`iteration_limit_reached`,icon:`⚠`,label:`Iteration limit`,text:`Reached ${n.current_iteration}/${n.max_iterations} iterations — ${n.skip_gates?`auto-stopping (--skip-gates)`:`awaiting decision`}`}),z(e.nodes,r)):typeof console<`u`&&console.warn(`[workflow-store] iteration_limit_reached event missing both agent_name and group_name`,n)},iteration_limit_resolved:(e,t)=>{let n=t;e.iterationLimitGate=null;let r=n.agent_name??n.group_name;r?(R(e.nodes,r).activity.push({type:`iteration_limit_resolved`,icon:n.continue_execution?`▶`:`■`,label:`Iteration limit`,text:n.aborted?`Gate aborted unexpectedly — stopping workflow`:n.continue_execution?`Continuing with ${n.additional_iterations} more iteration(s)`:`Stopping workflow`}),z(e.nodes,r)):typeof console<`u`&&console.warn(`[workflow-store] iteration_limit_resolved event missing both agent_name and group_name`,n)},dialog_started:(e,t)=>{let n=t,r=R(e.nodes,n.agent_name);r.dialog_id=n.dialog_id,r.dialog_messages=[],r.dialog_active=!0,r.dialog_awaiting_response=!1,e.activeDialog={agentName:n.agent_name,dialogId:n.dialog_id},e.dialogEngaged=!1,z(e.nodes,n.agent_name)},dialog_message:(e,t)=>{let n=t,r=R(e.nodes,n.agent_name);r.dialog_messages||=[],r.dialog_messages.push({role:n.role,content:n.content}),n.role===`user`?r.dialog_awaiting_response=!0:n.role===`agent`&&(r.dialog_awaiting_response=!1),z(e.nodes,n.agent_name)},dialog_completed:(e,t)=>{let n=t,r=R(e.nodes,n.agent_name);r.dialog_active=!1,r.dialog_awaiting_response=!1,e.activeDialog=null,e.dialogEngaged=!1,z(e.nodes,n.agent_name)},agent_validator_start:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a={type:`validator-start`,icon:`🔎`,label:`validator`,text:`validating output`,detail:n.criteria_preview||null};if(Ne(i.nodes,n.agent_name,a),r!=null)Pe(i.nodes,n.agent_name,String(r),a);else{let e=R(i.nodes,n.agent_name);e.validator_state=`running`,e.validator_model=n.model??null,e.validator_attempts=(e.validator_attempts??0)+1}z(i.nodes,n.agent_name)},agent_validator_complete:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a=n.errored?`error`:n.passed?`passed`:`failed`,o={type:`validator-complete`,icon:n.errored?`⚠️`:n.passed?`✅`:`❌`,label:`validator`,text:n.errored?`validation error (treated as pass)`:n.passed?`validation passed`:`validation failed`,detail:n.issues&&n.issues.length?n.issues.join(` -`):null};if(Ne(i.nodes,n.agent_name,o),r!=null)Pe(i.nodes,n.agent_name,String(r),o);else{let e=R(i.nodes,n.agent_name);e.validator_state=a,e.validator_issues=n.issues??[],e.validator_cost_usd=n.cost_usd??null,e.validator_model=n.model??e.validator_model??null}z(i.nodes,n.agent_name)},agent_validation_failed:(e,t)=>{let n=t,r=t.item_key,i=V(e,t),a=n.rerun_errored===!0,o={type:`validation-failed`,icon:a?`⚠️`:`❌`,label:`validator`,text:a?`re-run failed — keeping original output`:n.will_retry?`re-running once with feedback`:`validation failed (no retry)`,detail:n.issues&&n.issues.length?n.issues.join(` -`):null};if(Ne(i.nodes,n.agent_name,o),r!=null)Pe(i.nodes,n.agent_name,String(r),o);else{let e=R(i.nodes,n.agent_name);e.validator_will_retry=n.will_retry,e.validator_issues=n.issues??[],a&&(e.validator_state=`error`)}z(i.nodes,n.agent_name)}};function Be(e){return e.item_key==null?String(e.agent_name):`${e.agent_name}[${e.item_key}]`}function Ve(e){let t=e.timestamp,n=e.data;switch(e.type){case`workflow_started`:return{timestamp:t,level:`info`,source:`workflow`,message:`Workflow "${n.name||``}" started`};case`agent_started`:return{timestamp:t,level:`info`,source:String(n.agent_name),message:`Agent started${n.iteration==null?``:` (iteration ${n.iteration})`}`};case`agent_completed`:return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Agent completed${n.elapsed==null?``:` in ${He(n.elapsed)}`}${n.tokens==null?``:` · ${n.tokens.toLocaleString()} tokens`}${n.cost_usd==null?``:` · $${n.cost_usd.toFixed(4)}`}`};case`agent_failed`:return{timestamp:t,level:`error`,source:String(n.agent_name),message:`Agent failed: ${n.message||n.error_type||`unknown error`}`};case`script_started`:return{timestamp:t,level:`info`,source:String(n.agent_name),message:`Script started`};case`script_completed`:return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Script completed (exit ${n.exit_code??`?`})${n.elapsed==null?``:` in ${He(n.elapsed)}`}`};case`script_failed`:return{timestamp:t,level:`error`,source:String(n.agent_name),message:`Script failed: ${n.message||n.error_type||`unknown error`}`};case`wait_started`:{let e=n.duration_seconds,r=n.reason,i=typeof e==`number`?He(e):`?`;return{timestamp:t,level:`info`,source:String(n.agent_name),message:`Waiting ${i}${r?` — ${r}`:``}`}}case`wait_completed`:{let e=n.waited_seconds,r=n.interrupted;return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Wait completed${e==null?``:` (${He(e)})`}${r?` — interrupted`:``}`}}case`wait_failed`:return{timestamp:t,level:`error`,source:String(n.agent_name),message:`Wait failed: ${n.message||n.error_type||`unknown error`}`};case`set_started`:return{timestamp:t,level:`info`,source:String(n.agent_name),message:`Set started`};case`set_completed`:{let e=n.output_keys??[],r=e.length>0?` · ${e.join(`, `)}`:``;return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Set completed${r}${n.elapsed==null?``:` in ${He(n.elapsed)}`}`}}case`set_failed`:return{timestamp:t,level:`error`,source:String(n.agent_name),message:`Set failed: ${n.message||n.error_type||`unknown error`}`};case`gate_presented`:return{timestamp:t,level:`warning`,source:String(n.agent_name),message:`Waiting for human input…`};case`gate_resolved`:return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Gate resolved → ${n.selected_option||`continue`}`};case`route_taken`:return{timestamp:t,level:`debug`,source:`router`,message:`${n.from_agent} → ${n.to_agent}`};case`parallel_started`:return{timestamp:t,level:`info`,source:String(n.group_name),message:`Parallel group started (${n.agents?.length||`?`} agents)`};case`parallel_completed`:return{timestamp:t,level:n.failure_count===0?`success`:`error`,source:String(n.group_name),message:`Parallel group completed${n.failure_count>0?` with ${n.failure_count} failure(s)`:``}`};case`for_each_started`:return{timestamp:t,level:`info`,source:String(n.group_name),message:`For-each started (${n.item_count} items)`};case`for_each_completed`:return{timestamp:t,level:(n.failure_count??0)===0?`success`:`error`,source:String(n.group_name),message:`For-each completed · ${n.success_count} succeeded${n.failure_count>0?` · ${n.failure_count} failed`:``}`};case`workflow_completed`:return{timestamp:t,level:`success`,source:`workflow`,message:`Workflow completed${n.elapsed==null?``:` in ${He(n.elapsed)}`}`};case`workflow_failed`:return{timestamp:t,level:`error`,source:`workflow`,message:`Workflow failed: ${n.message||n.error_type||`unknown error`}`};case`checkpoint_saved`:return{timestamp:t,level:`info`,source:`workflow`,message:`Checkpoint saved: ${n.path?.split(`/`).pop()||`unknown`}`};case`agent_paused`:return{timestamp:t,level:`warning`,source:String(n.agent_name),message:`Agent paused — waiting for resume`};case`agent_resumed`:return{timestamp:t,level:`info`,source:String(n.agent_name),message:`Agent resumed — re-executing`};case`iteration_limit_reached`:{let e=n.agent_name??n.group_name??`workflow`,r=n.skip_gates?` — auto-stopping (--skip-gates)`:` — awaiting decision`;return{timestamp:t,level:`warning`,source:String(e),message:`Iteration limit reached (${n.current_iteration}/${n.max_iterations})${r}`}}case`iteration_limit_resolved`:{let e=n.agent_name??n.group_name??`workflow`,r=!!n.continue_execution,i=n.additional_iterations??0;return{timestamp:t,level:r?`info`:`warning`,source:String(e),message:r?`Iteration limit resolved — continuing with ${i} more`:`Iteration limit resolved — stopping workflow`}}case`dialog_started`:return{timestamp:t,level:`warning`,source:String(n.agent_name),message:`Dialog started — waiting for user…`};case`dialog_completed`:return{timestamp:t,level:`success`,source:String(n.agent_name),message:`Dialog completed (${n.turn_count||0} messages)`};case`agent_validator_start`:return{timestamp:t,level:`info`,source:Be(n),message:`Validating output…`};case`agent_validator_complete`:{let e=Be(n);if(n.errored)return{timestamp:t,level:`warning`,source:e,message:`Validator error — treated as pass`};if(n.passed)return{timestamp:t,level:`success`,source:e,message:`Validation passed`};let r=Array.isArray(n.issues)?n.issues.length:0;return{timestamp:t,level:`warning`,source:e,message:`Validation failed (${r} issue${r===1?``:`s`})`}}case`agent_validation_failed`:{let e=Be(n);return n.rerun_errored?{timestamp:t,level:`error`,source:e,message:`Validation re-run failed — keeping original output`}:{timestamp:t,level:`warning`,source:e,message:`Validation failed — ${n.will_retry?`re-running once with feedback`:`no retry`}`}}default:return null}}function He(e){return e<1?`${(e*1e3).toFixed(0)}ms`:e<60?`${e.toFixed(1)}s`:`${Math.floor(e/60)}m ${(e%60).toFixed(0)}s`}function Ue(e){let t=e.timestamp,n=e.data;switch(e.type){case`agent_started`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Agent started${n.iteration==null?``:` (iteration ${n.iteration})`}`};case`agent_prompt_rendered`:return{timestamp:t,source:String(n.agent_name),type:`prompt`,message:`Prompt rendered`,detail:We(String(n.rendered_prompt||``),500)};case`agent_reasoning`:return{timestamp:t,source:String(n.agent_name),type:`reasoning`,message:String(n.content||``)};case`agent_tool_start`:return{timestamp:t,source:String(n.agent_name),type:`tool-start`,message:`→ ${n.tool_name}`,detail:n.arguments?We(String(n.arguments),300):null};case`agent_tool_complete`:return{timestamp:t,source:String(n.agent_name),type:`tool-complete`,message:`← ${n.tool_name||`done`}`,detail:n.result?We(String(n.result),300):null};case`agent_turn_start`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Turn ${n.turn??`?`}`};case`agent_message`:return{timestamp:t,source:String(n.agent_name),type:`message`,message:We(String(n.content||``),500)};case`agent_completed`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Completed${n.elapsed==null?``:` in ${He(n.elapsed)}`}${n.tokens==null?``:` · ${n.tokens.toLocaleString()} tokens`}`};case`agent_failed`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Failed: ${n.message||n.error_type||`unknown`}`};case`script_started`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Script started`};case`script_completed`:return{timestamp:t,source:String(n.agent_name),type:`tool-complete`,message:`Script completed (exit ${n.exit_code??`?`})`,detail:n.stdout?We(String(n.stdout),300):null};case`script_failed`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Script failed: ${n.message||n.error_type||`unknown`}`};case`wait_started`:{let e=n.duration_seconds,r=n.reason,i=typeof e==`number`?He(e):`?`;return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Waiting ${i}${r?` — ${r}`:``}`}}case`wait_completed`:{let e=n.waited_seconds,r=n.interrupted;return{timestamp:t,source:String(n.agent_name),type:`tool-complete`,message:`Wait completed${e==null?``:` (${He(e)})`}${r?` — interrupted`:``}`}}case`wait_failed`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Wait failed: ${n.message||n.error_type||`unknown`}`};case`set_started`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Set started`};case`set_completed`:{let e=n.output_keys??[],r=e.length>0?` (${e.join(`, `)})`:``;return{timestamp:t,source:String(n.agent_name),type:`tool-complete`,message:`Set completed${r}`,detail:n.value_repr?We(String(n.value_repr),300):null}}case`set_failed`:return{timestamp:t,source:String(n.agent_name),type:`turn`,message:`Set failed: ${n.message||n.error_type||`unknown`}`};default:return null}}function We(e,t){return e.length<=t?e:e.slice(0,t)+`…`}var Ge=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),H=o(((e,t)=>{t.exports=Ge()}))();function Ke(e){let t=e.match(/^(\s*)/);return t?t[1].length:0}function qe(e){let t=new Map;for(let n=0;ni)a=t;else break}a>n&&t.set(n,a)}return t}function Je(e){if(/^\s*#/.test(e))return(0,H.jsx)(`span`,{className:`text-emerald-500/70`,children:e});let t=e.match(/^(\s*)(- )?([a-zA-Z_][\w.-]*)(:\s*)(.*)/);if(t){let[,e,n,r,i,a]=t;return(0,H.jsxs)(`span`,{children:[e,n??``,(0,H.jsx)(`span`,{className:`text-sky-400`,children:r}),(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:i}),Ye(a??``)]})}let n=e.match(/^(\s*)(- )(.*)/);if(n){let[,e,t,r]=n;return(0,H.jsxs)(`span`,{children:[e,(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:t}),Ye(r??``)]})}return(0,H.jsx)(`span`,{children:e})}function Ye(e){if(!e)return``;let t=e.indexOf(` #`),n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t):``,i=n;return/^(true|false|null|yes|no)$/i.test(n.trim())||/^\d+(\.\d+)?$/.test(n.trim())?i=(0,H.jsx)(`span`,{className:`text-amber-400`,children:n}):/^["'].*["']$/.test(n.trim())?i=(0,H.jsx)(`span`,{className:`text-green-400`,children:n}):(n.includes(`|`)||n.includes(`>`))&&(i=(0,H.jsx)(`span`,{className:`text-[var(--text-secondary)]`,children:n})),(0,H.jsxs)(H.Fragment,{children:[i,r&&(0,H.jsx)(`span`,{className:`text-emerald-500/70`,children:r})]})}function Xe({yaml:e,onClose:t}){let[n,r]=(0,v.useState)(new Set);(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let i=(0,v.useMemo)(()=>e.split(` -`),[e]),a=(0,v.useMemo)(()=>qe(i),[i]),o=(0,v.useCallback)(e=>{r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),s=(0,v.useMemo)(()=>{let e=[],t=-1;for(let r=0;r(0,H.jsxs)(`div`,{className:`flex`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center justify-center flex-shrink-0`,style:{width:`1.25rem`},children:n?(0,H.jsx)(`button`,{onClick:()=>o(e),className:`text-[var(--text-muted)] hover:text-[var(--text)] p-0 leading-none`,style:{background:`none`,border:`none`,cursor:`pointer`},children:r?(0,H.jsx)(j,{className:`w-3 h-3`}):(0,H.jsx)(A,{className:`w-3 h-3`})}):null}),(0,H.jsxs)(`span`,{className:`flex-1`,children:[Je(t),r&&(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] text-[11px] ml-2 px-1.5 py-0.5 rounded bg-[var(--surface-hover)] cursor-pointer`,onClick:()=>o(e),children:`···`})]})]},e))})})]})]})}function Ze(){let e=B(e=>e.workflowName),t=B(e=>e.workflowStatus),n=B(e=>e.isPaused),r=B(e=>e.workflowYaml),i=B(e=>e.conductorVersion),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),p=t===`running`||t===`pending`;return(0,v.useEffect)(()=>{n||(o(!1),c(!1),u(!1))},[n]),(0,H.jsxs)(`header`,{className:`flex items-center justify-between px-4 py-2 bg-[var(--surface)] border-b border-[var(--border)] flex-shrink-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(T,{className:`w-4 h-4 text-[var(--running)]`}),(0,H.jsx)(`h1`,{className:`text-sm font-semibold text-[var(--text)]`,children:`Conductor`}),e&&(0,H.jsxs)(`span`,{className:`text-sm text-[var(--text-muted)] font-normal`,children:[`— `,e]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`button`,{onClick:async()=>{c(!0);try{await fetch(`/api/resume`,{method:`POST`})}catch(e){console.error(`Failed to resume agent:`,e),c(!1)}},disabled:s,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded - bg-emerald-500/10 text-emerald-400 border border-emerald-500/20 - hover:bg-emerald-500/20 hover:border-emerald-500/30 - disabled:opacity-50 disabled:cursor-not-allowed - transition-colors`,title:`Re-execute the paused agent`,children:[(0,H.jsx)(pe,{className:`w-3 h-3`}),s?`Resuming...`:`Resume`]}),(0,H.jsxs)(`button`,{onClick:async()=>{u(!0);try{await fetch(`/api/kill`,{method:`POST`})}catch(e){console.error(`Failed to kill workflow:`,e),u(!1)}},disabled:l,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded - bg-red-500/10 text-red-400 border border-red-500/20 - hover:bg-red-500/20 hover:border-red-500/30 - disabled:opacity-50 disabled:cursor-not-allowed - transition-colors`,title:`Stop the workflow and save a checkpoint for CLI resume`,children:[(0,H.jsx)(Te,{className:`w-3 h-3`}),l?`Killing...`:`Kill`]})]}):p?(0,H.jsxs)(`button`,{onClick:async()=>{o(!0);try{await fetch(`/api/stop`,{method:`POST`})}catch(e){console.error(`Failed to stop agent:`,e),o(!1)}},disabled:a,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded - bg-red-500/10 text-red-400 border border-red-500/20 - hover:bg-red-500/20 hover:border-red-500/30 - disabled:opacity-50 disabled:cursor-not-allowed - transition-colors`,title:`Pause the current agent, then choose Resume or Kill`,children:[(0,H.jsx)(ye,{className:`w-3 h-3`}),a?`Stopping...`:`Stop`]}):null,r&&(0,H.jsxs)(`button`,{onClick:()=>f(!0),className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded - bg-[var(--surface-hover)] text-[var(--text-secondary)] border border-[var(--border)] - hover:text-[var(--text)] hover:bg-[var(--surface)] - transition-colors`,title:`View workflow YAML configuration`,children:[(0,H.jsx)(ie,{className:`w-3 h-3`}),`YAML`]}),(0,H.jsxs)(`a`,{href:`/api/logs`,download:`conductor-logs.json`,className:`flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded - bg-[var(--surface-hover)] text-[var(--text-secondary)] border border-[var(--border)] - hover:text-[var(--text)] hover:bg-[var(--surface)] - transition-colors`,title:`Download full event log as JSON`,children:[(0,H.jsx)(ne,{className:`w-3 h-3`}),`Logs`]}),(0,H.jsxs)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:[`v`,i??`—`]})]}),d&&r&&(0,H.jsx)(Xe,{yaml:r,onClose:()=>f(!1)})]})}function Qe(){let e=B(e=>e.getBreadcrumbs),t=B(e=>e.navigateToContext),n=B(e=>e.viewContextPath);if(B(e=>e.subworkflowContexts).length===0&&n.length===0)return null;let r=e();return(0,H.jsxs)(`div`,{className:`flex items-center gap-1 px-4 py-1.5 bg-[var(--surface)] border-b border-[var(--border)] text-xs flex-shrink-0`,children:[(0,H.jsx)(se,{className:`w-3 h-3 text-[var(--text-muted)] mr-1`}),r.map((e,i)=>{let a=i===r.length-1,o=JSON.stringify(e.path)===JSON.stringify(n);return(0,H.jsxs)(`span`,{className:`flex items-center gap-1`,children:[i>0&&(0,H.jsx)(j,{className:`w-3 h-3 text-[var(--text-muted)]`}),a?(0,H.jsx)(`span`,{className:`font-semibold text-[var(--text)]`,children:e.label}):(0,H.jsx)(`button`,{onClick:()=>t(e.path),className:`hover:text-[var(--running)] transition-colors ${o?`text-[var(--text)] font-medium`:`text-[var(--text-muted)]`}`,children:e.label})]},i)})]})}function U(...e){return e.filter(Boolean).join(` `)}function $e(e){return e==null?``:e<60?`${e.toFixed(1)}s`:`${Math.floor(e/60)}m ${(e%60).toFixed(0)}s`}function et(e){return e==null?``:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function tt(e){return e==null?``:`$${e.toFixed(4)}`}function nt(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e,null,2)}function rt(e,t){if(t<=0)return`${e.toLocaleString()} tokens (limit unknown)`;let n=e=>e.toLocaleString(),r=(e/t*100).toFixed(1);return`${n(e)} / ${n(t)} (${r}%)`}function it(){let e=B(e=>e.workflowStatus),t=B(e=>e.workflowStartTime),n=B(e=>e.replayMode),r=B(e=>e.lastEventTime),[i,a]=(0,v.useState)(`—`),o=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(t!=null){if(n){o.current&&=(clearInterval(o.current),null),a($e((r??t)-t));return}if(e===`running`){let e=()=>{a($e(Date.now()/1e3-t))};return e(),o.current=setInterval(e,500),()=>{o.current&&clearInterval(o.current)}}else (e===`completed`||e===`failed`)&&(o.current&&=(clearInterval(o.current),null))}},[e,t,n,r]),i}function at(){let e=B(e=>e.workflowStatus),t=B(e=>e.agentsCompleted),n=B(e=>e.agentsTotal),r=B(e=>e.totalCost),i=B(e=>e.totalTokens),a=B(e=>e.wsStatus),o=B(e=>e.workflowFailure),s=B(e=>e.lastEventTime),c=B(e=>e.iterationLimitGate),l=it(),[u,d]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(e!==`running`||s==null){d(null);return}let t=()=>{d(Math.floor(Date.now()/1e3-s))};t();let n=setInterval(t,1e3);return()=>clearInterval(n)},[e,s]);let f=e===`failed`,p=(()=>{if(c&&e===`running`){let e=c.agent_name??c.group_name??`workflow`,t=c.skip_gates?` — auto-stopping`:` — awaiting decision`;return`Iteration limit reached: ${e} ${c.current_iteration}/${c.max_iterations}${t}`}switch(e){case`pending`:return`Waiting for workflow…`;case`running`:return`Running`;case`completed`:return`Completed`;case`failed`:{if(!o)return`Failed`;let e=o.error_type||``;return e===`MaxIterationsError`?`Failed: exceeded maximum iterations`:e===`TimeoutError`?`Failed: workflow timed out`:o.message?`Failed: ${o.message.length>60?o.message.slice(0,57)+`...`:o.message}`:`Failed: ${e}`}}})(),m=c!=null&&e===`running`,h=m?`bg-[var(--waiting)] animate-pulse`:{pending:`bg-[var(--pending)]`,running:`bg-[var(--running)] animate-pulse`,completed:`bg-[var(--completed)]`,failed:`bg-[var(--failed)]`}[e],g=(()=>{switch(a){case`connected`:return(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--completed)]`,children:[(0,H.jsx)(we,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{children:`Connected`})]});case`disconnected`:return(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--failed)]`,children:[(0,H.jsx)(Ce,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{children:`Disconnected`})]});case`reconnecting`:return(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--waiting)]`,children:[(0,H.jsx)(ce,{className:`w-3 h-3 animate-spin`}),(0,H.jsx)(`span`,{children:`Reconnecting\\u2026`})]});case`connecting`:return(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--text-muted)]`,children:[(0,H.jsx)(ce,{className:`w-3 h-3 animate-spin`}),(0,H.jsx)(`span`,{children:`Connecting\\u2026`})]})}})();return(0,H.jsxs)(`footer`,{className:U(`flex items-center gap-4 px-4 py-1.5 border-t text-xs flex-shrink-0 transition-colors duration-300`,f?`bg-red-950/50 border-red-500/30`:m?`bg-amber-950/30 border-amber-500/30`:`bg-[var(--surface)] border-[var(--border)]`),children:[(0,H.jsx)(`span`,{className:U(`w-2 h-2 rounded-full flex-shrink-0`,h)}),(0,H.jsx)(`span`,{className:U(f?`text-red-300`:m?`text-amber-200`:`text-[var(--text)]`),children:p}),n>0&&(0,H.jsxs)(`span`,{className:U(f?`text-red-400/60`:`text-[var(--text-muted)]`),children:[t,`/`,n,` agents`]}),e!==`pending`&&(0,H.jsx)(`span`,{className:U(`font-mono`,f?`text-red-400/60`:`text-[var(--text-muted)]`),children:l}),i>0&&(0,H.jsxs)(`span`,{className:U(`flex items-center gap-1`,f?`text-red-400/60`:`text-[var(--text-muted)]`),title:`Total tokens used`,children:[(0,H.jsx)(oe,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{className:`font-mono`,children:i.toLocaleString()})]}),r>0&&(0,H.jsxs)(`span`,{className:U(`flex items-center gap-1`,f?`text-red-400/60`:`text-[var(--text-muted)]`),title:`Total cost`,children:[(0,H.jsx)(P,{className:`w-3 h-3`}),(0,H.jsxs)(`span`,{className:`font-mono`,children:[`$`,r.toFixed(4)]})]}),u!=null&&u>=5&&(0,H.jsxs)(`span`,{className:U(`flex items-center gap-1 font-mono`,u>=60?`text-amber-400`:`text-[var(--text-muted)]`),title:`Time since last event from the provider`,children:[(0,H.jsx)(te,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{children:u>=60?`${Math.floor(u/60)}m ${u%60}s idle`:`${u}s idle`})]}),(0,H.jsx)(`span`,{className:`flex-1`}),g]})}var ot=[1,5,10,20,50];function st(e,t){if(t===0||e.length===0)return`+0.0s`;let n=e[0].timestamp,r=e[Math.min(t,e.length)-1].timestamp-n;return r<60?`+${r.toFixed(1)}s`:`+${Math.floor(r/60)}m${(r%60).toFixed(0)}s`}function ct(){let e=B(e=>e.replayPosition),t=B(e=>e.replayTotalEvents),n=B(e=>e.replayPlaying),r=B(e=>e.replaySpeed),i=B(e=>e.replayEvents),a=B(e=>e.setReplayPosition),o=B(e=>e.setReplayPlaying),s=B(e=>e.setReplaySpeed),c=e=>{a(parseInt(e.target.value,10)),n&&o(!1)},l=()=>{!n&&e>=t&&a(0),o(!n)},u=t>0?e/t*100:0;return(0,H.jsxs)(`footer`,{className:`flex items-center gap-3 px-4 py-1.5 border-t bg-[var(--surface)] border-[var(--border)] text-xs flex-shrink-0`,children:[(0,H.jsx)(`button`,{onClick:l,className:`flex items-center justify-center w-6 h-6 rounded hover:bg-[var(--surface-hover)] text-[var(--text-secondary)] hover:text-[var(--text)] transition-colors`,title:n?`Pause`:`Play`,children:n?(0,H.jsx)(fe,{className:`w-3.5 h-3.5`}):(0,H.jsx)(pe,{className:`w-3.5 h-3.5`})}),(0,H.jsxs)(`div`,{className:`flex-1 relative flex items-center`,children:[(0,H.jsx)(`input`,{type:`range`,min:0,max:t,value:e,onChange:c,className:`w-full h-1 appearance-none rounded-full cursor-pointer`,style:{background:`linear-gradient(to right, var(--accent) 0%, var(--accent) ${u}%, var(--border) ${u}%, var(--border) 100%)`,WebkitAppearance:`none`}}),(0,H.jsx)(`style`,{children:` - footer input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--accent); - border: 2px solid var(--surface); - cursor: pointer; - box-shadow: 0 0 4px rgba(99, 102, 241, 0.4); - } - footer input[type="range"]::-moz-range-thumb { - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--accent); - border: 2px solid var(--surface); - cursor: pointer; - box-shadow: 0 0 4px rgba(99, 102, 241, 0.4); - } - `})]}),(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] font-mono whitespace-nowrap`,children:st(i,e)}),(0,H.jsxs)(`span`,{className:`text-[var(--text-muted)] font-mono whitespace-nowrap`,children:[`Event `,e,`/`,t]}),(0,H.jsx)(`div`,{className:`flex items-center gap-0.5`,children:ot.map(e=>(0,H.jsxs)(`button`,{onClick:()=>s(e),className:U(`px-1.5 py-0.5 rounded text-xs font-mono transition-colors`,r===e?`bg-[var(--accent)] text-white`:`text-[var(--text-muted)] hover:text-[var(--text-secondary)] hover:bg-[var(--surface-hover)]`),children:[e,`×`]},e))})]})}var lt=(0,v.createContext)(null);lt.displayName=`PanelGroupContext`;var ut={group:`data-panel-group`,groupDirection:`data-panel-group-direction`,groupId:`data-panel-group-id`,panel:`data-panel`,panelCollapsible:`data-panel-collapsible`,panelId:`data-panel-id`,panelSize:`data-panel-size`,resizeHandle:`data-resize-handle`,resizeHandleActive:`data-resize-handle-active`,resizeHandleEnabled:`data-panel-resize-handle-enabled`,resizeHandleId:`data-panel-resize-handle-id`,resizeHandleState:`data-resize-handle-state`},dt=10,ft=v.useLayoutEffect,pt=v.useId,mt=typeof pt==`function`?pt:()=>null,ht=0;function gt(e=null){let t=mt(),n=(0,v.useRef)(e||t||null);return n.current===null&&(n.current=``+ ht++),e??n.current}function _t({children:e,className:t=``,collapsedSize:n,collapsible:r,defaultSize:i,forwardedRef:a,id:o,maxSize:s,minSize:c,onCollapse:l,onExpand:u,onResize:d,order:f,style:p,tagName:m=`div`,...h}){let g=(0,v.useContext)(lt);if(g===null)throw Error(`Panel components must be rendered within a PanelGroup container`);let{collapsePanel:_,expandPanel:y,getPanelSize:b,getPanelStyle:x,groupId:S,isPanelCollapsed:C,reevaluatePanelConstraints:w,registerPanel:T,resizePanel:E,unregisterPanel:D}=g,O=gt(o),k=(0,v.useRef)({callbacks:{onCollapse:l,onExpand:u,onResize:d},constraints:{collapsedSize:n,collapsible:r,defaultSize:i,maxSize:s,minSize:c},id:O,idIsFromProps:o!==void 0,order:f});(0,v.useRef)({didLogMissingDefaultSizeWarning:!1}),ft(()=>{let{callbacks:e,constraints:t}=k.current,a={...t};k.current.id=O,k.current.idIsFromProps=o!==void 0,k.current.order=f,e.onCollapse=l,e.onExpand=u,e.onResize=d,t.collapsedSize=n,t.collapsible=r,t.defaultSize=i,t.maxSize=s,t.minSize=c,(a.collapsedSize!==t.collapsedSize||a.collapsible!==t.collapsible||a.maxSize!==t.maxSize||a.minSize!==t.minSize)&&w(k.current,a)}),ft(()=>{let e=k.current;return T(e),()=>{D(e)}},[f,O,T,D]),(0,v.useImperativeHandle)(a,()=>({collapse:()=>{_(k.current)},expand:e=>{y(k.current,e)},getId(){return O},getSize(){return b(k.current)},isCollapsed(){return C(k.current)},isExpanded(){return!C(k.current)},resize:e=>{E(k.current,e)}}),[_,y,b,C,O,E]);let A=x(k.current,i);return(0,v.createElement)(m,{...h,children:e,className:t,id:O,style:{...A,...p},[ut.groupId]:S,[ut.panel]:``,[ut.panelCollapsible]:r||void 0,[ut.panelId]:O,[ut.panelSize]:parseFloat(``+A.flexGrow).toFixed(1)})}var vt=(0,v.forwardRef)((e,t)=>(0,v.createElement)(_t,{...e,forwardedRef:t}));_t.displayName=`Panel`,vt.displayName=`forwardRef(Panel)`;var yt;function bt(){return yt}var xt=null,St=!0,Ct=-1,wt=null;function Tt(e,t){if(t){let e=(t&Ht)!==0,n=(t&Ut)!==0,r=(t&Wt)!==0,i=(t&Gt)!==0;if(e)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}switch(e){case`horizontal`:return`ew-resize`;case`intersection`:return`move`;case`vertical`:return`ns-resize`}}function Et(){wt!==null&&(document.head.removeChild(wt),xt=null,wt=null,Ct=-1)}function Dt(e,t){if(!St)return;let n=Tt(e,t);if(xt!==n){if(xt=n,wt===null){wt=document.createElement(`style`);let e=bt();e&&wt.setAttribute(`nonce`,e),document.head.appendChild(wt)}if(Ct>=0){var r;(r=wt.sheet)==null||r.removeRule(Ct)}Ct=wt.sheet?.insertRule(`*{cursor: ${n} !important;}`)??-1}}function Ot(e){return e.type===`keydown`}function kt(e){return e.type.startsWith(`pointer`)}function At(e){return e.type.startsWith(`mouse`)}function jt(e){if(kt(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(At(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}function Mt(){if(typeof matchMedia==`function`)return matchMedia(`(pointer:coarse)`).matches?`coarse`:`fine`}function Nt(e,t,n){return n?e.xt.x&&e.yt.y:e.x<=t.x+t.width&&e.x+e.width>=t.x&&e.y<=t.y+t.height&&e.y+e.height>=t.y}function Pt(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:Bt(e),b:Bt(t)},r;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;W(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:zt(Rt(n.a)),b:zt(Rt(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Ft=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function It(e){let t=getComputedStyle(Vt(e)??e).display;return t===`flex`||t===`inline-flex`}function Lt(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||It(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Ft.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function Rt(e){let t=e.length;for(;t--;){let n=e[t];if(W(n,`Missing node`),Lt(n))return n}return null}function zt(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Bt(e){let t=[];for(;e;)t.push(e),e=Vt(e);return t}function Vt(e){let{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}var Ht=1,Ut=2,Wt=4,Gt=8,Kt=Mt()===`coarse`,qt=[],Jt=!1,Yt=new Map,Xt=new Map,Zt=new Set;function Qt(e,t,n,r,i){let{ownerDocument:a}=t,o={direction:n,element:t,hitAreaMargins:r,setResizeHandlerState:i},s=Yt.get(a)??0;return Yt.set(a,s+1),Zt.add(o),cn(),function(){Xt.delete(e),Zt.delete(o);let t=Yt.get(a)??1;if(Yt.set(a,t-1),cn(),t===1&&Yt.delete(a),qt.includes(o)){let e=qt.indexOf(o);e>=0&&qt.splice(e,1),on(),i(`up`,!0,null)}}}function $t(e){let{target:t}=e,{x:n,y:r}=jt(e);Jt=!0,rn({target:t,x:n,y:r}),cn(),qt.length>0&&(ln(`down`,e),e.preventDefault(),nn(t)||e.stopImmediatePropagation())}function en(e){let{x:t,y:n}=jt(e);if(Jt&&e.buttons===0&&(Jt=!1,ln(`up`,e)),!Jt){let{target:r}=e;rn({target:r,x:t,y:n})}ln(`move`,e),on(),qt.length>0&&e.preventDefault()}function tn(e){let{target:t}=e,{x:n,y:r}=jt(e);Xt.clear(),Jt=!1,qt.length>0&&(e.preventDefault(),nn(t)||e.stopImmediatePropagation()),ln(`up`,e),rn({target:t,x:n,y:r}),on(),cn()}function nn(e){let t=e;for(;t;){if(t.hasAttribute(ut.resizeHandle))return!0;t=t.parentElement}return!1}function rn({target:e,x:t,y:n}){qt.splice(0);let r=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(r=e),Zt.forEach(e=>{let{element:i,hitAreaMargins:a}=e,o=i.getBoundingClientRect(),{bottom:s,left:c,right:l,top:u}=o,d=Kt?a.coarse:a.fine;if(t>=c-d&&t<=l+d&&n>=u-d&&n<=s+d){if(r!==null&&document.contains(r)&&i!==r&&!i.contains(r)&&!r.contains(i)&&Pt(r,i)>0){let e=r,t=!1;for(;e&&!e.contains(i);){if(Nt(e.getBoundingClientRect(),o,!0)){t=!0;break}e=e.parentElement}if(t)return}qt.push(e)}})}function an(e,t){Xt.set(e,t)}function on(){let e=!1,t=!1;qt.forEach(n=>{let{direction:r}=n;r===`horizontal`?e=!0:t=!0});let n=0;Xt.forEach(e=>{n|=e}),e&&t?Dt(`intersection`,n):e?Dt(`horizontal`,n):t?Dt(`vertical`,n):Et()}var sn=new AbortController;function cn(){sn.abort(),sn=new AbortController;let e={capture:!0,signal:sn.signal};Zt.size&&(Jt?(qt.length>0&&Yt.forEach((t,n)=>{let{body:r}=n;t>0&&(r.addEventListener(`contextmenu`,tn,e),r.addEventListener(`pointerleave`,en,e),r.addEventListener(`pointermove`,en,e))}),window.addEventListener(`pointerup`,tn,e),window.addEventListener(`pointercancel`,tn,e)):Yt.forEach((t,n)=>{let{body:r}=n;t>0&&(r.addEventListener(`pointerdown`,$t,e),r.addEventListener(`pointermove`,en,e))}))}function ln(e,t){Zt.forEach(n=>{let{setResizeHandlerState:r}=n;r(e,qt.includes(n),t)})}function un(){let[e,t]=(0,v.useState)(0);return(0,v.useCallback)(()=>t(e=>e+1),[])}function W(e,t){if(!e)throw console.error(t),Error(t)}function dn(e,t,n=dt){return e.toFixed(n)===t.toFixed(n)?0:e>t?1:-1}function fn(e,t,n=dt){return dn(e,t,n)===0}function pn(e,t,n){return dn(e,t,n)===0}function mn(e,t,n){if(e.length!==t.length)return!1;for(let r=0;r0&&(e=e<0?0-t:t)}}}{let r=e<0?s:c,i=n[r];W(i,`No panel constraints found for index ${r}`);let{collapsedSize:a=0,collapsible:o,minSize:l=0}=i;if(o){let n=t[r];if(W(n!=null,`Previous layout not found for panel index ${r}`),pn(n,l)){let t=n-a;dn(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let r=e<0?1:-1,i=e<0?c:s,a=0;for(;;){let e=t[i];W(e!=null,`Previous layout not found for panel index ${i}`);let o=hn({panelConstraints:n,panelIndex:i,size:100})-e;if(a+=o,i+=r,i<0||i>=n.length)break}let o=Math.min(Math.abs(e),Math.abs(a));e=e<0?0-o:o}{let r=e<0?s:c;for(;r>=0&&r=0))break;e<0?r--:r++}}if(mn(i,o))return i;{let r=e<0?c:s,i=t[r];W(i!=null,`Previous layout not found for panel index ${r}`);let a=i+l,u=hn({panelConstraints:n,panelIndex:r,size:a});if(o[r]=u,!pn(u,a)){let t=a-u,r=e<0?c:s;for(;r>=0&&r0?r--:r++}}}return pn(o.reduce((e,t)=>t+e,0),100)?o:i}function _n({layout:e,panelsArray:t,pivotIndices:n}){let r=0,i=100,a=0,o=0,s=n[0];return W(s!=null,`No pivot index found`),t.forEach((e,t)=>{let{constraints:n}=e,{maxSize:c=100,minSize:l=0}=n;t===s?(r=l,i=c):(a+=l,o+=c)}),{valueMax:Math.min(i,100-a),valueMin:Math.max(r,100-o),valueNow:e[s]}}function vn(e,t=document){return Array.from(t.querySelectorAll(`[${ut.resizeHandleId}][data-panel-group-id="${e}"]`))}function yn(e,t,n=document){return vn(e,n).findIndex(e=>e.getAttribute(ut.resizeHandleId)===t)??null}function bn(e,t,n){let r=yn(e,t,n);return r==null?[-1,-1]:[r,r+1]}function xn(e,t=document){return t instanceof HTMLElement&&t?.dataset?.panelGroupId==e?t:t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`)||null}function Sn(e,t=document){return t.querySelector(`[${ut.resizeHandleId}="${e}"]`)||null}function Cn(e,t,n,r=document){let i=Sn(t,r),a=vn(e,r),o=i?a.indexOf(i):-1;return[n[o]?.id??null,n[o+1]?.id??null]}function wn({committedValuesRef:e,eagerValuesRef:t,groupId:n,layout:r,panelDataArray:i,panelGroupElement:a,setLayout:o}){(0,v.useRef)({didWarnAboutMissingResizeHandle:!1}),ft(()=>{if(!a)return;let e=vn(n,a);for(let t=0;t{e.forEach((e,t)=>{e.removeAttribute(`aria-controls`),e.removeAttribute(`aria-valuemax`),e.removeAttribute(`aria-valuemin`),e.removeAttribute(`aria-valuenow`)})}},[n,r,i,a]),(0,v.useEffect)(()=>{if(!a)return;let e=t.current;W(e,`Eager values not found`);let{panelDataArray:i}=e;W(xn(n,a)!=null,`No group found for id "${n}"`);let s=vn(n,a);W(s,`No resize handles found for group id "${n}"`);let c=s.map(e=>{let t=e.getAttribute(ut.resizeHandleId);W(t,`Resize handle element has no handle id attribute`);let[s,c]=Cn(n,t,i,a);if(s==null||c==null)return()=>{};let l=e=>{if(!e.defaultPrevented)switch(e.key){case`Enter`:{e.preventDefault();let c=i.findIndex(e=>e.id===s);if(c>=0){let e=i[c];W(e,`No panel data found for index ${c}`);let s=r[c],{collapsedSize:l=0,collapsible:u,minSize:d=0}=e.constraints;if(s!=null&&u){let e=gn({delta:pn(s,l)?d-l:l-s,initialLayout:r,panelConstraints:i.map(e=>e.constraints),pivotIndices:bn(n,t,a),prevLayout:r,trigger:`keyboard`});r!==e&&o(e)}}break}}};return e.addEventListener(`keydown`,l),()=>{e.removeEventListener(`keydown`,l)}});return()=>{c.forEach(e=>e())}},[a,e,t,n,r,i,o])}function Tn(e,t){if(e.length!==t.length)return!1;for(let n=0;ne.constraints),r=0,i=100;for(let a=0;a{let i=e[r];W(i,`Panel data not found for index ${r}`);let{callbacks:a,constraints:o,id:s}=i,{collapsedSize:c=0,collapsible:l}=o,u=n[s];if(u==null||t!==u){n[s]=t;let{onCollapse:e,onExpand:r,onResize:i}=a;i&&i(t,u),l&&(e||r)&&(r&&(u==null||fn(u,c))&&!fn(t,c)&&r(),e&&(u==null||!fn(u,c))&&fn(t,c)&&e())}})}function jn(e,t){if(e.length!==t.length)return!1;for(let n=0;n{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}function Pn(e){try{if(typeof localStorage<`u`)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,t)=>{localStorage.setItem(e,t)};else throw Error(`localStorage not supported in this environment`)}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function Fn(e){return`react-resizable-panels:${e}`}function In(e){return e.map(e=>{let{constraints:t,id:n,idIsFromProps:r,order:i}=e;return r?n:i?`${i}:${JSON.stringify(t)}`:JSON.stringify(t)}).sort((e,t)=>e.localeCompare(t)).join(`,`)}function Ln(e,t){try{let n=Fn(e),r=t.getItem(n);if(r){let e=JSON.parse(r);if(typeof e==`object`&&e)return e}}catch{}return null}function Rn(e,t,n){return(Ln(e,n)??{})[In(t)]??null}function zn(e,t,n,r,i){let a=Fn(e),o=In(t),s=Ln(e,i)??{};s[o]={expandToSizes:Object.fromEntries(n.entries()),layout:r};try{i.setItem(a,JSON.stringify(s))}catch(e){console.error(e)}}function Bn({layout:e,panelConstraints:t}){let n=[...e],r=n.reduce((e,t)=>e+t,0);if(n.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${n.map(e=>`${e}%`).join(`, `)}`);if(!pn(r,100)&&n.length>0)for(let e=0;e(Pn(Hn),Hn.getItem(e)),setItem:(e,t)=>{Pn(Hn),Hn.setItem(e,t)}},Un={};function Wn({autoSaveId:e=null,children:t,className:n=``,direction:r,forwardedRef:i,id:a=null,onLayout:o=null,keyboardResizeBy:s=null,storage:c=Hn,style:l,tagName:u=`div`,...d}){let f=gt(a),p=(0,v.useRef)(null),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)([]),y=un(),b=(0,v.useRef)({}),x=(0,v.useRef)(new Map),S=(0,v.useRef)(0),C=(0,v.useRef)({autoSaveId:e,direction:r,dragState:m,id:f,keyboardResizeBy:s,onLayout:o,storage:c}),w=(0,v.useRef)({layout:g,panelDataArray:[],panelDataArrayChanged:!1});(0,v.useRef)({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),(0,v.useImperativeHandle)(i,()=>({getId:()=>C.current.id,getLayout:()=>{let{layout:e}=w.current;return e},setLayout:e=>{let{onLayout:t}=C.current,{layout:n,panelDataArray:r}=w.current,i=Bn({layout:e,panelConstraints:r.map(e=>e.constraints)});Tn(n,i)||(_(i),w.current.layout=i,t&&t(i),An(r,i,b.current))}}),[]),ft(()=>{C.current.autoSaveId=e,C.current.direction=r,C.current.dragState=m,C.current.id=f,C.current.onLayout=o,C.current.storage=c}),wn({committedValuesRef:C,eagerValuesRef:w,groupId:f,layout:g,panelDataArray:w.current.panelDataArray,setLayout:_,panelGroupElement:p.current}),(0,v.useEffect)(()=>{let{panelDataArray:t}=w.current;if(e){if(g.length===0||g.length!==t.length)return;let n=Un[e];n??(n=Nn(zn,Vn),Un[e]=n);let r=[...t],i=new Map(x.current);n(e,r,i,g,c)}},[e,g,c]),(0,v.useEffect)(()=>{});let T=(0,v.useCallback)(e=>{let{onLayout:t}=C.current,{layout:n,panelDataArray:r}=w.current;if(e.constraints.collapsible){let i=r.map(e=>e.constraints),{collapsedSize:a=0,panelSize:o,pivotIndices:s}=qn(r,e,n);if(W(o!=null,`Panel size not found for panel "${e.id}"`),!fn(o,a)){x.current.set(e.id,o);let c=gn({delta:Kn(r,e)===r.length-1?o-a:a-o,initialLayout:n,panelConstraints:i,pivotIndices:s,prevLayout:n,trigger:`imperative-api`});jn(n,c)||(_(c),w.current.layout=c,t&&t(c),An(r,c,b.current))}}},[]),E=(0,v.useCallback)((e,t)=>{let{onLayout:n}=C.current,{layout:r,panelDataArray:i}=w.current;if(e.constraints.collapsible){let a=i.map(e=>e.constraints),{collapsedSize:o=0,panelSize:s=0,minSize:c=0,pivotIndices:l}=qn(i,e,r),u=t??c;if(fn(s,o)){let t=x.current.get(e.id),o=t!=null&&t>=u?t:u,c=gn({delta:Kn(i,e)===i.length-1?s-o:o-s,initialLayout:r,panelConstraints:a,pivotIndices:l,prevLayout:r,trigger:`imperative-api`});jn(r,c)||(_(c),w.current.layout=c,n&&n(c),An(i,c,b.current))}}},[]),D=(0,v.useCallback)(e=>{let{layout:t,panelDataArray:n}=w.current,{panelSize:r}=qn(n,e,t);return W(r!=null,`Panel size not found for panel "${e.id}"`),r},[]),O=(0,v.useCallback)((e,t)=>{let{panelDataArray:n}=w.current;return Mn({defaultSize:t,dragState:m,layout:g,panelData:n,panelIndex:Kn(n,e)})},[m,g]),k=(0,v.useCallback)(e=>{let{layout:t,panelDataArray:n}=w.current,{collapsedSize:r=0,collapsible:i,panelSize:a}=qn(n,e,t);return W(a!=null,`Panel size not found for panel "${e.id}"`),i===!0&&fn(a,r)},[]),A=(0,v.useCallback)(e=>{let{layout:t,panelDataArray:n}=w.current,{collapsedSize:r=0,collapsible:i,panelSize:a}=qn(n,e,t);return W(a!=null,`Panel size not found for panel "${e.id}"`),!i||dn(a,r)>0},[]),j=(0,v.useCallback)(e=>{let{panelDataArray:t}=w.current;t.push(e),t.sort((e,t)=>{let n=e.order,r=t.order;return n==null&&r==null?0:n==null?-1:r==null?1:n-r}),w.current.panelDataArrayChanged=!0,y()},[y]);ft(()=>{if(w.current.panelDataArrayChanged){w.current.panelDataArrayChanged=!1;let{autoSaveId:e,onLayout:t,storage:n}=C.current,{layout:r,panelDataArray:i}=w.current,a=null;if(e){let t=Rn(e,i,n);t&&(x.current=new Map(Object.entries(t.expandToSizes)),a=t.layout)}a??=kn({panelDataArray:i});let o=Bn({layout:a,panelConstraints:i.map(e=>e.constraints)});Tn(r,o)||(_(o),w.current.layout=o,t&&t(o),An(i,o,b.current))}}),ft(()=>{let e=w.current;return()=>{e.layout=[]}},[]);let M=(0,v.useCallback)(e=>{let t=!1,n=p.current;return n&&window.getComputedStyle(n,null).getPropertyValue(`direction`)===`rtl`&&(t=!0),function(n){n.preventDefault();let r=p.current;if(!r)return()=>null;let{direction:i,dragState:a,id:o,keyboardResizeBy:s,onLayout:c}=C.current,{layout:l,panelDataArray:u}=w.current,{initialLayout:d}=a??{},f=bn(o,e,r),m=On(n,e,i,a,s,r),h=i===`horizontal`;h&&t&&(m=-m);let g=u.map(e=>e.constraints),v=gn({delta:m,initialLayout:d??l,panelConstraints:g,pivotIndices:f,prevLayout:l,trigger:Ot(n)?`keyboard`:`mouse-or-touch`}),y=!jn(l,v);(kt(n)||At(n))&&S.current!=m&&(S.current=m,!y&&m!==0?h?an(e,m<0?Ht:Ut):an(e,m<0?Wt:Gt):an(e,0)),y&&(_(v),w.current.layout=v,c&&c(v),An(u,v,b.current))}},[]),N=(0,v.useCallback)((e,t)=>{let{onLayout:n}=C.current,{layout:r,panelDataArray:i}=w.current,a=i.map(e=>e.constraints),{panelSize:o,pivotIndices:s}=qn(i,e,r);W(o!=null,`Panel size not found for panel "${e.id}"`);let c=gn({delta:Kn(i,e)===i.length-1?o-t:t-o,initialLayout:r,panelConstraints:a,pivotIndices:s,prevLayout:r,trigger:`imperative-api`});jn(r,c)||(_(c),w.current.layout=c,n&&n(c),An(i,c,b.current))},[]),ee=(0,v.useCallback)((e,t)=>{let{layout:n,panelDataArray:r}=w.current,{collapsedSize:i=0,collapsible:a}=t,{collapsedSize:o=0,collapsible:s,maxSize:c=100,minSize:l=0}=e.constraints,{panelSize:u}=qn(r,e,n);u!=null&&(a&&s&&fn(u,i)?fn(i,o)||N(e,o):uc&&N(e,c))},[N]),te=(0,v.useCallback)((e,t)=>{let{direction:n}=C.current,{layout:r}=w.current;if(!p.current)return;let i=Sn(e,p.current);W(i,`Drag handle element not found for id "${e}"`);let a=En(n,t);h({dragHandleId:e,dragHandleRect:i.getBoundingClientRect(),initialCursorPosition:a,initialLayout:r})},[]),P=(0,v.useCallback)(()=>{h(null)},[]),F=(0,v.useCallback)(e=>{let{panelDataArray:t}=w.current,n=Kn(t,e);n>=0&&(t.splice(n,1),delete b.current[e.id],w.current.panelDataArrayChanged=!0,y())},[y]),ne=(0,v.useMemo)(()=>({collapsePanel:T,direction:r,dragState:m,expandPanel:E,getPanelSize:D,getPanelStyle:O,groupId:f,isPanelCollapsed:k,isPanelExpanded:A,reevaluatePanelConstraints:ee,registerPanel:j,registerResizeHandle:M,resizePanel:N,startDragging:te,stopDragging:P,unregisterPanel:F,panelGroupElement:p.current}),[T,m,r,E,D,O,f,k,A,ee,j,M,N,te,P,F]),re={display:`flex`,flexDirection:r===`horizontal`?`row`:`column`,height:`100%`,overflow:`hidden`,width:`100%`};return(0,v.createElement)(lt.Provider,{value:ne},(0,v.createElement)(u,{...d,children:t,className:n,id:a,ref:p,style:{...re,...l},[ut.group]:``,[ut.groupDirection]:r,[ut.groupId]:f}))}var Gn=(0,v.forwardRef)((e,t)=>(0,v.createElement)(Wn,{...e,forwardedRef:t}));Wn.displayName=`PanelGroup`,Gn.displayName=`forwardRef(PanelGroup)`;function Kn(e,t){return e.findIndex(e=>e===t||e.id===t.id)}function qn(e,t,n){let r=Kn(e,t),i=r===e.length-1?[r-1,r]:[r,r+1],a=n[r];return{...t.constraints,panelSize:a,pivotIndices:i}}function Jn({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:r}){(0,v.useEffect)(()=>{if(e||n==null||r==null)return;let i=Sn(t,r);if(i==null)return;let a=e=>{if(!e.defaultPrevented)switch(e.key){case`ArrowDown`:case`ArrowLeft`:case`ArrowRight`:case`ArrowUp`:case`End`:case`Home`:e.preventDefault(),n(e);break;case`F6`:{e.preventDefault();let n=i.getAttribute(ut.groupId);W(n,`No group element found for id "${n}"`);let a=vn(n,r),o=yn(n,t,r);W(o!==null,`No resize element found for id "${t}"`),a[e.shiftKey?o>0?o-1:a.length-1:o+1{i.removeEventListener(`keydown`,a)}},[r,e,t,n])}function Yn({children:e=null,className:t=``,disabled:n=!1,hitAreaMargins:r,id:i,onBlur:a,onClick:o,onDragging:s,onFocus:c,onPointerDown:l,onPointerUp:u,style:d={},tabIndex:f=0,tagName:p=`div`,...m}){let h=(0,v.useRef)(null),g=(0,v.useRef)({onClick:o,onDragging:s,onPointerDown:l,onPointerUp:u});(0,v.useEffect)(()=>{g.current.onClick=o,g.current.onDragging=s,g.current.onPointerDown=l,g.current.onPointerUp=u});let _=(0,v.useContext)(lt);if(_===null)throw Error(`PanelResizeHandle components must be rendered within a PanelGroup container`);let{direction:y,groupId:b,registerResizeHandle:x,startDragging:S,stopDragging:C,panelGroupElement:w}=_,T=gt(i),[E,D]=(0,v.useState)(`inactive`),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)(null),M=(0,v.useRef)({state:E});ft(()=>{M.current.state=E}),(0,v.useEffect)(()=>{if(n)j(null);else{let e=x(T);j(()=>e)}},[n,T,x]);let N=r?.coarse??15,ee=r?.fine??5;(0,v.useEffect)(()=>{if(n||A==null)return;let e=h.current;W(e,`Element ref not attached`);let t=!1;return Qt(T,e,y,{coarse:N,fine:ee},(e,n,r)=>{if(!n){D(`inactive`);return}switch(e){case`down`:{D(`drag`),t=!1,W(r,`Expected event to be defined for "down" action`),S(T,r);let{onDragging:e,onPointerDown:n}=g.current;e?.(!0),n?.();break}case`move`:{let{state:e}=M.current;t=!0,e!==`drag`&&D(`hover`),W(r,`Expected event to be defined for "move" action`),A(r);break}case`up`:{D(`hover`),C();let{onClick:e,onDragging:n,onPointerUp:r}=g.current;n?.(!1),r?.(),t||e?.();break}}})},[N,y,n,ee,x,T,A,S,C]),Jn({disabled:n,handleId:T,resizeHandler:A,panelGroupElement:w});let te={touchAction:`none`,userSelect:`none`};return(0,v.createElement)(p,{...m,children:e,className:t,id:i,onBlur:()=>{k(!1),a?.()},onFocus:()=>{k(!0),c?.()},ref:h,role:`separator`,style:{...te,...d},tabIndex:f,[ut.groupDirection]:y,[ut.groupId]:b,[ut.resizeHandle]:``,[ut.resizeHandleActive]:E===`drag`?`pointer`:O?`keyboard`:void 0,[ut.resizeHandleEnabled]:!n,[ut.resizeHandleId]:T,[ut.resizeHandleState]:E})}Yn.displayName=`PanelResizeHandle`;function Xn(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function Qn(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}$n.prototype=Qn.prototype={constructor:$n,on:function(e,t){var n=this._,r=er(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),rr.hasOwnProperty(t)?{space:rr[t],local:e}:e}function ar(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function or(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function sr(e){var t=ir(e);return(t.local?or:ar)(t)}function cr(){}function lr(e){return e==null?cr:function(){return this.querySelector(e)}}function ur(e){typeof e!=`function`&&(e=lr(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Br(e){e||=Vr;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function Hr(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Ur(){return Array.from(this)}function Wr(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?ni:typeof t==`function`?ii:ri)(e,t,n??``)):oi(this.node(),e)}function oi(e,t){return e.style.getPropertyValue(t)||ti(e).getComputedStyle(e,null).getPropertyValue(t)}function si(e){return function(){delete this[e]}}function ci(e,t){return function(){this[e]=t}}function li(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function ui(e,t){return arguments.length>1?this.each((t==null?si:typeof t==`function`?li:ci)(e,t)):this.node()[e]}function di(e){return e.trim().split(/^|\s+/)}function fi(e){return e.classList||new pi(e)}function pi(e){this._node=e,this._names=di(e.getAttribute(`class`)||``)}pi.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function mi(e,t){for(var n=fi(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Ui(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function da(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}da.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function fa(e){return!e.ctrlKey&&!e.button}function pa(){return this.parentNode}function ma(e,t){return t??{x:e.x,y:e.y}}function ha(){return navigator.maxTouchPoints||`ontouchstart`in this}function ga(){var e=fa,t=pa,n=ma,r=ha,i={},a=Qn(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,ia).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(ta(n.view).on(`mousemove.drag`,m,aa).on(`mouseup.drag`,h,aa),ca(n.view),oa(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(sa(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){ta(e.view).on(`mousemove.drag mouseup.drag`,null),la(e.view,l),sa(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?za(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?za(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Ea.exec(e))?new Ha(t[1],t[2],t[3],1):(t=Da.exec(e))?new Ha(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Oa.exec(e))?za(t[1],t[2],t[3],t[4]):(t=ka.exec(e))?za(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Aa.exec(e))?Ya(t[1],t[2]/100,t[3]/100,1):(t=ja.exec(e))?Ya(t[1],t[2]/100,t[3]/100,t[4]):Ma.hasOwnProperty(e)?Ra(Ma[e]):e===`transparent`?new Ha(NaN,NaN,NaN,0):null}function Ra(e){return new Ha(e>>16&255,e>>8&255,e&255,1)}function za(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ha(e,t,n,r)}function Ba(e){return e instanceof ya||(e=La(e)),e?(e=e.rgb(),new Ha(e.r,e.g,e.b,e.opacity)):new Ha}function Va(e,t,n,r){return arguments.length===1?Ba(e):new Ha(e,t,n,r??1)}function Ha(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}_a(Ha,Va,va(ya,{brighter(e){return e=e==null?xa:xa**+e,new Ha(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ba:ba**+e,new Ha(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ha(qa(this.r),qa(this.g),qa(this.b),Ka(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ua,formatHex:Ua,formatHex8:Wa,formatRgb:Ga,toString:Ga}));function Ua(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}`}function Wa(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}${Ja((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ga(){let e=Ka(this.opacity);return`${e===1?`rgb(`:`rgba(`}${qa(this.r)}, ${qa(this.g)}, ${qa(this.b)}${e===1?`)`:`, ${e})`}`}function Ka(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function qa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ja(e){return e=qa(e),(e<16?`0`:``)+e.toString(16)}function Ya(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Qa(e,t,n,r)}function Xa(e){if(e instanceof Qa)return new Qa(e.h,e.s,e.l,e.opacity);if(e instanceof ya||(e=La(e)),!e)return new Qa;if(e instanceof Qa)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new Qa(o,s,c,e.opacity)}function Za(e,t,n,r){return arguments.length===1?Xa(e):new Qa(e,t,n,r??1)}function Qa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}_a(Qa,Za,va(ya,{brighter(e){return e=e==null?xa:xa**+e,new Qa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ba:ba**+e,new Qa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Ha(to(e>=240?e-240:e+120,i,r),to(e,i,r),to(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Qa($a(this.h),eo(this.s),eo(this.l),Ka(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Ka(this.opacity);return`${e===1?`hsl(`:`hsla(`}${$a(this.h)}, ${eo(this.s)*100}%, ${eo(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function $a(e){return e=(e||0)%360,e<0?e+360:e}function eo(e){return Math.max(0,Math.min(1,e||0))}function to(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var no=e=>()=>e;function ro(e,t){return function(n){return e+n*t}}function io(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function ao(e){return(e=+e)==1?oo:function(t,n){return n-t?io(t,n,e):no(isNaN(t)?n:t)}}function oo(e,t){var n=t-e;return n?ro(e,n):no(isNaN(e)?t:e)}var so=(function e(t){var n=ao(t);function r(e,t){var r=n((e=Va(e)).r,(t=Va(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=oo(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function G(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:fo(r,i)})),n=ho.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:fo(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:fo(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:fo(e,n)},{i:s-2,x:fo(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--Po}function Xo(){Vo=(Bo=Uo.now())+Ho,Po=Fo=0;try{Yo()}finally{Po=0,Qo(),Vo=0}}function Zo(){var e=Uo.now(),t=e-Bo;t>Lo&&(Ho-=t,Bo=e)}function Qo(){for(var e,t=Ro,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ro=n);zo=e,$o(r)}function $o(e){Po||(Fo&&=clearTimeout(Fo),e-Vo>24?(e<1/0&&(Fo=setTimeout(Xo,e-Uo.now()-Ho)),Io&&=clearInterval(Io)):(Io||=(Bo=Uo.now(),setInterval(Zo,Lo)),Po=1,Wo(Xo)))}function es(e,t,n){var r=new qo;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var ts=Qn(`start`,`end`,`cancel`,`interrupt`),ns=[];function rs(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;ss(e,n,{name:t,index:r,group:i,on:ts,tween:ns,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function is(e,t){var n=os(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function as(e,t){var n=os(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function os(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function ss(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Jo(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return es(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function ls(e){return this.each(function(){cs(this,e)})}function us(e,t){var n,r;return function(){var i=as(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Bs(e,t,n){var r,i,a=zs(t)?is:as;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Vs(e,t){var n=this._id;return arguments.length<2?os(this.node(),n).on.on(e):this.each(Bs(n,e,t))}function Hs(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Us(){return this.on(`end.remove`,Hs(this._id))}function Ws(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=lr(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function xc(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Sc(e,t,n){this.k=e,this.x=t,this.y=n}Sc.prototype={constructor:Sc,scale:function(e){return e===1?this:new Sc(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Sc(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Cc=new Sc(1,0,0);wc.prototype=Sc.prototype;function wc(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Cc;return e.__zoom}function Tc(e){e.stopImmediatePropagation()}function Ec(e){e.preventDefault(),e.stopImmediatePropagation()}function Dc(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Oc(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function kc(){return this.__zoom||Cc}function Ac(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function jc(){return navigator.maxTouchPoints||`ontouchstart`in this}function Mc(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Nc(){var e=Dc,t=Oc,n=Mc,r=Ac,i=jc,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=No,l=Qn(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,kc).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,kc),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Cc.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new Sc(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new Sc(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new Sc(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=ta(this.that).datum();l.call(e,this.that,new xc(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=ra(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],cs(this),s.start();Ec(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=ta(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=ra(t,i),l=t.clientX,u=t.clientY;ca(t.view),Tc(t),a.mouse=[c,this.__zoom.invert(c)],cs(this),a.start();function d(e){if(Ec(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=ra(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),la(e.view,a.moved),Ec(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=ra(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Ec(r),s>0?ta(this).transition().duration(s).call(x,d,c,r):ta(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Tc(t),s=0;s`[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The React Flow parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`},Fc=[[-1/0,-1/0],[1/0,1/0]],Ic=[`Enter`,` `,`Escape`],Lc={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Rc;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Rc||={});var zc;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(zc||={});var Bc;(function(e){e.Partial=`partial`,e.Full=`full`})(Bc||={});var Vc={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Hc;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Hc||={});var Uc;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Uc||={});var K;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(K||={});var Wc={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function Gc(e){return e===null?null:e?`valid`:`invalid`}var Kc=e=>`id`in e&&`source`in e&&`target`in e,qc=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Jc=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Yc=(e,t=[0,0])=>{let{width:n,height:r}=Ol(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Xc=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:dl(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):Jc(n)?n:t.nodeLookup.get(n.id)),ll(e,i?pl(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Zc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=ll(n,pl(e)),r=!0)}),r?dl(n):{x:0,y:0,width:0,height:0}},Qc=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s={...bl(t,[n,r,i]),width:t.width/i,height:t.height/i},c=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??null,l=e.height??t.height??t.initialHeight??null,u=hl(s,fl(t)),d=(i??0)*(l??0),f=a&&u>0;(!t.internals.handleBounds||f||u>=d||t.dragging)&&c.push(t)}return c},$c=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function el(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function tl({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return Promise.resolve(!0);let s=Tl(Zc(el(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),Promise.resolve(!0)}function nl({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Pc.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&Dl(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Dl(d)?al(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Pc.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function rl({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=$c(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var il=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),al=(e={x:0,y:0},t,n)=>({x:il(e.x,t[0][0],t[1][0]-(n?.width??0)),y:il(e.y,t[0][1],t[1][1]-(n?.height??0))});function ol(e,t,n){let{width:r,height:i}=Ol(n),{x:a,y:o}=n.internals.positionAbsolute;return al(e,[[a,o],[a+r,o+i]],t)}var sl=(e,t,n)=>en?-il(Math.abs(e-n),1,t)/t:0,cl=(e,t,n=15,r=40)=>[sl(e.x,r,t.width-r)*n,sl(e.y,r,t.height-r)*n],ll=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),ul=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),dl=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),fl=(e,t=[0,0])=>{let{x:n,y:r}=Jc(e)?e.internals.positionAbsolute:Yc(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},pl=(e,t=[0,0])=>{let{x:n,y:r}=Jc(e)?e.internals.positionAbsolute:Yc(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ml=(e,t)=>dl(ll(ul(e),ul(t))),hl=(e,t)=>{let n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},gl=e=>_l(e.width)&&_l(e.height)&&_l(e.x)&&_l(e.y),_l=e=>!isNaN(e)&&isFinite(e),vl=(e,t)=>{},yl=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),bl=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?yl(s,o):s},xl=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Sl(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Cl(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Sl(e,n),i=Sl(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Sl(e.top??e.y??0,n),i=Sl(e.bottom??e.y??0,n),a=Sl(e.left??e.x??0,t),o=Sl(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function wl(e,t,n,r,i,a){let{x:o,y:s}=xl(e,[t,n,r]),{x:c,y:l}=xl({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Tl=(e,t,n,r,i,a)=>{let o=Cl(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=il(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=wl(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},El=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Dl(e){return e!=null&&e!==`parent`}function Ol(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function kl(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Al(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function jl(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Ml(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Nl(e){return{...Lc,...e||{}}}function Pl(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=q(e),s=bl({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?yl(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Fl=e=>({width:e.offsetWidth,height:e.offsetHeight}),Il=e=>e?.getRootNode?.()||window?.document,Ll=[`INPUT`,`SELECT`,`TEXTAREA`];function Rl(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ll.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var zl=e=>`clientX`in e,q=(e,t)=>{let n=zl(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},J=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Fl(t)}})};function Bl({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Vl(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Hl({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case K.Left:return[t-Vl(t-r,a),n];case K.Right:return[t+Vl(r-t,a),n];case K.Top:return[t,n-Vl(n-i,a)];case K.Bottom:return[t,n+Vl(i-n,a)]}}function Ul({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top,curvature:o=.25}){let[s,c]=Hl({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Hl({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Bl({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Wl({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var ql=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Jl=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Yl=(e,t,n={})=>{if(!e.source||!e.target)return Pc.error006(),t;let r=n.getEdgeId||ql,i;return i=Kc(e)?{...e}:{...e,id:r(e)},Jl(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Xl({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Wl({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Zl={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},Ql=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function eu({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:i,offset:a,stepPosition:o}){let s=Zl[t],c=Zl[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Ql({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Wl({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}return[[e,{x:l.x+_.x,y:l.y+_.y},...m,{x:u.x+v.x,y:u.y+v.y},n],h,g,y,b]}function tu(e,t,n,r){let i=Math.min($l(e,t)/2,$l(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x{let r=``;return r=n>0&&ne.id===t):e[0])||null}function cu(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function lu(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=cu(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var uu=1e3,du=10,fu={nodeOrigin:[0,0],nodeExtent:Fc,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},pu={...fu,checkEquality:!0};function mu(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function hu(e,t,n){let r=mu(fu,n);for(let n of e.values())if(n.parentId)bu(n,e,t,r);else{let e=al(Yc(n,r.nodeOrigin),Dl(n.extent)?n.extent:r.nodeExtent,Ol(n));n.internals.positionAbsolute=e}}function gu(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function _u(e){return e===`manual`}function vu(e,t,n,r={}){let i=mu(pu,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!_u(i.zIndexMode)?uu:0,c=e.length>0;t.clear(),n.clear();for(let l of e){let e=o.get(l.id);if(i.checkEquality&&l===e?.internals.userNode)t.set(l.id,e);else{let n=al(Yc(l,i.nodeOrigin),Dl(l.extent)?l.extent:i.nodeExtent,Ol(l));e={...i.defaults,...l,measured:{width:l.measured?.width,height:l.measured?.height},internals:{positionAbsolute:n,handleBounds:gu(l,e),z:xu(l,s,i.zIndexMode),userNode:l}},t.set(l.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),l.parentId&&bu(e,t,n,r,a)}return c}function yu(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function bu(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=mu(fu,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}yu(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*du),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Su(e,u,o,s,a&&!_u(c)?uu:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function xu(e,t,n){let r=_l(e.zIndex)?e.zIndex:0;return _u(n)?r:r+(e.selected?t:0)}function Su(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=Ol(e),l=Yc(e,n),u=Dl(e.extent)?al(l,e.extent,c):l,d=al({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=ol(d,c,t));let f=xu(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Cu(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ml(a.get(n.parentId)?.expandedRect??fl(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=Ol(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=Cu(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Tu({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r),s=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(s)}function Eu(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Du(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Eu(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Eu(`target`,s,c,e,i,o),t.set(r.id,r)}}function Ou(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Ou(n,t):!1}function ku(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Au(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Ou(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function ju({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Mu({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=yl(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Nu({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=ta(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?ul(Zc(s)):null,x=v&&l?Mu({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:yl(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=nl({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=ju({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=cl(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Pl(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Au(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=ju({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=ga().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Pl(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=q(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Pl(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=q(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=q(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!(!d||p)&&(c=!1,d=!1,cancelAnimationFrame(o),s.size>0)){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=ju({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!ku(t,`.${g}`,v))&&(!_||ku(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Pu(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())hl(i,fl(e))>0&&r.push(e);return r}var Fu=250;function Iu(e,t,n,r){let i=[],a=1/0,o=Pu(e,n,t+Fu);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ou(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Lu(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ou(o,c,c.position,!0)}:c}function Ru(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function zu(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Bu=()=>!0;function Vu(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Bu,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Il(e.target),E=0,D,{x:O,y:k}=q(e),A=Ru(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Lu(i,A,r,c,t);if(!N)return;let ee=q(e,j),te=!1,P=null,F=!1,ne=null;function re(){if(!u||!j)return;let[e,t]=cl(ee,j,S);f({x:e,y:t}),E=requestAnimationFrame(re)}let ie={...N,nodeId:i,type:A,position:N.position},ae=c.get(i),I={inProgress:!0,isValid:null,from:ou(ae,ie,K.Left,!0),fromHandle:ie,fromPosition:ie.position,fromNode:ae,to:ee,toHandle:null,toPosition:Wc[ie.position],toNode:null,pointer:ee};function L(){M=!0,y(I),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&L();function oe(e){if(!M){let{x:t,y:n}=q(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;L()}if(!x()||!ie){se(e);return}let a=b();ee=q(e,j),D=Iu(bl(ee,a,!1,[1,1]),n,c,ie),te||=(re(),!0);let s=Hu(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});ne=s.handleDomNode,P=s.connection,F=zu(!!D,s.isValid);let u=c.get(i),f=u?ou(u,ie,K.Left,!0):I.from,p={...I,from:f,isValid:F,to:s.toHandle&&F?xl({x:s.toHandle.x,y:s.toHandle.y},a):ee,toHandle:s.toHandle,toPosition:F&&s.toHandle?s.toHandle.position:Wc[ie.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:ee};y(p),I=p}function se(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||ne)&&P&&F&&h?.(P);let{inProgress:t,...n}=I,r={...n,toPosition:I.toHandle?I.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),te=!1,F=!1,P=null,ne=null,T.removeEventListener(`mousemove`,oe),T.removeEventListener(`mouseup`,se),T.removeEventListener(`touchmove`,oe),T.removeEventListener(`touchend`,se)}}T.addEventListener(`mousemove`,oe),T.addEventListener(`mouseup`,se),T.addEventListener(`touchmove`,oe),T.addEventListener(`touchend`,se)}function Hu(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Bu,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=q(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Ru(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Rc.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Lu(t,e,a,u,n,!0)}return _}var Uu={onPointerDown:Vu,isValid:Hu};function Wu({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=ta(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&El()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Nc().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:ra}}var Gu=e=>({x:e.x,y:e.y,zoom:e.k}),Ku=({x:e,y:t,zoom:n})=>Cc.translate(e,t).scale(n),qu=(e,t)=>e.target.closest(`.${t}`),Ju=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Yu=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Xu=(e,t=0,n=Yu,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Zu=e=>{let t=e.ctrlKey&&El()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Qu({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(qu(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=ra(u),t=d*2**Zu(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===zc.Vertical?0:u.deltaX*f,m=i===zc.Horizontal?0:u.deltaY*f;!El()&&u.shiftKey&&i!==zc.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Gu(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,h),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,h))}}function $u({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=qu(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ed({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Gu(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function td({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Ju(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Gu(a.transform))}}function nd({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Ju(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Gu(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function rd({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(qu(d,`${l}-flow__node`)||qu(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||qu(d,s)&&m||qu(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function id({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=Nc().scaleExtent([t,n]).translateExtent(r),f=ta(e).call(d);v({x:i.x,y:i.y,zoom:il(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let p=f.on(`wheel.zoom`),m=f.on(`dblclick.zoom`);d.wheelDelta(Zu);function h(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?yo:No).transform(Xu(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function g({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:h,panOnScrollSpeed:g,preventScrolling:v,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&_();let O=i&&!S&&!r;d.clickDistance(D?1/0:!_l(E)||E<0?0:E);let k=O?Qu({zoomPanValues:l,noWheelClassName:e,d3Selection:f,d3Zoom:d,panOnScrollMode:h,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):$u({noWheelClassName:e,preventScrolling:v,d3ZoomHandler:p});if(f.on(`wheel.zoom`,k,{passive:!1}),!r){let e=ed({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});d.on(`start`,e);let t=td({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});d.on(`zoom`,t);let r=nd({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});d.on(`end`,r)}let A=rd({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});d.filter(A),x?f.on(`dblclick.zoom`,m):f.on(`dblclick.zoom`,null)}function _(){d.on(`zoom`,null)}async function v(e,t,n){let r=Ku(e),i=d?.constrain()(r,t,n);return i&&await h(i),new Promise(e=>e(i))}async function y(e,t){let n=Ku(e);return await h(n,t),new Promise(e=>e(n))}function b(e){if(f){let t=Ku(e),n=f.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&d?.transform(f,t,null,{sync:!0})}}function x(){let e=f?wc(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}function S(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?yo:No).scaleTo(Xu(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function C(e,t){return f?new Promise(n=>{d?.interpolate(t?.interpolate===`linear`?yo:No).scaleBy(Xu(f,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function w(e){d?.scaleExtent(e)}function T(e){d?.translateExtent(e)}function E(e){let t=!_l(e)||e<0?0:e;d?.clickDistance(t)}return{update:g,destroy:_,setViewport:y,setViewportConstrained:v,getViewport:x,scaleTo:S,scaleBy:C,setScaleExtent:w,setTranslateExtent:T,syncViewport:b,setClickDistance:E}}var ad;(function(e){e.Line=`line`,e.Handle=`handle`})(ad||={});function od({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function sd(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function cd(e,t){return Math.max(0,t-e)}function ld(e,t){return Math.max(0,e-t)}function ud(e,t,n){return Math.max(0,t-e,e-n)}function dd(e,t){return e?!t:t}function fd(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=ud(E,h,g),j=ud(D,_,v);if(o){let e=0,t=0;c&&w<0?e=cd(y+w+O,o[0][0]):!c&&w>0&&(e=ld(y+E+O,o[1][0])),l&&T<0?t=cd(b+T+k,o[0][1]):!l&&T>0&&(t=ld(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=ld(y+w,s[0][0]):!c&&w<0&&(e=cd(y+E,s[1][0])),l&&T>0?t=ld(b+T,s[0][1]):!l&&T<0&&(t=cd(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=ud(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?ld(b+k+E/C,o[1][1])*C:cd(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?cd(b+E/C,s[1][1])*C:ld(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=ud(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?ld(y+D*C+O,o[1][0])/C:cd(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?cd(y+D*C,s[1][0])/C:ld(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(dd(c,l)?-w:w)/C:w=(dd(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var pd={width:0,height:0,x:0,y:0},md={...pd,pointerX:0,pointerY:0,aspectRatio:1};function hd(e){return[[0,0],[e.measured.width,e.measured.height]]}function gd(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function _d({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=ta(e),o={controlDirection:sd(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...pd},h={...md};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:sd(e)};let g,_=null,v=[],y,b,x,S=!1,C=ga().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Pl(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId),b=y&&g.extent===`parent`?hd(y):void 0),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=gd(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=Pl(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=fd(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,ee=A!==f&&M;if(!N&&!ee&&!j&&!M)return;if((N||ee||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=ee?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var vd=o((e=>{var t=d();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),yd=o(((e,t)=>{t.exports=vd()})),bd=o((e=>{var t=d(),n=yd();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),xd=l(o(((e,t)=>{t.exports=bd()}))(),1),Sd=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Y=e=>e?Sd(e):Sd,{useDebugValue:Cd}=v.default,{useSyncExternalStoreWithSelector:wd}=xd.default,Td=e=>e;function Ed(e,t=Td,n){let r=wd(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Cd(r),r}var Dd=(e,t)=>{let n=Y(e),r=(e,r=t)=>Ed(n,e,r);return Object.assign(r,n),r},Od=(e,t)=>e?Dd(e,t):Dd;function kd(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Ad=h(),jd=(0,v.createContext)(null),Md=jd.Provider,Nd=Pc.error001();function Pd(e,t){let n=(0,v.useContext)(jd);if(n===null)throw Error(Nd);return Ed(n,e,t)}function Fd(){let e=(0,v.useContext)(jd);if(e===null)throw Error(Nd);return(0,v.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Id={display:`none`},Ld={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Rd=`react-flow__node-desc`,zd=`react-flow__edge-desc`,Bd=`react-flow__aria-live`,Vd=e=>e.ariaLiveMessage,Hd=e=>e.ariaLabelConfig;function Ud({rfId:e}){let t=Pd(Vd);return(0,H.jsx)(`div`,{id:`${Bd}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Ld,children:t})}function Wd({rfId:e,disableKeyboardA11y:t}){let n=Pd(Hd);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{id:`${Rd}-${e}`,style:Id,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,H.jsx)(`div`,{id:`${zd}-${e}`,style:Id,children:n[`edge.a11yDescription.default`]}),!t&&(0,H.jsx)(Ud,{rfId:e})]})}var Gd=(0,v.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,H.jsx)(`div`,{className:Xn([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Gd.displayName=`Panel`;function Kd({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,H.jsx)(Gd,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev`,children:(0,H.jsx)(`a`,{href:`https://reactflow.dev`,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var qd=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Jd=e=>e.id;function Yd(e,t){return kd(e.selectedNodes.map(Jd),t.selectedNodes.map(Jd))&&kd(e.selectedEdges.map(Jd),t.selectedEdges.map(Jd))}function Xd({onSelectionChange:e}){let t=Fd(),{selectedNodes:n,selectedEdges:r}=Pd(qd,Yd);return(0,v.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Zd=e=>!!e.onSelectionChangeHandlers;function Qd({onSelectionChange:e}){let t=Pd(Zd);return e||t?(0,H.jsx)(Xd,{onSelectionChange:e}):null}var $d=[0,0],ef={x:0,y:0,zoom:1},tf=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],nf=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),rf={translateExtent:Fc,nodeOrigin:$d,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function af(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Pd(nf,kd),l=Fd();(0,v.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=rf,s()}),[]);let u=(0,v.useRef)(rf);return(0,v.useEffect)(()=>{for(let s of tf){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Nl(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},tf.map(t=>e[t])),null}function of(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function sf(e){let[t,n]=(0,v.useState)(e===`system`?null:e);return(0,v.useEffect)(()=>{if(e!==`system`){n(e);return}let t=of(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?of()?.matches?`dark`:`light`:t}var cf=typeof document<`u`?document:null;function lf(e=null,t={target:cf,actInsideInputWithModifier:!0}){let[n,r]=(0,v.useState)(!1),i=(0,v.useRef)(!1),a=(0,v.useRef)(new Set([])),[o,s]=(0,v.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,` -`).replace(` - -`,` -+`).split(` -`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,v.useEffect)(()=>{let n=t?.target??cf,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Rl(e))return!1;let n=df(e.code,s);if(a.current.add(e[n]),uf(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=df(e.code,s);uf(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function uf(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function df(e,t){return t.includes(e)?`code`:`key`}var ff=()=>{let e=Fd();return(0,v.useMemo)(()=>({zoomIn:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomOut:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=Tl(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return bl(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=xl(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function pf(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)mf(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function mf(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function hf(e,t){return pf(e,t)}function gf(e,t){return pf(e,t)}function _f(e,t){return{id:e,type:`select`,selected:t}}function vf(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(_f(a.id,e)))}return r}function yf({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function bf(e){return{id:e.id,type:`remove`}}var xf=e=>qc(e),Sf=e=>Kc(e);function Cf(e){return(0,v.forwardRef)(e)}var wf=typeof window<`u`?v.useLayoutEffect:v.useEffect;function Tf(e){let[t,n]=(0,v.useState)(BigInt(0)),[r]=(0,v.useState)(()=>Ef(()=>n(e=>e+BigInt(1))));return wf(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Ef(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Df=(0,v.createContext)(null);function Of({children:e}){let t=Fd(),n=Tf((0,v.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=yf({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Tf((0,v.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(yf({items:s,lookup:o}))},[])),i=(0,v.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,H.jsx)(Df.Provider,{value:i,children:e})}function kf(){let e=(0,v.useContext)(Df);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Af=e=>!!e.panZoom;function jf(){let e=ff(),t=Fd(),n=kf(),r=Pd(Af),i=(0,v.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=xf(e)?e:n.get(e.id),a=i.parentId?Al(i.position,i.measured,i.parentId,n,r):i.position;return fl({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&xf(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Sf(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await rl({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(bf);o?.(f),c(e)}if(m){let e=d.map(bf);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=gl(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=fl(s?r:a),l=hl(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=gl(e)?e:a(e);if(!r)return!1;let i=hl(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Xc(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Ml();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,v.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Mf=e=>e.selected,Nf=typeof window<`u`?window:void 0;function Pf({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Fd(),{deleteElements:r}=jf(),i=lf(e,{actInsideInputWithModifier:!1}),a=lf(t,{target:Nf});(0,v.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Mf),edges:e.filter(Mf)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,v.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Ff(e){let t=Fd();(0,v.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=Fl(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Pc.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var If={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Lf=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Rf({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=zc.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:y,paneClickDistance:b,selectionOnDrag:x}){let S=Fd(),C=(0,v.useRef)(null),{userSelectionActive:w,lib:T,connectionInProgress:E}=Pd(Lf,kd),D=lf(f),O=(0,v.useRef)();Ff(C);let k=(0,v.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),y||S.setState({transform:e})},[_,y]);return(0,v.useEffect)(()=>{if(C.current){O.current=id({domNode:C.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>S.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=S.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=S.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=S.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return S.setState({panZoom:O.current,transform:[e,t,n],domNode:C.current.closest(`.react-flow`)}),()=>{O.current?.destroy()}}},[]),(0,v.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:D,preventScrolling:p,noPanClassName:g,userSelectionActive:w,noWheelClassName:h,lib:T,onTransformChange:k,connectionInProgress:E,selectionOnDrag:x,paneClickDistance:b})},[e,t,n,r,i,a,o,s,D,p,g,w,h,T,k,E,x,b]),(0,H.jsx)(`div`,{className:`react-flow__renderer`,ref:C,style:If,children:m})}var zf=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Bf(){let{userSelectionActive:e,userSelectionRect:t}=Pd(zf,kd);return e&&t?(0,H.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Vf=(e,t)=>n=>{n.target===t.current&&e?.(n)},Hf=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Uf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Bc.Full,panOnDrag:r,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:o,onSelectionEnd:s,onPaneClick:c,onPaneContextMenu:l,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:p,children:m}){let h=Fd(),{userSelectionActive:g,elementsSelectable:_,dragging:y,connectionInProgress:b}=Pd(Hf,kd),x=_&&(e||g),S=(0,v.useRef)(null),C=(0,v.useRef)(),w=(0,v.useRef)(new Set),T=(0,v.useRef)(new Set),E=(0,v.useRef)(!1),D=e=>{if(E.current||b){E.current=!1;return}c?.(e),h.getState().resetSelectedElements(),h.setState({nodesSelectionActive:!1})},O=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}l?.(e)},k=u?e=>u(e):void 0;return(0,H.jsxs)(`div`,{className:Xn([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:y,selection:e}]),onClick:x?void 0:Vf(D,S),onContextMenu:Vf(O,S),onWheel:Vf(k,S),onPointerEnter:x?void 0:d,onPointerMove:x?e=>{let{userSelectionRect:r,transform:a,nodeLookup:s,edgeLookup:c,connectionLookup:l,triggerNodeChanges:u,triggerEdgeChanges:d,defaultEdgeOptions:f,resetSelectedElements:p}=h.getState();if(!C.current||!r)return;let{x:m,y:g}=q(e.nativeEvent,C.current),{startX:_,startY:v}=r;if(!E.current){let n=t?0:i;if(Math.hypot(m-_,g-v)<=n)return;p(),o?.(e)}E.current=!0;let y={startX:_,startY:v,x:m<_?m:_,y:ge.id)),T.current=new Set;let S=f?.selectable??!0;for(let e of w.current){let t=l.get(e);if(t)for(let{edgeId:e}of t.values()){let t=c.get(e);t&&(t.selectable??S)&&T.current.add(e)}}jl(b,w.current)||u(vf(s,w.current,!0)),jl(x,T.current)||d(vf(c,T.current)),h.setState({userSelectionRect:y,userSelectionActive:!0,nodesSelectionActive:!1})}:f,onPointerUp:x?e=>{e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!g&&e.target===S.current&&h.getState().userSelectionRect&&D?.(e),h.setState({userSelectionActive:!1,userSelectionRect:null}),E.current&&(s?.(e),h.setState({nodesSelectionActive:w.current.size>0})))}:void 0,onPointerDownCapture:x?n=>{let{domNode:r}=h.getState();if(C.current=r?.getBoundingClientRect(),!C.current)return;let i=n.target===S.current;if(!i&&n.target.closest(`.nokey`)||!e||!(a&&i||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),E.current=!1;let{x:o,y:s}=q(n.nativeEvent,C.current);h.setState({userSelectionRect:{width:0,height:0,startX:o,startY:s,x:o,y:s}}),i||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:x?e=>{E.current&&=(e.stopPropagation(),!1)}:void 0,onPointerLeave:p,ref:S,style:If,children:[m,(0,H.jsx)(Bf,{})]})}function Wf({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Pc.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Gf({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Fd(),[c,l]=(0,v.useState)(!1),u=(0,v.useRef)();return(0,v.useEffect)(()=>{u.current=Nu({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Wf({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}})},[]),(0,v.useEffect)(()=>{if(!(t||!e.current||!u.current))return u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o}),()=>{u.current?.destroy()}},[n,r,t,a,e,i,o]),c}var Kf=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function qf(){let e=Fd();return(0,v.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Kf(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=yl(t,i));let{position:a,positionAbsolute:s}=nl({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Jf=(0,v.createContext)(null),Yf=Jf.Provider;Jf.Consumer;var Xf=()=>(0,v.useContext)(Jf),Zf=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Qf=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o,u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Rc.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function $f({type:e=`source`,position:t=K.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Fd(),_=Xf(),{connectOnClick:v,noPanClassName:y,rfId:b}=Pd(Zf,kd),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=Pd(Qf(_,m,e),kd);_||g.getState().onError?.(`010`,Pc.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t}=g.getState();t(Yl(i,e))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=zl(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Uu.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,H.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Xn([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Il(t.target),h=n||c,{connection:v,isValid:y}=Uu.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var ep=(0,v.memo)(Cf($f));function tp({data:e,isConnectable:t,sourcePosition:n=K.Bottom}){return(0,H.jsxs)(H.Fragment,{children:[e?.label,(0,H.jsx)(ep,{type:`source`,position:n,isConnectable:t})]})}function np({data:e,isConnectable:t,targetPosition:n=K.Top,sourcePosition:r=K.Bottom}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:n,isConnectable:t}),e?.label,(0,H.jsx)(ep,{type:`source`,position:r,isConnectable:t})]})}function rp(){return null}function ip({data:e,isConnectable:t,targetPosition:n=K.Top}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:n,isConnectable:t}),e?.label]})}var ap={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},op={input:tp,default:np,output:ip,group:rp};function sp(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var cp=e=>{let{width:t,height:n,x:r,y:i}=Zc(e.nodeLookup,{filter:e=>!!e.selected});return{width:_l(t)?t:null,height:_l(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function lp({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Fd(),{width:i,height:a,transformString:o,userSelectionActive:s}=Pd(cp,kd),c=qf(),l=(0,v.useRef)(null);(0,v.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Gf({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,H.jsx)(`div`,{className:Xn([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,H.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(ap,e.key)&&(e.preventDefault(),c({direction:ap[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var up=typeof window<`u`?window:void 0,dp=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function fp({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,defaultViewport:T,translateExtent:E,minZoom:D,maxZoom:O,preventScrolling:k,onSelectionContextMenu:A,noWheelClassName:j,noPanClassName:M,disableKeyboardA11y:N,onViewportChange:ee,isControlledViewport:te}){let{nodesSelectionActive:P,userSelectionActive:F}=Pd(dp,kd),ne=lf(l,{target:up}),re=lf(h,{target:up}),ie=re||w,ae=re||b,I=u&&ie!==!0,L=ne||F||I;return Pf({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,H.jsx)(Rf,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:ae,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!ne&&ie,defaultViewport:T,translateExtent:E,minZoom:D,maxZoom:O,zoomActivationKeyCode:g,preventScrolling:k,noWheelClassName:j,noPanClassName:M,onViewportChange:ee,isControlledViewport:te,paneClickDistance:s,selectionOnDrag:I,children:(0,H.jsxs)(Uf,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ie,isSelecting:!!L,selectionMode:d,selectionKeyPressed:ne,paneClickDistance:s,selectionOnDrag:I,children:[e,P&&(0,H.jsx)(lp,{onSelectionContextMenu:A,noPanClassName:M,disableKeyboardA11y:N})]})})}fp.displayName=`FlowRenderer`;var pp=(0,v.memo)(fp),mp=e=>t=>e?Qc(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function hp(e){return Pd((0,v.useCallback)(mp(e),[e]),kd)}var gp=e=>e.updateNodeInternals;function _p(){let e=Pd(gp),[t]=(0,v.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,v.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function vp({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Fd(),a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=(0,v.useRef)(e.sourcePosition),c=(0,v.useRef)(e.targetPosition),l=(0,v.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,v.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,v.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,v.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function yp({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Pd(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},kd),S=y.type||`default`,C=g?.[S]||op[S];C===void 0&&(v?.(`003`,Pc.error003(S)),S=`default`,C=g?.default||op.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=Fd(),k=kl(y),A=vp({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Gf({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=qf();if(y.hidden)return null;let N=Ol(y),ee=sp(y),te=T||w||t||n||r||i,P=n?e=>n(e,{...b.userNode}):void 0,F=r?e=>r(e,{...b.userNode}):void 0,ne=i?e=>i(e,{...b.userNode}):void 0,re=a?e=>a(e,{...b.userNode}):void 0,ie=o?e=>o(e,{...b.userNode}):void 0,ae=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Wf({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},I=t=>{if(!(Rl(t.nativeEvent)||m)){if(Ic.includes(t.key)&&T)Wf({id:e,store:O,unselect:t.key===`Escape`,nodeRef:A});else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(ap,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:ap[t.key],factor:t.shiftKey?4:1})}}},L=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(Qc(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,H.jsx)(`div`,{className:Xn([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:te?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...ee},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:P,onMouseMove:F,onMouseLeave:ne,onContextMenu:re,onClick:ae,onDoubleClick:ie,onKeyDown:D?I:void 0,tabIndex:D?0:void 0,onFocus:D?L:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Rd}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,H.jsx)(Yf,{value:e,children:(0,H.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var bp=(0,v.memo)(yp),xp=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Sp(e){let{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:a}=Pd(xp,kd),o=hp(e.onlyRenderVisibleElements),s=_p();return(0,H.jsx)(`div`,{className:`react-flow__nodes`,style:If,children:o.map(o=>(0,H.jsx)(bp,{id:o,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},o))})}Sp.displayName=`NodeRenderer`;var Cp=(0,v.memo)(Sp);function wp(e){return Pd((0,v.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Kl({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),kd)}var Tp=({color:e=`none`,strokeWidth:t=1})=>(0,H.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),Ep=({color:e=`none`,strokeWidth:t=1})=>(0,H.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),Dp={[Uc.Arrow]:Tp,[Uc.ArrowClosed]:Ep};function Op(e){let t=Fd();return(0,v.useMemo)(()=>Object.prototype.hasOwnProperty.call(Dp,e)?Dp[e]:(t.getState().onError?.(`009`,Pc.error009(e)),null),[e])}var kp=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Op(t);return c?(0,H.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,H.jsx)(c,{color:n,strokeWidth:o})}):null},Ap=({defaultColor:e,rfId:t})=>{let n=Pd(e=>e.edges),r=Pd(e=>e.defaultEdgeOptions),i=(0,v.useMemo)(()=>lu(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,H.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,H.jsx)(`defs`,{children:i.map(e=>(0,H.jsx)(kp,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Ap.displayName=`MarkerDefinitions`;var jp=(0,v.memo)(Ap);function Mp({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,v.useState)({x:1,y:0,width:0,height:0}),p=Xn([`react-flow__edge-textwrapper`,l]),m=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,H.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,H.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,H.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Mp.displayName=`EdgeText`;var Np=(0,v.memo)(Mp);function Pp({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`path`,{...u,d:e,fill:`none`,className:Xn([`react-flow__edge-path`,u.className])}),l?(0,H.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&_l(t)&&_l(n)?(0,H.jsx)(Np,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Fp({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===K.Left||e===K.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Ip({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:a=K.Top}){let[o,s]=Fp({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Fp({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Bl({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Lp(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Ip({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,H.jsx)(Pp,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Rp=Lp({isInternal:!1}),zp=Lp({isInternal:!0});Rp.displayName=`SimpleBezierEdge`,zp.displayName=`SimpleBezierEdgeInternal`;function Bp(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=K.Bottom,targetPosition:m=K.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=nu({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,H.jsx)(Pp,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Vp=Bp({isInternal:!1}),Hp=Bp({isInternal:!0});Vp.displayName=`SmoothStepEdge`,Hp.displayName=`SmoothStepEdgeInternal`;function Up(e){return(0,v.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,H.jsx)(Vp,{...n,id:r,pathOptions:(0,v.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Wp=Up({isInternal:!1}),Gp=Up({isInternal:!0});Wp.displayName=`StepEdge`,Gp.displayName=`StepEdgeInternal`;function Kp(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Xl({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,H.jsx)(Pp,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var qp=Kp({isInternal:!1}),Jp=Kp({isInternal:!0});qp.displayName=`StraightEdge`,Jp.displayName=`StraightEdgeInternal`;function Yp(e){return(0,v.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=K.Bottom,targetPosition:s=K.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Ul({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,H.jsx)(Pp,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Xp=Yp({isInternal:!1}),Zp=Yp({isInternal:!0});Xp.displayName=`BezierEdge`,Zp.displayName=`BezierEdgeInternal`;var Qp={default:Zp,straight:Jp,step:Gp,smoothstep:Hp,simplebezier:zp},$p={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},em=(e,t,n)=>n===K.Left?e-t:n===K.Right?e+t:e,tm=(e,t,n)=>n===K.Top?e-t:n===K.Bottom?e+t:e,nm=`react-flow__edgeupdater`;function rm({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,H.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Xn([nm,`${nm}-${s}`]),cx:em(t,r,e),cy:tm(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function im({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Fd(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Uu.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,H.jsxs)(H.Fragment,{children:[(e===!0||e===`source`)&&(0,H.jsx)(rm,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,H.jsx)(rm,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function am({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:y}){let b=Pd(t=>t.edgeLookup.get(e)),x=Pd(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||Qp[S];C===void 0&&(_?.(`011`,Pc.error011(S)),S=`default`,C=h?.default||Qp.default);let w=!!(b.focusable||t&&b.focusable===void 0),T=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),E=!!(b.selectable||r&&b.selectable===void 0),D=(0,v.useRef)(null),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)(!1),M=Fd(),{zIndex:N,sourceX:ee,sourceY:te,targetX:P,targetY:F,sourcePosition:ne,targetPosition:re}=Pd((0,v.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return{zIndex:b.zIndex,...$p};let i=iu({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_});return{zIndex:Gl({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...i||$p}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex]),kd),ie=(0,v.useMemo)(()=>b.markerStart?`url('#${cu(b.markerStart,m)}')`:void 0,[b.markerStart,m]),ae=(0,v.useMemo)(()=>b.markerEnd?`url('#${cu(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||ee===null||te===null||P===null||F===null)return null;let I=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();E&&(M.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),D.current?.blur()):n([e])),i&&i(t,b)},L=a?e=>{a(e,{...b})}:void 0,oe=o?e=>{o(e,{...b})}:void 0,se=s?e=>{s(e,{...b})}:void 0,ce=c?e=>{c(e,{...b})}:void 0,le=l?e=>{l(e,{...b})}:void 0;return(0,H.jsx)(`svg`,{style:{zIndex:N},children:(0,H.jsxs)(`g`,{className:Xn([`react-flow__edge`,`react-flow__edge-${S}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!E&&!i,updating:O,selectable:E}]),onClick:I,onDoubleClick:L,onContextMenu:oe,onMouseEnter:se,onMouseMove:ce,onMouseLeave:le,onKeyDown:w?t=>{if(!y&&Ic.includes(t.key)&&E){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${zd}-${m}`:void 0,ref:D,...b.domAttributes,children:[!A&&(0,H.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:E,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:ee,sourceY:te,targetX:P,targetY:F,sourcePosition:ne,targetPosition:re,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:ie,markerEnd:ae,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),T&&(0,H.jsx)(im,{edge:b,isReconnectable:T,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:ee,sourceY:te,targetX:P,targetY:F,sourcePosition:ne,targetPosition:re,setUpdateHover:k,setReconnecting:j})]})})}var om=(0,v.memo)(am),sm=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function cm({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Pd(sm,kd),b=wp(t);return(0,H.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,H.jsx)(jp,{defaultColor:e,rfId:n}),b.map(e=>(0,H.jsx)(om,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}cm.displayName=`EdgeRenderer`;var lm=(0,v.memo)(cm),um=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function dm({children:e}){return(0,H.jsx)(`div`,{className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Pd(um)},children:e})}function fm(e){let t=jf(),n=(0,v.useRef)(!1);(0,v.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var pm=e=>e.panZoom?.syncViewport;function mm(e){let t=Pd(pm),n=Fd();return(0,v.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function hm(e){return e.connection.inProgress?{...e.connection,to:bl(e.connection.to,e.transform)}:{...e.connection}}function gm(e){return e?t=>e(hm(t)):hm}function _m(e){return Pd(gm(e),kd)}var vm=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ym({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Pd(vm,kd);return a&&i&&c?(0,H.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,H.jsx)(`g`,{className:Xn([`react-flow__connection`,Gc(s)]),children:(0,H.jsx)(bm,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var bm=({style:e,type:t=Hc.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=_m();if(!i)return;if(n)return(0,H.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Gc(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Hc.Bezier:[m]=Ul(h);break;case Hc.SimpleBezier:[m]=Ip(h);break;case Hc.Step:[m]=nu({...h,borderRadius:0});break;case Hc.SmoothStep:[m]=nu(h);break;default:[m]=Xl(h)}return(0,H.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};bm.displayName=`ConnectionLine`;var xm={};function Sm(e=xm){(0,v.useRef)(e),Fd(),(0,v.useEffect)(()=>{},[e])}function Cm(){Fd(),(0,v.useRef)(!1),(0,v.useEffect)(()=>{},[])}function wm({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:ee,panOnScroll:te,panOnScrollSpeed:P,panOnScrollMode:F,zoomOnDoubleClick:ne,panOnDrag:re,onPaneClick:ie,onPaneMouseEnter:ae,onPaneMouseMove:I,onPaneMouseLeave:L,onPaneScroll:oe,onPaneContextMenu:se,paneClickDistance:ce,nodeClickDistance:le,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,viewport:we,onViewportChange:Te}){return Sm(e),Sm(t),Cm(),fm(n),mm(we),(0,H.jsx)(pp,{onPaneClick:ie,onPaneMouseEnter:ae,onPaneMouseMove:I,onPaneMouseLeave:L,onPaneContextMenu:se,onPaneScroll:oe,paneClickDistance:ce,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:ee,zoomOnDoubleClick:ne,panOnScroll:te,panOnScrollSpeed:P,panOnScrollMode:F,panOnDrag:re,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,onViewportChange:Te,isControlledViewport:!!we,children:(0,H.jsxs)(dm,{children:[(0,H.jsx)(lm,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,onlyRenderVisibleElements:T,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,defaultMarkerColor:M,noPanClassName:be,disableKeyboardA11y:xe,rfId:Ce}),(0,H.jsx)(ym,{style:h,type:m,component:g,containerStyle:_}),(0,H.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,H.jsx)(Cp,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:le,onlyRenderVisibleElements:T,noPanClassName:be,noDragClassName:ve,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce}),(0,H.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}wm.displayName=`GraphView`;var Tm=(0,v.memo)(wm),Em=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Fc;Du(h,g,_);let x=vu(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=Tl(Zc(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Fc,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Rc.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Vc},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:vl,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Lc,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Dm=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Od((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await tl({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...Em({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o}=m(),s=vu(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o});a&&s?(h(),p({nodes:e,nodesInitialized:s,fitViewQueued:!1,fitViewOptions:void 0})):p({nodes:e,nodesInitialized:s})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Du(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=wu(e,n,r,i,a,o,l);d&&(hu(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=ou(e,o.fromHandle,K.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Cu(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(hf(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(gf(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>_f(e,!0)));return}i(vf(r,new Set([...e]),!0)),a(vf(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>_f(e,!0)));return}a(vf(n,new Set([...e]))),i(vf(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(_f(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(_f(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,_f(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,_f(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(vu(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Tu({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return Promise.resolve(!1);let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{p({connection:{...Vc}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...Em()})}},Object.is);function Om({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,v.useState)(()=>Dm({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,H.jsx)(Md,{value:m,children:(0,H.jsx)(Of,{children:p})})}function km({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,v.useContext)(jd)?(0,H.jsx)(H.Fragment,{children:e}):(0,H.jsx)(Om,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Am={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function jm({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:P,onBeforeDelete:F,connectionMode:ne,connectionLineType:re=Hc.Bezier,connectionLineStyle:ie,connectionLineComponent:ae,connectionLineContainerStyle:I,deleteKeyCode:L=`Backspace`,selectionKeyCode:oe=`Shift`,selectionOnDrag:se=!1,selectionMode:ce=Bc.Full,panActivationKeyCode:le=`Space`,multiSelectionKeyCode:ue=El()?`Meta`:`Control`,zoomActivationKeyCode:de=El()?`Meta`:`Control`,snapToGrid:fe,snapGrid:pe,onlyRenderVisibleElements:me=!1,selectNodesOnDrag:he,nodesDraggable:ge,autoPanOnNodeFocus:_e,nodesConnectable:ve,nodesFocusable:ye,nodeOrigin:be=$d,edgesFocusable:xe,edgesReconnectable:Se,elementsSelectable:Ce=!0,defaultViewport:we=ef,minZoom:Te=.5,maxZoom:Ee=2,translateExtent:De=Fc,preventScrolling:Oe=!0,nodeExtent:ke,defaultMarkerColor:Ae=`#b1b1b7`,zoomOnScroll:je=!0,zoomOnPinch:Me=!0,panOnScroll:R=!1,panOnScrollSpeed:Ne=.5,panOnScrollMode:z=zc.Free,zoomOnDoubleClick:Pe=!0,panOnDrag:Fe=!0,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:B,onPaneScroll:V,onPaneContextMenu:ze,paneClickDistance:Be=1,nodeClickDistance:Ve=0,children:He,onReconnect:Ue,onReconnectStart:We,onReconnectEnd:Ge,onEdgeContextMenu:Ke,onEdgeDoubleClick:qe,onEdgeMouseEnter:Je,onEdgeMouseMove:Ye,onEdgeMouseLeave:Xe,reconnectRadius:Ze=10,onNodesChange:Qe,onEdgesChange:U,noDragClassName:$e=`nodrag`,noWheelClassName:et=`nowheel`,noPanClassName:tt=`nopan`,fitView:nt,fitViewOptions:rt,connectOnClick:it,attributionPosition:at,proOptions:ot,defaultEdgeOptions:st,elevateNodesOnSelect:ct=!0,elevateEdgesOnSelect:lt=!1,disableKeyboardA11y:ut=!1,autoPanOnConnect:dt,autoPanOnNodeDrag:ft,autoPanSpeed:pt,connectionRadius:mt,isValidConnection:ht,onError:gt,style:_t,id:vt,nodeDragThreshold:yt,connectionDragThreshold:bt,viewport:xt,onViewportChange:St,width:Ct,height:wt,colorMode:Tt=`light`,debug:Et,onScroll:Dt,ariaLabelConfig:Ot,zIndexMode:kt=`basic`,...At},jt){let Mt=vt||`1`,Nt=sf(Tt),Pt=(0,v.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Dt?.(e)},[Dt]);return(0,H.jsx)(`div`,{"data-testid":`rf__wrapper`,...At,onScroll:Pt,style:{..._t,...Am},ref:jt,className:Xn([`react-flow`,i,Nt]),id:vt,role:`application`,children:(0,H.jsxs)(km,{nodes:e,edges:t,width:Ct,height:wt,fitView:nt,fitViewOptions:rt,minZoom:Te,maxZoom:Ee,nodeOrigin:be,nodeExtent:ke,zIndexMode:kt,children:[(0,H.jsx)(Tm,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:re,connectionLineStyle:ie,connectionLineComponent:ae,connectionLineContainerStyle:I,selectionKeyCode:oe,selectionOnDrag:se,selectionMode:ce,deleteKeyCode:L,multiSelectionKeyCode:ue,panActivationKeyCode:le,zoomActivationKeyCode:de,onlyRenderVisibleElements:me,defaultViewport:we,translateExtent:De,minZoom:Te,maxZoom:Ee,preventScrolling:Oe,zoomOnScroll:je,zoomOnPinch:Me,zoomOnDoubleClick:Pe,panOnScroll:R,panOnScrollSpeed:Ne,panOnScrollMode:z,panOnDrag:Fe,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:B,onPaneScroll:V,onPaneContextMenu:ze,paneClickDistance:Be,nodeClickDistance:Ve,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:P,onReconnect:Ue,onReconnectStart:We,onReconnectEnd:Ge,onEdgeContextMenu:Ke,onEdgeDoubleClick:qe,onEdgeMouseEnter:Je,onEdgeMouseMove:Ye,onEdgeMouseLeave:Xe,reconnectRadius:Ze,defaultMarkerColor:Ae,noDragClassName:$e,noWheelClassName:et,noPanClassName:tt,rfId:Mt,disableKeyboardA11y:ut,nodeExtent:ke,viewport:xt,onViewportChange:St}),(0,H.jsx)(af,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ge,autoPanOnNodeFocus:_e,nodesConnectable:ve,nodesFocusable:ye,edgesFocusable:xe,edgesReconnectable:Se,elementsSelectable:Ce,elevateNodesOnSelect:ct,elevateEdgesOnSelect:lt,minZoom:Te,maxZoom:Ee,nodeExtent:ke,onNodesChange:Qe,onEdgesChange:U,snapToGrid:fe,snapGrid:pe,connectionMode:ne,translateExtent:De,connectOnClick:it,defaultEdgeOptions:st,fitView:nt,fitViewOptions:rt,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:N,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:tt,nodeOrigin:be,rfId:Mt,autoPanOnConnect:dt,autoPanOnNodeDrag:ft,autoPanSpeed:pt,onError:gt,connectionRadius:mt,isValidConnection:ht,selectNodesOnDrag:he,nodeDragThreshold:yt,connectionDragThreshold:bt,onBeforeDelete:F,debug:Et,ariaLabelConfig:Ot,zIndexMode:kt}),(0,H.jsx)(Qd,{onSelectionChange:A}),He,(0,H.jsx)(Kd,{proOptions:ot,position:at}),(0,H.jsx)(Wd,{rfId:Mt,disableKeyboardA11y:ut})]})})}var Mm=Cf(jm),Nm=e=>e.domNode?.querySelector(`.react-flow__edgelabel-renderer`);function Pm({children:e}){let t=Pd(Nm);return t?(0,Ad.createPortal)(e,t):null}function Fm(e){let[t,n]=(0,v.useState)(e);return[t,n,(0,v.useCallback)(e=>n(t=>hf(e,t)),[])]}function Im(e){let[t,n]=(0,v.useState)(e);return[t,n,(0,v.useCallback)(e=>n(t=>gf(e,t)),[])]}Pc.error014();function Lm({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,H.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Xn([`react-flow__background-pattern`,n,r])})}function Rm({radius:e,className:t}){return(0,H.jsx)(`circle`,{cx:e,cy:e,r:e,className:Xn([`react-flow__background-pattern`,`dots`,t])})}var zm;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(zm||={});var Bm={[zm.Dots]:1,[zm.Lines]:1,[zm.Cross]:6},Vm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Hm({id:e,variant:t=zm.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,v.useRef)(null),{transform:f,patternId:p}=Pd(Vm,kd),m=r||Bm[t],h=t===zm.Dots,g=t===zm.Cross,_=Array.isArray(n)?n:[n,n],y=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=g?[b,b]:y,C=[x[0]*f[2]||1+S[0]/2,x[1]*f[2]||1+S[1]/2],w=`${p}${e||``}`;return(0,H.jsxs)(`svg`,{className:Xn([`react-flow__background`,l]),style:{...c,...If,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,H.jsx)(`pattern`,{id:w,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,H.jsx)(Rm,{radius:b/2,className:u}):(0,H.jsx)(Lm,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,H.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}Hm.displayName=`Background`;var Um=(0,v.memo)(Hm);function Wm(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,H.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Gm(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,H.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Km(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,H.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function qm(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,H.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Jm(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,H.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Ym({children:e,className:t,...n}){return(0,H.jsx)(`button`,{type:`button`,className:Xn([`react-flow__controls-button`,t]),...n,children:e})}var Xm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Zm({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Fd(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Pd(Xm,kd),{zoomIn:y,zoomOut:b,fitView:x}=jf();return(0,H.jsxs)(Gd,{className:Xn([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Ym,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,H.jsx)(Wm,{})}),(0,H.jsx)(Ym,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,H.jsx)(Gm,{})})]}),n&&(0,H.jsx)(Ym,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,H.jsx)(Km,{})}),r&&(0,H.jsx)(Ym,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,H.jsx)(Jm,{}):(0,H.jsx)(qm,{})}),u]})}Zm.displayName=`Controls`;var Qm=(0,v.memo)(Zm);function $m({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,H.jsx)(`rect`,{className:Xn([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var eh=(0,v.memo)($m),th=e=>e.nodes.map(e=>e.id),nh=e=>e instanceof Function?e:()=>e;function rh({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=eh,onClick:o}){let s=Pd(th,kd),c=nh(t),l=nh(e),u=nh(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,H.jsx)(H.Fragment,{children:s.map(e=>(0,H.jsx)(ah,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function ih({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Pd(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=Ol(r);return{node:r,x:i,y:a,width:o,height:s}},kd);return!l||l.hidden||!kl(l)?null:(0,H.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var ah=(0,v.memo)(ih),oh=(0,v.memo)(rh),sh=200,ch=150,lh=e=>!e.hidden,uh=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ml(Zc(e.nodeLookup,{filter:lh}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},dh=`react-flow__minimap-desc`;function fh({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:y,zoomStep:b=1,offsetScale:x=5}){let S=Fd(),C=(0,v.useRef)(null),{boundingRect:w,viewBB:T,rfId:E,panZoom:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=Pd(uh,kd),M=e?.width??sh,N=e?.height??ch,ee=w.width/M,te=w.height/N,P=Math.max(ee,te),F=P*M,ne=P*N,re=x*P,ie=w.x-(F-w.width)/2-re,ae=w.y-(ne-w.height)/2-re,I=F+re*2,L=ne+re*2,oe=`${dh}-${E}`,se=(0,v.useRef)(0),ce=(0,v.useRef)();se.current=P,(0,v.useEffect)(()=>{if(C.current&&D)return ce.current=Wu({domNode:C.current,panZoom:D,getTransform:()=>S.getState().transform,getViewScale:()=>se.current}),()=>{ce.current?.destroy()}},[D]),(0,v.useEffect)(()=>{ce.current?.update({translateExtent:O,width:k,height:A,inversePan:y,pannable:h,zoomStep:b,zoomable:g})},[h,g,y,b,O,k,A]);let le=p?e=>{let[t,n]=ce.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ue=m?(0,v.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,de=_??j[`minimap.ariaLabel`];return(0,H.jsx)(Gd,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*P:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Xn([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,H.jsxs)(`svg`,{width:M,height:N,viewBox:`${ie} ${ae} ${I} ${L}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":oe,ref:C,onClick:le,children:[de&&(0,H.jsx)(`title`,{id:oe,children:de}),(0,H.jsx)(oh,{onClick:ue,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,H.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${ie-re},${ae-re}h${I+re*2}v${L+re*2}h${-I-re*2}z - M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}fh.displayName=`MiniMap`;var ph=(0,v.memo)(fh),mh=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,hh={[ad.Line]:`right`,[ad.Handle]:`bottom-right`};function gh({nodeId:e,position:t,variant:n=ad.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let y=Xf(),b=typeof e==`string`?e:y,x=Fd(),S=(0,v.useRef)(null),C=n===ad.Handle,w=Pd((0,v.useCallback)(mh(C&&p),[C,p]),kd),T=(0,v.useRef)(null),E=t??hh[n];return(0,v.useEffect)(()=>{if(!(!S.current||!b))return T.current||=_d({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Cu([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Al({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),T.current.update({controlPosition:E,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{T.current?.destroy()}},[E,s,c,l,u,d,h,g,_,m]),(0,H.jsx)(`div`,{className:Xn([`react-flow__resize-control`,`nodrag`,...E.split(`-`),n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,v.memo)(gh);function _h(e,t){if(t.length===0)return null;let n=e[t[0]];for(let e=1;ee.viewContextPath),t=B(e=>e.nodes),n=B(e=>e.subworkflowContexts);return(0,v.useMemo)(()=>e.length===0?t:_h(n,e)?.nodes??t,[e,t,n])}function yh(){let e=B(e=>e.viewContextPath),t=B(e=>e.groupProgress),n=B(e=>e.subworkflowContexts);return(0,v.useMemo)(()=>e.length===0?t:_h(n,e)?.groupProgress??t,[e,t,n])}function bh(){let e=B(e=>e.viewContextPath),t=B(e=>e.highlightedEdges),n=B(e=>e.subworkflowContexts);return(0,v.useMemo)(()=>e.length===0?t:_h(n,e)?.highlightedEdges??t,[e,t,n])}function xh(){let e=B(e=>e.viewContextPath),t=B(e=>e.subworkflowContexts);return(0,v.useMemo)(()=>e.length===0?t:_h(t,e)?.children??[],[e,t])}function Sh(){let e=B(e=>e.viewContextPath),t=B(e=>e.agents),n=B(e=>e.routes),r=B(e=>e.parallelGroups),i=B(e=>e.forEachGroups),a=B(e=>e.nodes),o=B(e=>e.groupProgress),s=B(e=>e.entryPoint),c=B(e=>e.subworkflowContexts);return(0,v.useMemo)(()=>{if(e.length===0)return{agents:t,routes:n,parallelGroups:r,forEachGroups:i,nodes:a,groupProgress:o,entryPoint:s,subworkflowContexts:c,parentAgent:null};let l=_h(c,e);return l?{agents:l.agents,routes:l.routes,parallelGroups:l.parallelGroups,forEachGroups:l.forEachGroups,nodes:l.nodes,groupProgress:l.groupProgress,entryPoint:l.entryPoint,subworkflowContexts:l.children,parentAgent:l.parentAgent}:{agents:t,routes:n,parallelGroups:r,forEachGroups:i,nodes:a,groupProgress:o,entryPoint:s,subworkflowContexts:c,parentAgent:null}},[e,t,n,r,i,a,o,s,c])}function Ch(){let e=new URLSearchParams(window.location.search);return{subworkflowPath:e.get(`subworkflow`),agent:e.get(`agent`)}}function wh(e,t){let n=[],r=e;for(let e of t){let t=-1;for(let n=r.length-1;n>=0;n--)if(r[n].slotKey===e){t=n;break}if(t===-1){for(let n=r.length-1;n>=0;n--)if(r[n].parentAgent===e){t=n;break}}if(t===-1)return{path:n,failedSegment:e};n.push(t),r=r[t].children}return{path:n,failedSegment:null}}function Th(e,t,n=[]){let r=[];for(let i=0;ie.name===t)&&r.push({path:o,ctx:a}),a.children.length>0&&r.push(...Th(a.children,t,o))}return r}function Eh(e){return e.length===0?null:[...e].sort((e,t)=>{let n=+(e.ctx.status===`running`),r=+(t.ctx.status===`running`);if(n!==r)return r-n;if(e.path.length!==t.path.length)return t.path.length-e.path.length;for(let n=0;n{if(n.current||!o)return;let e=null,s=null,c=null,l=()=>{if(n.current)return;n.current=!0,e&&clearTimeout(e),s&&clearTimeout(s),c&&c();let o=B.getState();if(o.agents.length===0){t({message:`Workflow state did not load.`});return}let l=[];if(i){let e=i.split(`/`).filter(Boolean),n=wh(o.subworkflowContexts,e);if(n.failedSegment){let r=e.slice(0,n.path.length).join(`/`);t({message:`Subworkflow "${n.failedSegment}" not found${r?` (resolved: ${r})`:``}. It may not have started yet.`});return}l=n.path}if(a){if((l.length===0?o.agents:(()=>{let e,t=o.subworkflowContexts;for(let n of l){if(e=t[n],!e)break;t=e.children}return e?.agents??[]})()).some(e=>e.name===a))B.setState({viewContextPath:l,selectedNode:a});else{let e=Th(o.subworkflowContexts,a);if(e.length===0){let e=i||`root workflow`;B.setState({viewContextPath:l,selectedNode:null}),t({message:`Agent "${a}" not found in ${e}.`});return}if(i){let n=e.slice(0,5).map(e=>Dh(o.subworkflowContexts,e.path)).join(`, `),r=e.length>5?`, and ${e.length-5} more`:``;B.setState({viewContextPath:l,selectedNode:null}),t({message:`Agent "${a}" not found in ${i}. Found in: ${n}${r}`});return}let n=Eh(e);B.setState({viewContextPath:n.path,selectedNode:a})}setTimeout(()=>{r({nodes:[{id:a}],padding:.5,duration:400})},200)}else i&&B.setState({viewContextPath:l,selectedNode:null})},u=()=>{let e=B.getState();if(e.agents.length===0)return!1;if(e.workflowStatus!==`running`&&e.workflowStatus!==`pending`)return!0;if(i){let t=i.split(`/`).filter(Boolean),{failedSegment:n}=wh(e.subworkflowContexts,t);if(n)return!1}return!(a&&!i&&!e.agents.some(e=>e.name===a)&&Th(e.subworkflowContexts,a).length===0)},d=()=>{e&&clearTimeout(e),e=setTimeout(()=>{n.current||u()&&l()},200)};return c=B.subscribe(d),s=setTimeout(()=>{n.current||l()},5e3),d(),()=>{e&&clearTimeout(e),s&&clearTimeout(s),c&&c()}},[o,i,a,r]),e}var kh=o(((e,t)=>{var n=`\0`,r=`\0`,i=``,a=class{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>void 0;_defaultEdgeLabelFn=()=>void 0;_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(e){e&&(this._isDirected=Object.hasOwn(e,`directed`)?e.directed:!0,this._isMultigraph=Object.hasOwn(e,`multigraph`)?e.multigraph:!1,this._isCompound=Object.hasOwn(e,`compound`)?e.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[r]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return this._defaultNodeLabelFn=e,typeof e!=`function`&&(this._defaultNodeLabelFn=()=>e),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var e=this;return this.nodes().filter(t=>Object.keys(e._in[t]).length===0)}sinks(){var e=this;return this.nodes().filter(t=>Object.keys(e._out[t]).length===0)}setNodes(e,t){var n=arguments,r=this;return e.forEach(function(e){n.length>1?r.setNode(e,t):r.setNode(e)}),this}setNode(e,t){return Object.hasOwn(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=r,this._children[e]={},this._children[r][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.hasOwn(this._nodes,e)}removeNode(e){var t=this;if(Object.hasOwn(this._nodes,e)){var n=e=>t.removeEdge(t._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(function(e){t.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(n),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(t===void 0)t=r;else{t+=``;for(var n=t;n!==void 0;n=this.parent(n))if(n===e)throw Error(`Setting `+t+` as parent of `+e+` would create a cycle`);this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==r)return t}}children(e=r){if(this._isCompound){var t=this._children[e];if(t)return Object.keys(t)}else if(e===r)return this.nodes();else if(this.hasNode(e))return[]}predecessors(e){var t=this._preds[e];if(t)return Object.keys(t)}successors(e){var t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){var t=this.predecessors(e);if(t){let r=new Set(t);for(var n of this.successors(e))r.add(n);return Array.from(r.values())}}isLeaf(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;Object.entries(this._nodes).forEach(function([n,r]){e(n)&&t.setNode(n,r)}),Object.values(this._edgeObjs).forEach(function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))});var r={};function i(e){var a=n.parent(e);return a===void 0||t.hasNode(a)?(r[e]=a,a):a in r?r[a]:i(a)}return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,i(e))),t}setDefaultEdgeLabel(e){return this._defaultEdgeLabelFn=e,typeof e!=`function`&&(this._defaultEdgeLabelFn=()=>e),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){var n=this,r=arguments;return e.reduce(function(e,i){return r.length>1?n.setEdge(e,i,t):n.setEdge(e,i),i}),this}setEdge(){var e,t,n,r,i=!1,a=arguments[0];typeof a==`object`&&a&&`v`in a?(e=a.v,t=a.w,n=a.name,arguments.length===2&&(r=arguments[1],i=!0)):(e=a,t=arguments[1],n=arguments[3],arguments.length>2&&(r=arguments[2],i=!0)),e=``+e,t=``+t,n!==void 0&&(n=``+n);var s=c(this._isDirected,e,t,n);if(Object.hasOwn(this._edgeLabels,s))return i&&(this._edgeLabels[s]=r),this;if(n!==void 0&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(e),this.setNode(t),this._edgeLabels[s]=i?r:this._defaultEdgeLabelFn(e,t,n);var u=l(this._isDirected,e,t,n);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[s]=u,o(this._preds[t],e),o(this._sucs[e],t),this._in[t][s]=u,this._out[e][s]=u,this._edgeCount++,this}edge(e,t,n){var r=arguments.length===1?u(this._isDirected,arguments[0]):c(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(){let e=this.edge(...arguments);return typeof e==`object`?e:{label:e}}hasEdge(e,t,n){var r=arguments.length===1?u(this._isDirected,arguments[0]):c(this._isDirected,e,t,n);return Object.hasOwn(this._edgeLabels,r)}removeEdge(e,t,n){var r=arguments.length===1?u(this._isDirected,arguments[0]):c(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],s(this._preds[t],e),s(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,t){var n=this._in[e];if(n){var r=Object.values(n);return t?r.filter(e=>e.v===t):r}}outEdges(e,t){var n=this._out[e];if(n){var r=Object.values(n);return t?r.filter(e=>e.w===t):r}}nodeEdges(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}};function o(e,t){e[t]?e[t]++:e[t]=1}function s(e,t){--e[t]||delete e[t]}function c(e,t,r,a){var o=``+t,s=``+r;if(!e&&o>s){var c=o;o=s,s=c}return o+i+s+i+(a===void 0?n:a)}function l(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function u(e,t){return c(e,t.v,t.w,t.name)}t.exports=a})),Ah=o(((e,t)=>{t.exports=`2.2.4`})),jh=o(((e,t)=>{t.exports={Graph:kh(),version:Ah()}})),Mh=o(((e,t)=>{var n=kh();t.exports={write:r,read:o};function r(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:i(e),edges:a(e)};return e.graph()!==void 0&&(t.value=structuredClone(e.graph())),t}function i(e){return e.nodes().map(function(t){var n=e.node(t),r=e.parent(t),i={v:t};return n!==void 0&&(i.value=n),r!==void 0&&(i.parent=r),i})}function a(e){return e.edges().map(function(t){var n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function o(e){var t=new n(e.options).setGraph(e.value);return e.nodes.forEach(function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}})),Nh=o(((e,t)=>{t.exports=n;function n(e){var t={},n=[],r;function i(n){Object.hasOwn(t,n)||(t[n]=!0,r.push(n),e.successors(n).forEach(i),e.predecessors(n).forEach(i))}return e.nodes().forEach(function(e){r=[],i(e),r.length&&n.push(r)}),n}})),Ph=o(((e,t)=>{t.exports=class{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(e){return e.key})}has(e){return Object.hasOwn(this._keyIndices,e)}priority(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key}add(e,t){var n=this._keyIndices;if(e=String(e),!Object.hasOwn(n,e)){var r=this._arr,i=r.length;return n[e]=i,r.push({key:e,priority:t}),this._decrease(i),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error(`New priority is greater than current priority. Key: `+e+` Old: `+this._arr[n].priority+` New: `+t);this._arr[n].priority=t,this._decrease(n)}_heapify(e){var t=this._arr,n=2*e,r=n+1,i=e;n>1,!(t[r].priority{var n=Ph();t.exports=i;var r=()=>1;function i(e,t,n,i){return a(e,String(t),n||r,i||function(t){return e.outEdges(t)})}function a(e,t,r,i){var a={},o=new n,s,c,l=function(e){var t=e.v===s?e.w:e.v,n=a[t],i=r(e),l=c.distance+i;if(i<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+i);l0&&(s=o.removeMin(),c=a[s],c.distance!==1/0);)i(s).forEach(l);return a}})),Ih=o(((e,t)=>{var n=Fh();t.exports=r;function r(e,t,r){return e.nodes().reduce(function(i,a){return i[a]=n(e,a,t,r),i},{})}})),Lh=o(((e,t)=>{t.exports=n;function n(e){var t=0,n=[],r={},i=[];function a(o){var s=r[o]={onStack:!0,lowlink:t,index:t++};if(n.push(o),e.successors(o).forEach(function(e){Object.hasOwn(r,e)?r[e].onStack&&(s.lowlink=Math.min(s.lowlink,r[e].index)):(a(e),s.lowlink=Math.min(s.lowlink,r[e].lowlink))}),s.lowlink===s.index){var c=[],l;do l=n.pop(),r[l].onStack=!1,c.push(l);while(o!==l);i.push(c)}}return e.nodes().forEach(function(e){Object.hasOwn(r,e)||a(e)}),i}})),Rh=o(((e,t)=>{var n=Lh();t.exports=r;function r(e){return n(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}})),zh=o(((e,t)=>{t.exports=r;var n=()=>1;function r(e,t,r){return i(e,t||n,r||function(t){return e.outEdges(t)})}function i(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:1/0})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s{function n(e){var t={},n={},i=[];function a(o){if(Object.hasOwn(n,o))throw new r;Object.hasOwn(t,o)||(n[o]=!0,t[o]=!0,e.predecessors(o).forEach(a),delete n[o],i.push(o))}if(e.sinks().forEach(a),Object.keys(t).length!==e.nodeCount())throw new r;return i}var r=class extends Error{constructor(){super(...arguments)}};t.exports=n,n.CycleException=r})),Vh=o(((e,t)=>{var n=Bh();t.exports=r;function r(e){try{n(e)}catch(e){if(e instanceof n.CycleException)return!1;throw e}return!0}})),Hh=o(((e,t)=>{t.exports=n;function n(e,t,n){Array.isArray(t)||(t=[t]);var a=e.isDirected()?t=>e.successors(t):t=>e.neighbors(t),o=n===`post`?r:i,s=[],c={};return t.forEach(t=>{if(!e.hasNode(t))throw Error(`Graph does not have node: `+t);o(t,a,c,s)}),s}function r(e,t,n,r){for(var i=[[e,!1]];i.length>0;){var o=i.pop();o[1]?r.push(o[0]):Object.hasOwn(n,o[0])||(n[o[0]]=!0,i.push([o[0],!0]),a(t(o[0]),e=>i.push([e,!1])))}}function i(e,t,n,r){for(var i=[e];i.length>0;){var o=i.pop();Object.hasOwn(n,o)||(n[o]=!0,r.push(o),a(t(o),e=>i.push(e)))}}function a(e,t){for(var n=e.length;n--;)t(e[n],n,e);return e}})),Uh=o(((e,t)=>{var n=Hh();t.exports=r;function r(e,t){return n(e,t,`post`)}})),Wh=o(((e,t)=>{var n=Hh();t.exports=r;function r(e,t){return n(e,t,`pre`)}})),Gh=o(((e,t)=>{var n=kh(),r=Ph();t.exports=i;function i(e,t){var i=new n,a={},o=new r,s;function c(e){var n=e.v===s?e.w:e.v,r=o.priority(n);if(r!==void 0){var i=t(e);i0;){if(s=o.removeMin(),Object.hasOwn(a,s))i.setEdge(s,a[s]);else if(l)throw Error(`Input graph is not connected: `+e);else l=!0;e.nodeEdges(s).forEach(c)}return i}})),Kh=o(((e,t)=>{t.exports={components:Nh(),dijkstra:Fh(),dijkstraAll:Ih(),findCycles:Rh(),floydWarshall:zh(),isAcyclic:Vh(),postorder:Uh(),preorder:Wh(),prim:Gh(),tarjan:Lh(),topsort:Bh()}})),qh=o(((e,t)=>{var n=jh();t.exports={Graph:n.Graph,json:Mh(),alg:Kh(),version:n.version}})),Jh=o(((e,t)=>{var n=class{constructor(){let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return r(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&r(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,i)),n=n._prev;return`[`+e.join(`, `)+`]`}};function r(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function i(e,t){if(e!==`_next`&&e!==`_prev`)return t}t.exports=n})),Yh=o(((e,t)=>{var n=qh().Graph,r=Jh();t.exports=a;var i=()=>1;function a(e,t){if(e.nodeCount()<=1)return[];let n=c(e,t||i);return o(n.graph,n.buckets,n.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w))}function o(e,t,n){let r=[],i=t[t.length-1],a=t[0],o;for(;e.nodeCount();){for(;o=a.dequeue();)s(e,t,n,o);for(;o=i.dequeue();)s(e,t,n,o);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(o=t[i].dequeue(),o){r=r.concat(s(e,t,n,o,!0));break}}}return r}function s(e,t,n,r,i){let a=i?[]:void 0;return e.inEdges(r.v).forEach(r=>{let o=e.edge(r),s=e.node(r.v);i&&a.push({v:r.v,w:r.w}),s.out-=o,l(t,n,s)}),e.outEdges(r.v).forEach(r=>{let i=e.edge(r),a=r.w,o=e.node(a);o.in-=i,l(t,n,o)}),e.removeNode(r.v),a}function c(e,t){let i=new n,a=0,o=0;e.nodes().forEach(e=>{i.setNode(e,{v:e,in:0,out:0})}),e.edges().forEach(e=>{let n=i.edge(e.v,e.w)||0,r=t(e),s=n+r;i.setEdge(e.v,e.w,s),o=Math.max(o,i.node(e.v).out+=r),a=Math.max(a,i.node(e.w).in+=r)});let s=u(o+a+3).map(()=>new r),c=a+1;return i.nodes().forEach(e=>{l(s,c,i.node(e))}),{graph:i,buckets:s,zeroIdx:c}}function l(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}function u(e){let t=[];for(let n=0;n{var n=qh().Graph;t.exports={addBorderNode:f,addDummyNode:r,applyWithChunking:h,asNonCompoundGraph:a,buildLayerMatrix:l,intersectRect:c,mapValues:w,maxRank:g,normalizeRanks:u,notime:y,partition:_,pick:C,predecessorWeights:s,range:S,removeEmptyRanks:d,simplify:i,successorWeights:o,time:v,uniqueId:x,zipObject:T};function r(e,t,n,r){for(var i=r;e.hasNode(i);)i=x(r);return n.dummy=t,e.setNode(i,n),i}function i(e){let t=new n().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function a(e){let t=new n({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function o(e){let t=e.nodes().map(t=>{let n={};return e.outEdges(t).forEach(t=>{n[t.w]=(n[t.w]||0)+e.edge(t).weight}),n});return T(e.nodes(),t)}function s(e){let t=e.nodes().map(t=>{let n={};return e.inEdges(t).forEach(t=>{n[t.v]=(n[t.v]||0)+e.edge(t).weight}),n});return T(e.nodes(),t)}function c(e,t){let n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);let c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function l(e){let t=S(g(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),i=r.rank;i!==void 0&&(t[i][r.order]=n)}),t}function u(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MAX_VALUE:n}),n=h(Math.min,t);e.nodes().forEach(t=>{let r=e.node(t);Object.hasOwn(r,`rank`)&&(r.rank-=n)})}function d(e){let t=e.nodes().map(t=>e.node(t).rank),n=h(Math.min,t),r=[];e.nodes().forEach(t=>{let i=e.node(t).rank-n;r[i]||(r[i]=[]),r[i].push(t)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((t,n)=>{t===void 0&&n%a!==0?--i:t!==void 0&&i&&t.forEach(t=>e.node(t).rank+=i)})}function f(e,t,n,i){let a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=i),r(e,`border`,a,t)}function p(e,t=m){let n=[];for(let r=0;rm){let n=p(t);return e.apply(null,n.map(t=>e.apply(null,t)))}else return e.apply(null,t)}function g(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MIN_VALUE:n});return h(Math.max,t)}function _(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function v(e,t){let n=Date.now();try{return t()}finally{console.log(e+` time: `+(Date.now()-n)+`ms`)}}function y(e,t){return t()}var b=0;function x(e){return e+(``+ ++b)}function S(e,t,n=1){t??(t=e,e=0);let r=e=>ete[t]),Object.entries(e).reduce((e,[t,r])=>(e[t]=n(r,t),e),{})}function T(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}})),Zh=o(((e,t)=>{var n=Yh(),r=Xh().uniqueId;t.exports={run:i,undo:o};function i(e){(e.graph().acyclicer===`greedy`?n(e,t(e)):a(e)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,r(`rev`))});function t(e){return t=>e.edge(t).weight}}function a(e){let t=[],n={},r={};function i(a){Object.hasOwn(r,a)||(r[a]=!0,n[a]=!0,e.outEdges(a).forEach(e=>{Object.hasOwn(n,e.w)?t.push(e):i(e.w)}),delete n[a])}return e.nodes().forEach(i),t}function o(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}})),Qh=o(((e,t)=>{var n=Xh();t.exports={run:r,undo:a};function r(e){e.graph().dummyChains=[],e.edges().forEach(t=>i(e,t))}function i(e,t){let r=t.v,i=e.node(r).rank,a=t.w,o=e.node(a).rank,s=t.name,c=e.edge(t),l=c.labelRank;if(o===i+1)return;e.removeEdge(t);let u,d,f;for(f=0,++i;i{let n=e.node(t),r=n.edgeLabel,i;for(e.setEdge(n.edgeObj,r);n.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=i,n=e.node(t)})}})),$h=o(((e,t)=>{var{applyWithChunking:n}=Xh();t.exports={longestPath:r,slack:i};function r(e){var t={};function r(i){var a=e.node(i);if(Object.hasOwn(t,i))return a.rank;t[i]=!0;let o=e.outEdges(i).map(t=>t==null?1/0:r(t.w)-e.edge(t).minlen);var s=n(Math.min,o);return s===1/0&&(s=0),a.rank=s}e.sources().forEach(r)}function i(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}})),eg=o(((e,t)=>{var n=qh().Graph,r=$h().slack;t.exports=i;function i(e){var t=new n({directed:!1}),i=e.nodes()[0],c=e.nodeCount();t.setNode(i,{});for(var l,u;a(t,e){var o=a.v,s=i===o?a.w:o;!e.hasNode(s)&&!r(t,a)&&(e.setNode(s,{}),e.setEdge(i,s,{}),n(s))})}return e.nodes().forEach(n),e.nodeCount()}function o(e,t){return t.edges().reduce((n,i)=>{let a=1/0;return e.hasNode(i.v)!==e.hasNode(i.w)&&(a=r(t,i)),at.node(e).rank+=n)}})),tg=o(((e,t)=>{var n=eg(),r=$h().slack,i=$h().longestPath,a=qh().alg.preorder,o=qh().alg.postorder,s=Xh().simplify;t.exports=c,c.initLowLimValues=f,c.initCutValues=l,c.calcCutValue=d,c.leaveEdge=m,c.enterEdge=h,c.exchangeEdges=g;function c(e){e=s(e),i(e);var t=n(e);f(t),l(t,e);for(var r,a;r=m(t);)a=h(t,e,r),g(t,e,r,a)}function l(e,t){var n=o(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(n=>u(e,t,n))}function u(e,t,n){var r=e.node(n).parent;e.edge(n,r).cutvalue=d(e,t,n)}function d(e,t,n){var r=e.node(n).parent,i=!0,a=t.edge(n,r),o=0;return a||=(i=!1,t.edge(r,n)),o=a.weight,t.nodeEdges(n).forEach(a=>{var s=a.v===n,c=s?a.w:a.v;if(c!==r){var l=s===i,u=t.edge(a).weight;if(o+=l?u:-u,v(e,n,c)){var d=e.edge(n,c).cutvalue;o+=l?-d:d}}}),o}function f(e,t){arguments.length<2&&(t=e.nodes()[0]),p(e,{},1,t)}function p(e,t,n,r,i){var a=n,o=e.node(r);return t[r]=!0,e.neighbors(r).forEach(i=>{Object.hasOwn(t,i)||(n=p(e,t,n,i,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function m(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function h(e,t,n){var i=n.v,a=n.w;t.hasEdge(i,a)||(i=n.w,a=n.v);var o=e.node(i),s=e.node(a),c=o,l=!1;return o.lim>s.lim&&(c=s,l=!0),t.edges().filter(t=>l===y(e,e.node(t.v),c)&&l!==y(e,e.node(t.w),c)).reduce((e,n)=>r(t,n)!t.node(e).parent));n=n.slice(1),n.forEach(n=>{var r=e.node(n).parent,i=t.edge(n,r),a=!1;i||(i=t.edge(r,n),a=!0),t.node(n).rank=t.node(r).rank+(a?i.minlen:-i.minlen)})}function v(e,t,n){return e.hasEdge(t,n)}function y(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}})),ng=o(((e,t)=>{var n=$h().longestPath,r=eg(),i=tg();t.exports=a;function a(e){var t=e.graph().ranker;if(t instanceof Function)return t(e);switch(e.graph().ranker){case`network-simplex`:c(e);break;case`tight-tree`:s(e);break;case`longest-path`:o(e);break;case`none`:break;default:c(e)}}var o=n;function s(e){n(e),r(e)}function c(e){i(e)}})),rg=o(((e,t)=>{t.exports=n;function n(e){let t=i(e);e.graph().dummyChains.forEach(n=>{let i=e.node(n),a=i.edgeObj,o=r(e,t,a.v,a.w),s=o.path,c=o.lca,l=0,u=s[l],d=!0;for(;n!==a.w;){if(i=e.node(n),d){for(;(u=s[l])!==c&&e.node(u).maxRanko||s>t[c].lim));for(l=c,c=r;(c=e.parent(c))!==l;)a.push(c);return{path:i.concat(a.reverse()),lca:l}}function i(e){let t={},n=0;function r(i){let a=n;e.children(i).forEach(r),t[i]={low:a,lim:n++}}return e.children().forEach(r),t}})),ig=o(((e,t)=>{var n=Xh();t.exports={run:r,cleanup:s};function r(e){let t=n.addDummyNode(e,`root`,{},`_root`),r=a(e),s=Object.values(r),c=n.applyWithChunking(Math.max,s)-1,l=2*c+1;e.graph().nestingRoot=t,e.edges().forEach(t=>e.edge(t).minlen*=l);let u=o(e)+1;e.children().forEach(n=>i(e,t,l,u,c,r,n)),e.graph().nodeRankFactor=l}function i(e,t,r,a,o,s,c){let l=e.children(c);if(!l.length){c!==t&&e.setEdge(t,c,{weight:0,minlen:r});return}let u=n.addBorderNode(e,`_bt`),d=n.addBorderNode(e,`_bb`),f=e.node(c);e.setParent(u,c),f.borderTop=u,e.setParent(d,c),f.borderBottom=d,l.forEach(n=>{i(e,t,r,a,o,s,n);let l=e.node(n),f=l.borderTop?l.borderTop:n,p=l.borderBottom?l.borderBottom:n,m=l.borderTop?a:2*a,h=f===p?o-s[c]+1:1;e.setEdge(u,f,{weight:m,minlen:h,nestingEdge:!0}),e.setEdge(p,d,{weight:m,minlen:h,nestingEdge:!0})}),e.parent(c)||e.setEdge(t,u,{weight:0,minlen:o+s[c]})}function a(e){var t={};function n(r,i){var a=e.children(r);a&&a.length&&a.forEach(e=>n(e,i+1)),t[r]=i}return e.children().forEach(e=>n(e,1)),t}function o(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function s(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}})),ag=o(((e,t)=>{var n=Xh();t.exports=r;function r(e){function t(n){let r=e.children(n),a=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(a,`minRank`)){a.borderLeft=[],a.borderRight=[];for(let t=a.minRank,r=a.maxRank+1;t{t.exports={adjust:n,undo:r};function n(e){let t=e.graph().rankdir.toLowerCase();(t===`lr`||t===`rl`)&&i(e)}function r(e){let t=e.graph().rankdir.toLowerCase();(t===`bt`||t===`rl`)&&o(e),(t===`lr`||t===`rl`)&&(c(e),i(e))}function i(e){e.nodes().forEach(t=>a(e.node(t))),e.edges().forEach(t=>a(e.edge(t)))}function a(e){let t=e.width;e.width=e.height,e.height=t}function o(e){e.nodes().forEach(t=>s(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);n.points.forEach(s),Object.hasOwn(n,`y`)&&s(n)})}function s(e){e.y=-e.y}function c(e){e.nodes().forEach(t=>l(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);n.points.forEach(l),Object.hasOwn(n,`x`)&&l(n)})}function l(e){let t=e.x;e.x=e.y,e.y=t}})),sg=o(((e,t)=>{var n=Xh();t.exports=r;function r(e){let t={},r=e.nodes().filter(t=>!e.children(t).length),i=r.map(t=>e.node(t).rank),a=n.applyWithChunking(Math.max,i),o=n.range(a+1).map(()=>[]);function s(n){t[n]||(t[n]=!0,o[e.node(n).rank].push(n),e.successors(n).forEach(s))}return r.sort((t,n)=>e.node(t).rank-e.node(n).rank).forEach(s),o}})),cg=o(((e,t)=>{var n=Xh().zipObject;t.exports=r;function r(e,t){let n=0;for(let r=1;rt)),a=t.flatMap(t=>e.outEdges(t).map(t=>({pos:i[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos)),o=1;for(;o{let t=e.pos+o;c[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=c[t+1]),t=t-1>>1,c[t]+=e.weight;l+=e.weight*n}),l}})),lg=o(((e,t)=>{t.exports=n;function n(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(n.length){let r=n.reduce((t,n)=>{let r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}else return{v:t}})}})),ug=o(((e,t)=>{var n=Xh();t.exports=r;function r(e,t){let n={};return e.forEach((e,t)=>{let r=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};e.barycenter!==void 0&&(r.barycenter=e.barycenter,r.weight=e.weight)}),t.edges().forEach(e=>{let t=n[e.v],r=n[e.w];t!==void 0&&r!==void 0&&(r.indegree++,t.out.push(n[e.w]))}),i(Object.values(n).filter(e=>!e.indegree))}function i(e){let t=[];function r(e){return t=>{t.merged||(t.barycenter===void 0||e.barycenter===void 0||t.barycenter>=e.barycenter)&&a(e,t)}}function i(t){return n=>{n.in.push(t),--n.indegree===0&&e.push(n)}}for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(r(n)),n.out.forEach(i(n))}return t.filter(e=>!e.merged).map(e=>n.pick(e,[`vs`,`i`,`barycenter`,`weight`]))}function a(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}})),dg=o(((e,t)=>{var n=Xh();t.exports=r;function r(e,t){let r=n.partition(e,e=>Object.hasOwn(e,`barycenter`)),o=r.lhs,s=r.rhs.sort((e,t)=>t.i-e.i),c=[],l=0,u=0,d=0;o.sort(a(!!t)),d=i(c,s,d),o.forEach(e=>{d+=e.vs.length,c.push(e.vs),l+=e.barycenter*e.weight,u+=e.weight,d=i(c,s,d)});let f={vs:c.flat(!0)};return u&&(f.barycenter=l/u,f.weight=u),f}function i(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function a(e){return(t,n)=>t.barycentern.barycenter?1:e?n.i-t.i:t.i-n.i}})),fg=o(((e,t)=>{var n=lg(),r=ug(),i=dg();t.exports=a;function a(e,t,c,l){let u=e.children(t),d=e.node(t),f=d?d.borderLeft:void 0,p=d?d.borderRight:void 0,m={};f&&(u=u.filter(e=>e!==f&&e!==p));let h=n(e,u);h.forEach(t=>{if(e.children(t.v).length){let n=a(e,t.v,c,l);m[t.v]=n,Object.hasOwn(n,`barycenter`)&&s(t,n)}});let g=r(h,c);o(g,m);let _=i(g,l);if(f&&(_.vs=[f,_.vs,p].flat(!0),e.predecessors(f).length)){let t=e.node(e.predecessors(f)[0]),n=e.node(e.predecessors(p)[0]);Object.hasOwn(_,`barycenter`)||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+t.order+n.order)/(_.weight+2),_.weight+=2}return _}function o(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}function s(e,t){e.barycenter===void 0?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}})),pg=o(((e,t)=>{var n=qh().Graph,r=Xh();t.exports=i;function i(e,t,r,i){i||=e.nodes();let o=a(e),s=new n({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(t=>e.node(t));return i.forEach(n=>{let i=e.node(n),a=e.parent(n);(i.rank===t||i.minRank<=t&&t<=i.maxRank)&&(s.setNode(n),s.setParent(n,a||o),e[r](n).forEach(t=>{let r=t.v===n?t.w:t.v,i=s.edge(r,n),a=i===void 0?0:i.weight;s.setEdge(r,n,{weight:e.edge(t).weight+a})}),Object.hasOwn(i,`minRank`)&&s.setNode(n,{borderLeft:i.borderLeft[t],borderRight:i.borderRight[t]}))}),s}function a(e){for(var t;e.hasNode(t=r.uniqueId(`_root`)););return t}})),mg=o(((e,t)=>{t.exports=n;function n(e,t,n){let r={},i;n.forEach(n=>{let a=e.parent(n),o,s;for(;a;){if(o=e.parent(a),o?(s=r[o],r[o]=a):(s=i,i=a),s&&s!==a){t.setEdge(s,a);return}a=o}})}})),hg=o(((e,t)=>{var n=sg(),r=cg(),i=fg(),a=pg(),o=mg(),s=qh().Graph,c=Xh();t.exports=l;function l(e,t){if(t&&typeof t.customOrder==`function`){t.customOrder(e,l);return}let i=c.maxRank(e),a=u(e,c.range(1,i+1),`inEdges`),o=u(e,c.range(i-1,-1,-1),`outEdges`),s=n(e);if(f(e,s),t&&t.disableOptimalOrderHeuristic)return;let p=1/0,m;for(let t=0,n=0;n<4;++t,++n){d(t%2?a:o,t%4>=2),s=c.buildLayerMatrix(e);let i=r(e,s);i{r.has(e)||r.set(e,[]),r.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if(typeof n.rank==`number`&&i(n.rank,t),typeof n.minRank==`number`&&typeof n.maxRank==`number`)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&i(e,t)}return t.map(function(t){return a(e,t,n,r.get(t)||[])})}function d(e,t){let n=new s;e.forEach(function(e){let r=e.graph().root,a=i(e,r,n,t);a.vs.forEach((t,n)=>e.node(t).order=n),o(e,n,a.vs)})}function f(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}})),gg=o(((e,t)=>{var n=qh().Graph,r=Xh();t.exports={positionX:h,findType1Conflicts:i,findType2Conflicts:a,addConflict:s,hasConflict:c,verticalAlignment:l,horizontalCompaction:u,alignCoordinates:p,findSmallestWidthAlignment:f,balance:m};function i(e,t){let n={};function r(t,r){let i=0,a=0,c=t.length,l=r[r.length-1];return r.forEach((t,u)=>{let d=o(e,t),f=d?e.node(d).order:c;(d||t===l)&&(r.slice(a,u+1).forEach(t=>{e.predecessors(t).forEach(r=>{let a=e.node(r),o=a.order;(o{l=t[r],e.node(l).dummy&&e.predecessors(l).forEach(t=>{let r=e.node(t);r.dummy&&(r.orderc)&&s(n,t,l)})})}function a(t,n){let r=-1,a,o=0;return n.forEach((s,c)=>{if(e.node(s).dummy===`border`){let t=e.predecessors(s);t.length&&(a=e.node(t[0]).order,i(n,o,c,r,a),o=c,r=a)}i(n,o,n.length,a,t.length)}),n}return t.length&&t.reduce(a),n}function o(e,t){if(e.node(t).dummy)return e.predecessors(t).find(t=>e.node(t).dummy)}function s(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];r||(e[t]=r={}),r[n]=!0}function c(e,t,n){if(t>n){let e=t;t=n,n=e}return!!e[t]&&Object.hasOwn(e[t],n)}function l(e,t,n,r){let i={},a={},o={};return t.forEach(e=>{e.forEach((e,t)=>{i[e]=e,a[e]=e,o[e]=t})}),t.forEach(e=>{let t=-1;e.forEach(e=>{let s=r(e);if(s.length){s=s.sort((e,t)=>o[e]-o[t]);let r=(s.length-1)/2;for(let l=Math.floor(r),u=Math.ceil(r);l<=u;++l){let r=s[l];a[e]===e&&tMath.max(e,a[t.v]+o.edge(t)),0)}function u(t){let n=o.outEdges(t).reduce((e,t)=>Math.min(e,a[t.w]-o.edge(t)),1/0),r=e.node(t);n!==1/0&&r.borderType!==s&&(a[t]=Math.max(a[t],n))}return c(l,o.predecessors.bind(o)),c(u,o.successors.bind(o)),Object.keys(r).forEach(e=>a[e]=a[n[e]]),a}function d(e,t,r,i){let a=new n,o=e.graph(),s=g(o.nodesep,o.edgesep,i);return t.forEach(t=>{let n;t.forEach(t=>{let i=r[t];if(a.setNode(i),n){var o=r[n],c=a.edge(o,i);a.setEdge(o,i,Math.max(s(e,t,n),c||0))}n=t})}),a}function f(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,i=1/0;Object.entries(n).forEach(([t,n])=>{let a=_(e,t)/2;r=Math.max(n+a,r),i=Math.min(n-a,i)});let a=r-i;return a{[`l`,`r`].forEach(o=>{let s=n+o,c=e[s];if(c===t)return;let l=Object.values(c),u=i-r.applyWithChunking(Math.min,l);o!==`l`&&(u=a-r.applyWithChunking(Math.max,l)),u&&(e[s]=r.mapValues(c,e=>e+u))})})}function m(e,t){return r.mapValues(e.ul,(n,r)=>{if(t)return e[t.toLowerCase()][r];{let t=Object.values(e).map(e=>e[r]).sort((e,t)=>e-t);return(t[1]+t[2])/2}})}function h(e){let t=r.buildLayerMatrix(e),n=Object.assign(i(e,t),a(e,t)),o={},s;return[`u`,`d`].forEach(i=>{s=i===`u`?t:Object.values(t).reverse(),[`l`,`r`].forEach(t=>{t===`r`&&(s=s.map(e=>Object.values(e).reverse()));let a=(i===`u`?e.predecessors:e.successors).bind(e),c=l(e,s,n,a),d=u(e,s,c.root,c.align,t===`r`);t===`r`&&(d=r.mapValues(d,e=>-e)),o[i+t]=d})}),p(o,f(e,o)),m(o,e.graph().align)}function g(e,t,n){return(r,i,a)=>{let o=r.node(i),s=r.node(a),c=0,l;if(c+=o.width/2,Object.hasOwn(o,`labelpos`))switch(o.labelpos.toLowerCase()){case`l`:l=-o.width/2;break;case`r`:l=o.width/2;break}if(l&&(c+=n?l:-l),l=0,c+=(o.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:l=s.width/2;break;case`r`:l=-s.width/2;break}return l&&(c+=n?l:-l),l=0,c}}function _(e,t){return e.node(t).width}})),_g=o(((e,t)=>{var n=Xh(),r=gg().positionX;t.exports=i;function i(e){e=n.asNonCompoundGraph(e),a(e),Object.entries(r(e)).forEach(([t,n])=>e.node(t).x=n)}function a(e){let t=n.buildLayerMatrix(e),r=e.graph().ranksep,i=0;t.forEach(t=>{let n=t.reduce((t,n)=>{let r=e.node(n).height;return t>r?t:r},0);t.forEach(t=>e.node(t).y=i+n/2),i+=n+r})}})),vg=o(((e,t)=>{var n=Zh(),r=Qh(),i=ng(),a=Xh().normalizeRanks,o=rg(),s=Xh().removeEmptyRanks,c=ig(),l=ag(),u=og(),d=hg(),f=_g(),p=Xh(),m=qh().Graph;t.exports=h;function h(e,t){let n=t&&t.debugTiming?p.time:p.notime;n(`layout`,()=>{let r=n(` buildLayoutGraph`,()=>E(e));n(` runLayout`,()=>g(r,n,t)),n(` updateInputGraph`,()=>_(e,r))})}function g(e,t,m){t(` makeSpaceForEdgeLabels`,()=>D(e)),t(` removeSelfEdges`,()=>P(e)),t(` acyclic`,()=>n.run(e)),t(` nestingGraph.run`,()=>c.run(e)),t(` rank`,()=>i(p.asNonCompoundGraph(e))),t(` injectEdgeLabelProxies`,()=>O(e)),t(` removeEmptyRanks`,()=>s(e)),t(` nestingGraph.cleanup`,()=>c.cleanup(e)),t(` normalizeRanks`,()=>a(e)),t(` assignRankMinMax`,()=>k(e)),t(` removeEdgeLabelProxies`,()=>A(e)),t(` normalize.run`,()=>r.run(e)),t(` parentDummyChains`,()=>o(e)),t(` addBorderSegments`,()=>l(e)),t(` order`,()=>d(e,m)),t(` insertSelfEdges`,()=>F(e)),t(` adjustCoordinateSystem`,()=>u.adjust(e)),t(` position`,()=>f(e)),t(` positionSelfEdges`,()=>ne(e)),t(` removeBorderNodes`,()=>te(e)),t(` normalize.undo`,()=>r.undo(e)),t(` fixupEdgeLabelCoords`,()=>N(e)),t(` undoCoordinateSystem`,()=>u.undo(e)),t(` translateGraph`,()=>j(e)),t(` assignNodeIntersects`,()=>M(e)),t(` reversePoints`,()=>ee(e)),t(` acyclic.undo`,()=>n.undo(e))}function _(e,t){e.nodes().forEach(n=>{let r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,t.children(n).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(n=>{let r=e.edge(n),i=t.edge(n);r.points=i.points,Object.hasOwn(i,`x`)&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var v=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],y={ranksep:50,edgesep:20,nodesep:50,rankdir:`tb`},b=[`acyclicer`,`ranker`,`rankdir`,`align`],x=[`width`,`height`,`rank`],S={width:0,height:0},C=[`minlen`,`weight`,`width`,`height`,`labeloffset`],w={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},T=[`labelpos`];function E(e){let t=new m({multigraph:!0,compound:!0}),n=ie(e.graph());return t.setGraph(Object.assign({},y,re(n,v),p.pick(n,b))),e.nodes().forEach(n=>{let r=re(ie(e.node(n)),x);Object.keys(S).forEach(e=>{r[e]===void 0&&(r[e]=S[e])}),t.setNode(n,r),t.setParent(n,e.parent(n))}),e.edges().forEach(n=>{let r=ie(e.edge(n));t.setEdge(n,Object.assign({},w,re(r,C),p.pick(r,T)))}),t}function D(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!==`c`&&(t.rankdir===`TB`||t.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function O(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let n=e.node(t.v),r={rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t};p.addDummyNode(e,`edge-proxy`,r,`_ep`)}})}function k(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function A(e){e.nodes().forEach(t=>{let n=e.node(t);n.dummy===`edge-proxy`&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))})}function j(e){let t=1/0,n=0,r=1/0,i=0,a=e.graph(),o=a.marginx||0,s=a.marginy||0;function c(e){let a=e.x,o=e.y,s=e.width,c=e.height;t=Math.min(t,a-s/2),n=Math.max(n,a+s/2),r=Math.min(r,o-c/2),i=Math.max(i,o+c/2)}e.nodes().forEach(t=>c(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,`x`)&&c(n)}),t-=o,r-=s,e.nodes().forEach(n=>{let i=e.node(n);i.x-=t,i.y-=r}),e.edges().forEach(n=>{let i=e.edge(n);i.points.forEach(e=>{e.x-=t,e.y-=r}),Object.hasOwn(i,`x`)&&(i.x-=t),Object.hasOwn(i,`y`)&&(i.y-=r)}),a.width=n-t+o,a.height=i-r+s}function M(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(p.intersectRect(r,a)),n.points.push(p.intersectRect(i,o))})}function N(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,`x`))switch((n.labelpos===`l`||n.labelpos===`r`)&&(n.width-=n.labeloffset),n.labelpos){case`l`:n.x-=n.width/2+n.labeloffset;break;case`r`:n.x+=n.width/2+n.labeloffset;break}})}function ee(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function te(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),i=e.node(n.borderBottom),a=e.node(n.borderLeft[n.borderLeft.length-1]),o=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(o.x-a.x),n.height=Math.abs(i.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy===`border`&&e.removeNode(t)})}function P(e){e.edges().forEach(t=>{if(t.v===t.w){var n=e.node(t.v);n.selfEdges||=[],n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function F(e){p.buildLayerMatrix(e).forEach(t=>{var n=0;t.forEach((t,r)=>{var i=e.node(t);i.order=r+n,(i.selfEdges||[]).forEach(t=>{p.addDummyNode(e,`selfedge`,{width:t.label.width,height:t.label.height,rank:i.rank,order:r+ ++n,e:t.e,label:t.label},`_se`)}),delete i.selfEdges})})}function ne(e){e.nodes().forEach(t=>{var n=e.node(t);if(n.dummy===`selfedge`){var r=e.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}})}function re(e,t){return p.mapValues(p.pick(e,t),Number)}function ie(e){var t={};return e&&Object.entries(e).forEach(([e,n])=>{typeof e==`string`&&(e=e.toLowerCase()),t[e]=n}),t}})),yg=o(((e,t)=>{var n=Xh(),r=qh().Graph;t.exports={debugOrdering:i};function i(e){let t=n.buildLayerMatrix(e),i=new r({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{i.setNode(t,{label:t}),i.setParent(t,`layer`+e.node(t).rank)}),e.edges().forEach(e=>i.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{let n=`layer`+t;i.setNode(n,{rank:`same`}),e.reduce((e,t)=>(i.setEdge(e,t,{style:`invis`}),t))}),i}})),bg=o(((e,t)=>{t.exports=`1.1.8`})),xg=l(o(((e,t)=>{t.exports={graphlib:qh(),layout:vg(),debug:yg(),util:{time:Xh().time,notime:Xh().notime},version:bg()}}))(),1),Sg=200,Cg=56,wg=20,Tg=40,Eg=20,Dg=12;function Og(e,t,n,r,i,a,o,s){let c=[],l=[],u=new Set,d=new Set,f=new Map;for(let e of n)for(let t of e.agents)d.add(t),f.set(t,e.name);for(let e of n){let t=i[e.name],n=e.agents.length,r=Tg+n*Cg+(n-1)*Dg+Eg;c.push({id:e.name,type:`groupNode`,position:{x:0,y:0},data:{label:e.name,type:`parallel_group`,status:t?.status||`pending`,groupName:e.name,progress:a[e.name]},style:{width:240,height:r}});for(let t=0;t$entryPoint`,source:`$start`,target:o,type:`animatedEdge`,data:{},animated:!1})}let m=new Set(c.map(e=>e.id)),h=new Map;for(let e of c)e.parentId&&h.set(e.id,e.parentId);let g=new Map;for(let e of t){let t=h.get(e.from)??e.from,n=h.get(e.to)??e.to;if(!m.has(t)||!m.has(n)||t===n)continue;let r=`${t}->${n}`,i=g.get(r);if(i){i.when!==e.when&&(l[i.idx].data={when:void 0});continue}let a=l.length;g.set(r,{when:e.when,idx:a});let o=`${r}${e.when?`[${e.when}]`:``}`;l.push({id:o,source:t,target:n,type:`animatedEdge`,data:{when:e.when},animated:!1})}return Ag(c,l,kg(c,l,`$start`)),{nodes:c,edges:l}}function kg(e,t,n){let r=new Set(e.filter(e=>!e.parentId).map(e=>e.id)),i=new Map;for(let e of t)!r.has(e.source)||!r.has(e.target)||(i.has(e.source)||i.set(e.source,[]),i.get(e.source).push({target:e.target,edgeId:e.id}));for(let e of i.values())e.sort((e,t)=>e.targett.target));let a=new Set,o=new Set,s=new Set,c=e=>{s.add(e),o.add(e);for(let{target:t,edgeId:n}of i.get(e)??[])o.has(t)?a.add(n):s.has(t)||c(t);o.delete(e)};r.has(n)&&c(n);for(let e of[...i.keys()].sort())s.has(e)||c(e);return a}function Ag(e,t,n){let r=new xg.default.graphlib.Graph;r.setDefaultEdgeLabel(()=>({})),r.setGraph({rankdir:`TB`,nodesep:50,ranksep:70,marginx:30,marginy:30});for(let t of e){if(t.parentId)continue;let e=t.type===`groupNode`,n=e&&t.style?.width||Sg,i=e&&t.style?.height||Cg;r.setNode(t.id,{width:n,height:i})}for(let e of t)!r.hasNode(e.source)||!r.hasNode(e.target)||(n.has(e.id)?r.setEdge(e.target,e.source):r.setEdge(e.source,e.target));xg.default.layout(r);for(let t of e){if(t.parentId)continue;let e=r.node(t.id);if(!e)continue;let n=t.type===`groupNode`,i=n&&t.style?.width||Sg,a=n&&t.style?.height||Cg;t.position={x:e.x-i/2,y:e.y-a/2}}}var X={pending:`#6b7280`,running:`#3b82f6`,completed:`#22c55e`,failed:`#ef4444`,paused:`#f59e0b`,idle:`#6b7280`,waiting:`#a855f7`};function jg({data:e,children:t}){let[n,r]=(0,v.useState)(!1),i=(0,v.useRef)(null),a=(0,v.useCallback)(()=>{i.current=setTimeout(()=>r(!0),200)},[]),o=(0,v.useCallback)(()=>{i.current&&clearTimeout(i.current),r(!1)},[]),s=X[e.status]||X.pending;return(0,H.jsxs)(`div`,{className:`relative`,onMouseEnter:a,onMouseLeave:o,children:[t,n&&(0,H.jsxs)(`div`,{className:U(`absolute z-50 bottom-full left-1/2 -translate-x-1/2 mb-2`,`bg-[var(--surface-raised)] border border-[var(--border)] shadow-lg`,`rounded-lg px-3 py-2 max-w-[260px] pointer-events-none`,`animate-[tooltip-in_150ms_ease-out]`),children:[(0,H.jsx)(`div`,{className:`absolute top-full left-1/2 -translate-x-1/2 w-0 h-0 border-x-[6px] border-x-transparent border-t-[6px] border-t-[var(--border)]`}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-[11px]`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:`w-2 h-2 rounded-full flex-shrink-0`,style:{backgroundColor:s}}),(0,H.jsx)(`span`,{className:`font-medium text-[var(--text)] capitalize`,children:e.status}),e.iteration!=null&&e.iteration>1&&(0,H.jsxs)(`span`,{className:`text-[var(--text-muted)] ml-auto`,children:[`iter `,e.iteration]})]}),(0,H.jsx)(`div`,{className:`h-px bg-[var(--border)]`}),(0,H.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5`,children:[e.elapsed!=null&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Elapsed`}),(0,H.jsx)(`span`,{className:`text-[var(--text)] font-mono`,children:$e(e.elapsed)})]}),e.model&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Model`}),(0,H.jsx)(`span`,{className:`text-[var(--text)] truncate`,children:e.model})]}),e.tokens!=null&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Tokens`}),(0,H.jsxs)(`span`,{className:`text-[var(--text)] font-mono`,children:[et(e.tokens),e.inputTokens!=null&&e.outputTokens!=null&&(0,H.jsxs)(`span`,{className:`text-[var(--text-muted)]`,children:[` `,`(`,et(e.inputTokens),`↑ `,et(e.outputTokens),`↓)`]})]})]}),e.costUsd!=null&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Cost`}),(0,H.jsx)(`span`,{className:`text-[var(--text)] font-mono`,children:tt(e.costUsd)})]}),e.exitCode!=null&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Exit code`}),(0,H.jsx)(`span`,{className:U(`font-mono`,e.exitCode===0?`text-[var(--completed)]`:`text-[var(--failed)]`),children:e.exitCode})]}),e.selectedOption&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Selected`}),(0,H.jsx)(`span`,{className:`text-[var(--text)] truncate`,children:e.selectedOption})]}),e.terminationStatus&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)]`,children:`Termination`}),(0,H.jsx)(`span`,{className:U(`font-mono capitalize`,e.terminationStatus===`success`?`text-[var(--completed)]`:`text-[var(--failed)]`),children:e.terminationStatus})]})]}),e.reason&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`h-px bg-[var(--border)]`}),(0,H.jsxs)(`div`,{className:U(`leading-tight break-words`,e.terminationStatus===`failed`?`text-red-400`:`text-[var(--text)]`),children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] mr-1`,children:`Reason:`}),e.reason.slice(0,160),e.reason.length>160?`...`:``]})]}),e.errorMessage&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`h-px bg-[var(--border)]`}),(0,H.jsxs)(`div`,{className:`text-red-400 leading-tight`,children:[e.errorType&&(0,H.jsxs)(`span`,{className:`font-medium`,children:[e.errorType,`: `]}),(0,H.jsxs)(`span`,{className:`break-words`,children:[e.errorMessage.slice(0,120),e.errorMessage.length>120?`...`:``]})]})]})]})]})]})}var Mg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t],c=s?.elapsed,l=s?.model,u=s?.tokens,d=s?.input_tokens,f=s?.output_tokens,p=s?.cost_usd,m=s?.iteration,h=s?.error_type,g=s?.error_message,_=s?.context_pct,v=s?.provider_tier,y=s?.provider_name,b=Ng(t,a),x=Pg(a),S=(()=>{if(a===`failed`&&g)return{text:g.length>40?g.slice(0,37)+`...`:g,className:`text-red-400`};if(a===`running`)return{text:b,className:`text-[var(--text-muted)]`};if(a===`completed`){let e=[];return c!=null&&e.push($e(c)),u!=null&&e.push(`${et(u)} tok`),p!=null&&e.push(tt(p)),{text:e.join(` · `)||null,className:`text-[var(--text-muted)]`}}return{text:null,className:``}})();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,elapsed:c,model:l,tokens:u,inputTokens:d,outputTokens:f,costUsd:p,iteration:m,errorType:h,errorMessage:g},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`running`&&`shadow-[0_0_12px_var(--running-glow)]`,x),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,a===`running`&&`animate-pulse`),style:{backgroundColor:`${o}20`},children:(0,H.jsx)(O,{className:`w-3.5 h-3.5`,style:{color:o}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),m!=null&&m>1&&(0,H.jsxs)(`span`,{className:`flex-shrink-0 inline-flex items-center justify-center px-1.5 py-0.5 rounded-full text-[9px] font-bold leading-none`,style:{backgroundColor:`${o}25`,color:o},children:[`x`,m]}),v===`experimental`&&(0,H.jsx)(`span`,{className:`flex-shrink-0 inline-flex items-center justify-center px-1.5 py-0.5 rounded-full text-[9px] font-bold leading-none uppercase tracking-wide`,style:{backgroundColor:`rgba(245, 158, 11, 0.18)`,color:`#f59e0b`},title:`Experimental provider: ${y??`unknown`}`,children:`exp`})]}),S.text&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight`,S.className),children:S.text})]}),_!=null&&(0,H.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 h-[2px] rounded-b-lg overflow-hidden`,style:{backgroundColor:`rgba(255,255,255,0.06)`},children:(0,H.jsx)(`div`,{className:U(`h-full transition-all duration-500`,_>=90?`animate-[context-pulse_2s_ease-in-out_infinite]`:``),style:{width:`${Math.min(_,100)}%`,backgroundColor:_>=90?`#ef4444`:_>=70?`#f59e0b`:`#22c55e`}})})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function Ng(e,t){let n=vh()[e]?.startedAt,r=B(e=>e.replayMode),i=B(e=>e.lastEventTime),[a,o]=(0,v.useState)(`0.0s`),s=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(t===`running`){if(r){s.current&&clearInterval(s.current);let e=n??i??0;o($e((i??e)-e));return}let e=n==null?Date.now():n*1e3,t=()=>{o($e((Date.now()-e)/1e3))};return t(),s.current=setInterval(t,1e3),()=>{s.current&&clearInterval(s.current)}}else s.current&&clearInterval(s.current)},[t,n,r,i]),a}function Pg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`?r(`node-activate`):n===`running`&&(e===`completed`||e===`failed`)&&r(e===`completed`?`node-complete`:`node-fail`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Fg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t],c=s?.elapsed,l=s?.exit_code,u=s?.error_type,d=s?.error_message,f=Ig(t,a),p=Lg(a),m=(()=>{if(a===`failed`&&d)return{text:d.length>40?d.slice(0,37)+`...`:d,className:`text-red-400`};if(a===`running`)return{text:f,className:`text-[var(--text-muted)]`};if(a===`completed`){let e=[];return c!=null&&e.push($e(c)),l!=null&&e.push(`exit ${l}`),{text:e.join(` · `)||null,className:`text-[var(--text-muted)]`}}return{text:null,className:``}})();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,elapsed:c,exitCode:l,errorType:u,errorMessage:d},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`running`&&`shadow-[0_0_12px_var(--running-glow)]`,p),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,a===`running`&&`animate-pulse`),style:{backgroundColor:`${o}20`},children:(0,H.jsx)(be,{className:`w-3.5 h-3.5`,style:{color:o}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),m.text&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight`,m.className),children:m.text})]})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function Ig(e,t){let n=vh()[e]?.startedAt,r=B(e=>e.replayMode),i=B(e=>e.lastEventTime),[a,o]=(0,v.useState)(`0.0s`),s=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(t===`running`){if(r){s.current&&clearInterval(s.current);let e=n??i??0;o($e((i??e)-e));return}let e=n==null?Date.now():n*1e3,t=()=>{o($e((Date.now()-e)/1e3))};return t(),s.current=setInterval(t,1e3),()=>{s.current&&clearInterval(s.current)}}else s.current&&clearInterval(s.current)},[t,n,r,i]),a}function Lg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`?r(`node-activate`):n===`running`&&(e===`completed`||e===`failed`)&&r(e===`completed`?`node-complete`:`node-fail`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Rg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t],c=s?.elapsed,l=s?.set_output_keys,u=s?.set_value_repr,d=s?.error_type,f=s?.error_message,p=zg(t,a),m=Bg(a),h=(()=>{if(a===`failed`&&f)return{text:f.length>40?f.slice(0,37)+`...`:f,className:`text-red-400`};if(a===`running`)return{text:p,className:`text-[var(--text-muted)]`};if(a===`completed`){let e=[];if(c!=null&&e.push($e(c)),l&&l.length>0)e.push(`${l.length} key${l.length===1?``:`s`}`);else if(u){let t=u.length>24?u.slice(0,21)+`…`:u;e.push(t)}return{text:e.join(` · `)||null,className:`text-[var(--text-muted)]`}}return{text:null,className:``}})();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,elapsed:c,errorType:d,errorMessage:f},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`running`&&`shadow-[0_0_12px_var(--running-glow)]`,m),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,a===`running`&&`animate-pulse`),style:{backgroundColor:`${o}20`},children:(0,H.jsx)(Se,{className:`w-3.5 h-3.5`,style:{color:o}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),h.text&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight`,h.className),children:h.text})]})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function zg(e,t){let n=vh()[e]?.startedAt,r=B(e=>e.replayMode),i=B(e=>e.lastEventTime),[a,o]=(0,v.useState)(`0.0s`),s=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(t===`running`){if(r){s.current&&clearInterval(s.current);let e=n??i??0;o($e((i??e)-e));return}let e=n==null?Date.now():n*1e3,t=()=>{o($e((Date.now()-e)/1e3))};return t(),s.current=setInterval(t,1e3),()=>{s.current&&clearInterval(s.current)}}else s.current&&clearInterval(s.current)},[t,n,r,i]),a}function Bg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`?r(`node-activate`):n===`running`&&(e===`completed`||e===`failed`)&&r(e===`completed`?`node-complete`:`node-fail`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Vg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t]?.selected_option,c=Hg(a);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,selectedOption:s},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 border-dashed bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`waiting`&&`shadow-[0_0_12px_var(--waiting-muted)]`,a===`running`&&`shadow-[0_0_12px_var(--running-glow)]`,c),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,a===`waiting`&&`animate-pulse`),style:{backgroundColor:`${o}20`},children:(0,H.jsx)(_e,{className:`w-3.5 h-3.5`,style:{color:o}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),a===`waiting`&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--waiting)] truncate leading-tight`,children:`Awaiting input...`}),a===`completed`&&s&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] truncate leading-tight`,children:s})]})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function Hg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`||e===`waiting`?r(`node-activate`):(n===`running`||n===`waiting`)&&e===`completed`&&r(`node-complete`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Ug=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=r.type===`for_each_group`?me:L,a=r.progress,o=vh()[t]?.status||r.status||`pending`,s=X[o]||X.pending,c=Wg(o),l=a?`${a.completed+a.failed}/${a.total}${a.failed>0?` (${a.failed} failed)`:``}`:null,u=a&&a.total>0?(a.completed+a.failed)/a.total*100:0,d=a!=null&&a.failed>0;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsxs)(`div`,{className:U(`flex flex-col gap-1 px-4 py-3 rounded-xl border-2 border-dashed bg-[var(--surface)]/80 min-w-[180px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,o===`running`&&`shadow-[0_0_16px_var(--running-glow)]`,c),style:{borderColor:s,minHeight:`100%`},children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(i,{className:`w-3.5 h-3.5`,style:{color:s}}),(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text-secondary)]`,children:r.label})]}),l&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] font-mono`,children:l}),a&&a.total>0&&o===`running`&&(0,H.jsx)(`div`,{className:`w-full h-1 rounded-full bg-[var(--border)] overflow-hidden mt-0.5`,children:(0,H.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500 ease-out`,style:{width:`${u}%`,backgroundColor:d?`var(--failed)`:`var(--completed)`}})})]}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function Wg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`?r(`node-activate`):n===`running`&&(e===`completed`||e===`failed`)&&r(e===`completed`?`node-complete`:`node-fail`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Gg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=B(e=>e.nodes[t]?.status)||r.status||`pending`,a=X[i]||X.pending,o=B(e=>e.nodes[t]?.elapsed),s=B(e=>e.nodes[t]?.error_message),c=B(e=>e.navigateIntoSubworkflow),l=xh(),u=l.some(e=>e.parentAgent===t),d=l.find(e=>e.parentAgent===t)?.workflowName,f=(()=>{if(i===`failed`&&s)return{text:s.length>35?s.slice(0,32)+`...`:s,className:`text-red-400`};if(i===`running`)return{text:d||`Running subworkflow…`,className:`text-[var(--text-muted)]`};if(i===`completed`){let e=[];return d&&e.push(d),o!=null&&e.push(`${o.toFixed(1)}s`),{text:e.join(` · `)||`Done`,className:`text-[var(--text-muted)]`}}return{text:d||null,className:`text-[var(--text-muted)]`}})();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:i,elapsed:o,errorType:void 0,errorMessage:s,iteration:void 0},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[240px] transition-all duration-300 cursor-pointer`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,i===`running`&&`shadow-[0_0_12px_var(--running-glow)]`),style:{borderColor:a,borderStyle:`dashed`},onDoubleClick:e=>{u&&(e.stopPropagation(),c(t))},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,i===`running`&&`animate-pulse`),style:{backgroundColor:`${a}20`},children:(0,H.jsx)(se,{className:`w-3.5 h-3.5`,style:{color:a}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label})}),f.text&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight`,f.className),children:f.text})]}),u&&(0,H.jsx)(j,{className:`w-3.5 h-3.5 flex-shrink-0 text-[var(--text-muted)]`})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})}),Kg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t],c=s?.duration_seconds??s?.requested_seconds,l=s?.waited_seconds,u=s?.elapsed,d=s?.interrupted,f=s?.error_type,p=s?.error_message,m=qg(t,a),h=Jg(a),g=(()=>{if(a===`failed`&&p)return{text:p.length>40?p.slice(0,37)+`...`:p,className:`text-red-400`};if(a===`running`)return{text:`${m}${typeof c==`number`?` / ${$e(c)}`:``}`,className:`text-[var(--text-muted)]`};if(a===`completed`){let e=[];return l==null?u!=null&&e.push($e(u)):e.push($e(l)),d&&e.push(`interrupted`),{text:e.join(` · `)||null,className:`text-[var(--text-muted)]`}}return a===`pending`&&typeof c==`number`?{text:$e(c),className:`text-[var(--text-muted)]`}:{text:null,className:``}})();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,elapsed:l??u,errorType:f,errorMessage:p},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[220px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`running`&&`shadow-[0_0_12px_var(--running-glow)]`,h),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,a===`running`&&`animate-pulse`),style:{backgroundColor:`${o}20`},children:(0,H.jsx)(te,{className:`w-3.5 h-3.5`,style:{color:o}})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),g.text&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight`,g.className),children:g.text})]})]})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})});function qg(e,t){let n=vh()[e]?.startedAt,r=B(e=>e.replayMode),i=B(e=>e.lastEventTime),[a,o]=(0,v.useState)(`0.0s`),s=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(t===`running`){if(r){s.current&&clearInterval(s.current);let e=n??i??0;o($e((i??e)-e));return}let e=n==null?Date.now():n*1e3,t=()=>{o($e((Date.now()-e)/1e3))};return t(),s.current=setInterval(t,1e3),()=>{s.current&&clearInterval(s.current)}}else s.current&&clearInterval(s.current)},[t,n,r,i]),a}function Jg(e){let t=(0,v.useRef)(e),[n,r]=(0,v.useState)(``);return(0,v.useEffect)(()=>{let n=t.current;if(t.current=e,n===e)return;e===`running`?r(`node-activate`):n===`running`&&(e===`completed`||e===`failed`)&&r(e===`completed`?`node-complete`:`node-fail`);let i=setTimeout(()=>r(``),400);return()=>clearTimeout(i)},[e]),n}var Yg=(0,v.memo)(function({data:e,id:t,selected:n}){let r=e,i=vh(),a=i[t]?.status||r.status||`pending`,o=X[a]||X.pending,s=i[t],c=s?.termination_reason,l=s?.termination_status,u=s?.error_message,d=s?.error_type,f=c||u,p=a===`failed`?`text-red-400`:a===`completed`?`text-green-400`:`text-[var(--text-muted)]`;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(jg,{data:{status:a,reason:c,terminationStatus:l,errorType:d,errorMessage:u},children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-3 py-1.5 rounded-lg border-2 bg-[var(--node-bg)] min-w-[140px] max-w-[260px] transition-all duration-300`,n&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,a===`completed`&&`shadow-[0_0_12px_var(--completed-muted)]`,a===`failed`&&`shadow-[0_0_12px_var(--failed-muted)]`),style:{borderColor:o},children:[(0,H.jsx)(`div`,{className:`flex items-center justify-center w-6 h-6 rounded-md flex-shrink-0`,style:{backgroundColor:`${o}20`},children:(0,H.jsx)(de,{className:`w-3.5 h-3.5`,style:{color:o},fill:a===`completed`||a===`failed`?o:`transparent`,fillOpacity:.2})}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:r.label}),(0,H.jsxs)(`span`,{className:`text-[10px] uppercase tracking-wide text-[var(--text-muted)] truncate leading-tight`,children:[`terminate`,l?` · ${l}`:``]}),f&&(0,H.jsx)(`span`,{className:U(`text-[10px] truncate leading-tight mt-0.5`,p),title:f,children:f.length>50?f.slice(0,47)+`...`:f})]})]})})]})}),Xg=(0,v.memo)(function({data:e,selected:t}){let n=e.status||`pending`,r=n===`completed`,i=n===`failed`,a=!r&&!i,o=r?X.completed:i?X.failed:X.pending;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300`,r?`bg-[var(--completed)] shadow-[0_0_16px_var(--completed-muted)]`:i?`bg-[var(--failed)] shadow-[0_0_16px_var(--failed-muted)]`:`bg-[var(--node-bg)]`,t&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`),style:{borderColor:o},children:r?(0,H.jsx)(k,{className:`w-5 h-5 text-white`,strokeWidth:3}):i?(0,H.jsx)(ye,{className:`w-3.5 h-3.5 text-white`,fill:`white`}):(0,H.jsx)(k,{className:`w-5 h-5`,strokeWidth:2.5,style:{color:a?X.pending:o}})})]})}),Zg=(0,v.memo)(function({data:e,selected:t}){let n=e.status||`pending`,r=X[n]||X.pending,i=n===`running`||n===`completed`;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300`,i?`bg-[var(--completed)]`:`bg-[var(--node-bg)]`,t&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,i&&`shadow-[0_0_12px_var(--completed-muted)]`),style:{borderColor:r},children:(0,H.jsx)(pe,{className:`w-4 h-4 ml-0.5`,style:{color:i?`white`:r}})}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})}),Qg=`#a78bfa`,$g=(0,v.memo)(function({data:e,selected:t}){let n=e,r=n.status||`pending`,i=r===`running`||r===`completed`,a=i?Qg:X[r]||Qg,o=n.parentAgent,s=B(e=>e.navigateUp);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-11 h-11 rounded-full border-2 border-dashed transition-all duration-300 cursor-pointer`,i?`bg-[#a78bfa]`:`bg-[var(--node-bg)]`,t&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`,i&&`shadow-[0_0_12px_rgba(167,139,250,0.4)]`),style:{borderColor:a},onDoubleClick:e=>{e.stopPropagation(),s()},children:(0,H.jsx)(E,{className:`w-4 h-4`,style:{color:i?`white`:a}})}),o&&(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)] whitespace-nowrap`,children:[`from `,(0,H.jsx)(`span`,{className:`font-medium text-[var(--text)]`,children:o})]})]}),(0,H.jsx)(ep,{type:`source`,position:K.Bottom,className:`!bg-[var(--border)] !border-none !w-2 !h-2`})]})}),e_=`#a78bfa`,t_=(0,v.memo)(function({data:e,selected:t}){let n=e,r=n.status||`pending`,i=r===`completed`,a=r===`failed`,o=i?e_:a?X.failed:e_,s=n.parentAgent,c=B(e=>e.navigateUp);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ep,{type:`target`,position:K.Top,className:`!bg-[var(--border)] !border-none !w-2 !h-2`}),(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,H.jsx)(`div`,{className:U(`flex items-center justify-center w-11 h-11 rounded-full border-2 border-dashed transition-all duration-300 cursor-pointer`,i?`bg-[#a78bfa] shadow-[0_0_12px_rgba(167,139,250,0.4)]`:a?`bg-[var(--failed)] shadow-[0_0_16px_var(--failed-muted)]`:`bg-[var(--node-bg)]`,t&&`ring-2 ring-[var(--accent)] ring-offset-1 ring-offset-[var(--bg)]`),style:{borderColor:o},onDoubleClick:e=>{e.stopPropagation(),c()},children:(0,H.jsx)(D,{className:`w-4 h-4`,style:{color:i||a?`white`:o}})}),s&&(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)] whitespace-nowrap`,children:[`return to `,(0,H.jsx)(`span`,{className:`font-medium text-[var(--text)]`,children:s})]})]})]})}),n_=(0,v.memo)(function({id:e,sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:o,source:s,target:c,data:l}){let u=bh(),d=(0,v.useMemo)(()=>u.find(e=>e.from===s&&e.to===c),[u,s,c]),[f,p,m]=Ul({sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:o}),h=l?.when,g=!!h,_=d?.state===`taken`,y=d?.state===`highlighted`,b=d?.state===`failed`,x=`var(--edge-color)`,S=2,C;return b?(x=`var(--failed)`,S=3):_?(x=`var(--edge-taken)`,S=3):y&&(x=`var(--edge-active)`,S=3),g&&!_&&!y&&!b&&(C=`6 3`),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Pp,{id:e,path:f,style:{stroke:x,strokeWidth:S,strokeDasharray:C,transition:`stroke 0.3s ease, stroke-width 0.3s ease`},markerEnd:`url(#arrow-${b?`failed`:_?`taken`:y?`active`:`default`})`}),g&&(0,H.jsx)(Pm,{children:(0,H.jsx)(`div`,{className:`nodrag nopan`,style:{position:`absolute`,transform:`translate(-50%, -50%) translate(${p}px,${m}px)`,pointerEvents:`all`},children:(0,H.jsx)(`span`,{className:`inline-block px-1.5 py-0.5 rounded-full text-[9px] font-mono leading-tight max-w-[140px] truncate`,style:{backgroundColor:b?`var(--failed)`:_?`var(--edge-taken)`:`var(--surface)`,color:b||_?`var(--bg)`:`var(--text-muted)`,border:`1px solid ${b?`var(--failed)`:_?`var(--edge-taken)`:`var(--border)`}`},title:h,children:h})})}),_&&(0,H.jsx)(`circle`,{r:`3`,fill:`var(--edge-taken)`,children:(0,H.jsx)(`animateMotion`,{dur:`1s`,repeatCount:`indefinite`,path:f})}),b&&(0,H.jsx)(`circle`,{r:`3`,fill:`var(--failed)`,opacity:`0.8`,children:(0,H.jsx)(`animateMotion`,{dur:`1.5s`,repeatCount:`indefinite`,path:f})})]})});function r_(){let e=B(e=>e.workflowStatus),t=B(e=>e.workflowFailure),n=B(e=>e.workflowFailedAgent),r=B(e=>e.workflowTermination),i=B(e=>e.selectNode);if(e!==`failed`||!t)return null;if(t.stopped_by_user){let e=t.checkpoint_path?.split(`/`).pop();return(0,H.jsx)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]`,children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-4 py-2 rounded-lg`,`bg-slate-900/90 border border-slate-500/40 shadow-lg shadow-slate-500/10`,`backdrop-blur-sm max-w-[560px]`),children:[(0,H.jsx)(ye,{className:`w-4 h-4 text-slate-300 flex-shrink-0`}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-slate-200`,children:`Workflow Stopped`}),t.checkpoint_path?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-[11px] text-slate-300/80 truncate`,title:t.checkpoint_path,children:[`Checkpoint saved: `,e]}),(0,H.jsx)(`span`,{className:`text-[10px] text-slate-400/70 truncate`,children:`Resume from the CLI with: conductor resume`})]}):t.checkpoint_unavailable_reason?(0,H.jsxs)(`span`,{className:`text-[11px] text-amber-300/80 truncate`,title:t.checkpoint_unavailable_reason,children:[`No checkpoint could be saved — `,t.checkpoint_unavailable_reason]}):(0,H.jsx)(`span`,{className:`text-[11px] text-slate-400/70 truncate`,children:`Saving checkpoint…`})]}),n&&(0,H.jsxs)(`button`,{onClick:()=>i(n),className:`flex items-center gap-1 px-2 py-1 rounded text-[10px] font-medium text-slate-200 bg-slate-500/20 hover:bg-slate-500/30 transition-colors flex-shrink-0 ml-1`,children:[(0,H.jsx)(re,{className:`w-3 h-3`}),`View`]})]})})}let a=r?.is_explicit&&r.status===`failed`,o=a?r.termination_reason||t.message||`Workflow terminated`:t.message||t.error_type||`Unknown error`,s=a?`Workflow Terminated`:`Workflow Failed`,c=t.error_type===`TimeoutError`;return(0,H.jsx)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]`,children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-2 px-4 py-2 rounded-lg`,`bg-red-950/90 border border-red-500/40 shadow-lg shadow-red-500/10`,`backdrop-blur-sm max-w-[560px]`),children:[(0,H.jsx)(xe,{className:`w-4 h-4 text-red-400 flex-shrink-0`}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-red-300`,children:s}),(0,H.jsx)(`span`,{className:`text-[11px] text-red-400/80 truncate`,children:o}),a&&r?.terminated_by&&(0,H.jsxs)(`span`,{className:`text-[10px] text-red-400/60 truncate`,children:[`Terminated by: `,r.terminated_by]}),c&&t.current_agent&&(0,H.jsxs)(`span`,{className:`text-[10px] text-red-400/60 truncate`,children:[`Timed out on agent: `,t.current_agent]}),t.checkpoint_path&&(0,H.jsxs)(`span`,{className:`text-[10px] text-red-400/50 truncate`,title:t.checkpoint_path,children:[`Checkpoint: `,t.checkpoint_path.split(`/`).pop()]})]}),n&&(0,H.jsxs)(`button`,{onClick:()=>i(n),className:`flex items-center gap-1 px-2 py-1 rounded text-[10px] font-medium text-red-300 bg-red-500/20 hover:bg-red-500/30 transition-colors flex-shrink-0 ml-1`,children:[(0,H.jsx)(re,{className:`w-3 h-3`}),`View`]})]})})}function i_(){let[e,t]=(0,v.useState)(!1),n=B(e=>e.workflowStatus),r=B(e=>e.workflowTermination),i=B(e=>e.totalCost),a=B(e=>e.totalTokens),o=B(e=>e.agentsCompleted),s=B(e=>e.agentsTotal),c=it();if(n!==`completed`||e)return null;let l=r?.is_explicit&&r.status===`success`;return(0,H.jsx)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]`,children:(0,H.jsxs)(`div`,{className:U(`flex items-center gap-3 px-4 py-2 rounded-lg`,`bg-green-950/90 border border-green-500/40 shadow-lg shadow-green-500/10`,`backdrop-blur-sm max-w-[560px]`),children:[(0,H.jsx)(N,{className:`w-4 h-4 text-green-400 flex-shrink-0`}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-green-300`,children:l?`Workflow Terminated`:`Completed`}),l&&r?.termination_reason&&(0,H.jsx)(`span`,{className:`text-[11px] text-green-400/80 truncate`,children:r.termination_reason}),l&&r?.terminated_by&&(0,H.jsxs)(`span`,{className:`text-[10px] text-green-400/60 truncate`,children:[`Terminated by: `,r.terminated_by]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 text-[11px] text-green-400/80 font-mono flex-shrink-0 ml-auto`,children:[(0,H.jsx)(`span`,{children:c}),s>0&&(0,H.jsxs)(`span`,{children:[o,`/`,s,` agents`]}),a>0&&(0,H.jsxs)(`span`,{children:[et(a),` tok`]}),i>0&&(0,H.jsx)(`span`,{children:tt(i)})]}),(0,H.jsx)(`button`,{onClick:()=>t(!0),className:`p-0.5 rounded text-green-500/60 hover:text-green-300 transition-colors flex-shrink-0 ml-1`,children:(0,H.jsx)(Te,{className:`w-3.5 h-3.5`})})]})})}var a_={agentNode:Mg,scriptNode:Fg,setNode:Rg,gateNode:Vg,groupNode:Ug,workflowNode:Gg,waitNode:Kg,terminateNode:Yg,endNode:Xg,startNode:Zg,ingressNode:$g,egressNode:t_},o_={animatedEdge:n_},s_={type:`animatedEdge`};function c_(){return(0,H.jsx)(`svg`,{style:{position:`absolute`,width:0,height:0},children:(0,H.jsxs)(`defs`,{children:[(0,H.jsx)(`marker`,{id:`arrow-default`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerWidth:`8`,markerHeight:`8`,orient:`auto-start-reverse`,children:(0,H.jsx)(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,fill:`var(--edge-color)`})}),(0,H.jsx)(`marker`,{id:`arrow-active`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerWidth:`8`,markerHeight:`8`,orient:`auto-start-reverse`,children:(0,H.jsx)(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,fill:`var(--edge-active)`})}),(0,H.jsx)(`marker`,{id:`arrow-taken`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerWidth:`8`,markerHeight:`8`,orient:`auto-start-reverse`,children:(0,H.jsx)(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,fill:`var(--edge-taken)`})}),(0,H.jsx)(`marker`,{id:`arrow-failed`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerWidth:`8`,markerHeight:`8`,orient:`auto-start-reverse`,children:(0,H.jsx)(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,fill:`var(--failed)`})})]})})}function l_(){let e=Sh(),t=B(e=>e.viewContextPath),n=B(e=>e.selectNode),r=B(e=>e.selectedNode),i=B(e=>e.workflowStatus),a=B(e=>e.wsStatus),o=B(e=>e.workflowFailedAgent),s=B(e=>e.navigateIntoSubworkflow),{agents:c,routes:l,parallelGroups:u,forEachGroups:d,nodes:f,groupProgress:p,entryPoint:m,subworkflowContexts:h,parentAgent:g}=e,[_,y,b]=Fm([]),[x,S,C]=Im([]),w=(0,v.useRef)(!1),T=(0,v.useRef)(``),E=JSON.stringify(t);(0,v.useEffect)(()=>{if(c.length===0){T.current!==E&&(w.current=!1,T.current=E,y([]),S([]));return}if(T.current!==E&&(w.current=!1,T.current=E),w.current)return;w.current=!0;let{nodes:e,edges:t}=Og(c,l,u,d,f,p,m,g);y(e),S(t)},[c,l,u,d,f,p,m,y,S,E,g]),(0,v.useEffect)(()=>{w.current&&y(e=>e.map(e=>{let t=f[e.id];if(!t)return e;let n=t.status||`pending`;if(n!==e.data.status){let t={...e.data,status:n};return e.data.groupName&&p[e.data.groupName]&&(t.progress=p[e.data.groupName]),{...e,data:t}}if(e.data.groupName&&p[e.data.groupName]){let t=e.data.progress,n=p[e.data.groupName];if(n&&(!t||t.completed!==n.completed||t.failed!==n.failed))return{...e,data:{...e.data,progress:n}}}return e}))},[f,p,y]);let D=(0,v.useCallback)((e,t)=>{t.type===`groupNode`&&t.data.type!==`for_each_group`||n(t.id)},[n]),O=(0,v.useCallback)((e,t)=>{h.some(e=>e.parentAgent===t.id)&&s(t.id)},[h,s]),k=(0,v.useCallback)(()=>{n(null)},[n]),A=(0,v.useCallback)(e=>X[e.data?.status||`pending`]??X.pending??`#6b7280`,[]);(0,v.useEffect)(()=>{y(e=>e.map(e=>({...e,selected:e.id===r})))},[r,y]),(0,v.useEffect)(()=>{i===`failed`&&o&&n(o)},[i,o,n]);let j=i===`pending`&&c.length===0,M=(()=>{switch(a){case`connecting`:return`Connecting to workflow…`;case`reconnecting`:return`Reconnecting…`;case`disconnected`:return`Connection lost. Retrying…`;default:return`Waiting for workflow…`}})();return(0,H.jsxs)(`div`,{className:`w-full h-full relative`,children:[(0,H.jsx)(c_,{}),(0,H.jsx)(r_,{}),(0,H.jsx)(i_,{}),j&&(0,H.jsxs)(`div`,{className:`absolute inset-0 z-10 flex flex-col items-center justify-center pointer-events-none`,children:[(0,H.jsxs)(`div`,{className:`relative mb-3`,children:[(0,H.jsx)(Ee,{className:`w-8 h-8 text-[var(--accent)] opacity-20`}),(0,H.jsx)(ce,{className:`w-8 h-8 text-[var(--text-muted)] animate-spin absolute inset-0 opacity-40`})]}),(0,H.jsx)(`p`,{className:`text-sm text-[var(--text-muted)] animate-pulse`,children:M})]}),(0,H.jsxs)(Mm,{nodes:_,edges:x,onNodesChange:b,onEdgesChange:C,onNodeClick:D,onNodeDoubleClick:O,onPaneClick:k,nodeTypes:a_,edgeTypes:o_,defaultEdgeOptions:s_,fitView:!0,fitViewOptions:{padding:.2},minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,children:[(0,H.jsx)(Um,{variant:zm.Dots,gap:20,size:1,color:`var(--border-subtle)`}),(0,H.jsx)(ph,{nodeColor:A,maskColor:`var(--minimap-mask)`,style:{background:`var(--minimap-bg)`},pannable:!0,zoomable:!0}),(0,H.jsx)(Qm,{showInteractive:!1,children:(0,H.jsx)(u_,{})}),(0,H.jsx)(d_,{}),(0,H.jsx)(f_,{viewPathKey:E}),(0,H.jsx)(p_,{})]})]})}function u_(){let{fitView:e}=jf();return(0,H.jsx)(`button`,{onClick:(0,v.useCallback)(()=>{e({padding:.2,duration:300})},[e]),className:`react-flow__controls-button`,title:`Fit view (F)`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,H.jsx)(le,{className:`w-3.5 h-3.5`})})}function d_(){let{fitView:e}=jf();return(0,v.useEffect)(()=>{let t=t=>{let n=t.target?.tagName;n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.key===`f`&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&e({padding:.2,duration:300})};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),null}function f_({viewPathKey:e}){let{fitView:t}=jf(),n=(0,v.useRef)(e);return(0,v.useEffect)(()=>{n.current!==e&&(n.current=e,setTimeout(()=>t({padding:.2,duration:300}),50))},[e,t]),null}function p_(){let e=Oh();return e?(0,H.jsx)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-20 animate-[banner-in_200ms_ease-out]`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 rounded-lg bg-amber-950/90 border border-amber-500/40 shadow-lg shadow-amber-500/10 backdrop-blur-sm max-w-[560px]`,children:[(0,H.jsx)(`span`,{className:`text-xs text-amber-300`,children:`⚠`}),(0,H.jsx)(`span`,{className:`text-[11px] text-amber-400/80`,children:e.message}),(0,H.jsx)(`a`,{href:window.location.pathname,className:`px-2 py-0.5 rounded text-[10px] font-medium text-amber-300 bg-amber-500/20 hover:bg-amber-500/30 transition-colors flex-shrink-0 ml-1`,children:`Root`})]})}):null}function m_({items:e}){let t=e.filter(e=>e.value!=null&&e.value!==``);return t.length===0?null:(0,H.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:t.map(({label:e,value:t})=>(0,H.jsxs)(`div`,{className:`contents`,children:[(0,H.jsx)(`dt`,{className:`text-[var(--text-muted)] whitespace-nowrap`,children:e}),(0,H.jsx)(`dd`,{className:`text-[var(--text)] break-words`,children:typeof t==`object`?JSON.stringify(t):String(t)})]},e))})}function h_(e){let t=[];return e.elapsed!=null&&t.push({label:`Elapsed`,value:$e(e.elapsed)}),e.model&&t.push({label:`Model`,value:e.model}),e.reasoning_effort&&t.push({label:`Reasoning`,value:e.reasoning_effort}),e.tokens!=null&&t.push({label:`Tokens`,value:et(e.tokens)}),e.input_tokens!=null&&e.output_tokens!=null&&t.push({label:`In / Out`,value:`${et(e.input_tokens)} / ${et(e.output_tokens)}`}),e.cost_usd!=null&&t.push({label:`Cost`,value:tt(e.cost_usd)}),e.context_window_used!=null&&e.context_window_max!=null&&t.push({label:`Context`,value:rt(e.context_window_used,e.context_window_max)}),e.iteration!=null&&t.push({label:`Iteration`,value:e.iteration}),e.error_type&&t.push({label:`Error`,value:e.error_type}),e.error_message&&t.push({label:`Message`,value:e.error_message}),t}function g_({output:e,title:t=`Output`,defaultExpanded:n=!0,maxHeight:r=`300px`}){let[i,a]=(0,v.useState)(n),[o,s]=(0,v.useState)(!1),c=nt(e);if(!c)return null;let l=typeof e==`object`&&!!e;return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`button`,{onClick:()=>a(!i),className:`flex items-center gap-1 text-[10px] uppercase tracking-wider text-[var(--text-muted)] hover:text-[var(--text)] transition-colors font-semibold`,children:[i?(0,H.jsx)(A,{className:`w-3 h-3`}):(0,H.jsx)(j,{className:`w-3 h-3`}),t]}),i&&(0,H.jsx)(`button`,{onClick:async()=>{await navigator.clipboard.writeText(c),s(!0),setTimeout(()=>s(!1),2e3)},className:`flex items-center gap-1 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors`,title:`Copy to clipboard`,children:o?(0,H.jsx)(k,{className:`w-3 h-3 text-[var(--completed)]`}):(0,H.jsx)(F,{className:`w-3 h-3`})})]}),i&&(0,H.jsx)(`pre`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded-md p-3 font-mono text-[11px] leading-relaxed text-[var(--text)] overflow-auto whitespace-pre-wrap break-words`,style:{maxHeight:r},children:l?(0,H.jsx)(__,{text:c}):c})]})}function __({text:e}){let t=e.split(/("(?:[^"\\]|\\.)*")/g);return(0,H.jsx)(H.Fragment,{children:t.map((e,n)=>{if(n%2==1){let r=t.slice(n+1).join(``);return(0,H.jsx)(`span`,{className:/^\s*:/.test(r)?`text-blue-400`:`text-green-400`,children:e},n)}return(0,H.jsx)(`span`,{dangerouslySetInnerHTML:{__html:e.replace(/\b(true|false|null)\b|(-?\d+\.?\d*(?:e[+-]?\d+)?)/gi,(e,t,n)=>t?`${e}`:n?`${e}`:e)}},n)})})}function v_({activity:e,defaultExpanded:t=!0}){let[n,r]=(0,v.useState)(t),i=(0,v.useRef)(null);return(0,v.useEffect)(()=>{i.current&&n&&(i.current.scrollTop=i.current.scrollHeight)},[e.length,n]),e.length===0?null:(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(`button`,{onClick:()=>r(!n),className:`flex items-center gap-1 text-[10px] uppercase tracking-wider text-[var(--text-muted)] hover:text-[var(--text)] transition-colors font-semibold`,children:[n?(0,H.jsx)(A,{className:`w-3 h-3`}):(0,H.jsx)(j,{className:`w-3 h-3`}),`Activity (`,e.length,`)`]}),n&&(0,H.jsx)(`div`,{ref:i,className:`max-h-[400px] overflow-y-auto space-y-0.5`,children:e.map((e,t)=>(0,H.jsx)(y_,{entry:e},t))})]})}function y_({entry:e}){return(0,H.jsxs)(`div`,{className:U(`py-1.5 px-2 rounded text-[11px] leading-relaxed border-b border-[var(--border-subtle)] last:border-b-0`),children:[(0,H.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,H.jsx)(`span`,{className:`w-4 text-center flex-shrink-0`,children:e.icon}),(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] uppercase text-[9px] font-semibold tracking-wider w-12 flex-shrink-0 pt-px`,children:e.label}),(0,H.jsx)(`span`,{className:U(`break-words`,{reasoning:`text-indigo-400/70`,"tool-start":`text-blue-400`,"tool-complete":`text-green-400`,turn:`text-amber-400`,message:`text-[var(--text)]`}[e.type]||`text-[var(--text)]`),children:typeof e.text==`object`?JSON.stringify(e.text):e.text})]}),e.detail&&(0,H.jsx)(`div`,{className:`mt-1 ml-[4.25rem] px-2 py-1 bg-[var(--bg)] rounded text-[10px] font-mono text-[var(--text-muted)] whitespace-pre-wrap break-words max-h-24 overflow-y-auto`,children:typeof e.detail==`object`?JSON.stringify(e.detail,null,2):e.detail})]})}var b_={running:{label:`Validating…`,color:`#3b82f6`},passed:{label:`Passed`,color:`#22c55e`},failed:{label:`Failed`,color:`#f59e0b`},error:{label:`Validator error (treated as pass)`,color:`#f59e0b`}};function x_({node:e}){let t=e.validator_state;if(!t)return null;let n=b_[t]??{label:`Validating…`,color:`#3b82f6`},r=e.validator_issues??[],i=(t===`failed`||t===`error`)&&r.length>0;return(0,H.jsxs)(`div`,{className:`border border-[var(--border)] rounded-lg overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 bg-[var(--bg)]`,children:[(0,H.jsx)(`span`,{className:`text-xs font-semibold text-[var(--text)]`,children:`Validation`}),(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider ml-auto`,style:{backgroundColor:`${n.color}20`,color:n.color},children:n.label})]}),(0,H.jsxs)(`div`,{className:`px-3 py-3 space-y-2 border-t border-[var(--border)]`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-[10px] text-[var(--text-muted)]`,children:[e.validator_model&&(0,H.jsxs)(`span`,{children:[`model: `,e.validator_model]}),e.validator_cost_usd!=null&&(0,H.jsxs)(`span`,{children:[`cost: $`,e.validator_cost_usd.toFixed(4)]}),e.validator_attempts!=null&&e.validator_attempts>1&&(0,H.jsxs)(`span`,{children:[`runs: `,e.validator_attempts]})]}),i&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-[var(--text-muted)]`,children:`Issues`}),(0,H.jsx)(`ul`,{className:`space-y-1`,children:r.map((e,t)=>(0,H.jsxs)(`li`,{className:`text-xs text-[var(--text)] flex gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] flex-shrink-0`,children:`•`}),(0,H.jsx)(`span`,{children:e})]},t))})]}),e.validator_will_retry&&(0,H.jsx)(`div`,{className:`text-[10px] text-[var(--text-muted)] italic`,children:`Primary agent re-run once with this feedback appended.`})]})]})}function S_({node:e}){let t=e.status,n=X[t]||X.pending,r=e.iterationHistory&&e.iterationHistory.length>0;return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Agent`})]}),(0,H.jsx)(x_,{node:e}),r?(0,H.jsx)(C_,{label:`Iteration ${e.iteration??`?`} (current)`,defaultExpanded:!0,status:t,snapshot:{iteration:e.iteration??0,prompt:e.prompt,output:e.output,elapsed:e.elapsed,model:e.model,reasoning_effort:e.reasoning_effort,tokens:e.tokens,input_tokens:e.input_tokens,output_tokens:e.output_tokens,cost_usd:e.cost_usd,activity:e.activity,error_type:e.error_type,error_message:e.error_message}}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(m_,{items:h_(e)}),e.prompt&&(0,H.jsx)(g_,{output:e.prompt,title:`Input / Prompt`,defaultExpanded:!0}),(0,H.jsx)(v_,{activity:e.activity,defaultExpanded:t!==`completed`}),e.output!=null&&(0,H.jsx)(g_,{output:e.output,title:`Output`})]}),r&&[...e.iterationHistory].reverse().map(e=>(0,H.jsx)(C_,{label:`Iteration ${e.iteration}`,defaultExpanded:!1,status:t,snapshot:e},e.iteration))]})}function C_({label:e,defaultExpanded:t,snapshot:n,status:r}){let[i,a]=(0,v.useState)(t);return(0,H.jsxs)(`div`,{className:`border border-[var(--border)] rounded-lg overflow-hidden`,children:[(0,H.jsxs)(`button`,{onClick:()=>a(!i),className:`flex items-center gap-2 w-full px-3 py-2 bg-[var(--bg)] hover:bg-[var(--node-bg)] transition-colors text-left`,children:[i?(0,H.jsx)(A,{className:`w-3.5 h-3.5 text-[var(--text-muted)] flex-shrink-0`}):(0,H.jsx)(j,{className:`w-3.5 h-3.5 text-[var(--text-muted)] flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-[var(--text)]`,children:e}),n.elapsed!=null&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] ml-auto`,children:w_(n.elapsed)})]}),i&&(0,H.jsxs)(`div`,{className:`px-3 py-3 space-y-3 border-t border-[var(--border)]`,children:[(0,H.jsx)(m_,{items:h_(n)}),n.prompt&&(0,H.jsx)(g_,{output:n.prompt,title:`Input / Prompt`,defaultExpanded:!1}),(0,H.jsx)(v_,{activity:n.activity,defaultExpanded:t&&r!==`completed`}),n.output!=null&&(0,H.jsx)(g_,{output:n.output,title:`Output`,defaultExpanded:!0}),n.error_type&&(0,H.jsxs)(`div`,{className:`text-xs text-red-400`,children:[(0,H.jsx)(`span`,{className:`font-semibold`,children:n.error_type}),n.error_message&&(0,H.jsxs)(`span`,{className:`ml-1`,children:[`— `,n.error_message]})]})]})]})}function w_(e){return e<1?`${(e*1e3).toFixed(0)}ms`:e<60?`${e.toFixed(1)}s`:`${Math.floor(e/60)}m ${(e%60).toFixed(0)}s`}function T_({node:e}){let t=e.status,n=X[t]||X.pending,r=[];e.elapsed!=null&&r.push({label:`Elapsed`,value:$e(e.elapsed)}),e.exit_code!=null&&r.push({label:`Exit Code`,value:e.exit_code}),e.error_type&&r.push({label:`Error`,value:e.error_type}),e.error_message&&r.push({label:`Message`,value:e.error_message});let i=``;return e.stdout&&(i+=e.stdout),e.stderr&&(i+=(i?` - ---- stderr --- -`:``)+e.stderr),(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Script`})]}),(0,H.jsx)(m_,{items:r}),i&&(0,H.jsx)(g_,{output:i,title:`Output`})]})}function E_({node:e}){let t=e.status,n=X[t]||X.pending,r=e.set_output_type,i=e.set_output_keys,a=e.set_value_repr,o=i?.length??0,s=[];return e.elapsed!=null&&s.push({label:`Elapsed`,value:$e(e.elapsed)}),r&&s.push({label:`Output Type`,value:r}),o>0?s.push({label:`Bindings`,value:i.join(`, `)}):t===`completed`&&s.push({label:`Bindings`,value:`scalar`}),e.error_type&&s.push({label:`Error`,value:e.error_type}),e.error_message&&s.push({label:`Message`,value:e.error_message}),(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Set`})]}),(0,H.jsx)(m_,{items:s}),a&&(0,H.jsx)(g_,{output:a,title:`Value preview`})]})}function D_(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var O_=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,k_=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,A_={};function j_(e,t){return((t||A_).jsx?k_:O_).test(e)}var M_=/[ \t\n\f\r]/g;function N_(e){return typeof e==`object`?e.type===`text`?P_(e.value):!1:P_(e)}function P_(e){return e.replace(M_,``)===``}var F_=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};F_.prototype.normal={},F_.prototype.property={},F_.prototype.space=void 0;function I_(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new F_(n,r,t)}function L_(e){return e.toLowerCase()}var R_=class{constructor(e,t){this.attribute=t,this.property=e}};R_.prototype.attribute=``,R_.prototype.booleanish=!1,R_.prototype.boolean=!1,R_.prototype.commaOrSpaceSeparated=!1,R_.prototype.commaSeparated=!1,R_.prototype.defined=!1,R_.prototype.mustUseProperty=!1,R_.prototype.number=!1,R_.prototype.overloadedBoolean=!1,R_.prototype.property=``,R_.prototype.spaceSeparated=!1,R_.prototype.space=void 0;var z_=s({boolean:()=>Z,booleanish:()=>V_,commaOrSpaceSeparated:()=>G_,commaSeparated:()=>W_,number:()=>Q,overloadedBoolean:()=>H_,spaceSeparated:()=>U_}),B_=0,Z=K_(),V_=K_(),H_=K_(),Q=K_(),U_=K_(),W_=K_(),G_=K_();function K_(){return 2**++B_}var q_=Object.keys(z_),J_=class extends R_{constructor(e,t,n,r){let i=-1;if(super(e,t),Y_(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&cv.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(sv,dv);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!sv.test(e)){let n=e.replace(ov,uv);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=J_}return new i(r,t)}function uv(e){return`-`+e.toLowerCase()}function dv(e){return e.charAt(1).toUpperCase()}var fv=I_([Z_,ev,nv,rv,iv],`html`),pv=I_([Z_,tv,nv,rv,iv],`svg`);function mv(e){return e.join(` `).trim()}var hv=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=` -`,d=`/`,f=`*`,p=``,m=`comment`,h=`declaration`;function g(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,g=1;function v(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(u);g=~n?e.length-n:g+e.length}function y(){var e={line:l,column:g};return function(t){return t.position=new b(e),C(),t}}function b(e){this.start=e,this.end={line:l,column:g},this.source=t.source}b.prototype.content=e;function x(n){var r=Error(t.source+`:`+l+`:`+g+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=g,r.source=e,!t.silent)throw r}function S(t){var n=t.exec(e);if(n){var r=n[0];return v(r),e=e.slice(r.length),n}}function C(){S(i)}function w(e){var t;for(e||=[];t=T();)t!==!1&&e.push(t);return e}function T(){var t=y();if(!(d!=e.charAt(0)||f!=e.charAt(1))){for(var n=2;p!=e.charAt(n)&&(f!=e.charAt(n)||d!=e.charAt(n+1));)++n;if(n+=2,p===e.charAt(n-1))return x(`End of comment missing`);var r=e.slice(2,n-2);return g+=2,v(r),e=e.slice(n),g+=2,t({type:m,comment:r})}}function E(){var e=y(),t=S(a);if(t){if(T(),!S(o))return x(`property missing ':'`);var r=S(s),i=e({type:h,property:_(t[0].replace(n,p)),value:r?_(r[0].replace(n,p)):p});return S(c),i}}function D(){var e=[];w(e);for(var t;t=E();)t!==!1&&(e.push(t),w(e));return e}return C(),D()}function _(e){return e?e.replace(l,p):p}t.exports=g})),gv=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(hv());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),_v=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),vv=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(gv()),r=_v();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),yv=xv(`end`),bv=xv(`start`);function xv(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function Sv(e){let t=bv(e),n=yv(e);if(t&&n)return{start:t,end:n}}function Cv(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?Tv(e.position):`start`in e||`end`in e?Tv(e):`line`in e||`column`in e?wv(e):``}function wv(e){return Ev(e&&e.line)+`:`+Ev(e&&e.column)}function Tv(e){return wv(e&&e.start)+`-`+wv(e&&e.end)}function Ev(e){return e&&typeof e==`number`?e:1}var Dv=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=Cv(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};Dv.prototype.file=``,Dv.prototype.name=``,Dv.prototype.reason=``,Dv.prototype.message=``,Dv.prototype.stack=``,Dv.prototype.column=void 0,Dv.prototype.line=void 0,Dv.prototype.ancestors=void 0,Dv.prototype.cause=void 0,Dv.prototype.fatal=void 0,Dv.prototype.place=void 0,Dv.prototype.ruleId=void 0,Dv.prototype.source=void 0;var Ov=l(vv(),1),kv={}.hasOwnProperty,Av=new Map,jv=/[A-Z]/g,Mv=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),Nv=new Set([`td`,`th`]);function Pv(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=Gv(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=Wv(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?pv:fv,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=Fv(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function Fv(e,t,n){if(t.type===`element`)return Iv(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Lv(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return zv(e,t,n);if(t.type===`mdxjsEsm`)return Rv(e,t);if(t.type===`root`)return Bv(e,t,n);if(t.type===`text`)return Vv(e,t)}function Iv(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=pv,e.schema=i),e.ancestors.push(t);let a=Zv(e,t.tagName,!1),o=Kv(e,t),s=Jv(e,t);return Mv.has(t.tagName)&&(s=s.filter(function(e){return typeof e==`string`?!N_(e):!0})),Hv(e,o,a,t),Uv(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Lv(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Qv(e,t.position)}function Rv(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Qv(e,t.position)}function zv(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=pv,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Zv(e,t.name,!0),o=qv(e,t),s=Jv(e,t);return Hv(e,o,a,t),Uv(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Bv(e,t,n){let r={};return Uv(r,Jv(e,t)),e.create(t,e.Fragment,r,n)}function Vv(e,t){return t.value}function Hv(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Uv(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function Wv(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function Gv(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=bv(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Kv(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&kv.call(t.properties,i)){let a=Yv(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&Nv.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function qv(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Qv(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else Qv(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function Jv(e,t){let n=[],r=-1,i=e.passKeys?new Map:Av;for(;++ri?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(uy(e,e.length,0,t),e):t}var fy={}.hasOwnProperty;function py(e){let t={},n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function _y(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var vy=ky(/[A-Za-z]/),yy=ky(/[\dA-Za-z]/),by=ky(/[#-'*+\--9=?A-Z^-~]/);function xy(e){return e!==null&&(e<32||e===127)}var Sy=ky(/\d/),Cy=ky(/[\dA-Fa-f]/),wy=ky(/[!-/:-@[-`{-~]/);function $(e){return e!==null&&e<-2}function Ty(e){return e!==null&&(e<0||e===32)}function Ey(e){return e===-2||e===-1||e===32}var Dy=ky(/\p{P}|\p{S}/u),Oy=ky(/\s/);function ky(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Ay(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function jy(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Ey(r)?(e.enter(n),s(r)):t(r)}function s(r){return Ey(r)&&a++o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;er;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Ly(e,t,n){return jy(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Ry(e){if(e===null||Ty(e)||Oy(e))return 1;if(Dy(e))return 2}function zy(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Uy(d,-c),Uy(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=dy(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=dy(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=dy(l,zy(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=dy(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=dy(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,uy(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n0&&Ey(t)?jy(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||$(t)?e.check(nb,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||$(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Ey(t)?jy(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Ey(t)?jy(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||$(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function ab(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var ob={name:`codeIndented`,tokenize:cb},sb={partial:!0,tokenize:lb};function cb(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),jy(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):$(t)?e.attempt(sb,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||$(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function lb(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):$(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):jy(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):$(e)?i(e):n(e)}}var ub={name:`codeText`,previous:fb,resolve:db,tokenize:pb};function db(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&hb(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),hb(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),hb(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function Cb(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||xy(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||$(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||Ty(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):$(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||$(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!Ey(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function Tb(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):$(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),jy(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||$(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function Eb(e,t){let n;return r;function r(i){return $(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Ey(i)?jy(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Db={name:`definition`,tokenize:kb},Ob={partial:!0,tokenize:Ab};function kb(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return wb.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=_y(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return Ty(t)?Eb(e,l)(t):l(t)}function l(t){return Cb(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(Ob,d,d)(t)}function d(t){return Ey(t)?jy(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||$(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function Ab(e,t,n){return r;function r(t){return Ty(t)?Eb(e,i)(t):n(t)}function i(t){return Tb(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Ey(t)?jy(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||$(e)?t(e):n(e)}}var jb={name:`hardBreakEscape`,tokenize:Mb};function Mb(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return $(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Nb={name:`headingAtx`,resolve:Pb,tokenize:Fb};function Pb(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},uy(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Fb(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||Ty(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||$(n)?(e.exit(`atxHeading`),t(n)):Ey(n)?jy(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||Ty(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var Ib=`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.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Lb=[`pre`,`script`,`style`,`textarea`],Rb={concrete:!0,name:`htmlFlow`,resolveTo:Vb,tokenize:Hb},zb={partial:!0,tokenize:Wb},Bb={partial:!0,tokenize:Ub};function Vb(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Hb(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:P):vy(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):vy(a)?(e.consume(a),i=4,r.interrupt?t:P):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:P):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return vy(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Ty(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Lb.includes(l)?(i=1,r.interrupt?t(s):O(s)):Ib.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||yy(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return Ey(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||vy(t)?(e.consume(t),b):Ey(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||yy(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):Ey(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):Ey(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||$(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||Ty(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||Ey(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||$(t)?O(t):Ey(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),M):t===60&&i===1?(e.consume(t),N):t===62&&i===4?(e.consume(t),F):t===63&&i===3?(e.consume(t),P):t===93&&i===5?(e.consume(t),te):$(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(zb,ne,k)(t)):t===null||$(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(Bb,A,ne)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),j}function j(t){return t===null||$(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function M(t){return t===45?(e.consume(t),P):O(t)}function N(t){return t===47?(e.consume(t),o=``,ee):O(t)}function ee(t){if(t===62){let n=o.toLowerCase();return Lb.includes(n)?(e.consume(t),F):O(t)}return vy(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),ee):O(t)}function te(t){return t===93?(e.consume(t),P):O(t)}function P(t){return t===62?(e.consume(t),F):t===45&&i===2?(e.consume(t),P):O(t)}function F(t){return t===null||$(t)?(e.exit(`htmlFlowData`),ne(t)):(e.consume(t),F)}function ne(n){return e.exit(`htmlFlow`),t(n)}}function Ub(e,t,n){let r=this;return i;function i(t){return $(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Wb(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Ky,t,n)}}var Gb={name:`htmlText`,tokenize:Kb};function Kb(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):vy(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):vy(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):$(t)?(o=d,N(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?M(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):$(t)?(o=h,N(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?M(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?M(t):$(t)?(o=v,N(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):$(t)?(o=y,N(t)):(e.consume(t),y)}function b(e){return e===62?M(e):y(e)}function x(t){return vy(t)?(e.consume(t),S):n(t)}function S(t){return t===45||yy(t)?(e.consume(t),S):C(t)}function C(t){return $(t)?(o=C,N(t)):Ey(t)?(e.consume(t),C):M(t)}function w(t){return t===45||yy(t)?(e.consume(t),w):t===47||t===62||Ty(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),M):t===58||t===95||vy(t)?(e.consume(t),E):$(t)?(o=T,N(t)):Ey(t)?(e.consume(t),T):M(t)}function E(t){return t===45||t===46||t===58||t===95||yy(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):$(t)?(o=D,N(t)):Ey(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):$(t)?(o=O,N(t)):Ey(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,j):t===null?n(t):$(t)?(o=k,N(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||Ty(t)?T(t):(e.consume(t),A)}function j(e){return e===47||e===62||Ty(e)?T(e):n(e)}function M(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function N(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ee}function ee(t){return Ey(t)?jy(e,te,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):te(t)}function te(t){return e.enter(`htmlTextData`),o(t)}}var qb={name:`labelEnd`,resolveAll:Zb,resolveTo:Qb,tokenize:$b},Jb={tokenize:ex},Yb={tokenize:tx},Xb={tokenize:nx};function Zb(e){let t=-1,n=[];for(;++t=3&&(a===null||$(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Ey(t)?jy(e,s,`whitespace`)(t):s(t))}}var dx={continuation:{tokenize:hx},exit:_x,name:`list`,tokenize:mx},fx={partial:!0,tokenize:vx},px={partial:!0,tokenize:gx};function mx(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:Sy(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(lx,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return Sy(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Ky,r.interrupt?n:u,e.attempt(fx,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Ey(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function hx(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ky,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,jy(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Ey(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(px,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,jy(e,e.attempt(dx,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function gx(e,t,n){let r=this;return jy(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function _x(e){e.exit(this.containerState.type)}function vx(e,t,n){let r=this;return jy(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Ey(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var yx={name:`setextUnderline`,resolveTo:bx,tokenize:xx};function bx(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function xx(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Ey(t)?jy(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||$(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Sx={tokenize:Cx};function Cx(e){let t=this,n=e.attempt(Ky,r,e.attempt(this.parser.constructs.flowInitial,i,jy(e,e.attempt(this.parser.constructs.flow,i,e.attempt(vb,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var wx={resolveAll:Ox()},Tx=Dx(`string`),Ex=Dx(`text`);function Dx(e){return{resolveAll:Ox(e===`text`?kx:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++iRx,contentInitial:()=>Mx,disable:()=>zx,document:()=>jx,flow:()=>Px,flowInitial:()=>Nx,insideSpan:()=>Lx,string:()=>Fx,text:()=>Ix}),jx={42:dx,43:dx,45:dx,48:dx,49:dx,50:dx,51:dx,52:dx,53:dx,54:dx,55:dx,56:dx,57:dx,62:Jy},Mx={91:Db},Nx={[-2]:ob,[-1]:ob,32:ob},Px={35:Nb,42:lx,45:[yx,lx],60:Rb,61:yx,95:lx,96:rb,126:rb},Fx={38:eb,92:Qy},Ix={[-5]:sx,[-4]:sx,[-3]:sx,33:rx,38:eb,42:By,60:[Wy,Gb],91:ax,92:[jb,Qy],93:qb,95:By,96:ub},Lx={null:[By,wx]},Rx={null:[42,95]},zx={null:[]};function Bx(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=dy(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=zy(a,l.events,l),l.events):[]}function f(e,t){return Hx(p(e),t)}function p(e){return Vx(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function Hx(e,t){let n=-1,r=[],i;for(;++n0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||nS).call(a,void 0,e[0])}for(r.position={start:$x(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:$x(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function sS(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function cS(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function lS(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=Ay(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function uS(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function dS(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function fS(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function pS(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return fS(e,t);let i={src:Ay(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function mS(e,t){let n={src:Ay(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function hS(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function gS(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return fS(e,t);let i={href:Ay(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function _S(e,t){let n={href:Ay(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function vS(e,t,n){let r=e.all(t),i=n?yS(n):bS(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s1}function xS(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=bv(t.children[1]),o=yv(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function ES(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(jS(t.slice(i),i>0,!1)),a.join(``)}function jS(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===OS||t===kS;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===OS||t===kS;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function MS(e,t){let n={type:`text`,value:AS(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function NS(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var PS={blockquote:iS,break:aS,code:oS,delete:sS,emphasis:cS,footnoteReference:lS,heading:uS,html:dS,imageReference:pS,image:mS,inlineCode:hS,linkReference:gS,link:_S,listItem:vS,list:xS,paragraph:SS,root:CS,strong:wS,table:TS,tableCell:DS,tableRow:ES,text:MS,thematicBreak:NS,toml:FS,yaml:FS,definition:FS,footnoteDefinition:FS};function FS(){}var IS=typeof self==`object`?self:globalThis,LS=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(new IS[e](t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(new IS[a](o),i)};return r},RS=e=>LS(new Map,e)(0),zS=``,{toString:BS}={},{keys:VS}=Object,HS=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=BS.call(e).slice(8,-1);switch(n){case`Array`:return[1,zS];case`Object`:return[2,zS];case`Date`:return[3,zS];case`RegExp`:return[4,zS];case`Map`:return[5,zS];case`Set`:return[6,zS];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]},US=([e,t])=>e===0&&(t===`function`||t===`symbol`),WS=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=HS(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of VS(r))(e||!US(HS(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(US(HS(n))||US(HS(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!US(HS(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},GS=(e,{json:t,lossy:n}={})=>{let r=[];return WS(!(t||n),!!t,new Map,r)(e),r},KS=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?RS(GS(e,t)):structuredClone(e):(e,t)=>RS(GS(e,t));function qS(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function JS(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function YS(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||qS,r=e.options.footnoteBackLabel||JS,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...KS(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:` -`},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:` -`}]}}var XS=(function(e){if(e==null)return tC;if(typeof e==`function`)return eC(e);if(typeof e==`object`)return Array.isArray(e)?ZS(e):QS(e);if(typeof e==`string`)return $S(e);throw Error(`Expected function, string, or object as test`)});function ZS(e){let t=[],n=-1;for(;++n`:``))+`)`})}return u;function u(){let l=iC,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=oC(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d0&&n.push({type:`text`,value:` -`}),n}function hC(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function gC(e,t){let n=uC(e,t),r=n.one(e,void 0),i=YS(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:` -`},i)),a}function _C(e,t){return e&&`run`in e?async function(n,r){let i=gC(n,{file:r,...t});await e.run(i,r)}:function(n,r){return gC(n,{file:r,...e||t})}}function vC(e){if(e)throw e}var yC=o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});ft.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var CC={basename:wC,dirname:TC,extname:EC,join:DC,sep:`/`};function wC(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);AC(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function TC(e){if(AC(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function EC(e){AC(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function DC(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function kC(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function AC(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var jC={cwd:MC};function MC(){return`/`}function NC(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function PC(e){if(typeof e==`string`)e=new URL(e);else if(!NC(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return FC(e)}function FC(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n0){let[r,...a]=t,o=n[i][1];bC(o)&&bC(r)&&(r=(0,UC.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function KC(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function qC(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function JC(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function YC(e){if(!bC(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function XC(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function ZC(e){return QC(e)?e:new LC(e)}function QC(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function $C(e){return typeof e==`string`||ew(e)}function ew(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var tw=[],nw={allowDangerousHtml:!0},rw=/^(https?|ircs?|mailto|xmpp)$/i,iw=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function aw(e){let t=ow(e),n=sw(e);return cw(t.runSync(t.parse(n),n),e)}function ow(e){let t=e.rehypePlugins||tw,n=e.remarkPlugins||tw,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...nw}:nw;return GC().use(rS).use(n).use(_C,r).use(t)}function sw(e){let t=e.children||``,n=new LC;return typeof t==`string`?n.value=t:``+t,n}function cw(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||lw;for(let e of iw)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return sC(e,l),Pv(e,{Fragment:H.Fragment,components:i,ignoreInvalidStyle:!0,jsx:H.jsx,jsxs:H.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in ny)if(Object.hasOwn(ny,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=ny[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function lw(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||rw.test(e.slice(0,t))?e:``}function uw(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function dw(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}function fw(e,t,n){let r=XS((n||{}).ignore||[]),i=pw(t),a=-1;for(;++a0?{type:`text`,value:a}:void 0),a===!1?r.lastIndex=n+1:(s!==n&&u.push({type:`text`,value:e.value.slice(s,n)}),Array.isArray(a)?u.push(...a):a&&u.push(a),s=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}return l?(s?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(`)`),i=uw(e,`(`),a=uw(e,`)`);for(;r!==-1&&i>a;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(`)`),a++;return[e,n]}function jw(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||Oy(n)||Dy(n))&&(!t||n!==47)}Vw.peek=Bw;function Mw(){this.buffer()}function Nw(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function Pw(){this.buffer()}function Fw(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function Iw(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=_y(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Lw(e){this.exit(e)}function Rw(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=_y(this.sliceSerialize(e)).toLowerCase(),n.label=t}function zw(e){this.exit(e)}function Bw(){return`[`}function Vw(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function Hw(){return{enter:{gfmFootnoteCallString:Mw,gfmFootnoteCall:Nw,gfmFootnoteDefinitionLabelString:Pw,gfmFootnoteDefinition:Fw},exit:{gfmFootnoteCallString:Iw,gfmFootnoteCall:Lw,gfmFootnoteDefinitionLabelString:Rw,gfmFootnoteDefinition:zw}}}function Uw(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Vw},unsafe:[{character:`[`,inConstruct:[`label`,`phrasing`,`reference`]}]};function n(e,n,r,i){let a=r.createTracker(i),o=a.move(`[^`),s=r.enter(`footnoteDefinition`),c=r.enter(`label`);return o+=a.move(r.safe(r.associationId(e),{before:o,after:`]`})),c(),o+=a.move(`]:`),e.children&&e.children.length>0&&(a.shift(4),o+=a.move((t?` -`:` `)+r.indentLines(r.containerFlow(e,a.current()),t?Gw:Ww))),s(),o}}function Ww(e,t,n){return t===0?e:Gw(e,t,n)}function Gw(e,t,n){return(n?``:` `)+e}var Kw=[`autolink`,`destinationLiteral`,`destinationRaw`,`reference`,`titleQuote`,`titleApostrophe`];Zw.peek=Qw;function qw(){return{canContainEols:[`delete`],enter:{strikethrough:Yw},exit:{strikethrough:Xw}}}function Jw(){return{unsafe:[{character:`~`,inConstruct:`phrasing`,notInConstruct:Kw}],handlers:{delete:Zw}}}function Yw(e){this.enter({type:`delete`,children:[]},e)}function Xw(e){this.exit(e)}function Zw(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function Qw(){return`~`}function $w(e){return e.length}function eT(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||$w,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++ul&&(l=e[u].length);++ac[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++dc[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++u `),a.shift(2);let o=n.indentLines(n.containerFlow(e,a.current()),iT);return i(),o}function iT(e,t,n){return`>`+(n?``:` `)+e}function aT(e,t){return oT(e,t.inConstruct,!0)&&!oT(e,t.notInConstruct,!1)}function oT(e,t,n){if(typeof t==`string`&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function lT(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function uT(e){let t=e.options.fence||"`";if(t!=="`"&&t!==`~`)throw Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function dT(e,t,n,r){let i=uT(n),a=e.value||``,o=i==="`"?`GraveAccent`:`Tilde`;if(lT(e,n)){let e=n.enter(`codeIndented`),t=n.indentLines(a,fT);return e(),t}let s=n.createTracker(r),c=i.repeat(Math.max(cT(a,i)+1,3)),l=n.enter(`codeFenced`),u=s.move(c);if(e.lang){let t=n.enter(`codeFencedLang${o}`);u+=s.move(n.safe(e.lang,{before:u,after:` `,encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){let t=n.enter(`codeFencedMeta${o}`);u+=s.move(` `),u+=s.move(n.safe(e.meta,{before:u,after:` -`,encode:["`"],...s.current()})),t()}return u+=s.move(` -`),a&&(u+=s.move(a+` -`)),u+=s.move(c),l(),u}function fT(e,t,n){return(n?``:` `)+e}function pT(e){let t=e.options.quote||`"`;if(t!==`"`&&t!==`'`)throw Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function mT(e,t,n,r){let i=pT(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`definition`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`[`);return l+=c.move(n.safe(n.associationId(e),{before:l,after:`]`,...c.current()})),l+=c.move(`]: `),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:` -`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),o(),l}function hT(e){let t=e.options.emphasis||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function gT(e){return`&#x`+e.toString(16).toUpperCase()+`;`}function _T(e,t,n){let r=Ry(e),i=Ry(t);return r===void 0?i===void 0?n===`_`?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}vT.peek=yT;function vT(e,t,n,r){let i=hT(n),a=n.enter(`emphasis`),o=n.createTracker(r),s=o.move(i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=_T(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=gT(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=_T(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+gT(d));let p=o.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function yT(e,t,n){return n.options.emphasis||`*`}function bT(e,t){let n=!1;return sC(e,function(e){if(`value`in e&&/\r?\n|\r/.test(e.value)||e.type===`break`)return n=!0,!1}),!!((!e.depth||e.depth<3)&&iy(e)&&(t.options.setext||n))}function xT(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),a=n.createTracker(r);if(bT(e,n)){let t=n.enter(`headingSetext`),r=n.enter(`phrasing`),o=n.containerPhrasing(e,{...a.current(),before:` -`,after:` -`});return r(),t(),o+` -`+(i===1?`=`:`-`).repeat(o.length-(Math.max(o.lastIndexOf(`\r`),o.lastIndexOf(` -`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:` -`,...a.current()});return/^[\t ]/.test(l)&&(l=gT(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}ST.peek=CT;function ST(e){return e.value||``}function CT(){return`<`}wT.peek=TT;function wT(e,t,n,r){let i=pT(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function TT(){return`!`}ET.peek=DT;function ET(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function DT(){return`!`}OT.peek=kT;function OT(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a\u007F]/.test(e.url))}jT.peek=MT;function jT(e,t,n,r){let i=pT(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(AT(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function MT(e,t,n){return AT(e,n)?`<`:`[`}NT.peek=PT;function NT(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function PT(){return`[`}function FT(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function IT(e){let t=FT(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function LT(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function RT(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function zT(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?LT(n):FT(n),s=e.ordered?o===`.`?`)`:`.`:IT(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),RT(n)===o&&t){let t=-1;for(;++t-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function HT(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var UT=XS([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function WT(e,t,n,r){return(e.children.some(function(e){return UT(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function GT(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}KT.peek=qT;function KT(e,t,n,r){let i=GT(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=_T(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=gT(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=_T(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+gT(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function qT(e,t,n){return n.options.strong||`*`}function JT(e,t,n,r){return n.safe(e.value,r)}function YT(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function XT(e,t,n){let r=(RT(n)+(n.options.ruleSpaces?` `:``)).repeat(YT(n));return n.options.ruleSpaces?r.slice(0,-1):r}var ZT={blockquote:rT,break:sT,code:dT,definition:mT,emphasis:vT,hardBreak:sT,heading:xT,html:ST,image:wT,imageReference:ET,inlineCode:OT,link:jT,linkReference:NT,list:zT,listItem:VT,paragraph:HT,root:WT,strong:KT,text:JT,thematicBreak:XT};function QT(){return{enter:{table:$T,tableData:rE,tableHeader:rE,tableRow:tE},exit:{codeText:iE,table:eE,tableData:nE,tableHeader:nE,tableRow:nE}}}function $T(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function eE(e){this.exit(e),this.data.inTable=void 0}function tE(e){this.enter({type:`tableRow`,children:[]},e)}function nE(e){this.exit(e)}function rE(e){this.enter({type:`tableCell`,children:[]},e)}function iE(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,aE));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function aE(e,t){return t===`|`?t:e}function oE(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:` -`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(` -`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return eT(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var RE={tokenize:KE,partial:!0};function zE(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:UE,continuation:{tokenize:WE},exit:GE}},text:{91:{name:`gfmFootnoteCall`,tokenize:HE},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:BE,resolveTo:VE}}}}function BE(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=_y(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function VE(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function HE(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||Ty(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(_y(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return Ty(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function UE(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||Ty(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=_y(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return Ty(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),jy(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function WE(e,t,n){return e.check(Ky,t,e.attempt(RE,t,n))}function GE(e){e.exit(`gfmFootnoteDefinition`)}function KE(e,t,n){let r=this;return jy(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function qE(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Ry(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var JE=class{constructor(){this.map=[]}add(e,t,n){YE(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function YE(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):$(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Ey(t)?jy(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||Ty(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Ey(t)?jy(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Ey(t)?jy(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||$(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Ey(t)?jy(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||$(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||$(n)?(e.exit(`tableRow`),t(n)):Ey(n)?jy(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||Ty(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function $E(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new JE;for(;++nn[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},nD(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function tD(e,t,n,r,i){let a=[],o=nD(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function nD(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var rD={name:`tasklistCheck`,tokenize:aD};function iD(){return{text:{91:rD}}}function aD(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return Ty(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return $(r)?t(r):Ey(r)?e.check({tokenize:oD},t,n)(r):n(r)}}function oD(e,t,n){return jy(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function sD(e){return py([CE(),zE(),qE(e),ZE(),iD()])}var cD={};function lD(e){let t=this,n=e||cD,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(sD(n)),a.push(fE()),o.push(pE(n))}var uD=new Set([`.md`,`.markdown`,`.mdx`]);function dD({filePath:e,onClose:t}){let[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(!0),c=(0,v.useCallback)(async()=>{s(!0),a(null);try{let t=e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`),n=await fetch(`/api/files/${t}`);if(!n.ok){a((await n.json().catch(()=>({}))).error||`HTTP ${n.status}`);return}r(await n.json())}catch(e){a(e instanceof Error?e.message:`Failed to load file`)}finally{s(!1)}},[e]);(0,v.useEffect)(()=>{c()},[c]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let l=n?uD.has(n.extension):!1;return(0,H.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm`,children:(0,H.jsxs)(`div`,{className:`relative flex flex-col w-[90vw] max-w-3xl max-h-[80vh] rounded-xl border border-[var(--border)] bg-[var(--surface)] shadow-2xl overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2.5 border-b border-[var(--border)] bg-[var(--surface-raised)] flex-shrink-0`,children:[(0,H.jsx)(I,{className:`w-4 h-4 text-[var(--text-muted)] flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate flex-1`,title:e,children:e}),n&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] flex-shrink-0 tabular-nums`,children:pD(n.size)}),(0,H.jsx)(`button`,{onClick:t,className:`p-1 rounded-md text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-hover)] transition-colors flex-shrink-0`,title:`Close (Esc)`,children:(0,H.jsx)(Te,{className:`w-4 h-4`})})]}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-auto px-5 py-4 min-h-0`,children:[o&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,H.jsx)(ce,{className:`w-5 h-5 text-[var(--text-muted)] animate-spin`})}),i&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg bg-red-500/10 border border-red-500/30`,children:[(0,H.jsx)(xe,{className:`w-4 h-4 text-red-400 flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs text-red-300`,children:i})]}),n&&!i&&(l?(0,H.jsx)(`div`,{className:`file-viewer-markdown text-xs leading-relaxed text-[var(--text)]`,children:(0,H.jsx)(fD,{content:n.content})}):(0,H.jsx)(`pre`,{className:`font-mono text-[11px] leading-[1.6] text-[var(--text)] whitespace-pre-wrap break-words`,children:n.content}))]})]})})}function fD({content:e}){return(0,H.jsx)(aw,{remarkPlugins:[lD],components:{h1:({children:e})=>(0,H.jsx)(`h1`,{className:`text-base font-bold mb-3 mt-2 text-[var(--text)]`,children:e}),h2:({children:e})=>(0,H.jsx)(`h2`,{className:`text-sm font-bold mb-2 mt-3 text-[var(--text)]`,children:e}),h3:({children:e})=>(0,H.jsx)(`h3`,{className:`text-xs font-bold mb-1.5 mt-2 text-[var(--text)]`,children:e}),p:({children:e})=>(0,H.jsx)(`p`,{className:`mb-2 last:mb-0`,children:e}),ul:({children:e})=>(0,H.jsx)(`ul`,{className:`list-disc list-inside mb-2 space-y-1 ml-2`,children:e}),ol:({children:e})=>(0,H.jsx)(`ol`,{className:`list-decimal list-inside mb-2 space-y-1 ml-2`,children:e}),li:({children:e})=>(0,H.jsx)(`li`,{children:e}),code:({children:e,className:t})=>t?.includes(`language-`)?(0,H.jsx)(`code`,{className:`block bg-[var(--bg)] border border-[var(--border)] rounded px-3 py-2 font-mono text-[11px] my-2 overflow-x-auto whitespace-pre`,children:e}):(0,H.jsx)(`code`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]`,children:e}),pre:({children:e})=>(0,H.jsx)(`pre`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded-md px-3 py-2.5 font-mono text-[11px] my-2 overflow-x-auto`,children:e}),strong:({children:e})=>(0,H.jsx)(`strong`,{className:`font-semibold`,children:e}),em:({children:e})=>(0,H.jsx)(`em`,{className:`italic`,children:e}),a:({href:e,children:t})=>(0,H.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-400 hover:text-blue-300 underline underline-offset-2`,children:t}),blockquote:({children:e})=>(0,H.jsx)(`blockquote`,{className:`border-l-2 border-[var(--border)] pl-3 my-2 opacity-80`,children:e}),hr:()=>(0,H.jsx)(`hr`,{className:`border-[var(--border)] my-3`}),table:({children:e})=>(0,H.jsx)(`div`,{className:`overflow-x-auto my-2`,children:(0,H.jsx)(`table`,{className:`text-[11px] border-collapse w-full`,children:e})}),th:({children:e})=>(0,H.jsx)(`th`,{className:`border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold`,children:e}),td:({children:e})=>(0,H.jsx)(`td`,{className:`border border-[var(--border)] px-2 py-1`,children:e})},children:e})}function pD(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function mD({node:e}){let t=B(e=>e.sendGateResponse),n=B(e=>e.wsStatus),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),p=e.status===`waiting`,m=e.status===`completed`;(0,v.useEffect)(()=>{p&&(i(null),o(``),c(null),u(!1))},[p]);let h=p&&n===`connected`&&r===null,g=(n,r)=>{if(h){if(r){i(n),c(r);return}i(n),u(!0),t(e.name,n)}},_=()=>{if(r===null||s===null)return;let n={[s]:a};u(!0),t(e.name,r,n),c(null)},y=e.option_details,b=y?.find(t=>t.value===e.selected_option)?.label||e.selected_option;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[p&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/30`,children:[(0,H.jsxs)(`span`,{className:`relative flex h-2.5 w-2.5 flex-shrink-0`,children:[(0,H.jsx)(`span`,{className:`animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75`}),(0,H.jsx)(`span`,{className:`relative inline-flex rounded-full h-2.5 w-2.5 bg-amber-500`})]}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-amber-400 tracking-wide`,children:`Decision Required`})]}),e.prompt&&(0,H.jsx)(`div`,{className:`border-l-2 border-amber-500/50 pl-3 py-0.5`,children:(0,H.jsx)(gD,{text:e.prompt,muted:!1,onFileClick:f})}),y&&y.length>0&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:y.map(e=>{let t=r===e.value,n=r!==null&&!t;return(0,H.jsx)(`button`,{disabled:!h&&!t,onClick:()=>g(e.value,e.prompt_for),className:`w-full text-left px-3 py-2.5 rounded-lg border transition-all duration-150 ${t?`border-green-500/60 bg-green-500/10`:n?`border-[var(--border)] opacity-40 cursor-default`:`border-[var(--border)] bg-[var(--surface)] hover:border-amber-400/60 hover:bg-amber-500/5 cursor-pointer group`}`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,H.jsx)(`div`,{className:`flex-shrink-0`,children:t?(0,H.jsx)(`div`,{className:`w-4 h-4 rounded-full bg-green-500 flex items-center justify-center`,children:(0,H.jsx)(k,{className:`w-2.5 h-2.5 text-white`,strokeWidth:3})}):(0,H.jsx)(`div`,{className:`w-4 h-4 rounded-full border-2 transition-colors ${n?`border-[var(--border)]`:`border-[var(--border)] group-hover:border-amber-400`}`})}),(0,H.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,H.jsx)(`span`,{className:`text-xs font-medium ${t?`text-green-400`:`text-[var(--text)]`}`,children:e.label})}),e.route&&(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)] flex-shrink-0`,children:[`→ `,e.route]})]})},e.value)})}),l&&!s&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-1`,children:[(0,H.jsx)(ce,{className:`w-3 h-3 text-green-400 animate-spin`}),(0,H.jsx)(`span`,{className:`text-[10px] text-green-400`,children:`Sending...`})]}),h&&(0,H.jsx)(`p`,{className:`text-[10px] text-[var(--text-muted)] px-1`,children:`Select an option to continue the workflow`})]}),!y&&e.options&&e.options.length>0&&(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(`h4`,{className:`text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:`Options`}),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.options.map(e=>(0,H.jsx)(`span`,{className:`text-[11px] px-2 py-0.5 rounded border border-[var(--border)] text-[var(--text-muted)]`,children:e},e))})]}),s&&(0,H.jsxs)(`div`,{className:`rounded-lg border border-[var(--border)] bg-[var(--bg)] overflow-hidden`,children:[(0,H.jsx)(`div`,{className:`px-3 py-2 border-b border-[var(--border)] bg-[var(--surface)]`,children:(0,H.jsx)(`h4`,{className:`text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:s})}),(0,H.jsxs)(`div`,{className:`p-3 space-y-2`,children:[(0,H.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>e.key===`Enter`&&_(),placeholder:`Enter ${s}...`,className:`w-full text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-amber-400 transition-colors`,autoFocus:!0}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)]`,children:`Press Enter or click Submit`}),(0,H.jsxs)(`button`,{onClick:_,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg bg-amber-500 text-white hover:bg-amber-600 transition-colors font-medium`,children:[(0,H.jsx)(ge,{className:`w-3 h-3`}),`Submit`]})]})]})]})]}),m&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg bg-green-500/10 border border-green-500/30`,children:[(0,H.jsx)(k,{className:`w-3.5 h-3.5 text-green-400 flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-green-400 tracking-wide`,children:`Decision Completed`})]}),e.prompt&&(0,H.jsx)(`div`,{className:`border-l-2 border-[var(--border)] pl-3 py-0.5`,children:(0,H.jsx)(gD,{text:e.prompt,muted:!0,onFileClick:f})}),b&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-green-500/30 bg-green-500/5`,children:[(0,H.jsx)(`div`,{className:`w-4 h-4 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0`,children:(0,H.jsx)(k,{className:`w-2.5 h-2.5 text-white`,strokeWidth:3})}),(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)]`,children:b}),e.route&&(0,H.jsxs)(`span`,{className:`ml-auto text-[10px] text-[var(--text-muted)]`,children:[`→ `,e.route]})]}),y&&y.length>1&&(0,H.jsx)(`div`,{className:`space-y-1`,children:y.filter(t=>t.value!==e.selected_option).map(e=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg opacity-35`,children:[(0,H.jsx)(`div`,{className:`w-4 h-4 rounded-full border-2 border-[var(--border)] flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:e.label}),e.route&&(0,H.jsxs)(`span`,{className:`ml-auto text-[10px] text-[var(--text-muted)]`,children:[`→ `,e.route]})]},e.value))}),!y&&e.options&&e.options.length>0&&(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.options.map(t=>(0,H.jsxs)(`span`,{className:`text-[11px] px-2.5 py-1 rounded-lg border ${t===e.selected_option?`border-green-500/30 text-green-400 bg-green-500/5`:`border-[var(--border)] text-[var(--text-muted)] opacity-40`}`,children:[t===e.selected_option&&`✓ `,t]},t))}),(0,H.jsx)(_D,{node:e})]}),!p&&!m&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Human Gate`}),(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)] capitalize`,children:[`(`,e.status,`)`]})]}),e.prompt&&(0,H.jsx)(`div`,{className:`border-l-2 border-[var(--border)] pl-3 py-0.5`,children:(0,H.jsx)(gD,{text:e.prompt,muted:!0,onFileClick:f})})]}),d&&(0,H.jsx)(dD,{filePath:d,onClose:()=>f(null)})]})}function hD(e){return!(!e||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith(`//`)||e.startsWith(`#`)||e.startsWith(`/`)||e.startsWith(`\\`))}function gD({text:e,muted:t,onFileClick:n}){return(0,H.jsx)(`div`,{className:`gate-markdown text-xs leading-relaxed ${t?`text-[var(--text-muted)]`:`text-[var(--text)]`}`,children:(0,H.jsx)(aw,{remarkPlugins:[lD],components:{h1:({children:e})=>(0,H.jsx)(`h1`,{className:`text-sm font-bold mb-2 mt-1`,children:e}),h2:({children:e})=>(0,H.jsx)(`h2`,{className:`text-xs font-bold mb-1.5 mt-1`,children:e}),h3:({children:e})=>(0,H.jsx)(`h3`,{className:`text-xs font-semibold mb-1 mt-1`,children:e}),p:({children:e})=>(0,H.jsx)(`p`,{className:`mb-1.5 last:mb-0`,children:e}),ul:({children:e})=>(0,H.jsx)(`ul`,{className:`list-disc list-inside mb-1.5 space-y-0.5`,children:e}),ol:({children:e})=>(0,H.jsx)(`ol`,{className:`list-decimal list-inside mb-1.5 space-y-0.5`,children:e}),li:({children:e})=>(0,H.jsx)(`li`,{children:e}),code:({children:e,className:t})=>t?.includes(`language-`)?(0,H.jsx)(`code`,{className:`block bg-[var(--bg)] border border-[var(--border)] rounded px-2 py-1.5 font-mono text-[11px] my-1 overflow-x-auto whitespace-pre`,children:e}):(0,H.jsx)(`code`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]`,children:e}),pre:({children:e})=>(0,H.jsx)(`pre`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded-md px-2.5 py-2 font-mono text-[11px] my-1.5 overflow-x-auto`,children:e}),strong:({children:e})=>(0,H.jsx)(`strong`,{className:`font-semibold`,children:e}),em:({children:e})=>(0,H.jsx)(`em`,{className:`italic`,children:e}),a:({href:e,children:t})=>n&&hD(e)?(0,H.jsxs)(`button`,{onClick:t=>{t.preventDefault(),n(e)},className:`inline-flex items-center gap-0.5 text-blue-400 hover:text-blue-300 underline underline-offset-2 cursor-pointer`,title:`Open ${e}`,children:[(0,H.jsx)(I,{className:`w-3 h-3 inline flex-shrink-0`}),t]}):(0,H.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-400 hover:text-blue-300 underline underline-offset-2`,children:t}),blockquote:({children:e})=>(0,H.jsx)(`blockquote`,{className:`border-l-2 border-[var(--border)] pl-2.5 my-1.5 opacity-80`,children:e}),hr:()=>(0,H.jsx)(`hr`,{className:`border-[var(--border)] my-2`}),table:({children:e})=>(0,H.jsx)(`div`,{className:`overflow-x-auto my-2`,children:(0,H.jsx)(`table`,{className:`text-[11px] border-collapse w-full`,children:e})}),th:({children:e})=>(0,H.jsx)(`th`,{className:`border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold`,children:e}),td:({children:e})=>(0,H.jsx)(`td`,{className:`border border-[var(--border)] px-2 py-1`,children:e})},children:e})})}function _D({node:e}){let t=[];if(e.route&&t.push({label:`Route`,value:`→ ${e.route}`}),e.additional_input){let n=typeof e.additional_input==`object`?JSON.stringify(e.additional_input):e.additional_input;t.push({label:`Additional Input`,value:n})}return t.length===0?null:(0,H.jsx)(m_,{items:t})}function vD({node:e}){let t=e.status,n=X[t]||X.pending,r=yh()[e.name],i=e.type===`for_each_group`,[a,o]=(0,v.useState)(!0),s=[];e.elapsed!=null&&s.push({label:`Elapsed`,value:$e(e.elapsed)}),r&&(s.push({label:`Total`,value:r.total}),s.push({label:`Completed`,value:r.completed}),r.failed>0&&s.push({label:`Failed`,value:r.failed})),e.success_count!=null&&s.push({label:`Success`,value:e.success_count}),e.failure_count!=null&&s.push({label:`Failures`,value:e.failure_count});let c=e.for_each_items;return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:i?`For-Each Group`:`Parallel Group`})]}),r&&r.total>0&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsxs)(`div`,{className:`flex justify-between text-[10px] text-[var(--text-muted)]`,children:[(0,H.jsx)(`span`,{children:`Progress`}),(0,H.jsxs)(`span`,{children:[r.completed+r.failed,`/`,r.total]})]}),(0,H.jsx)(`div`,{className:`h-1.5 bg-[var(--bg)] rounded-full overflow-hidden`,children:(0,H.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500`,style:{width:`${(r.completed+r.failed)/r.total*100}%`,background:r.failed>0?`linear-gradient(90deg, var(--completed) ${r.completed/(r.completed+r.failed)*100}%, var(--failed) 0%)`:`var(--completed)`}})})]}),(0,H.jsx)(m_,{items:s}),i&&c&&c.length>0&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`button`,{onClick:()=>o(!a),className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold hover:text-[var(--text)] transition-colors`,children:[a?(0,H.jsx)(A,{className:`w-3 h-3`}):(0,H.jsx)(j,{className:`w-3 h-3`}),`Items (`,c.length,`)`]}),a&&(0,H.jsx)(`div`,{className:`space-y-1`,children:c.map(t=>(0,H.jsx)(bD,{groupName:e.name,item:t},`${t.key}-${t.index}`))})]})]})}var yD={running:X.running,completed:X.completed,failed:X.failed};function bD({groupName:e,item:t}){let[n,r]=(0,v.useState)(t.status===`running`),i=yD[t.status],a=xh(),o=B(e=>e.navigateIntoSubworkflow),s=`${e}[${t.key}]`,c=a.find(e=>e.slotKey===s),l=!!c,u=!!(t.prompt||t.output!=null||t.activity&&t.activity.length>0||t.error_type),d=[];return t.elapsed!=null&&d.push({label:`Elapsed`,value:$e(t.elapsed)}),t.tokens!=null&&d.push({label:`Tokens`,value:et(t.tokens)}),t.cost_usd!=null&&d.push({label:`Cost`,value:tt(t.cost_usd)}),(0,H.jsxs)(`div`,{className:`rounded-lg border border-[var(--border)] bg-[var(--surface)] overflow-hidden`,children:[(0,H.jsxs)(`button`,{onClick:()=>u&&r(!n),className:`flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-[var(--node-bg)] transition-colors`,disabled:!u,children:[u?n?(0,H.jsx)(A,{className:`w-3 h-3 text-[var(--text-muted)] flex-shrink-0`}):(0,H.jsx)(j,{className:`w-3 h-3 text-[var(--text-muted)] flex-shrink-0`}):t.status===`running`?(0,H.jsx)(ce,{className:`w-3 h-3 animate-spin flex-shrink-0`,style:{color:i}}):(0,H.jsx)(`span`,{className:`w-2 h-2 rounded-full flex-shrink-0 ml-0.5 mr-0.5`,style:{backgroundColor:i}}),(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate flex-1 min-w-0`,children:t.key}),!n&&(t.elapsed!=null||t.tokens!=null||t.cost_usd!=null)&&(0,H.jsxs)(`span`,{className:`flex items-center gap-2 text-[10px] text-[var(--text-muted)] flex-shrink-0`,children:[t.elapsed!=null&&(0,H.jsx)(`span`,{children:$e(t.elapsed)}),t.tokens!=null&&(0,H.jsx)(`span`,{children:et(t.tokens)}),t.cost_usd!=null&&(0,H.jsx)(`span`,{children:tt(t.cost_usd)})]}),(0,H.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider flex-shrink-0 px-1.5 py-0.5 rounded`,style:{backgroundColor:`${i}20`,color:i},children:t.status}),l&&(0,H.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),o(s)},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.stopPropagation(),e.preventDefault(),o(s))},title:`Dive into ${c?.workflowName??s}`,className:`flex-shrink-0 p-1 rounded hover:bg-[var(--accent)]/20 hover:text-[var(--accent)] transition-colors text-[var(--text-muted)] cursor-pointer`,children:(0,H.jsx)(se,{className:`w-3 h-3`})})]}),n&&u&&(0,H.jsxs)(`div`,{className:`px-3 py-3 space-y-3 border-t border-[var(--border)]`,children:[d.length>0&&(0,H.jsx)(m_,{items:d}),t.prompt&&(0,H.jsx)(g_,{output:t.prompt,title:`Input / Prompt`,defaultExpanded:!1}),t.activity&&t.activity.length>0&&(0,H.jsx)(v_,{activity:t.activity,defaultExpanded:t.status!==`completed`}),t.output!=null&&(0,H.jsx)(g_,{output:t.output,title:`Output`,defaultExpanded:!0}),t.status===`failed`&&(t.error_type||t.error_message)&&(0,H.jsxs)(`div`,{className:`text-xs text-red-400`,children:[t.error_type&&(0,H.jsx)(`span`,{className:`font-semibold`,children:t.error_type}),t.error_message&&(0,H.jsxs)(`span`,{className:`ml-1`,children:[`— `,t.error_message]})]})]})]})}function xD({node:e}){let t=B(e=>e.engageDialog),n=B(e=>e.sendDialogDecline),r=B(e=>e.wsStatus),i=e.dialog_id||``,a=e.dialog_messages||[],o=r===`connected`,s=a.find(e=>e.role===`agent`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg bg-fuchsia-500/10 border border-fuchsia-500/30`,children:[(0,H.jsxs)(`span`,{className:`relative flex h-2.5 w-2.5 flex-shrink-0`,children:[(0,H.jsx)(`span`,{className:`animate-ping absolute inline-flex h-full w-full rounded-full bg-fuchsia-400 opacity-75`}),(0,H.jsx)(`span`,{className:`relative inline-flex rounded-full h-2.5 w-2.5 bg-fuchsia-500`})]}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-fuchsia-400 tracking-wide`,children:`Dialog Requested`})]}),s&&(0,H.jsxs)(`div`,{className:`rounded-lg px-3 py-2 bg-amber-500/10 border border-amber-500/30`,children:[(0,H.jsx)(`div`,{className:`text-[10px] font-semibold mb-1 text-[var(--text-muted)]`,children:e.name}),(0,H.jsx)(`div`,{className:`dialog-markdown text-xs leading-relaxed text-[var(--text)]`,children:(0,H.jsx)(aw,{remarkPlugins:[lD],children:s.content})})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:`How would you like to proceed?`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsxs)(`button`,{onClick:t,disabled:!o,className:`flex-1 flex items-center justify-center gap-1.5 text-xs px-3 py-2 rounded-lg border border-fuchsia-500/40 bg-fuchsia-500/10 text-fuchsia-300 hover:bg-fuchsia-500/20 transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,H.jsx)(ue,{className:`w-3 h-3`}),`💬 Discuss`]}),(0,H.jsxs)(`button`,{onClick:()=>{o&&n(e.name,i)},disabled:!o,className:`flex-1 flex items-center justify-center gap-1.5 text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--surface)] text-[var(--text-muted)] hover:bg-[var(--surface-hover)] transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,H.jsx)(Te,{className:`w-3 h-3`}),`✕ Skip & continue`]})]})]})]})}function SD({node:e}){let t=e.status,n=X[t]||X.pending,r=B(e=>e.navigateIntoSubworkflow),i=xh().filter(t=>t.parentAgent===e.name),a=[];return e.elapsed!=null&&a.push({label:`Elapsed`,value:$e(e.elapsed)}),e.cost_usd!=null&&a.push({label:`Cost`,value:tt(e.cost_usd)}),e.tokens!=null&&a.push({label:`Tokens`,value:et(e.tokens)}),e.iteration!=null&&e.iteration>1&&a.push({label:`Iteration`,value:e.iteration}),(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Subworkflow Agent`})]}),(0,H.jsx)(m_,{items:a}),i.length>0&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:[`Subworkflow Runs (`,i.length,`)`]}),(0,H.jsx)(`div`,{className:`space-y-1`,children:i.map((e,t)=>(0,H.jsx)(CD,{ctx:e,onClick:()=>r(e.slotKey)},`${e.slotKey}-${e.iteration}-${t}`))})]}),t===`failed`&&(e.error_type||e.error_message)&&(0,H.jsxs)(`div`,{className:`text-xs text-red-400`,children:[e.error_type&&(0,H.jsx)(`span`,{className:`font-semibold`,children:e.error_type}),e.error_message&&(0,H.jsxs)(`span`,{className:`ml-1`,children:[`— `,e.error_message]})]}),i.length===0&&t===`pending`&&(0,H.jsx)(`div`,{className:`text-xs text-[var(--text-muted)] italic`,children:`Subworkflow has not started yet.`})]})}function CD({ctx:e,onClick:t}){let n=X[e.status]||X.pending;return(0,H.jsxs)(`button`,{onClick:t,className:`flex items-center gap-2 w-full px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--surface)] hover:bg-[var(--node-bg)] transition-colors text-left`,children:[(0,H.jsx)(se,{className:`w-3.5 h-3.5 flex-shrink-0`,style:{color:n}}),(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-[var(--text)] truncate`,children:e.workflowName||e.workflowFile||`Subworkflow`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px] text-[var(--text-muted)]`,children:[e.agentsTotal>0&&(0,H.jsxs)(`span`,{className:`flex items-center gap-0.5`,children:[(0,H.jsx)(oe,{className:`w-2.5 h-2.5`}),e.agentsCompleted,`/`,e.agentsTotal,` agents`]}),e.totalCost>0&&(0,H.jsxs)(`span`,{className:`flex items-center gap-0.5`,children:[(0,H.jsx)(P,{className:`w-2.5 h-2.5`}),tt(e.totalCost)]})]})]}),(0,H.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider flex-shrink-0 px-1.5 py-0.5 rounded`,style:{backgroundColor:`${n}20`,color:n},children:e.status}),(0,H.jsx)(j,{className:`w-3.5 h-3.5 flex-shrink-0 text-[var(--text-muted)]`})]})}function wD({node:e}){let t=e.status,n=X[t]||X.pending,r=[],i=e.requested_seconds??e.duration_seconds;return i!=null&&r.push({label:`Requested`,value:$e(i)}),e.waited_seconds==null?e.elapsed!=null&&r.push({label:`Elapsed`,value:$e(e.elapsed)}):r.push({label:`Waited`,value:$e(e.waited_seconds)}),e.interrupted&&r.push({label:`Interrupted`,value:`yes`}),e.reason&&r.push({label:`Reason`,value:e.reason}),e.error_type&&r.push({label:`Error`,value:e.error_type}),e.error_message&&r.push({label:`Message`,value:e.error_message}),(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider`,style:{backgroundColor:`${n}20`,color:n},children:t}),(0,H.jsx)(`span`,{className:`text-xs text-[var(--text-muted)]`,children:`Wait`})]}),(0,H.jsx)(m_,{items:r})]})}function TD(){let e=B(e=>e.selectedNode),t=vh(),n=B(e=>e.selectNode),r=B(e=>e.dialogEngaged),[i,a]=(0,v.useState)(!1);(0,v.useEffect)(()=>(requestAnimationFrame(()=>a(!0)),()=>a(!1)),[e]);let o=e?t[e]:null;if(!e||!o)return(0,H.jsxs)(`div`,{className:`h-full flex flex-col bg-[var(--surface)]`,children:[(0,H.jsx)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-[var(--border)]`,children:(0,H.jsx)(`h2`,{className:`text-sm font-semibold text-[var(--text)]`,children:`Detail`})}),(0,H.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,H.jsx)(`p`,{className:`text-xs text-[var(--text-muted)]`,children:`Click a node to view details`})})]});let s=(()=>{if(o.dialog_active&&!r)return xD;if(o.dialog_active&&r)return S_;switch(o.type){case`script`:return T_;case`wait`:return wD;case`set`:return E_;case`human_gate`:return mD;case`parallel_group`:case`for_each_group`:return vD;case`workflow`:return SD;default:return S_}})();return(0,H.jsxs)(`div`,{className:U(`h-full flex flex-col bg-[var(--surface)] transition-all duration-150 ease-out`,i?`translate-x-0 opacity-100`:`translate-x-4 opacity-0`),children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-[var(--border)] flex-shrink-0`,children:[(0,H.jsx)(`h2`,{className:`text-sm font-semibold text-[var(--text)] truncate`,children:e}),(0,H.jsx)(`button`,{onClick:()=>n(null),className:`p-1 rounded hover:bg-[var(--surface-hover)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors`,title:`Close panel`,children:(0,H.jsx)(Te,{className:`w-4 h-4`})})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-y-auto px-4 py-3`,children:(0,H.jsx)(s,{node:o})})]})}function ED(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function DD(){let e=B(e=>e.eventLog),t=B(e=>e.activityLog),n=B(e=>e.workflowOutput),r=B(e=>e.workflowStatus),[i,a]=(0,v.useState)(`log`),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(0),[u,d]=(0,v.useState)(0),f=(0,v.useCallback)(n=>{a(n),n===`log`&&l(e.length),n===`activity`&&d(t.length)},[e.length,t.length]);(0,v.useEffect)(()=>{i===`log`&&l(e.length)},[i,e.length]),(0,v.useEffect)(()=>{i===`activity`&&d(t.length)},[i,t.length]),(0,v.useEffect)(()=>{r===`completed`&&n!=null&&a(`output`)},[r,n]);let p=n!=null,m=i===`log`?0:Math.max(0,e.length-c),h=i===`activity`?0:Math.max(0,t.length-u);return o?(0,H.jsx)(`div`,{className:`flex items-center bg-[var(--surface)] border-t border-[var(--border)] px-3 py-1`,children:(0,H.jsxs)(`button`,{onClick:()=>s(!1),className:`flex items-center gap-1.5 text-xs text-[var(--text-muted)] hover:text-[var(--text)] transition-colors`,children:[(0,H.jsx)(M,{className:`w-3 h-3`}),(0,H.jsx)(ve,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{children:`Output`}),t.length>0&&(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)]`,children:[`(`,t.length,`)`]})]})}):(0,H.jsxs)(`div`,{className:`flex flex-col h-full bg-[var(--surface)] border-t border-[var(--border)]`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-2 flex-shrink-0 border-b border-[var(--border)]`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,H.jsx)(OD,{active:i===`log`,onClick:()=>f(`log`),icon:(0,H.jsx)(ve,{className:`w-3 h-3`}),label:`Log`,count:e.length,unread:m}),(0,H.jsx)(OD,{active:i===`activity`,onClick:()=>f(`activity`),icon:(0,H.jsx)(T,{className:`w-3 h-3`}),label:`Activity`,count:t.length,unread:h}),(0,H.jsx)(OD,{active:i===`output`,onClick:()=>f(`output`),icon:(0,H.jsx)(ae,{className:`w-3 h-3`}),label:`Output`,badge:p?r===`failed`?`error`:`success`:void 0})]}),(0,H.jsx)(`button`,{onClick:()=>s(!0),className:`p-1 rounded text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-hover)] transition-colors`,title:`Collapse panel`,children:(0,H.jsx)(A,{className:`w-3.5 h-3.5`})})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-hidden`,children:i===`activity`?(0,H.jsx)(AD,{entries:t}):i===`log`?(0,H.jsx)(MD,{entries:e}):(0,H.jsx)(PD,{output:n,status:r})})]})}function OD({active:e,onClick:t,icon:n,label:r,count:i,badge:a,unread:o}){return(0,H.jsxs)(`button`,{onClick:t,className:U(`relative flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors border-b-2 -mb-px`,e?`text-[var(--text)] border-[var(--accent)]`:`text-[var(--text-muted)] border-transparent hover:text-[var(--text-secondary)]`),children:[n,(0,H.jsx)(`span`,{children:r}),i!=null&&i>0&&(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] tabular-nums`,children:i}),a&&(0,H.jsx)(`span`,{className:U(`w-1.5 h-1.5 rounded-full`,a===`success`?`bg-[var(--completed)]`:`bg-[var(--failed)]`)}),!e&&o!=null&&o>0&&(0,H.jsx)(`span`,{className:`absolute -top-0.5 -right-0.5 flex h-3.5 min-w-[14px] items-center justify-center rounded-full bg-[var(--accent)] px-1`,children:(0,H.jsx)(`span`,{className:`text-[8px] font-bold text-white leading-none tabular-nums`,children:o>99?`99+`:o})})]})}var kD={reasoning:{color:`text-indigo-400/70`,label:`THINK`,labelColor:`text-indigo-500`},"tool-start":{color:`text-blue-400`,label:`TOOL →`,labelColor:`text-blue-500`},"tool-complete":{color:`text-green-400`,label:`TOOL ←`,labelColor:`text-green-600`},turn:{color:`text-amber-400`,label:`STEP`,labelColor:`text-amber-500`},message:{color:`text-[var(--text)]`,label:`MSG`,labelColor:`text-[var(--text-muted)]`},prompt:{color:`text-cyan-400/70`,label:`PROMPT`,labelColor:`text-cyan-600`}};function AD({entries:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(!0),r=B(e=>e.selectNode),[i,a]=(0,v.useState)(``),o=(0,v.useCallback)(()=>{let e=t.current;e&&(n.current=e.scrollHeight-e.scrollTop-e.clientHeight<30)},[]),s=(0,v.useMemo)(()=>{if(!i)return e;let t=i.toLowerCase();return e.filter(e=>e.source.toLowerCase().includes(t)||ED(e.message).toLowerCase().includes(t))},[e,i]);return(0,v.useEffect)(()=>{t.current&&n.current&&(t.current.scrollTop=t.current.scrollHeight)},[s.length]),e.length===0?(0,H.jsx)(`div`,{className:`h-full flex items-center justify-center`,children:(0,H.jsx)(`p`,{className:`text-xs text-[var(--text-muted)]`,children:`Waiting for agent activity…`})}):(0,H.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-[var(--border-subtle)] flex-shrink-0`,children:[(0,H.jsx)(he,{className:`w-3 h-3 text-[var(--text-muted)] flex-shrink-0`}),(0,H.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:`Filter by agent or message…`,className:`flex-1 bg-transparent text-[11px] text-[var(--text)] placeholder:text-[var(--text-muted)] outline-none min-w-0`}),i&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-[10px] text-[var(--text-muted)] tabular-nums flex-shrink-0`,children:[s.length,` of `,e.length]}),(0,H.jsx)(`button`,{onClick:()=>a(``),className:`text-[var(--text-muted)] hover:text-[var(--text)] transition-colors flex-shrink-0`,title:`Clear filter`,children:(0,H.jsx)(Te,{className:`w-3 h-3`})})]})]}),(0,H.jsxs)(`div`,{ref:t,onScroll:o,className:`flex-1 overflow-y-auto font-mono text-[11px] leading-[1.6] px-3 py-2`,children:[s.map((e,t)=>{let n=kD[e.type]||kD.message;return(0,H.jsxs)(`div`,{className:`group`,children:[(0,H.jsxs)(`div`,{className:`flex gap-1.5 hover:bg-[var(--surface-hover)] rounded px-1 -mx-1`,children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] flex-shrink-0 select-none tabular-nums`,children:ND(e.timestamp)}),(0,H.jsx)(`span`,{className:U(`flex-shrink-0 w-[5ch] text-[10px] font-semibold tabular-nums select-none`,n.labelColor),children:n.label}),(0,H.jsx)(`button`,{onClick:()=>r(e.source),className:`text-[var(--text-secondary)] flex-shrink-0 min-w-[8ch] max-w-[16ch] truncate hover:text-[var(--accent)] hover:underline transition-colors text-left`,title:`Select ${e.source}`,children:e.source}),(0,H.jsx)(`span`,{className:U(`break-words min-w-0`,n.color,e.type===`reasoning`&&`italic`),children:ED(e.message)})]}),e.detail&&(0,H.jsx)(`div`,{className:`ml-[calc(7ch+5ch+8ch+1rem)] px-2 py-1 my-0.5 bg-[var(--bg)] rounded text-[10px] text-[var(--text-muted)] whitespace-pre-wrap break-words max-h-24 overflow-y-auto border-l-2 border-[var(--border)]`,children:ED(e.detail)})]},t)}),i&&s.length===0&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,H.jsxs)(`p`,{className:`text-xs text-[var(--text-muted)]`,children:[`No matches for "`,i,`"`]})})]})]})}var jD={info:{color:`text-blue-400`,icon:`›`},success:{color:`text-green-400`,icon:`✓`},error:{color:`text-red-400`,icon:`✗`},warning:{color:`text-amber-400`,icon:`⚠`},debug:{color:`text-[var(--text-muted)]`,icon:`·`}};function MD({entries:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(!0),r=B(e=>e.selectNode),i=(0,v.useCallback)(()=>{let e=t.current;e&&(n.current=e.scrollHeight-e.scrollTop-e.clientHeight<30)},[]);return(0,v.useEffect)(()=>{t.current&&n.current&&(t.current.scrollTop=t.current.scrollHeight)},[e.length]),e.length===0?(0,H.jsx)(`div`,{className:`h-full flex items-center justify-center`,children:(0,H.jsx)(`p`,{className:`text-xs text-[var(--text-muted)]`,children:`Waiting for events…`})}):(0,H.jsx)(`div`,{ref:t,onScroll:i,className:`h-full overflow-y-auto font-mono text-[11px] leading-[1.6] px-3 py-2`,children:e.map((e,t)=>{let n=jD[e.level]||jD.info;return(0,H.jsxs)(`div`,{className:`flex gap-2 hover:bg-[var(--surface-hover)] rounded px-1 -mx-1`,children:[(0,H.jsx)(`span`,{className:`text-[var(--text-muted)] flex-shrink-0 select-none tabular-nums`,children:ND(e.timestamp)}),(0,H.jsx)(`span`,{className:U(`flex-shrink-0 w-3 text-center select-none`,n.color),children:n.icon}),(0,H.jsx)(`button`,{onClick:()=>r(e.source),className:`text-[var(--text-secondary)] flex-shrink-0 min-w-[8ch] max-w-[16ch] truncate hover:text-[var(--accent)] hover:underline transition-colors text-left`,title:`Select ${e.source}`,children:e.source}),(0,H.jsx)(`span`,{className:U(`break-words`,e.level===`error`?`text-red-400`:e.level===`success`?`text-green-400`:`text-[var(--text)]`),children:ED(e.message)})]},t)})})}function ND(e){let t=new Date(e*1e3);return`${t.getHours().toString().padStart(2,`0`)}:${t.getMinutes().toString().padStart(2,`0`)}:${t.getSeconds().toString().padStart(2,`0`)}`}function PD({output:e,status:t}){let[n,r]=(0,v.useState)(!1),i=nt(e);return e==null?(0,H.jsx)(`div`,{className:`h-full flex items-center justify-center`,children:(0,H.jsx)(`p`,{className:`text-xs text-[var(--text-muted)]`,children:t===`running`?`Workflow running — output will appear when complete…`:t===`failed`?`Workflow failed — no output produced`:`No output yet`})}):(0,H.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1 border-b border-[var(--border-subtle)] flex-shrink-0`,children:[(0,H.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] uppercase tracking-wider font-semibold`,children:`Workflow Result`}),(0,H.jsx)(`button`,{onClick:async()=>{i&&(await navigator.clipboard.writeText(i),r(!0),setTimeout(()=>r(!1),2e3))},className:`flex items-center gap-1 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors px-1.5 py-0.5 rounded hover:bg-[var(--surface-hover)]`,title:`Copy to clipboard`,children:n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(k,{className:`w-3 h-3 text-[var(--completed)]`}),(0,H.jsx)(`span`,{className:`text-[var(--completed)]`,children:`Copied`})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(F,{className:`w-3 h-3`}),(0,H.jsx)(`span`,{children:`Copy`})]})})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-auto px-3 py-2`,children:(0,H.jsx)(`pre`,{className:`font-mono text-[11px] leading-relaxed text-[var(--text)] whitespace-pre-wrap break-words`,children:typeof e==`object`?(0,H.jsx)(FD,{text:i}):i})})]})}function FD({text:e}){let t=e.split(/("(?:[^"\\]|\\.)*")/g);return(0,H.jsx)(H.Fragment,{children:t.map((e,n)=>{if(n%2==1){let r=t.slice(n+1).join(``);return(0,H.jsx)(`span`,{className:/^\s*:/.test(r)?`text-blue-400`:`text-green-400`,children:e},n)}return(0,H.jsx)(`span`,{dangerouslySetInnerHTML:{__html:e.replace(/\b(true|false|null)\b|(-?\d+\.?\d*(?:e[+-]?\d+)?)/gi,(e,t,n)=>t?`${e}`:n?`${e}`:e)}},n)})})}function ID({text:e}){return(0,H.jsx)(`div`,{className:`dialog-markdown text-xs leading-relaxed text-[var(--text)]`,children:(0,H.jsx)(aw,{remarkPlugins:[lD],components:{h1:({children:e})=>(0,H.jsx)(`h1`,{className:`text-sm font-bold mb-2 mt-1`,children:e}),h2:({children:e})=>(0,H.jsx)(`h2`,{className:`text-xs font-bold mb-1.5 mt-1`,children:e}),h3:({children:e})=>(0,H.jsx)(`h3`,{className:`text-xs font-semibold mb-1 mt-1`,children:e}),p:({children:e})=>(0,H.jsx)(`p`,{className:`mb-1.5 last:mb-0`,children:e}),ul:({children:e})=>(0,H.jsx)(`ul`,{className:`list-disc list-inside mb-1.5 space-y-0.5`,children:e}),ol:({children:e})=>(0,H.jsx)(`ol`,{className:`list-decimal list-inside mb-1.5 space-y-0.5`,children:e}),li:({children:e})=>(0,H.jsx)(`li`,{children:e}),code:({children:e,className:t})=>t?.includes(`language-`)?(0,H.jsx)(`code`,{className:`block bg-[var(--bg)] border border-[var(--border)] rounded px-2 py-1.5 font-mono text-[11px] my-1 overflow-x-auto whitespace-pre`,children:e}):(0,H.jsx)(`code`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded px-1 py-0.5 font-mono text-[11px]`,children:e}),pre:({children:e})=>(0,H.jsx)(`pre`,{className:`bg-[var(--bg)] border border-[var(--border)] rounded-md px-2.5 py-2 font-mono text-[11px] my-1.5 overflow-x-auto`,children:e}),strong:({children:e})=>(0,H.jsx)(`strong`,{className:`font-semibold`,children:e}),em:({children:e})=>(0,H.jsx)(`em`,{className:`italic`,children:e}),a:({href:e,children:t})=>(0,H.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-400 hover:text-blue-300 underline underline-offset-2`,children:t}),blockquote:({children:e})=>(0,H.jsx)(`blockquote`,{className:`border-l-2 border-[var(--border)] pl-2.5 my-1.5 opacity-80`,children:e}),hr:()=>(0,H.jsx)(`hr`,{className:`border-[var(--border)] my-2`}),table:({children:e})=>(0,H.jsx)(`div`,{className:`overflow-x-auto my-2`,children:(0,H.jsx)(`table`,{className:`text-[11px] border-collapse w-full`,children:e})}),th:({children:e})=>(0,H.jsx)(`th`,{className:`border border-[var(--border)] px-2 py-1 text-left bg-[var(--bg)] font-semibold`,children:e}),td:({children:e})=>(0,H.jsx)(`td`,{className:`border border-[var(--border)] px-2 py-1`,children:e})},children:e})})}function LD({node:e}){let t=B(e=>e.sendDialogMessage),n=B(e=>e.wsStatus),[r,i]=(0,v.useState)(``),a=(0,v.useRef)(null),o=e.dialog_active===!0,s=e.dialog_id||``,c=e.dialog_messages||[],l=o&&n===`connected`;(0,v.useEffect)(()=>{a.current?.scrollIntoView({behavior:`smooth`})},[c.length,e.dialog_awaiting_response]);let u=()=>{!r.trim()||!l||(t(e.name,s,r.trim()),i(``))};return(0,H.jsxs)(`div`,{className:`flex flex-col h-full`,children:[o?(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg bg-fuchsia-500/10 border border-fuchsia-500/30 mb-3 flex-shrink-0`,children:[(0,H.jsxs)(`span`,{className:`relative flex h-2.5 w-2.5 flex-shrink-0`,children:[(0,H.jsx)(`span`,{className:`animate-ping absolute inline-flex h-full w-full rounded-full bg-fuchsia-400 opacity-75`}),(0,H.jsx)(`span`,{className:`relative inline-flex rounded-full h-2.5 w-2.5 bg-fuchsia-500`})]}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-fuchsia-400 tracking-wide`,children:`Dialog Mode`}),(0,H.jsxs)(`span`,{className:`ml-auto text-[10px] text-[var(--text-muted)]`,children:[c.length,` message`,c.length===1?``:`s`]})]}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 rounded-lg bg-[var(--surface)] border border-[var(--border)] mb-3 flex-shrink-0`,children:[(0,H.jsx)(ue,{className:`w-3.5 h-3.5 text-[var(--text-muted)]`}),(0,H.jsx)(`span`,{className:`text-xs font-semibold text-[var(--text-muted)] tracking-wide`,children:`Dialog Completed`}),(0,H.jsxs)(`span`,{className:`ml-auto text-[10px] text-[var(--text-muted)]`,children:[c.length,` message`,c.length===1?``:`s`]})]}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto space-y-3 min-h-0 mb-3`,children:[c.map((t,n)=>(0,H.jsx)(`div`,{className:`flex ${t.role===`user`?`justify-end`:`justify-start`}`,children:(0,H.jsxs)(`div`,{className:`max-w-[85%] rounded-lg px-3 py-2 ${t.role===`agent`?`bg-amber-500/10 border border-amber-500/30`:`bg-blue-500/10 border border-blue-500/30`}`,children:[(0,H.jsx)(`div`,{className:`text-[10px] font-semibold mb-1 text-[var(--text-muted)]`,children:t.role===`agent`?e.name:`You`}),(0,H.jsx)(ID,{text:t.content})]})},n)),e.dialog_awaiting_response&&(0,H.jsx)(`div`,{className:`flex justify-start`,children:(0,H.jsxs)(`div`,{className:`max-w-[85%] rounded-lg px-3 py-2 bg-amber-500/10 border border-amber-500/30`,children:[(0,H.jsx)(`div`,{className:`text-[10px] font-semibold mb-1 text-[var(--text-muted)]`,children:e.name}),(0,H.jsxs)(`div`,{className:`flex gap-1 items-center h-4`,children:[(0,H.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:0ms]`}),(0,H.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:150ms]`}),(0,H.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-amber-400/60 animate-bounce [animation-delay:300ms]`})]})]})}),(0,H.jsx)(`div`,{ref:a})]}),o&&(0,H.jsxs)(`div`,{className:`flex-shrink-0 border-t border-[var(--border)] pt-3`,children:[(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`input`,{type:`text`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),u())},placeholder:`Type your message...`,className:`flex-1 text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-fuchsia-400 transition-colors`,disabled:!l,autoFocus:!0}),(0,H.jsxs)(`button`,{onClick:u,disabled:!l||!r.trim(),className:`flex items-center justify-center gap-1.5 text-xs px-8 py-2 rounded-lg bg-fuchsia-500 text-white hover:bg-fuchsia-600 transition-colors font-medium disabled:opacity-40 disabled:cursor-not-allowed`,children:[(0,H.jsx)(ge,{className:`w-3 h-3`}),`Send`]})]}),(0,H.jsx)(`p`,{className:`text-[10px] text-[var(--text-muted)] mt-1.5 px-1`,children:`Press Enter to send · Type "done" to end dialog`})]})]})}function RD(){let e=B(e=>e.activeDialog),t=B(e=>e.nodes);if(!e)return null;let n=t[e.agentName];return n?(0,H.jsxs)(`div`,{className:`h-full flex flex-col bg-[var(--bg)] overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-5 py-3 border-b border-[var(--border)] bg-[var(--surface)] flex-shrink-0`,children:[(0,H.jsx)(ue,{className:`w-4 h-4 text-fuchsia-400`}),(0,H.jsxs)(`h2`,{className:`text-sm font-semibold text-[var(--text)]`,children:[`Dialog with `,e.agentName]})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-hidden px-5 py-4`,children:(0,H.jsx)(LD,{node:n})})]}):null}function zD(){let e=B(e=>e.selectedNode),t=B(e=>e.activeDialog),n=B(e=>e.dialogEngaged);return(0,H.jsxs)(Gn,{direction:`vertical`,className:`flex-1 overflow-hidden`,children:[(0,H.jsx)(vt,{defaultSize:70,minSize:30,children:(0,H.jsxs)(Gn,{direction:`horizontal`,className:`h-full`,children:[(0,H.jsx)(vt,{defaultSize:e?65:100,minSize:40,children:t&&n?(0,H.jsx)(RD,{}):(0,H.jsx)(l_,{})}),e&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Yn,{className:`w-[3px] bg-[var(--border)] hover:bg-[var(--text-muted)] transition-colors cursor-col-resize`}),(0,H.jsx)(vt,{defaultSize:35,minSize:20,maxSize:60,children:(0,H.jsx)(TD,{})})]})]})}),(0,H.jsx)(Yn,{className:`h-[3px] bg-[var(--border)] hover:bg-[var(--text-muted)] transition-colors cursor-row-resize`}),(0,H.jsx)(vt,{defaultSize:30,minSize:5,maxSize:70,collapsible:!0,children:(0,H.jsx)(DD,{})})]})}var BD=10;function VD(){let e=B(e=>e.iterationLimitGate),t=B(e=>e.wsStatus),n=B(e=>e.sendIterationLimitResponse),[r,i]=(0,v.useState)(String(BD)),[a,o]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e?.gate_id&&(i(String(BD)),o(!1))},[e?.gate_id]);let s=(0,v.useMemo)(()=>{let e=Number(r);return!Number.isFinite(e)||e<0?null:Math.floor(e)},[r]);if(!e||e.skip_gates)return null;let c=e.agent_name??e.group_name??`workflow`,l=t===`connected`&&!a,u=!l||s==null||s<=0,d=()=>e.agent_name===void 0?{group_name:e.group_name}:{agent_name:e.agent_name},f=()=>{u||s==null||(o(!0),n(d(),e.gate_id,s))};return(0,H.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`iteration-limit-title`,"data-testid":`iteration-limit-modal`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm`,children:(0,H.jsxs)(`div`,{className:`relative flex flex-col w-[90vw] max-w-md rounded-xl border border-amber-500/40 bg-[var(--surface)] shadow-2xl overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2.5 px-4 py-3 border-b border-[var(--border)] bg-amber-500/10`,children:[(0,H.jsx)(xe,{className:`w-4 h-4 text-amber-400 flex-shrink-0`}),(0,H.jsx)(`h2`,{id:`iteration-limit-title`,className:`text-sm font-semibold text-[var(--text)]`,children:`Max iterations reached`})]}),(0,H.jsxs)(`div`,{className:`px-4 py-4 space-y-3`,children:[(0,H.jsxs)(`p`,{className:`text-xs text-[var(--text)]`,children:[(0,H.jsx)(`span`,{className:`font-semibold`,children:c}),` reached`,` `,(0,H.jsxs)(`span`,{className:`tabular-nums`,children:[e.current_iteration,`/`,e.max_iterations]}),` `,`iterations.`]}),e.possible_loop&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/5 border border-amber-500/30`,children:[(0,H.jsx)(xe,{className:`w-3.5 h-3.5 text-amber-400 flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-[11px] text-amber-300`,children:`The same agent has run repeatedly — this may indicate a loop.`})]}),e.agent_history.length>0&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`h3`,{className:`text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:`Recent agents`}),(0,H.jsx)(`ol`,{className:`text-[11px] text-[var(--text-muted)] list-decimal list-inside space-y-0.5`,children:e.agent_history.map((e,t)=>(0,H.jsx)(`li`,{children:e},`${t}-${e}`))})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(`label`,{htmlFor:`iteration-limit-additional`,className:`block text-[10px] uppercase tracking-wider text-[var(--text-muted)] font-semibold`,children:`Additional iterations`}),(0,H.jsx)(`input`,{id:`iteration-limit-additional`,"data-testid":`iteration-limit-input`,type:`number`,min:0,step:1,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),f())},disabled:!l,autoFocus:!0,className:`w-full text-xs px-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--bg)] text-[var(--text)] outline-none focus:border-amber-400 transition-colors disabled:opacity-50`}),(0,H.jsx)(`p`,{className:`text-[10px] text-[var(--text-muted)]`,children:`Enter a positive number to continue, or press Stop to end the workflow.`})]}),t!==`connected`&&(0,H.jsx)(`div`,{className:`text-[11px] text-red-300`,children:`Disconnected from server — reconnect to resolve this gate.`})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-2 px-4 py-3 border-t border-[var(--border)] bg-[var(--surface-raised)]`,children:[(0,H.jsxs)(`button`,{type:`button`,"data-testid":`iteration-limit-stop`,onClick:()=>{l&&(o(!0),n(d(),e.gate_id,0))},disabled:!l,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg border border-[var(--border)] text-[var(--text)] hover:bg-[var(--surface-hover)] disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,children:[(0,H.jsx)(ee,{className:`w-3.5 h-3.5`}),`Stop`]}),(0,H.jsxs)(`button`,{type:`button`,"data-testid":`iteration-limit-continue`,onClick:f,disabled:u,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-lg bg-amber-500 text-white hover:bg-amber-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors font-medium`,children:[(0,H.jsx)(pe,{className:`w-3.5 h-3.5`}),`Continue`]})]})]})})}var HD=3e4;function UD(){let e=B(e=>e.processEvent),t=B(e=>e.replayState),n=B(e=>e.setWsStatus),r=B(e=>e.setWsSend),i=(0,v.useRef)(null),a=(0,v.useRef)(1e3),o=(0,v.useRef)(null),s=(0,v.useRef)(null),c=(0,v.useRef)(()=>{}),l=(0,v.useCallback)(()=>{n(`reconnecting`),o.current=setTimeout(()=>{a.current=Math.min(a.current*2,HD),c.current()},a.current)},[n]),u=(0,v.useCallback)(()=>{n(`connecting`),s.current&&s.current.abort();let o=new AbortController;s.current=o,fetch(`/api/state`,{signal:o.signal}).then(e=>e.json()).then(o=>{o&&o.length>0&&t(o);let s=`${window.location.protocol===`https:`?`wss:`:`ws:`}//${window.location.host}/ws`;try{let t=new WebSocket(s);i.current=t,t.onopen=()=>{a.current=1e3,n(`connected`),r(e=>{t.readyState===WebSocket.OPEN&&t.send(JSON.stringify(e))})},t.onmessage=t=>{try{e(JSON.parse(t.data))}catch(e){console.error(`Failed to parse WebSocket message:`,e)}},t.onclose=()=>{n(`disconnected`),r(null),i.current=null,l()},t.onerror=()=>{}}catch{l()}}).catch(e=>{o.signal.aborted||(console.error(`Failed to fetch state:`,e),l())})},[e,t,n,r,l]);c.current=u,(0,v.useEffect)(()=>(u(),()=>{s.current&&s.current.abort(),o.current&&clearTimeout(o.current),i.current&&i.current.close(),r(null)}),[u,r])}function WD(){let e=B(e=>e.setReplayMode),t=B(e=>e.setWsStatus),n=B(e=>e.replayPlaying),r=B(e=>e.replayPosition),i=B(e=>e.replayTotalEvents),a=B(e=>e.replaySpeed),o=B(e=>e.replayEvents),s=B(e=>e.setReplayPosition);(0,v.useEffect)(()=>{t(`connecting`),fetch(`/api/state`).then(e=>e.json()).then(n=>{e(n),t(`connected`)}).catch(e=>{console.error(`Failed to load replay events:`,e),t(`disconnected`)})},[e,t]);let c=(0,v.useRef)(null);(0,v.useEffect)(()=>{if(!n||r>=i){c.current&&clearTimeout(c.current),n&&r>=i&&B.getState().setReplayPlaying(!1);return}let e=o[r-1],t=o[r],l=100;if(e&&t){let n=(t.timestamp-e.timestamp)*1e3;l=Math.max(16,Math.min(n/a,2e3))}return c.current=setTimeout(()=>{s(r+1)},l),()=>{c.current&&clearTimeout(c.current)}},[n,r,i,a,o,s])}function GD(){return UD(),null}function KD(){return WD(),null}function qD(){let[e,t]=(0,v.useState)(null),n=B(e=>e.replayMode),r=B(e=>e.selectNode),i=B(e=>e.workflowName);return(0,v.useEffect)(()=>{fetch(`/api/replay/info`).then(e=>{e.ok?t(!0):t(!1)}).catch(()=>t(!1))},[]),(0,v.useEffect)(()=>{document.title=i?`Conductor — ${i}`:`Conductor Dashboard`},[i]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),e===null?null:(0,H.jsxs)(`div`,{className:`h-full flex flex-col bg-[var(--bg)]`,children:[e?(0,H.jsx)(KD,{}):(0,H.jsx)(GD,{}),(0,H.jsx)(Ze,{}),(0,H.jsx)(Qe,{}),(0,H.jsx)(zD,{}),n?(0,H.jsx)(ct,{}):(0,H.jsx)(at,{}),!n&&(0,H.jsx)(VD,{})]})}(0,y.createRoot)(document.getElementById(`root`)).render((0,H.jsx)(v.StrictMode,{children:(0,H.jsx)(qD,{})})); \ No newline at end of file diff --git a/src/conductor/web/static/index.html b/src/conductor/web/static/index.html index 4c7c9bd3..6e40c089 100644 --- a/src/conductor/web/static/index.html +++ b/src/conductor/web/static/index.html @@ -1,14 +1,14 @@ - - - - - - - Conductor Dashboard - - - - -
- - + + + + + + + Conductor Dashboard + + + + +
+ + diff --git a/tests/test_engine/test_budget.py b/tests/test_engine/test_budget.py new file mode 100644 index 00000000..f5fc0d1e --- /dev/null +++ b/tests/test_engine/test_budget.py @@ -0,0 +1,577 @@ +"""Tests for budget enforcement. + +Tests cover the graduation path: +1. No budget set (default) — no tracking, no warnings, no errors. +2. Budget set in audit mode — event emitted on overshoot, workflow continues. +3. Budget set in enforce mode — event emitted, workflow stops with BudgetExceededError. +4. LimitEnforcer.check_budget() unit tests (BudgetCheckResult, re-emission, repeated calls). +5. Schema validation for budget fields. +""" + +from __future__ import annotations + +import textwrap +from pathlib import Path + +import pytest +from pydantic import ValidationError as PydanticValidationError + +from conductor.config.schema import ( + AgentDef, + LimitsConfig, + OutputField, + RouteDef, + RuntimeConfig, + WorkflowConfig, + WorkflowDef, +) +from conductor.engine.limits import LimitEnforcer +from conductor.engine.workflow import WorkflowEngine +from conductor.events import WorkflowEventEmitter +from conductor.exceptions import BudgetExceededError +from conductor.providers.base import AgentOutput +from conductor.providers.copilot import CopilotProvider + +# --------------------------------------------------------------------------- +# Schema / Config Tests +# --------------------------------------------------------------------------- + + +class TestBudgetSchema: + """Test LimitsConfig budget fields.""" + + def test_default_no_budget(self) -> None: + """No budget by default — graduation step 0.""" + limits = LimitsConfig() + assert limits.budget_usd is None + assert limits.budget_mode == "audit" + + def test_budget_usd_set(self) -> None: + limits = LimitsConfig(budget_usd=5.0) + assert limits.budget_usd == 5.0 + assert limits.budget_mode == "audit" + + def test_budget_enforce_mode(self) -> None: + limits = LimitsConfig(budget_usd=5.0, budget_mode="enforce") + assert limits.budget_usd == 5.0 + assert limits.budget_mode == "enforce" + + def test_budget_usd_zero_rejected(self) -> None: + """Zero budget is rejected: a $0 limit would trip after the first token.""" + with pytest.raises(PydanticValidationError): + LimitsConfig(budget_usd=0.0) + + def test_budget_usd_negative_rejected(self) -> None: + with pytest.raises(PydanticValidationError): + LimitsConfig(budget_usd=-1.0) + + def test_budget_mode_invalid_rejected(self) -> None: + with pytest.raises(PydanticValidationError): + LimitsConfig(budget_mode="invalid") # type: ignore[arg-type] + + +# --------------------------------------------------------------------------- +# LimitEnforcer Unit Tests +# --------------------------------------------------------------------------- + + +class TestLimitEnforcerBudget: + """Unit tests for LimitEnforcer.check_budget().""" + + def test_no_budget_set_returns_not_exceeded(self) -> None: + """When budget_usd is None, check_budget always returns not-exceeded.""" + enforcer = LimitEnforcer() + result = enforcer.check_budget(100.0) + assert result.exceeded is False + assert result.should_emit is False + assert result.budget_usd is None + assert result.spent_usd == 100.0 + + def test_under_budget_returns_not_exceeded(self) -> None: + enforcer = LimitEnforcer(budget_usd=10.0) + result = enforcer.check_budget(5.0) + assert result.exceeded is False + assert result.should_emit is False + assert result.budget_usd == 10.0 + assert result.spent_usd == 5.0 + + def test_at_budget_returns_not_exceeded(self) -> None: + """Exactly at budget is not exceeded (> not >=).""" + enforcer = LimitEnforcer(budget_usd=10.0) + result = enforcer.check_budget(10.0) + assert result.exceeded is False + assert result.should_emit is False + + def test_over_budget_returns_exceeded_first_time(self) -> None: + enforcer = LimitEnforcer(budget_usd=10.0) + result = enforcer.check_budget(10.01) + assert result.exceeded is True + assert result.should_emit is True + assert result.budget_usd == 10.0 + assert result.spent_usd == 10.01 + + def test_over_budget_small_growth_does_not_re_emit(self) -> None: + """After first overshoot, a small extra spend does not re-emit.""" + enforcer = LimitEnforcer(budget_usd=10.0) + first = enforcer.check_budget(10.01) + assert first.should_emit is True + # Still over budget, but not by another full $10 increment. + second = enforcer.check_budget(15.0) + assert second.exceeded is True + assert second.should_emit is False + + def test_over_budget_re_emits_per_budget_increment(self) -> None: + """Crossing another full budget increment re-arms emission.""" + enforcer = LimitEnforcer(budget_usd=10.0) + first = enforcer.check_budget(10.01) + assert first.should_emit is True + # Spend has now climbed past another full $10 beyond the last emission. + third = enforcer.check_budget(20.02) + assert third.exceeded is True + assert third.should_emit is True + + def test_budget_mode_stored(self) -> None: + enforcer = LimitEnforcer(budget_usd=5.0, budget_mode="enforce") + assert enforcer.budget_mode == "enforce" + + def test_default_budget_mode_is_audit(self) -> None: + enforcer = LimitEnforcer(budget_usd=5.0) + assert enforcer.budget_mode == "audit" + + def test_from_dict_applies_budget_from_config(self) -> None: + """from_dict sources budget from the current config (fresh window).""" + enforcer = LimitEnforcer(budget_usd=10.0, budget_mode="enforce") + # Simulate having emitted during the original run. + enforcer.check_budget(10.01) + data = enforcer.to_dict() + + restored = LimitEnforcer.from_dict( + data, + timeout_seconds=None, + budget_usd=3.0, + budget_mode="audit", + ) + # Budget comes from the supplied (current config) values, not the dict. + assert restored.budget_usd == 3.0 + assert restored.budget_mode == "audit" + # Emission tracking is reset: resume starts a fresh budget window. + first = restored.check_budget(3.01) + assert first.exceeded is True + assert first.should_emit is True + + def test_from_dict_requires_budget_kwargs(self) -> None: + """from_dict refuses to silently default the budget kwargs (I5).""" + with pytest.raises(TypeError): + LimitEnforcer.from_dict({"max_iterations": 10}) # type: ignore[call-arg] + + +# --------------------------------------------------------------------------- +# WorkflowEngine Integration Tests +# --------------------------------------------------------------------------- + + +def _make_config( + budget_usd: float | None = None, + budget_mode: str = "audit", + max_iterations: int = 10, +) -> WorkflowConfig: + """Build a minimal single-agent workflow config for budget tests.""" + return WorkflowConfig( + workflow=WorkflowDef( + name="budget-test", + entry_point="agent1", + limits=LimitsConfig( + max_iterations=max_iterations, + budget_usd=budget_usd, + budget_mode=budget_mode, + ), + ), + agents=[ + AgentDef( + name="agent1", + prompt="Say hello", + output={"result": OutputField(type="string")}, + ), + ], + output={"result": "{{ agent1.output.result }}"}, + ) + + +def _make_expensive_output() -> AgentOutput: + """Build an AgentOutput that costs roughly $18 (1M input + 1M output on claude-sonnet-4).""" + return AgentOutput( + content={"result": "expensive"}, + raw_response="{}", + input_tokens=1_000_000, + output_tokens=1_000_000, + model="claude-sonnet-4", + ) + + +def _make_cheap_output() -> AgentOutput: + """Build an AgentOutput that costs a fraction of a cent.""" + return AgentOutput( + content={"result": "cheap"}, + raw_response="{}", + input_tokens=100, + output_tokens=50, + model="claude-sonnet-4", + ) + + +class TestBudgetGraduationStep0: + """Graduation Step 0: No budget set — default behavior unchanged.""" + + @pytest.mark.asyncio + async def test_no_budget_workflow_completes(self) -> None: + """Without budget_usd, expensive agents run without any budget checks.""" + config = _make_config(budget_usd=None) + expensive = _make_expensive_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + emitter = WorkflowEventEmitter() + events: list = [] + emitter.subscribe(lambda e: events.append(e)) + + engine = WorkflowEngine(config, provider, event_emitter=emitter) + + # Patch the output so usage_tracker records the expensive tokens + async def patched_execute(*args, **kwargs): + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + result = await engine.run({}) + assert result is not None + + # No budget_exceeded event + budget_events = [e for e in events if e.type == "budget_exceeded"] + assert len(budget_events) == 0 + + +class TestBudgetGraduationStep1: + """Graduation Step 1: Budget in audit mode — warn but continue.""" + + @pytest.mark.asyncio + async def test_audit_mode_emits_event_and_continues(self) -> None: + """In audit mode, budget overshoot emits event but workflow completes.""" + config = _make_config(budget_usd=0.001, budget_mode="audit") + expensive = _make_expensive_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + emitter = WorkflowEventEmitter() + events: list = [] + emitter.subscribe(lambda e: events.append(e)) + + engine = WorkflowEngine(config, provider, event_emitter=emitter) + + async def patched_execute(*args, **kwargs): + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + result = await engine.run({}) + assert result is not None # Workflow completed despite overshoot + + # budget_exceeded event was emitted + budget_events = [e for e in events if e.type == "budget_exceeded"] + assert len(budget_events) == 1 + assert budget_events[0].data["budget_mode"] == "audit" + assert budget_events[0].data["budget_usd"] == 0.001 + assert budget_events[0].data["spent_usd"] > 0.001 + + @pytest.mark.asyncio + async def test_audit_mode_re_emits_as_spend_grows(self) -> None: + """In audit mode, emission re-arms per budget increment as spend grows. + + The old behavior latched after a single event (stale "$11/$10" + figure). Now each agent that pushes spend past another full budget + increment re-emits with the updated ``spent_usd``. + """ + config = WorkflowConfig( + workflow=WorkflowDef( + name="budget-loop-test", + entry_point="agent1", + limits=LimitsConfig( + max_iterations=5, + budget_usd=0.001, + budget_mode="audit", + ), + ), + agents=[ + AgentDef( + name="agent1", + prompt="Say hello", + output={"result": OutputField(type="string")}, + routes=[ + RouteDef( + to="agent1", + when="{{ context.iteration < 3 }}", + ), + RouteDef(to="$end"), + ], + ), + ], + output={"result": "{{ agent1.output.result }}"}, + ) + expensive = _make_expensive_output() + + call_count = 0 + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + emitter = WorkflowEventEmitter() + events: list = [] + emitter.subscribe(lambda e: events.append(e)) + + engine = WorkflowEngine(config, provider, event_emitter=emitter) + + async def patched_execute(*args, **kwargs): + nonlocal call_count + call_count += 1 + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + result = await engine.run({}) + assert result is not None + assert call_count >= 2 + + # Each over-budget agent crosses another full budget increment, so the + # event re-emits with a growing spent_usd (no longer latched at one). + budget_events = [e for e in events if e.type == "budget_exceeded"] + assert len(budget_events) >= 2 + spent_values = [e.data["spent_usd"] for e in budget_events] + assert spent_values == sorted(spent_values) + assert all(e.data["budget_mode"] == "audit" for e in budget_events) + + +class TestBudgetGraduationStep2: + """Graduation Step 2: Budget in enforce mode — stop on overshoot.""" + + @pytest.mark.asyncio + async def test_enforce_mode_raises_budget_exceeded(self) -> None: + """In enforce mode, budget overshoot raises BudgetExceededError.""" + config = _make_config(budget_usd=0.001, budget_mode="enforce") + expensive = _make_expensive_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + emitter = WorkflowEventEmitter() + events: list = [] + emitter.subscribe(lambda e: events.append(e)) + + engine = WorkflowEngine(config, provider, event_emitter=emitter) + + async def patched_execute(*args, **kwargs): + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + with pytest.raises(BudgetExceededError) as exc_info: + await engine.run({}) + + assert exc_info.value.budget_usd == 0.001 + assert exc_info.value.spent_usd > 0.001 + + # budget_exceeded event was emitted before the error + budget_events = [e for e in events if e.type == "budget_exceeded"] + assert len(budget_events) == 1 + assert budget_events[0].data["budget_mode"] == "enforce" + + # workflow_failed event was also emitted + fail_events = [e for e in events if e.type == "workflow_failed"] + assert len(fail_events) == 1 + assert fail_events[0].data["error_type"] == "BudgetExceededError" + assert "budget_usd" in fail_events[0].data + assert "spent_usd" in fail_events[0].data + + @pytest.mark.asyncio + async def test_enforce_mode_under_budget_completes(self) -> None: + """In enforce mode, a cheap workflow under budget completes normally.""" + config = _make_config(budget_usd=100.0, budget_mode="enforce") + cheap = _make_cheap_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + emitter = WorkflowEventEmitter() + events: list = [] + emitter.subscribe(lambda e: events.append(e)) + + engine = WorkflowEngine(config, provider, event_emitter=emitter) + + async def patched_execute(*args, **kwargs): + return cheap + + provider.execute = patched_execute # type: ignore[assignment] + + result = await engine.run({}) + assert result is not None + + # No budget_exceeded events + budget_events = [e for e in events if e.type == "budget_exceeded"] + assert len(budget_events) == 0 + + +# --------------------------------------------------------------------------- +# BudgetExceededError Tests +# --------------------------------------------------------------------------- + + +class TestBudgetExceededError: + """Test BudgetExceededError exception.""" + + def test_error_attributes(self) -> None: + error = BudgetExceededError( + "over budget", + budget_usd=5.0, + spent_usd=7.50, + current_agent="agent1", + ) + assert error.budget_usd == 5.0 + assert error.spent_usd == 7.50 + assert error.current_agent == "agent1" + assert "5.00" in error.suggestion + assert "agent1" in error.suggestion + + def test_error_auto_suggestion(self) -> None: + error = BudgetExceededError( + "over budget", + budget_usd=10.0, + spent_usd=15.0, + ) + assert "limits.budget_usd" in error.suggestion + assert "audit" in error.suggestion + + def test_error_is_execution_error(self) -> None: + from conductor.exceptions import ExecutionError + + error = BudgetExceededError( + "over budget", + budget_usd=1.0, + spent_usd=2.0, + ) + assert isinstance(error, ExecutionError) + + +# --------------------------------------------------------------------------- +# Sub-workflow Budget Roll-up Tests (C1) +# --------------------------------------------------------------------------- + + +def _make_subworkflow_parent_config( + budget_usd: float | None = None, + budget_mode: str = "audit", +) -> WorkflowConfig: + """Parent workflow whose only step delegates to a sub-workflow. + + The parent has no direct LLM agent, so any spend in the parent's usage + tracker can only have arrived via the child roll-up. + """ + return WorkflowConfig( + workflow=WorkflowDef( + name="rollup-parent", + entry_point="delegate", + runtime=RuntimeConfig(provider="copilot"), + limits=LimitsConfig( + max_iterations=10, + budget_usd=budget_usd, + budget_mode=budget_mode, + ), + ), + agents=[ + AgentDef( + name="delegate", + type="workflow", + workflow="child.yaml", + routes=[RouteDef(to="$end")], + ), + ], + output={"result": "{{ delegate.output.result }}"}, + ) + + +def _write_child_workflow(dir_path: Path) -> None: + """Write a single-agent child workflow (cost is supplied via the mocked provider).""" + (dir_path / "child.yaml").write_text( + textwrap.dedent( + """\ + workflow: + name: rollup-child + entry_point: inner + runtime: + provider: copilot + limits: + max_iterations: 5 + agents: + - name: inner + prompt: "Inner work" + routes: + - to: "$end" + output: + result: "{{ inner.output.result }}" + """ + ), + encoding="utf-8", + ) + + +class TestBudgetSubworkflowRollup: + """C1: sub-workflow (type: workflow) spend rolls into the parent budget. + + Guards the parent-level merge call site + (``self.usage_tracker.merge(child_engine.usage_tracker.get_summary())``) + that had to be re-applied on top of main's ``_run_child_engine`` refactor. + The ``merge()`` unit test proves the primitive; these prove the engine + actually wires it end-to-end so a parent budget accounts for delegated cost. + """ + + @pytest.mark.asyncio + async def test_child_spend_rolls_into_parent_tracker(self, tmp_path: Path) -> None: + """A sub-workflow's per-agent spend appears in the parent's usage summary.""" + _write_child_workflow(tmp_path) + parent_path = tmp_path / "parent.yaml" + parent_path.write_text("dummy", encoding="utf-8") + + config = _make_subworkflow_parent_config() + expensive = _make_expensive_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + + async def patched_execute(*args, **kwargs): + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + engine = WorkflowEngine(config, provider, workflow_path=parent_path) + await engine.run({}) + + summary = engine.usage_tracker.get_summary() + # The parent has no direct LLM agent, so "inner" appearing here — and + # any non-zero cost at all — can only come from the child roll-up. + agent_names = {a.agent_name for a in summary.agents} + assert "inner" in agent_names + assert summary.total_cost_usd is not None + assert summary.total_cost_usd > 0.0 + + @pytest.mark.asyncio + async def test_enforce_budget_trips_on_child_spend(self, tmp_path: Path) -> None: + """A parent enforce-mode budget trips on cost incurred only by the child.""" + _write_child_workflow(tmp_path) + parent_path = tmp_path / "parent.yaml" + parent_path.write_text("dummy", encoding="utf-8") + + config = _make_subworkflow_parent_config(budget_usd=0.001, budget_mode="enforce") + expensive = _make_expensive_output() + + provider = CopilotProvider(mock_handler=lambda *_a, **_kw: {}) + + async def patched_execute(*args, **kwargs): + return expensive + + provider.execute = patched_execute # type: ignore[assignment] + + engine = WorkflowEngine(config, provider, workflow_path=parent_path) + + with pytest.raises(BudgetExceededError) as exc_info: + await engine.run({}) + + # The overshoot is entirely attributable to delegated child spend. + assert exc_info.value.spent_usd > 0.001 diff --git a/tests/test_engine/test_checkpoint.py b/tests/test_engine/test_checkpoint.py index 74e32b53..3519e292 100644 --- a/tests/test_engine/test_checkpoint.py +++ b/tests/test_engine/test_checkpoint.py @@ -651,7 +651,9 @@ def test_limits_reconstructable(self, tmp_path: Path) -> None: assert saved is not None cp = CheckpointManager.load_checkpoint(saved) - restored = LimitEnforcer.from_dict(cp.limits, timeout_seconds=120) + restored = LimitEnforcer.from_dict( + cp.limits, timeout_seconds=120, budget_usd=None, budget_mode="audit" + ) assert restored.current_iteration == 5 assert restored.max_iterations == 25 assert restored.execution_history == ["a", "b", "c", "d", "e"] diff --git a/tests/test_engine/test_context_serialization.py b/tests/test_engine/test_context_serialization.py index 999a0d36..582e7110 100644 --- a/tests/test_engine/test_context_serialization.py +++ b/tests/test_engine/test_context_serialization.py @@ -372,7 +372,9 @@ def test_basic_reconstruction(self) -> None: "execution_history": ["a1", "a2", "a3", "a3", "a3"], } - enforcer = LimitEnforcer.from_dict(data) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) assert enforcer.current_iteration == 5 assert enforcer.max_iterations == 20 @@ -387,7 +389,9 @@ def test_fresh_start_time(self) -> None: } before = time.monotonic() - enforcer = LimitEnforcer.from_dict(data) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) after = time.monotonic() assert enforcer.start_time is not None @@ -401,7 +405,9 @@ def test_timeout_from_parameter(self) -> None: "execution_history": [], } - enforcer = LimitEnforcer.from_dict(data, timeout_seconds=300) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=300, budget_usd=None, budget_mode="audit" + ) assert enforcer.timeout_seconds == 300 @@ -413,7 +419,9 @@ def test_timeout_default_none(self) -> None: "execution_history": [], } - enforcer = LimitEnforcer.from_dict(data) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) assert enforcer.timeout_seconds is None @@ -425,13 +433,17 @@ def test_current_agent_not_set(self) -> None: "execution_history": ["a", "b"], } - enforcer = LimitEnforcer.from_dict(data) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) assert enforcer.current_agent is None def test_defaults_for_missing_fields(self) -> None: """from_dict handles missing fields gracefully with defaults.""" - enforcer = LimitEnforcer.from_dict({}) + enforcer = LimitEnforcer.from_dict( + {}, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) assert enforcer.current_iteration == 0 assert enforcer.max_iterations == 10 @@ -445,7 +457,9 @@ def test_user_increased_limit_preserved(self) -> None: "execution_history": ["a"] * 8, } - enforcer = LimitEnforcer.from_dict(data, timeout_seconds=60) + enforcer = LimitEnforcer.from_dict( + data, timeout_seconds=60, budget_usd=None, budget_mode="audit" + ) assert enforcer.max_iterations == 25 assert enforcer.current_iteration == 8 @@ -457,7 +471,9 @@ class TestLimitEnforcerRoundTrip: def test_default_round_trip(self) -> None: """Default enforcer survives round-trip.""" original = LimitEnforcer() - restored = LimitEnforcer.from_dict(original.to_dict()) + restored = LimitEnforcer.from_dict( + original.to_dict(), timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) assert restored.current_iteration == original.current_iteration assert restored.max_iterations == original.max_iterations @@ -471,7 +487,9 @@ def test_mid_execution_round_trip(self) -> None: original.record_execution("researcher") original.record_execution("researcher") - restored = LimitEnforcer.from_dict(original.to_dict(), timeout_seconds=120) + restored = LimitEnforcer.from_dict( + original.to_dict(), timeout_seconds=120, budget_usd=None, budget_mode="audit" + ) assert restored.current_iteration == original.current_iteration assert restored.max_iterations == original.max_iterations @@ -487,7 +505,9 @@ def test_round_trip_json_intermediary(self) -> None: json_str = json.dumps(original.to_dict()) data = json.loads(json_str) - restored = LimitEnforcer.from_dict(data, timeout_seconds=60) + restored = LimitEnforcer.from_dict( + data, timeout_seconds=60, budget_usd=None, budget_mode="audit" + ) assert restored.current_iteration == 4 assert restored.max_iterations == 15 @@ -501,7 +521,9 @@ def test_check_iteration_works_after_round_trip(self) -> None: original.record_execution("b") original.record_execution("c") - restored = LimitEnforcer.from_dict(original.to_dict()) + restored = LimitEnforcer.from_dict( + original.to_dict(), timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) # Should allow 2 more iterations restored.check_iteration("d") diff --git a/tests/test_engine/test_periodic_checkpoint.py b/tests/test_engine/test_periodic_checkpoint.py index 4b2e14ce..916d32c8 100644 --- a/tests/test_engine/test_periodic_checkpoint.py +++ b/tests/test_engine/test_periodic_checkpoint.py @@ -315,7 +315,11 @@ def build() -> WorkflowConfig: resume_engine = _make_engine(build(), wf, WorkflowEventEmitter()) resume_engine.set_context(WorkflowContext.from_dict(step3_cp.context)) - resume_engine.set_limits(LimitEnforcer.from_dict(step3_cp.limits, timeout_seconds=None)) + resume_engine.set_limits( + LimitEnforcer.from_dict( + step3_cp.limits, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) + ) await resume_engine.resume("step3") # Resume re-ran only step3; step1 and step2 were not executed again. @@ -526,7 +530,11 @@ async def test_resume_to_success_cleans_periodic(self, tmp_path: Path) -> None: # Resume with a healthy config and let it complete successfully. resume_engine = _make_engine(config, wf, WorkflowEventEmitter()) resume_engine.set_context(WorkflowContext.from_dict(step3_cp.context)) - resume_engine.set_limits(LimitEnforcer.from_dict(step3_cp.limits, timeout_seconds=None)) + resume_engine.set_limits( + LimitEnforcer.from_dict( + step3_cp.limits, timeout_seconds=None, budget_usd=None, budget_mode="audit" + ) + ) await resume_engine.resume("step3") remaining = [ diff --git a/tests/test_engine/test_resume.py b/tests/test_engine/test_resume.py index c973f93f..aa385a87 100644 --- a/tests/test_engine/test_resume.py +++ b/tests/test_engine/test_resume.py @@ -411,6 +411,8 @@ def mock_handler(agent, prompt, context): restored_limits = LimitEnforcer.from_dict( {"current_iteration": 1, "max_iterations": 10, "execution_history": ["planner"]}, timeout_seconds=300, + budget_usd=None, + budget_mode="audit", ) engine.set_context(restored_ctx) @@ -443,6 +445,9 @@ def mock_handler(agent, prompt, context): restored_limits = LimitEnforcer.from_dict( {"current_iteration": 1, "max_iterations": 10, "execution_history": ["planner"]}, + timeout_seconds=None, + budget_usd=None, + budget_mode="audit", ) engine.set_context(restored_ctx) @@ -505,6 +510,8 @@ def failing_handler(agent, prompt, context): LimitEnforcer.from_dict( cp.limits, timeout_seconds=config.workflow.limits.timeout_seconds, + budget_usd=config.workflow.limits.budget_usd, + budget_mode=config.workflow.limits.budget_mode, ) ) @@ -540,6 +547,9 @@ def always_fail_handler(agent, prompt, context): restored_limits = LimitEnforcer.from_dict( {"current_iteration": 1, "max_iterations": 10, "execution_history": ["planner"]}, + timeout_seconds=None, + budget_usd=None, + budget_mode="audit", ) engine.set_limits(restored_limits) @@ -668,6 +678,8 @@ def test_set_limits_replaces_limits(self) -> None: new_limits = LimitEnforcer.from_dict( {"current_iteration": 5, "max_iterations": 20, "execution_history": ["a"] * 5}, timeout_seconds=120, + budget_usd=None, + budget_mode="audit", ) engine.set_limits(new_limits) @@ -870,6 +882,8 @@ def capture(event: WorkflowEvent) -> None: LimitEnforcer.from_dict( {"current_iteration": 0, "max_iterations": 10, "execution_history": []}, timeout_seconds=120, + budget_usd=None, + budget_mode="audit", ) ) engine2.context.set_workflow_inputs({"topic": "AI"}) diff --git a/tests/test_engine/test_subworkflow.py b/tests/test_engine/test_subworkflow.py index 2a215ed4..8eaed90c 100644 --- a/tests/test_engine/test_subworkflow.py +++ b/tests/test_engine/test_subworkflow.py @@ -1845,6 +1845,8 @@ def failing_handler(agent, prompt, context): LimitEnforcer.from_dict( cp.limits, timeout_seconds=config.workflow.limits.timeout_seconds, + budget_usd=config.workflow.limits.budget_usd, + budget_mode=config.workflow.limits.budget_mode, ) ) diff --git a/tests/test_engine/test_usage.py b/tests/test_engine/test_usage.py index 3ead3142..5d951553 100644 --- a/tests/test_engine/test_usage.py +++ b/tests/test_engine/test_usage.py @@ -300,7 +300,55 @@ def test_usage_tracker_reset(self) -> None: tracker.reset() assert len(tracker.get_summary().agents) == 0 - def test_usage_tracker_check_budget_not_exceeded(self) -> None: + def test_usage_tracker_merge(self) -> None: + """Merging another workflow's usage rolls its per-agent records up.""" + parent = UsageTracker() + child = UsageTracker() + + parent_output = AgentOutput( + content={"result": "parent"}, + raw_response="{}", + input_tokens=1000, + output_tokens=500, + model="claude-sonnet-4", + ) + child_output = AgentOutput( + content={"result": "child"}, + raw_response="{}", + input_tokens=2000, + output_tokens=1000, + model="claude-sonnet-4", + ) + + parent.record("parent-agent", parent_output, elapsed=1.0) + child.record("child-agent", child_output, elapsed=1.0) + + parent.merge(child.get_summary()) + + summary = parent.get_summary() + assert len(summary.agents) == 2 + names = {a.agent_name for a in summary.agents} + assert names == {"parent-agent", "child-agent"} + # Parent budget now accounts for the child's tokens too. + assert summary.total_input_tokens == 3000 + assert summary.total_output_tokens == 1500 + + def test_usage_tracker_merge_empty(self) -> None: + """Merging an empty summary leaves the tracker unchanged.""" + tracker = UsageTracker() + output = AgentOutput( + content={"result": "test"}, + raw_response="{}", + input_tokens=1000, + output_tokens=500, + model="claude-sonnet-4", + ) + tracker.record("agent1", output, elapsed=1.0) + + tracker.merge(WorkflowUsage()) + + assert len(tracker.get_summary().agents) == 1 + """Test budget check when under budget.""" tracker = UsageTracker()