diff --git a/README.md b/README.md index 6bdc964..f3cbd4f 100644 --- a/README.md +++ b/README.md @@ -611,29 +611,27 @@ The parent manager receives a capability summary compiled from the covered roles | `.opc/config/company_orgs/org__config.yaml` | Saved custom company architectures used by Company Mode. | | `.opc/config/org_index.yaml` | Active saved company architecture selector. | -### LLM Keys +### LLM Keys & Local Model Support -After `opc init`, edit `.opc/config/llm_config.yaml` in the repo-local OPC home. If you set `OPC_HOME`, edit `$OPC_HOME/config/llm_config.yaml` instead. - -The template leaves secrets empty. Write your key directly into the file: +After `opc init`, edit `.opc/config/llm_config.yaml` in the repo-local OPC home (or `$OPC_HOME/config/llm_config.yaml`). OpenOPC supports both Cloud LLMs (OpenAI, Anthropic, OpenRouter) and keyless **Local LLMs** (Ollama, vLLM, LM Studio, LocalAI, Llama.cpp, TGI): ```yaml llm: - default_model: "openai/gpt-5.4" - api_base: "https://openrouter.ai/api/v1" - api_key: "sk-or-v1-..." # your OpenRouter (or other provider) API key - - max_tokens: 32768 # max output tokens per request; lower it if your - # model's output cap is smaller - # context_window: 128000 # total input window. Usually auto-detected via - # litellm; unmapped models fall back to 128000. - # Uncomment and set only when the fallback is - # wrong for your model. + default_model: "ollama/llama3.3" # or "vllm/meta-llama-3.1-8b-instruct", "openai/gpt-4o" + api_base: "http://localhost:11434" # auto-resolved for local model prefixes + api_key: "" # keyless for local self-hosted nodes! + + max_tokens: 32768 # max output tokens per request + is_local: true # optional explicit local execution flag ``` +You can also configure LLM settings directly from the browser using the **LLM & Local Model Settings Modal (`🤖` button)** in the top header of Office UI. + +See [`docs/LOCAL_MODELS.md`](docs/LOCAL_MODELS.md) for detailed setup guides on Ollama, vLLM, LM Studio, and LocalAI. + Then verify with `opc status`. -If you prefer not to store the key in the file, leave `api_key` empty and set `api_key_env` to the name of an environment variable that holds it (e.g. `api_key_env: "OPENROUTER_API_KEY"`). +If you prefer not to store cloud keys in the file, leave `api_key` empty and set `api_key_env` to the name of an environment variable that holds it (e.g. `api_key_env: "OPENROUTER_API_KEY"`). ### Approval & Agent Permissions diff --git a/README.zh-CN.md b/README.zh-CN.md index 2a7ad67..9bfa910 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -611,28 +611,27 @@ opc exec --mode task --agent jiuwenswarm "由一个 Team 完成这个任务" | `.opc/config/company_orgs/org__config.yaml` | Company 模式使用的自定义公司架构。 | | `.opc/config/org_index.yaml` | 当前生效的已保存公司架构选择器。 | -### LLM 密钥 +### LLM 密钥与本地模型支持 -运行 `opc init` 后,编辑仓库本地 OPC home 中的 `.opc/config/llm_config.yaml`。如果设置了 `OPC_HOME`,则改为编辑 `$OPC_HOME/config/llm_config.yaml`。 - -模板中的密钥留空。直接把 key 写入文件: +运行 `opc init` 后,编辑仓库本地 OPC home 中的 `.opc/config/llm_config.yaml`(或 `$OPC_HOME/config/llm_config.yaml`)。OpenOPC 同时支持云端 LLM(OpenAI、Anthropic、OpenRouter)与无 API Key 的**本地模型**(Ollama、vLLM、LM Studio、LocalAI、Llama.cpp、TGI): ```yaml llm: - default_model: "openai/gpt-5.4" - api_base: "https://openrouter.ai/api/v1" - api_key: "sk-or-v1-..." # 你的 OpenRouter(或其他提供方)API key - - max_tokens: 32768 # 每次请求的最大输出 token;如果你的模型 - # 输出上限更小,请调低 - # context_window: 128000 # 总输入窗口。通常由 litellm 自动检测; - # 未收录的模型回退为 128000。仅当回退值 - # 不适合你的模型时才取消注释并设置。 + default_model: "ollama/llama3.3" # 或 "vllm/meta-llama-3.1-8b-instruct"、"openai/gpt-4o" + api_base: "http://localhost:11434" # 本地模型前缀将自动解析默认 Base URL + api_key: "" # 本地节点免 API Key 运行! + + max_tokens: 32768 # 每次请求的最大输出 token + is_local: true # 可选的显式本地运行标志 ``` +你也可以直接在浏览器 Office UI 顶栏点击 **LLM & 本地模型设置弹窗(`🤖` 按钮)** 进行可视配置。 + +详细配置指南请参见 [`docs/LOCAL_MODELS.md`](docs/LOCAL_MODELS.md)。 + 然后用 `opc status` 验证。 -如果不想把密钥存在文件里,可以将 `api_key` 留空,并把 `api_key_env` 设置为持有密钥的环境变量名(例如 `api_key_env: "OPENROUTER_API_KEY"`)。 +如果不想把云端密钥存在文件里,可以将 `api_key` 留空,并把 `api_key_env` 设置为持有密钥的环境变量名(例如 `api_key_env: "OPENROUTER_API_KEY"`)。 ### 审批与 Agent 权限 diff --git a/docs/LOCAL_MODELS.md b/docs/LOCAL_MODELS.md new file mode 100644 index 0000000..73a7082 --- /dev/null +++ b/docs/LOCAL_MODELS.md @@ -0,0 +1,64 @@ +# Running OpenOPC with Local LLM Models + +OpenOPC natively supports self-hosted local LLMs (Ollama, vLLM, LM Studio, LocalAI, Llama.cpp, TGI) without requiring remote API keys. + +--- + +## 🚀 Supported Local Providers & Formats + +| Local Provider | Default Port | Model Prefix Format | Example Model Identifier | +|---|---|---|---| +| **Ollama** | `http://localhost:11434` | `ollama/` | `ollama/llama3.3`, `ollama/qwen2.5-coder` | +| **vLLM** | `http://localhost:8000/v1` | `vllm/` or `openai/` | `vllm/meta-llama-3.1-8b-instruct` | +| **LM Studio** | `http://localhost:1234/v1` | `openai/` | `openai/deepseek-r1-distill-qwen-14b` | +| **LocalAI / Llama.cpp** | `http://localhost:8080/v1` | `openai/` | `openai/starcoder2-15b` | +| **Custom Local OpenAI Server** | `http://:/v1` | `openai/` | `openai/custom-model` | + +> ⚠️ **Important Requirement**: Native OpenOPC agents require a local model that supports **tool calling / function calling** (such as `ollama/llama3.3` or `ollama/qwen2.5-coder`) to execute multi-step work items cleanly. + +--- + +## ⚡ Quick Start: Running with Ollama + +1. **Start Ollama** locally and pull your model: + ```bash + ollama run llama3.3 + ``` + +2. **Configure OpenOPC `llm_config.yaml`**: + Edit `~/.opc/config/llm_config.yaml`: + ```yaml + llm: + default_model: "ollama/llama3.3" + api_base: "http://localhost:11434" + is_local: true + ``` + +3. **Launch OpenOPC Session**: + ```bash + opc chat "Build a REST API in Python" + ``` + +--- + +## 🖥️ Running with LM Studio / LocalAI / OpenAI-Compatible Servers + +For OpenAI-compatible local servers (like LM Studio or LocalAI), use `openai/` together with `api_base`: + +```yaml +llm: + default_model: "openai/deepseek-r1-distill-qwen-14b" + api_base: "http://localhost:1234/v1" + is_local: true +``` + +--- + +## 🌐 Office UI Settings Modal Integration + +Settings can be changed dynamically from the browser using the **LLM & Local Model Settings Modal (`🤖` button)** in the top header of Office UI: + +1. Click the **`🤖` button** in the header. +2. Select your provider (Ollama, vLLM, LM Studio, LocalAI, OpenAI, Anthropic). +3. Enter model identifier and API base URL. +4. Click **Save & Apply Settings**. Changes are saved atomically to `.opc/config/llm_config.yaml` and reinitialize the runtime LLMProvider instantly. diff --git a/opc/core/config.py b/opc/core/config.py index f2e5c8f..f78d81b 100644 --- a/opc/core/config.py +++ b/opc/core/config.py @@ -281,6 +281,8 @@ class LLMConfig(BaseModel): api_base: str = "" api_key: str = "" api_key_env: str = "" + provider: str = "" + is_local: bool = False routing: dict[str, str] = Field(default_factory=dict) fallback: dict[str, Any] = Field(default_factory=dict) temperature: float = 0.3 @@ -1739,6 +1741,55 @@ def load_active_company_org_payload(config_dir: Path) -> tuple[dict[str, Any], P return _validate_company_org_payload(path, payload), path +class OPCConfig(BaseModel): + system: SystemConfig = Field(default_factory=SystemConfig) + llm: LLMConfig = Field(default_factory=LLMConfig) + agents: AgentsConfig = Field(default_factory=AgentsConfig) + org: OrgConfig = Field(default_factory=OrgConfig) + channels: ChannelsConfig = Field(default_factory=ChannelsConfig) + autonomy: AutonomyConfig = Field(default_factory=AutonomyConfig) + capabilities: CapabilityConfig = Field(default_factory=CapabilityConfig) + _trusted_workspace: Path | None = PrivateAttr(default=None) + _trusted_config_dir: Path | None = PrivateAttr(default=None) + + def bind_workspace_trust(self, workspace: Path, config_dir: Path) -> None: + """Attach the project trust provenance used for pre-sink rechecks.""" + + self._trusted_workspace = Path(workspace).resolve(strict=False) + self._trusted_config_dir = Path(config_dir).resolve(strict=False) + + def require_workspace_trust(self, *, include_effective: bool = False) -> None: + """Revalidate bound project authority immediately before runtime use. + + Normal runtime checks bind the source files while allowing explicit + host-side CLI overrides such as ``--model`` and ``--debug``. Loading + and trust-grant flows additionally validate the normalized declaration. + """ + + if self._trusted_workspace is None or self._trusted_config_dir is None: + return + from opc.core.workspace_trust import WorkspaceTrustStore + + WorkspaceTrustStore().require( + self._trusted_workspace, + self._trusted_config_dir, + self if include_effective else None, + ) + +def resolve_config_dir(path: Path | None = None) -> Path: + """Resolve target config directory (canonical: opc_home / 'config').""" + if path is None: + return get_opc_home() / "config" + p = Path(path) + if p.name == "config": + return p + if (p / "config").is_dir(): + return p / "config" + if not (p / "llm_config.yaml").exists() and not (p / "system_config.yaml").exists(): + return p / "config" + return p + + class OPCConfig(BaseModel): system: SystemConfig = Field(default_factory=SystemConfig) llm: LLMConfig = Field(default_factory=LLMConfig) @@ -1781,9 +1832,7 @@ def load( *, trusted_source: bool = False, ) -> "OPCConfig": - if config_dir is None: - config_dir = get_opc_home() / "config" - config_dir = Path(config_dir) + config_dir = resolve_config_dir(config_dir) trusted_workspace: Path | None = None trust_store: Any | None = None @@ -1872,9 +1921,16 @@ def load( config.bind_workspace_trust(trusted_workspace, config_dir) return config + def save_llm_config(self, config_dir: Path | None = None) -> Path: + """Atomically save ONLY llm_config.yaml under canonical config_dir.""" + target_dir = resolve_config_dir(config_dir) + target_dir.mkdir(parents=True, exist_ok=True) + llm_path = target_dir / "llm_config.yaml" + _atomic_write_yaml(llm_path, {"llm": self.llm.model_dump()}) + return llm_path + def save(self, config_dir: Path | None = None) -> None: - if config_dir is None: - config_dir = get_opc_home() / "config" + config_dir = resolve_config_dir(config_dir) config_dir.mkdir(parents=True, exist_ok=True) system_path = config_dir / "system_config.yaml" diff --git a/opc/engine.py b/opc/engine.py index f36ecab..2a51bbd 100644 --- a/opc/engine.py +++ b/opc/engine.py @@ -999,6 +999,30 @@ async def initialize(self) -> None: await self._recover_interaction_consumers() await self._recover_company_work_item_gate_continuations() logger.info("OPC Engine initialized successfully") + + def reconfigure_llm(self, new_config: LLMConfig) -> LLMProvider: + """Consistently reconfigure LLMProvider for the engine and all dependent consumers.""" + self.config.llm = new_config + new_llm = LLMProvider(new_config, opc_home=self.opc_home) + self.llm = new_llm + + if getattr(self, "history_compactor", None) is not None: + self.history_compactor.llm = new_llm + if getattr(self, "communication", None) is not None: + self.communication.llm = new_llm + if getattr(self, "approval_engine", None) is not None: + self.approval_engine.llm = new_llm + if getattr(self, "secretary", None) is not None: + self.secretary.llm = new_llm + if getattr(self, "company_runtime_spec_builder", None) is not None: + self.company_runtime_spec_builder.llm = new_llm + if getattr(self, "company_recruiter", None) is not None: + self.company_recruiter.llm = new_llm + if getattr(self, "company_executor", None) is not None: + self.company_executor.llm = new_llm + if getattr(self, "task_router", None) is not None: + self.task_router.llm = new_llm + return new_llm if reconciled: logger.warning( "Reconciled {} interrupted task(s) for project {} during startup", diff --git a/opc/llm/provider.py b/opc/llm/provider.py index 121d168..3c58760 100644 --- a/opc/llm/provider.py +++ b/opc/llm/provider.py @@ -171,6 +171,92 @@ def _is_poe_base(api_base: str | None) -> bool: return hostname == "api.poe.com" +_LOCAL_MODEL_PREFIXES = ( + "ollama/", + "ollama_chat/", + "localai/", + "vllm/", + "hosted_vllm/", + "lmstudio/", + "llama-cpp/", + "llamacpp/", + "tgi/", +) + +_LOCAL_HOSTNAME_HINTS = ( + "localhost", + "127.0.0.1", + "0.0.0.0", + "::1", +) + + +def _is_local_endpoint(api_base: str | None = None, model: str | None = None) -> bool: + """True when target api_base or model represents a self-hosted / local LLM node.""" + if model: + normalized_model = model.strip().lower() + if any(normalized_model.startswith(prefix) for prefix in _LOCAL_MODEL_PREFIXES): + return True + + if api_base: + normalized_base = api_base.strip().lower() + try: + parsed = urlparse(normalized_base) + hostname = (parsed.hostname or "").strip().lower() + if hostname in _LOCAL_HOSTNAME_HINTS or hostname.endswith(".local"): + return True + except Exception: + pass + + return False + + +def _normalize_litellm_model(model: str, api_base: str | None = None) -> str: + """Normalize model identifier so litellm==1.82.1 resolves provider without error.""" + normalized = (model or "").strip() + if not normalized: + return normalized + + prefix = normalized.split("/", 1)[0].lower() if "/" in normalized else "" + + # Standard native LiteLLM provider prefixes in version 1.82.1 + known_litellm_prefixes = { + "ollama", + "ollama_chat", + "vllm", + "hosted_vllm", + "openai", + "anthropic", + "openrouter", + "azure", + "azure_ai", + "gemini", + "google", + "mistral", + "groq", + "deepseek", + "together_ai", + "togetherai", + "bedrock", + "cohere", + "vertex_ai", + } + + if prefix in known_litellm_prefixes: + return normalized + + # Custom local prefixes: map to OpenAI-compatible provider for LiteLLM + if prefix in {"lmstudio", "localai", "llama-cpp", "llamacpp", "tgi"}: + sub_model = normalized.split("/", 1)[1] if "/" in normalized else normalized + return f"openai/{sub_model}" + + # If unmapped prefix and targeting a local base, route as openai/ + if _is_local_endpoint(api_base, normalized): + return f"openai/{normalized}" + + return normalized + + def _looks_like_multimodal_model(model: str) -> bool: normalized = _normalized_model_name(model) if any(hint in normalized for hint in _MULTIMODAL_MODEL_HINTS): @@ -205,23 +291,30 @@ def _parse_tool_arguments(tool_name: str, arguments: Any) -> tuple[Any, str | No class ProviderQuotaExhaustedError(RuntimeError): - """The provider rejected the request for quota/rate-limit reasons. + """The provider rejected the request for quota/rate-limit reasons.""" + + +_CLOUD_MODEL_PREFIXES = ( + "anthropic/", + "openrouter/", + "gemini/", + "google/", + "azure/", + "groq/", + "deepseek/", + "together_ai/", + "mistral/", +) - Raised by the agent runtime instead of retrying in place: replaying the - same payload against an exhausted quota can only fail, so the company - dispatcher parks the work (returns the item to READY and backs off) - rather than failing it terminally (OBS-6). - """ + +def _is_cloud_model(model: str) -> bool: + m = (model or "").strip().lower() + return any(m.startswith(prefix) for prefix in _CLOUD_MODEL_PREFIXES) class LLMProvider: """Unified LLM interface via LiteLLM supporting tool calls.""" - # Well-known provider API-key env vars that litellm reads directly when no - # explicit api_key is passed. Used only by ``has_credentials()`` to avoid a - # false "no credentials" verdict for env-based setups. Missing a provider - # here just preserves the old behavior (a real LLM attempt), never a wrong - # skip of a working key. _CREDENTIAL_ENV_VARS = ( "OPENAI_API_KEY", "ANTHROPIC_API_KEY", @@ -247,19 +340,116 @@ def __init__(self, config: LLMConfig, opc_home: Path | None = None) -> None: self._api_key = config.api_key or ( os.environ.get(config.api_key_env) if config.api_key_env else None ) or None - self._api_base = config.api_base or None - def has_credentials(self) -> bool: - """Whether an LLM call can plausibly authenticate. + @property + def _api_base(self) -> str | None: + return self.resolve_api_base() - True when a key is configured (``api_key`` / ``api_key_env``) or a - well-known provider env var is present. False only when no credential - is found anywhere — callers use that to skip LLM work that would - certainly fail (e.g. native agent selection when an external agent can - run the task instead). A False at worst degrades to rule-based behavior, - which stays functional; it never blocks execution. - """ - if self._api_key: + def resolve_api_base(self, model: str | None = None) -> str | None: + """Resolve effective API base URL for a specific model or default model.""" + target_model = (model or self.config.default_model or "").strip().lower() + + # Cloud models must NOT inherit local loopback config.api_base or local env vars + if _is_cloud_model(target_model): + if self.config.api_base and not _is_local_endpoint(self.config.api_base, target_model): + return self.config.api_base + return None + + # Explicit config.api_base takes precedence for local/custom models if set + if self.config.api_base: + return self.config.api_base + + # Check provider-scoped environment variables and default local endpoints + if target_model.startswith("ollama/") or target_model.startswith("ollama_chat/"): + return ( + os.environ.get("OLLAMA_API_BASE") + or os.environ.get("OLLAMA_HOST") + or os.environ.get("LOCAL_LLM_API_BASE") + or "http://localhost:11434" + ) + + if target_model.startswith("vllm/") or target_model.startswith("hosted_vllm/"): + return ( + os.environ.get("VLLM_API_BASE") + or os.environ.get("LOCAL_LLM_API_BASE") + or "http://localhost:8000/v1" + ) + + if ( + target_model.startswith("localai/") + or target_model.startswith("llamacpp/") + or target_model.startswith("llama-cpp/") + ): + return ( + os.environ.get("LOCALAI_API_BASE") + or os.environ.get("LOCAL_LLM_API_BASE") + or "http://localhost:8080/v1" + ) + + if target_model.startswith("lmstudio/"): + return ( + os.environ.get("LMSTUDIO_API_BASE") + or os.environ.get("LOCAL_LLM_API_BASE") + or "http://localhost:1234/v1" + ) + + if target_model.startswith("openai/"): + return os.environ.get("OPENAI_API_BASE") or None + + return None + + def resolve_credentials(self, model: str | None = None) -> tuple[str | None, bool]: + """Resolve effective (api_key, is_local) scoped to the target model.""" + target_model = (model or self.config.default_model or "").strip().lower() + api_base = self.resolve_api_base(target_model) + is_cloud = _is_cloud_model(target_model) + + is_local = _is_local_endpoint(api_base, target_model) or ( + target_model == (self.config.default_model or "").strip().lower() + and getattr(self.config, "is_local", False) + and not is_cloud + ) + + if is_local: + # If explicit API key was configured, use it; otherwise fallback to "local" + if self._api_key and not is_cloud: + return self._api_key, True + return "local", True + + if is_cloud: + if target_model.startswith("anthropic/"): + env_key = os.environ.get("ANTHROPIC_API_KEY") + if env_key: + return env_key, False + if self._api_key and not getattr(self.config, "is_local", False): + return self._api_key, False + return None, False + if target_model.startswith("openrouter/"): + env_key = os.environ.get("OPENROUTER_API_KEY") + if env_key: + return env_key, False + return self._api_key, False + if target_model.startswith("gemini/") or target_model.startswith("google/"): + env_key = os.environ.get("GEMINI_API_KEY") or os.environ.get("GOOGLE_API_KEY") + if env_key: + return env_key, False + return self._api_key, False + if target_model.startswith("azure/"): + env_key = os.environ.get("AZURE_API_KEY") or os.environ.get("AZURE_OPENAI_API_KEY") + if env_key: + return env_key, False + return self._api_key, False + + api_key = self._api_key or ( + os.environ.get(self.config.api_key_env) if self.config.api_key_env else None + ) + return api_key, False + + def has_credentials(self, model: str | None = None) -> bool: + """Whether an LLM call can plausibly authenticate for a given model.""" + target_model = model or self.config.default_model + api_key, is_local = self.resolve_credentials(target_model) + if is_local or api_key: return True return any(os.environ.get(var) for var in self._CREDENTIAL_ENV_VARS) @@ -375,8 +565,18 @@ def get_capabilities( ) -> ModelCapabilitySet: resolved_model = model or self._select_model(task_type) normalized = _normalized_model_name(resolved_model) + api_base = self.resolve_api_base(resolved_model) provider_family = resolved_model.split("/", 1)[0].strip().lower() if "/" in resolved_model else "" - supports_thinking = any(hint in normalized for hint in ("o1", "o3", "o4", "gpt-5", "claude", "reason")) + if not provider_family and getattr(self.config, "provider", ""): + provider_family = self.config.provider.strip().lower() + if not provider_family and _is_local_endpoint(api_base, resolved_model): + provider_family = "local" + + is_local = ( + getattr(self.config, "is_local", False) + or _is_local_endpoint(api_base, resolved_model) + ) + supports_thinking = any(hint in normalized for hint in ("o1", "o3", "o4", "gpt-5", "claude", "reason", "r1")) return ModelCapabilitySet( model=resolved_model, supports_streaming=True, @@ -388,7 +588,8 @@ def get_capabilities( supports_video=_looks_like_video_capable_model(resolved_model), provider_family=provider_family, metadata={ - "api_base": self._api_base or "", + "api_base": api_base or "", + "is_local": is_local, }, ) @@ -559,11 +760,14 @@ async def chat( **kwargs: Any, ) -> dict[str, Any]: model = self._select_model(task_type) + api_base = self.resolve_api_base(model) + api_key, _ = self.resolve_credentials(model) + litellm_model = _normalize_litellm_model(model, api_base) temp = temperature if temperature is not None else self.config.temperature max_tok = _clamp_max_tokens(model, max_tokens if max_tokens is not None else self.config.max_tokens) call_kwargs: dict[str, Any] = { - "model": model, + "model": litellm_model, "messages": messages, "temperature": temp, "max_tokens": max_tok, @@ -571,15 +775,15 @@ async def chat( } if self.config.reasoning_effort and "reasoning_effort" not in call_kwargs: call_kwargs["reasoning_effort"] = self.config.reasoning_effort - if self._api_base: - call_kwargs["api_base"] = self._api_base - if self._api_key: - call_kwargs["api_key"] = self._api_key + if api_base: + call_kwargs["api_base"] = api_base + if api_key: + call_kwargs["api_key"] = api_key if tools: call_kwargs["tools"] = tools call_kwargs["tool_choice"] = "auto" - logger.debug(f"LLM call: model={model}, base={self._api_base or 'default'}, msgs={len(messages)}, tools={len(tools or [])}") + logger.debug(f"LLM call: model={model} (litellm={litellm_model}), base={api_base or 'default'}, msgs={len(messages)}, tools={len(tools or [])}") try: response = await litellm.acompletion(**call_kwargs) @@ -706,11 +910,14 @@ async def chat_stream( **kwargs: Any, ) -> AsyncIterator[RuntimeLLMEvent]: model = self._select_model(task_type) + api_base = self.resolve_api_base(model) + api_key, _ = self.resolve_credentials(model) + litellm_model = _normalize_litellm_model(model, api_base) temp = temperature if temperature is not None else self.config.temperature max_tok = _clamp_max_tokens(model, max_tokens if max_tokens is not None else self.config.max_tokens) call_kwargs: dict[str, Any] = { - "model": model, + "model": litellm_model, "messages": messages, "temperature": temp, "max_tokens": max_tok, @@ -719,16 +926,16 @@ async def chat_stream( } if self.config.reasoning_effort and "reasoning_effort" not in call_kwargs: call_kwargs["reasoning_effort"] = self.config.reasoning_effort - if self._api_base: - call_kwargs["api_base"] = self._api_base - if self._api_key: - call_kwargs["api_key"] = self._api_key + if api_base: + call_kwargs["api_base"] = api_base + if api_key: + call_kwargs["api_key"] = api_key if tools: call_kwargs["tools"] = tools call_kwargs["tool_choice"] = "auto" logger.debug( - f"LLM stream call: model={model}, base={self._api_base or 'default'}, msgs={len(messages)}, tools={len(tools or [])}" + f"LLM stream call: model={model} (litellm={litellm_model}), base={api_base or 'default'}, msgs={len(messages)}, tools={len(tools or [])}" ) last_usage = {"prompt_tokens": 0, "completion_tokens": 0} diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-BbhFFkjK.js b/opc/plugins/office_ui/frontend_dist/assets/index-BbhFFkjK.js new file mode 100644 index 0000000..ebfe3bd --- /dev/null +++ b/opc/plugins/office_ui/frontend_dist/assets/index-BbhFFkjK.js @@ -0,0 +1,206 @@ +import{g as ya,r as l3}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();var vg={exports:{}},Pc={};var Bk;function c3(){if(Bk)return Pc;Bk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(i,r,o){var a=null;if(o!==void 0&&(a=""+o),r.key!==void 0&&(a=""+r.key),"key"in r){o={};for(var u in r)u!=="key"&&(o[u]=r[u])}else o=r;return r=o.ref,{$$typeof:e,type:i,key:a,ref:r!==void 0?r:null,props:o}}return Pc.Fragment=t,Pc.jsx=n,Pc.jsxs=n,Pc}var $k;function u3(){return $k||($k=1,vg.exports=c3()),vg.exports}var c=u3(),bg={exports:{}},Ct={};var Hk;function d3(){if(Hk)return Ct;Hk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),a=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(q){return q===null||typeof q!="object"?null:(q=g&&q[g]||q["@@iterator"],typeof q=="function"?q:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,S={};function w(q,J,D){this.props=q,this.context=J,this.refs=S,this.updater=D||v}w.prototype.isReactComponent={},w.prototype.setState=function(q,J){if(typeof q!="object"&&typeof q!="function"&&q!=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,q,J,"setState")},w.prototype.forceUpdate=function(q){this.updater.enqueueForceUpdate(this,q,"forceUpdate")};function k(){}k.prototype=w.prototype;function j(q,J,D){this.props=q,this.context=J,this.refs=S,this.updater=D||v}var N=j.prototype=new k;N.constructor=j,b(N,w.prototype),N.isPureReactComponent=!0;var z=Array.isArray;function I(){}var A={H:null,A:null,T:null,S:null},L=Object.prototype.hasOwnProperty;function M(q,J,D){var Z=D.ref;return{$$typeof:e,type:q,key:J,ref:Z!==void 0?Z:null,props:D}}function O(q,J){return M(q.type,J,q.props)}function T(q){return typeof q=="object"&&q!==null&&q.$$typeof===e}function $(q){var J={"=":"=0",":":"=2"};return"$"+q.replace(/[=:]/g,function(D){return J[D]})}var G=/\/+/g;function P(q,J){return typeof q=="object"&&q!==null&&q.key!=null?$(""+q.key):J.toString(36)}function F(q){switch(q.status){case"fulfilled":return q.value;case"rejected":throw q.reason;default:switch(typeof q.status=="string"?q.then(I,I):(q.status="pending",q.then(function(J){q.status==="pending"&&(q.status="fulfilled",q.value=J)},function(J){q.status==="pending"&&(q.status="rejected",q.reason=J)})),q.status){case"fulfilled":return q.value;case"rejected":throw q.reason}}throw q}function V(q,J,D,Z,ie){var ee=typeof q;(ee==="undefined"||ee==="boolean")&&(q=null);var te=!1;if(q===null)te=!0;else switch(ee){case"bigint":case"string":case"number":te=!0;break;case"object":switch(q.$$typeof){case e:case t:te=!0;break;case h:return te=q._init,V(te(q._payload),J,D,Z,ie)}}if(te)return ie=ie(q),te=Z===""?"."+P(q,0):Z,z(ie)?(D="",te!=null&&(D=te.replace(G,"$&/")+"/"),V(ie,J,D,"",function(he){return he})):ie!=null&&(T(ie)&&(ie=O(ie,D+(ie.key==null||q&&q.key===ie.key?"":(""+ie.key).replace(G,"$&/")+"/")+te)),J.push(ie)),1;te=0;var oe=Z===""?".":Z+":";if(z(q))for(var le=0;le>>1,W=V[Q];if(0>>1;Qr(D,U))Zr(ie,D)?(V[Q]=ie,V[Z]=U,Q=Z):(V[Q]=D,V[J]=U,Q=J);else if(Zr(ie,U))V[Q]=ie,V[Z]=U,Q=Z;else break e}}return Y}function r(V,Y){var U=V.sortIndex-Y.sortIndex;return U!==0?U:V.id-Y.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 a=Date,u=a.now();e.unstable_now=function(){return a.now()-u}}var d=[],m=[],h=1,p=null,g=3,x=!1,v=!1,b=!1,S=!1,w=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;function N(V){for(var Y=n(m);Y!==null;){if(Y.callback===null)i(m);else if(Y.startTime<=V)i(m),Y.sortIndex=Y.expirationTime,t(d,Y);else break;Y=n(m)}}function z(V){if(b=!1,N(V),!v)if(n(d)!==null)v=!0,I||(I=!0,$());else{var Y=n(m);Y!==null&&F(z,Y.startTime-V)}}var I=!1,A=-1,L=5,M=-1;function O(){return S?!0:!(e.unstable_now()-MV&&O());){var Q=p.callback;if(typeof Q=="function"){p.callback=null,g=p.priorityLevel;var W=Q(p.expirationTime<=V);if(V=e.unstable_now(),typeof W=="function"){p.callback=W,N(V),Y=!0;break t}p===n(d)&&i(d),N(V)}else i(d);p=n(d)}if(p!==null)Y=!0;else{var q=n(m);q!==null&&F(z,q.startTime-V),Y=!1}}break e}finally{p=null,g=U,x=!1}Y=void 0}}finally{Y?$():I=!1}}}var $;if(typeof j=="function")$=function(){j(T)};else if(typeof MessageChannel<"u"){var G=new MessageChannel,P=G.port2;G.port1.onmessage=T,$=function(){P.postMessage(null)}}else $=function(){w(T,0)};function F(V,Y){A=w(function(){V(e.unstable_now())},Y)}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(V){V.callback=null},e.unstable_forceFrameRate=function(V){0>V||125Q?(V.sortIndex=U,t(m,V),n(d)===null&&V===n(m)&&(b?(k(A),A=-1):b=!0,F(z,U-Q))):(V.sortIndex=W,t(d,V),v||x||(v=!0,I||(I=!0,$()))),V},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(V){var Y=g;return function(){var U=g;g=Y;try{return V.apply(this,arguments)}finally{g=U}}}})(Sg)),Sg}var Uk;function m3(){return Uk||(Uk=1,kg.exports=f3()),kg.exports}var wg={exports:{}},Ai={};var qk;function p3(){if(qk)return Ai;qk=1;var e=Fl();function t(d){var m="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(),wg.exports=p3(),wg.exports}var Wk;function h3(){if(Wk)return Bc;Wk=1;var e=m3(),t=Fl(),n=dE();function i(s){var l="https://react.dev/errors/"+s;if(1W||(s.current=Q[W],Q[W]=null,W--)}function D(s,l){W++,Q[W]=s.current,s.current=l}var Z=q(null),ie=q(null),ee=q(null),te=q(null);function oe(s,l){switch(D(ee,l),D(ie,s),D(Z,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?lk(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=lk(l),s=ck(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}J(Z),D(Z,s)}function le(){J(Z),J(ie),J(ee)}function he(s){s.memoizedState!==null&&D(te,s);var l=Z.current,f=ck(l,s.type);l!==f&&(D(ie,s),D(Z,f))}function Ie(s){ie.current===s&&(J(Z),J(ie)),te.current===s&&(J(te),Dc._currentValue=U)}var xe,je;function Ve(s){if(xe===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);xe=l&&l[1]||"",je=-1)":-1_||re[y]!==ve[_]){var Ee=` +`+re[y].replace(" at new "," at ");return s.displayName&&Ee.includes("")&&(Ee=Ee.replace("",s.displayName)),Ee}while(1<=y&&0<=_);break}}}finally{We=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?Ve(f):""}function ct(s,l){switch(s.tag){case 26:case 27:case 5:return Ve(s.type);case 16:return Ve("Lazy");case 13:return s.child!==l&&l!==null?Ve("Suspense Fallback"):Ve("Suspense");case 19:return Ve("SuspenseList");case 0:case 15:return Pe(s.type,!1);case 11:return Pe(s.type.render,!1);case 1:return Pe(s.type,!0);case 31:return Ve("Activity");default:return""}}function It(s){try{var l="",f=null;do l+=ct(s,f),f=s,s=s.return;while(s);return l}catch(y){return` +Error generating stack: `+y.message+` +`+y.stack}}var ut=Object.prototype.hasOwnProperty,Bt=e.unstable_scheduleCallback,ge=e.unstable_cancelCallback,me=e.unstable_shouldYield,qe=e.unstable_requestPaint,Ge=e.unstable_now,ht=e.unstable_getCurrentPriorityLevel,ce=e.unstable_ImmediatePriority,we=e.unstable_UserBlockingPriority,Oe=e.unstable_NormalPriority,Ue=e.unstable_LowPriority,Xe=e.unstable_IdlePriority,bt=e.log,St=e.unstable_setDisableYieldValue,dt=null,ke=null;function Je(s){if(typeof bt=="function"&&St(s),ke&&typeof ke.setStrictMode=="function")try{ke.setStrictMode(dt,s)}catch{}}var Ke=Math.clz32?Math.clz32:yn,it=Math.log,He=Math.LN2;function yn(s){return s>>>=0,s===0?32:31-(it(s)/He|0)|0}var on=256,jt=262144,Mt=4194304;function an(s){var l=s&42;if(l!==0)return l;switch(s&-s){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 s&261888;case 262144:case 524288:case 1048576:case 2097152:return s&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return s}}function Tt(s,l,f){var y=s.pendingLanes;if(y===0)return 0;var _=0,E=s.suspendedLanes,H=s.pingedLanes;s=s.warmLanes;var X=y&134217727;return X!==0?(y=X&~E,y!==0?_=an(y):(H&=X,H!==0?_=an(H):f||(f=X&~s,f!==0&&(_=an(f))))):(X=y&~E,X!==0?_=an(X):H!==0?_=an(H):f||(f=y&~s,f!==0&&(_=an(f)))),_===0?0:l!==0&&l!==_&&(l&E)===0&&(E=_&-_,f=l&-l,E>=f||E===32&&(f&4194048)!==0)?l:_}function $t(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function ii(s,l){switch(s){case 1:case 2:case 4:case 8:case 64:return l+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 l+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 Et(){var s=Mt;return Mt<<=1,(Mt&62914560)===0&&(Mt=4194304),s}function Xn(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function dn(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function tt(s,l,f,y,_,E){var H=s.pendingLanes;s.pendingLanes=f,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=f,s.entangledLanes&=f,s.errorRecoveryDisabledLanes&=f,s.shellSuspendCounter=0;var X=s.entanglements,re=s.expirationTimes,ve=s.hiddenUpdates;for(f=H&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var ft=/[\n"\\]/g;function Ot(s){return s.replace(ft,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function pe(s,l,f,y,_,E,H,X){s.name="",H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"?s.type=H:s.removeAttribute("type"),l!=null?H==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+wn(l)):s.value!==""+wn(l)&&(s.value=""+wn(l)):H!=="submit"&&H!=="reset"||s.removeAttribute("value"),l!=null?De(s,H,wn(l)):f!=null?De(s,H,wn(f)):y!=null&&s.removeAttribute("value"),_==null&&E!=null&&(s.defaultChecked=!!E),_!=null&&(s.checked=_&&typeof _!="function"&&typeof _!="symbol"),X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?s.name=""+wn(X):s.removeAttribute("name")}function Ce(s,l,f,y,_,E,H,X){if(E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(s.type=E),l!=null||f!=null){if(!(E!=="submit"&&E!=="reset"||l!=null)){ue(s);return}f=f!=null?""+wn(f):"",l=l!=null?""+wn(l):f,X||l===s.value||(s.value=l),s.defaultValue=l}y=y??_,y=typeof y!="function"&&typeof y!="symbol"&&!!y,s.checked=X?s.checked:!!y,s.defaultChecked=!!y,H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"&&(s.name=H),ue(s)}function De(s,l,f){l==="number"&&Me(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function Be(s,l,f,y){if(s=s.options,l){l={};for(var _=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Kl=!1;if(Or)try{var Gs={};Object.defineProperty(Gs,"passive",{get:function(){Kl=!0}}),window.addEventListener("test",Gs,Gs),window.removeEventListener("test",Gs,Gs)}catch{Kl=!1}var Jr=null,Zl=null,Mo=null;function Lr(){if(Mo)return Mo;var s,l=Zl,f=l.length,y,_="value"in Jr?Jr.value:Jr.textContent,E=_.length;for(s=0;s=tr),hb=" ",gb=!1;function yb(s,l){switch(s){case"keyup":return Xs.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xb(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var ka=!1;function AA(s,l){switch(s){case"compositionend":return xb(l);case"keypress":return l.which!==32?null:(gb=!0,hb);case"textInput":return s=l.data,s===hb&&gb?null:s;default:return null}}function MA(s,l){if(ka)return s==="compositionend"||!tc&&yb(s,l)?(s=Lr(),Mo=Zl=Jr=null,ka=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-s};s=y}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=jb(f)}}function Nb(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?Nb(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function Ib(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=Me(s.document);l instanceof s.HTMLIFrameElement;){try{var f=typeof l.contentWindow.location.href=="string"}catch{f=!1}if(f)s=l.contentWindow;else break;l=Me(s.document)}return l}function Np(s){var l=s&&s.nodeName&&s.nodeName.toLowerCase();return l&&(l==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||l==="textarea"||s.contentEditable==="true")}var HA=Or&&"documentMode"in document&&11>=document.documentMode,Sa=null,Ip=null,sc=null,Tp=!1;function Tb(s,l,f){var y=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;Tp||Sa==null||Sa!==Me(y)||(y=Sa,"selectionStart"in y&&Np(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),sc&&rc(sc,y)||(sc=y,y=Wd(Ip,"onSelect"),0>=H,_-=H,es=1<<32-Ke(l)+_|f<<_|y,ts=E+s}else es=1<zt?(Qt=et,et=null):Qt=et.sibling;var mn=_e(fe,et,ye[zt],Re);if(mn===null){et===null&&(et=Qt);break}s&&et&&mn.alternate===null&&l(fe,et),ae=E(mn,ae,zt),fn===null?lt=mn:fn.sibling=mn,fn=mn,et=Qt}if(zt===ye.length)return f(fe,et),tn&&bs(fe,zt),lt;if(et===null){for(;ztzt?(Qt=et,et=null):Qt=et.sibling;var xo=_e(fe,et,mn.value,Re);if(xo===null){et===null&&(et=Qt);break}s&&et&&xo.alternate===null&&l(fe,et),ae=E(xo,ae,zt),fn===null?lt=xo:fn.sibling=xo,fn=xo,et=Qt}if(mn.done)return f(fe,et),tn&&bs(fe,zt),lt;if(et===null){for(;!mn.done;zt++,mn=ye.next())mn=Ae(fe,mn.value,Re),mn!==null&&(ae=E(mn,ae,zt),fn===null?lt=mn:fn.sibling=mn,fn=mn);return tn&&bs(fe,zt),lt}for(et=y(et);!mn.done;zt++,mn=ye.next())mn=Se(et,fe,zt,mn.value,Re),mn!==null&&(s&&mn.alternate!==null&&et.delete(mn.key===null?zt:mn.key),ae=E(mn,ae,zt),fn===null?lt=mn:fn.sibling=mn,fn=mn);return s&&et.forEach(function(a3){return l(fe,a3)}),tn&&bs(fe,zt),lt}function Tn(fe,ae,ye,Re){if(typeof ye=="object"&&ye!==null&&ye.type===b&&ye.key===null&&(ye=ye.props.children),typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case x:e:{for(var lt=ye.key;ae!==null;){if(ae.key===lt){if(lt=ye.type,lt===b){if(ae.tag===7){f(fe,ae.sibling),Re=_(ae,ye.props.children),Re.return=fe,fe=Re;break e}}else if(ae.elementType===lt||typeof lt=="object"&<!==null&<.$$typeof===L&&qo(lt)===ae.type){f(fe,ae.sibling),Re=_(ae,ye.props),dc(Re,ye),Re.return=fe,fe=Re;break e}f(fe,ae);break}else l(fe,ae);ae=ae.sibling}ye.type===b?(Re=$o(ye.props.children,fe.mode,Re,ye.key),Re.return=fe,fe=Re):(Re=ud(ye.type,ye.key,ye.props,null,fe.mode,Re),dc(Re,ye),Re.return=fe,fe=Re)}return H(fe);case v:e:{for(lt=ye.key;ae!==null;){if(ae.key===lt)if(ae.tag===4&&ae.stateNode.containerInfo===ye.containerInfo&&ae.stateNode.implementation===ye.implementation){f(fe,ae.sibling),Re=_(ae,ye.children||[]),Re.return=fe,fe=Re;break e}else{f(fe,ae);break}else l(fe,ae);ae=ae.sibling}Re=zp(ye,fe.mode,Re),Re.return=fe,fe=Re}return H(fe);case L:return ye=qo(ye),Tn(fe,ae,ye,Re)}if(F(ye))return Qe(fe,ae,ye,Re);if($(ye)){if(lt=$(ye),typeof lt!="function")throw Error(i(150));return ye=lt.call(ye),pt(fe,ae,ye,Re)}if(typeof ye.then=="function")return Tn(fe,ae,yd(ye),Re);if(ye.$$typeof===j)return Tn(fe,ae,md(fe,ye),Re);xd(fe,ye)}return typeof ye=="string"&&ye!==""||typeof ye=="number"||typeof ye=="bigint"?(ye=""+ye,ae!==null&&ae.tag===6?(f(fe,ae.sibling),Re=_(ae,ye),Re.return=fe,fe=Re):(f(fe,ae),Re=Lp(ye,fe.mode,Re),Re.return=fe,fe=Re),H(fe)):f(fe,ae)}return function(fe,ae,ye,Re){try{uc=0;var lt=Tn(fe,ae,ye,Re);return Da=null,lt}catch(et){if(et===Ma||et===hd)throw et;var fn=ir(29,et,null,fe.mode);return fn.lanes=Re,fn.return=fe,fn}}}var Wo=Jb(!0),e_=Jb(!1),eo=!1;function Xp(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Kp(s,l){s=s.updateQueue,l.updateQueue===s&&(l.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function to(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function no(s,l,f){var y=s.updateQueue;if(y===null)return null;if(y=y.shared,(gn&2)!==0){var _=y.pending;return _===null?l.next=l:(l.next=_.next,_.next=l),y.pending=l,l=cd(s),zb(s,null,f),l}return ld(s,y,l,f),cd(s)}function fc(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Rn(s,f)}}function Zp(s,l){var f=s.updateQueue,y=s.alternate;if(y!==null&&(y=y.updateQueue,f===y)){var _=null,E=null;if(f=f.firstBaseUpdate,f!==null){do{var H={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};E===null?_=E=H:E=E.next=H,f=f.next}while(f!==null);E===null?_=E=l:E=E.next=l}else _=E=l;f={baseState:y.baseState,firstBaseUpdate:_,lastBaseUpdate:E,shared:y.shared,callbacks:y.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var Qp=!1;function mc(){if(Qp){var s=Aa;if(s!==null)throw s}}function pc(s,l,f,y){Qp=!1;var _=s.updateQueue;eo=!1;var E=_.firstBaseUpdate,H=_.lastBaseUpdate,X=_.shared.pending;if(X!==null){_.shared.pending=null;var re=X,ve=re.next;re.next=null,H===null?E=ve:H.next=ve,H=re;var Ee=s.alternate;Ee!==null&&(Ee=Ee.updateQueue,X=Ee.lastBaseUpdate,X!==H&&(X===null?Ee.firstBaseUpdate=ve:X.next=ve,Ee.lastBaseUpdate=re))}if(E!==null){var Ae=_.baseState;H=0,Ee=ve=re=null,X=E;do{var _e=X.lane&-536870913,Se=_e!==X.lane;if(Se?(Zt&_e)===_e:(y&_e)===_e){_e!==0&&_e===Ra&&(Qp=!0),Ee!==null&&(Ee=Ee.next={lane:0,tag:X.tag,payload:X.payload,callback:null,next:null});e:{var Qe=s,pt=X;_e=l;var Tn=f;switch(pt.tag){case 1:if(Qe=pt.payload,typeof Qe=="function"){Ae=Qe.call(Tn,Ae,_e);break e}Ae=Qe;break e;case 3:Qe.flags=Qe.flags&-65537|128;case 0:if(Qe=pt.payload,_e=typeof Qe=="function"?Qe.call(Tn,Ae,_e):Qe,_e==null)break e;Ae=p({},Ae,_e);break e;case 2:eo=!0}}_e=X.callback,_e!==null&&(s.flags|=64,Se&&(s.flags|=8192),Se=_.callbacks,Se===null?_.callbacks=[_e]:Se.push(_e))}else Se={lane:_e,tag:X.tag,payload:X.payload,callback:X.callback,next:null},Ee===null?(ve=Ee=Se,re=Ae):Ee=Ee.next=Se,H|=_e;if(X=X.next,X===null){if(X=_.shared.pending,X===null)break;Se=X,X=Se.next,Se.next=null,_.lastBaseUpdate=Se,_.shared.pending=null}}while(!0);Ee===null&&(re=Ae),_.baseState=re,_.firstBaseUpdate=ve,_.lastBaseUpdate=Ee,E===null&&(_.shared.lanes=0),ao|=H,s.lanes=H,s.memoizedState=Ae}}function t_(s,l){if(typeof s!="function")throw Error(i(191,s));s.call(l)}function n_(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sE?E:8;var H=V.T,X={};V.T=X,yh(s,!1,l,f);try{var re=_(),ve=V.S;if(ve!==null&&ve(X,re),re!==null&&typeof re=="object"&&typeof re.then=="function"){var Ee=KA(re,y);yc(s,l,Ee,lr(s))}else yc(s,l,y,lr(s))}catch(Ae){yc(s,l,{then:function(){},status:"rejected",reason:Ae},lr())}finally{Y.p=E,H!==null&&X.types!==null&&(H.types=X.types),V.T=H}}function nM(){}function hh(s,l,f,y){if(s.tag!==5)throw Error(i(476));var _=D_(s).queue;M_(s,_,l,U,f===null?nM:function(){return O_(s),f(y)})}function D_(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ws,lastRenderedState:U},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ws,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function O_(s){var l=D_(s);l.next===null&&(l=s.alternate.memoizedState),yc(s,l.next.queue,{},lr())}function gh(){return Ei(Dc)}function L_(){return ni().memoizedState}function z_(){return ni().memoizedState}function iM(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=lr();s=to(f);var y=no(l,s,f);y!==null&&(Xi(y,l,f),fc(y,l,f)),l={cache:qp()},s.payload=l;return}l=l.return}}function rM(s,l,f){var y=lr();f={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},Nd(s)?B_(l,f):(f=Dp(s,l,f,y),f!==null&&(Xi(f,s,y),$_(f,l,y)))}function P_(s,l,f){var y=lr();yc(s,l,f,y)}function yc(s,l,f,y){var _={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(Nd(s))B_(l,_);else{var E=s.alternate;if(s.lanes===0&&(E===null||E.lanes===0)&&(E=l.lastRenderedReducer,E!==null))try{var H=l.lastRenderedState,X=E(H,f);if(_.hasEagerState=!0,_.eagerState=X,nr(X,H))return ld(s,l,_,0),An===null&&ad(),!1}catch{}if(f=Dp(s,l,_,y),f!==null)return Xi(f,s,y),$_(f,l,y),!0}return!1}function yh(s,l,f,y){if(y={lane:2,revertLane:Xh(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},Nd(s)){if(l)throw Error(i(479))}else l=Dp(s,f,y,2),l!==null&&Xi(l,s,2)}function Nd(s){var l=s.alternate;return s===Rt||l!==null&&l===Rt}function B_(s,l){La=_d=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function $_(s,l,f){if((f&4194048)!==0){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Rn(s,f)}}var xc={readContext:Ei,use:wd,useCallback:Zn,useContext:Zn,useEffect:Zn,useImperativeHandle:Zn,useLayoutEffect:Zn,useInsertionEffect:Zn,useMemo:Zn,useReducer:Zn,useRef:Zn,useState:Zn,useDebugValue:Zn,useDeferredValue:Zn,useTransition:Zn,useSyncExternalStore:Zn,useId:Zn,useHostTransitionStatus:Zn,useFormState:Zn,useActionState:Zn,useOptimistic:Zn,useMemoCache:Zn,useCacheRefresh:Zn};xc.useEffectEvent=Zn;var H_={readContext:Ei,use:wd,useCallback:function(s,l){return Pi().memoizedState=[s,l===void 0?null:l],s},useContext:Ei,useEffect:w_,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,jd(4194308,4,N_.bind(null,l,s),f)},useLayoutEffect:function(s,l){return jd(4194308,4,s,l)},useInsertionEffect:function(s,l){jd(4,2,s,l)},useMemo:function(s,l){var f=Pi();l=l===void 0?null:l;var y=s();if(Yo){Je(!0);try{s()}finally{Je(!1)}}return f.memoizedState=[y,l],y},useReducer:function(s,l,f){var y=Pi();if(f!==void 0){var _=f(l);if(Yo){Je(!0);try{f(l)}finally{Je(!1)}}}else _=l;return y.memoizedState=y.baseState=_,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:_},y.queue=s,s=s.dispatch=rM.bind(null,Rt,s),[y.memoizedState,s]},useRef:function(s){var l=Pi();return s={current:s},l.memoizedState=s},useState:function(s){s=uh(s);var l=s.queue,f=P_.bind(null,Rt,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:mh,useDeferredValue:function(s,l){var f=Pi();return ph(f,s,l)},useTransition:function(){var s=uh(!1);return s=M_.bind(null,Rt,s.queue,!0,!1),Pi().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var y=Rt,_=Pi();if(tn){if(f===void 0)throw Error(i(407));f=f()}else{if(f=l(),An===null)throw Error(i(349));(Zt&127)!==0||l_(y,l,f)}_.memoizedState=f;var E={value:f,getSnapshot:l};return _.queue=E,w_(u_.bind(null,y,E,s),[s]),y.flags|=2048,Pa(9,{destroy:void 0},c_.bind(null,y,E,f,l),null),f},useId:function(){var s=Pi(),l=An.identifierPrefix;if(tn){var f=ts,y=es;f=(y&~(1<<32-Ke(y)-1)).toString(32)+f,l="_"+l+"R_"+f,f=kd++,0<\/script>",E=E.removeChild(E.firstChild);break;case"select":E=typeof y.is=="string"?H.createElement("select",{is:y.is}):H.createElement("select"),y.multiple?E.multiple=!0:y.size&&(E.size=y.size);break;default:E=typeof y.is=="string"?H.createElement(_,{is:y.is}):H.createElement(_)}}E[Dt]=l,E[un]=y;e:for(H=l.child;H!==null;){if(H.tag===5||H.tag===6)E.appendChild(H.stateNode);else if(H.tag!==4&&H.tag!==27&&H.child!==null){H.child.return=H,H=H.child;continue}if(H===l)break e;for(;H.sibling===null;){if(H.return===null||H.return===l)break e;H=H.return}H.sibling.return=H.return,H=H.sibling}l.stateNode=E;e:switch(Ii(E,_,y),_){case"button":case"input":case"select":case"textarea":y=!!y.autoFocus;break e;case"img":y=!0;break e;default:y=!1}y&&js(l)}}return $n(l),Rh(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==y&&js(l);else{if(typeof y!="string"&&l.stateNode===null)throw Error(i(166));if(s=ee.current,Ia(l)){if(s=l.stateNode,f=l.memoizedProps,y=null,_=ji,_!==null)switch(_.tag){case 27:case 5:y=_.memoizedProps}s[Dt]=l,s=!!(s.nodeValue===f||y!==null&&y.suppressHydrationWarning===!0||ok(s.nodeValue,f)),s||Qs(l,!0)}else s=Yd(s).createTextNode(y),s[Dt]=l,l.stateNode=s}return $n(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(y=Ia(l),f!==null){if(s===null){if(!y)throw Error(i(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(i(557));s[Dt]=l}else Ho(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;$n(l),s=!1}else f=Hp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?(sr(l),l):(sr(l),null);if((l.flags&128)!==0)throw Error(i(558))}return $n(l),null;case 13:if(y=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(_=Ia(l),y!==null&&y.dehydrated!==null){if(s===null){if(!_)throw Error(i(318));if(_=l.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(i(317));_[Dt]=l}else Ho(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;$n(l),_=!1}else _=Hp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=_),_=!0;if(!_)return l.flags&256?(sr(l),l):(sr(l),null)}return sr(l),(l.flags&128)!==0?(l.lanes=f,l):(f=y!==null,s=s!==null&&s.memoizedState!==null,f&&(y=l.child,_=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(_=y.alternate.memoizedState.cachePool.pool),E=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(E=y.memoizedState.cachePool.pool),E!==_&&(y.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),Md(l,l.updateQueue),$n(l),null);case 4:return le(),s===null&&Jh(l.stateNode.containerInfo),$n(l),null;case 10:return ks(l.type),$n(l),null;case 19:if(J(ti),y=l.memoizedState,y===null)return $n(l),null;if(_=(l.flags&128)!==0,E=y.rendering,E===null)if(_)bc(y,!1);else{if(Qn!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(E=bd(s),E!==null){for(l.flags|=128,bc(y,!1),s=E.updateQueue,l.updateQueue=s,Md(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)Pb(f,s),f=f.sibling;return D(ti,ti.current&1|2),tn&&bs(l,y.treeForkCount),l.child}s=s.sibling}y.tail!==null&&Ge()>Pd&&(l.flags|=128,_=!0,bc(y,!1),l.lanes=4194304)}else{if(!_)if(s=bd(E),s!==null){if(l.flags|=128,_=!0,s=s.updateQueue,l.updateQueue=s,Md(l,s),bc(y,!0),y.tail===null&&y.tailMode==="hidden"&&!E.alternate&&!tn)return $n(l),null}else 2*Ge()-y.renderingStartTime>Pd&&f!==536870912&&(l.flags|=128,_=!0,bc(y,!1),l.lanes=4194304);y.isBackwards?(E.sibling=l.child,l.child=E):(s=y.last,s!==null?s.sibling=E:l.child=E,y.last=E)}return y.tail!==null?(s=y.tail,y.rendering=s,y.tail=s.sibling,y.renderingStartTime=Ge(),s.sibling=null,f=ti.current,D(ti,_?f&1|2:f&1),tn&&bs(l,y.treeForkCount),s):($n(l),null);case 22:case 23:return sr(l),eh(),y=l.memoizedState!==null,s!==null?s.memoizedState!==null!==y&&(l.flags|=8192):y&&(l.flags|=8192),y?(f&536870912)!==0&&(l.flags&128)===0&&($n(l),l.subtreeFlags&6&&(l.flags|=8192)):$n(l),f=l.updateQueue,f!==null&&Md(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),y=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(y=l.memoizedState.cachePool.pool),y!==f&&(l.flags|=2048),s!==null&&J(Uo),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),ks(ai),$n(l),null;case 25:return null;case 30:return null}throw Error(i(156,l.tag))}function cM(s,l){switch(Bp(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return ks(ai),le(),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return Ie(l),null;case 31:if(l.memoizedState!==null){if(sr(l),l.alternate===null)throw Error(i(340));Ho()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if(sr(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(i(340));Ho()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return J(ti),null;case 4:return le(),null;case 10:return ks(l.type),null;case 22:case 23:return sr(l),eh(),s!==null&&J(Uo),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return ks(ai),null;case 25:return null;default:return null}}function d1(s,l){switch(Bp(l),l.tag){case 3:ks(ai),le();break;case 26:case 27:case 5:Ie(l);break;case 4:le();break;case 31:l.memoizedState!==null&&sr(l);break;case 13:sr(l);break;case 19:J(ti);break;case 10:ks(l.type);break;case 22:case 23:sr(l),eh(),s!==null&&J(Uo);break;case 24:ks(ai)}}function _c(s,l){try{var f=l.updateQueue,y=f!==null?f.lastEffect:null;if(y!==null){var _=y.next;f=_;do{if((f.tag&s)===s){y=void 0;var E=f.create,H=f.inst;y=E(),H.destroy=y}f=f.next}while(f!==_)}}catch(X){jn(l,l.return,X)}}function so(s,l,f){try{var y=l.updateQueue,_=y!==null?y.lastEffect:null;if(_!==null){var E=_.next;y=E;do{if((y.tag&s)===s){var H=y.inst,X=H.destroy;if(X!==void 0){H.destroy=void 0,_=l;var re=f,ve=X;try{ve()}catch(Ee){jn(_,re,Ee)}}}y=y.next}while(y!==E)}}catch(Ee){jn(l,l.return,Ee)}}function f1(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{n_(l,f)}catch(y){jn(s,s.return,y)}}}function m1(s,l,f){f.props=Xo(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(y){jn(s,l,y)}}function kc(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var y=s.stateNode;break;case 30:y=s.stateNode;break;default:y=s.stateNode}typeof f=="function"?s.refCleanup=f(y):f.current=y}}catch(_){jn(s,l,_)}}function ns(s,l){var f=s.ref,y=s.refCleanup;if(f!==null)if(typeof y=="function")try{y()}catch(_){jn(s,l,_)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f=="function")try{f(null)}catch(_){jn(s,l,_)}else f.current=null}function p1(s){var l=s.type,f=s.memoizedProps,y=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&y.focus();break e;case"img":f.src?y.src=f.src:f.srcSet&&(y.srcset=f.srcSet)}}catch(_){jn(s,s.return,_)}}function Ah(s,l,f){try{var y=s.stateNode;RM(y,s.type,f,l),y[un]=l}catch(_){jn(s,s.return,_)}}function h1(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&mo(s.type)||s.tag===4}function Mh(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||h1(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&mo(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Dh(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?(f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f).insertBefore(s,l):(l=f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f,l.appendChild(s),f=f._reactRootContainer,f!=null||l.onclick!==null||(l.onclick=Vi));else if(y!==4&&(y===27&&mo(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(Dh(s,l,f),s=s.sibling;s!==null;)Dh(s,l,f),s=s.sibling}function Dd(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(y!==4&&(y===27&&mo(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(Dd(s,l,f),s=s.sibling;s!==null;)Dd(s,l,f),s=s.sibling}function g1(s){var l=s.stateNode,f=s.memoizedProps;try{for(var y=s.type,_=l.attributes;_.length;)l.removeAttributeNode(_[0]);Ii(l,y,f),l[Dt]=s,l[un]=f}catch(E){jn(s,s.return,E)}}var Es=!1,ui=!1,Oh=!1,y1=typeof WeakSet=="function"?WeakSet:Set,_i=null;function uM(s,l){if(s=s.containerInfo,ng=tf,s=Ib(s),Np(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var y=f.getSelection&&f.getSelection();if(y&&y.rangeCount!==0){f=y.anchorNode;var _=y.anchorOffset,E=y.focusNode;y=y.focusOffset;try{f.nodeType,E.nodeType}catch{f=null;break e}var H=0,X=-1,re=-1,ve=0,Ee=0,Ae=s,_e=null;t:for(;;){for(var Se;Ae!==f||_!==0&&Ae.nodeType!==3||(X=H+_),Ae!==E||y!==0&&Ae.nodeType!==3||(re=H+y),Ae.nodeType===3&&(H+=Ae.nodeValue.length),(Se=Ae.firstChild)!==null;)_e=Ae,Ae=Se;for(;;){if(Ae===s)break t;if(_e===f&&++ve===_&&(X=H),_e===E&&++Ee===y&&(re=H),(Se=Ae.nextSibling)!==null)break;Ae=_e,_e=Ae.parentNode}Ae=Se}f=X===-1||re===-1?null:{start:X,end:re}}else f=null}f=f||{start:0,end:0}}else f=null;for(ig={focusedElem:s,selectionRange:f},tf=!1,_i=l;_i!==null;)if(l=_i,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,_i=s;else for(;_i!==null;){switch(l=_i,E=l.alternate,s=l.flags,l.tag){case 0:if((s&4)!==0&&(s=l.updateQueue,s=s!==null?s.events:null,s!==null))for(f=0;f title"))),Ii(E,y,f),E[Dt]=s,qt(E),y=E;break e;case"link":var H=Sk("link","href",_).get(y+(f.href||""));if(H){for(var X=0;XTn&&(H=Tn,Tn=pt,pt=H);var fe=Eb(X,pt),ae=Eb(X,Tn);if(fe&&ae&&(Se.rangeCount!==1||Se.anchorNode!==fe.node||Se.anchorOffset!==fe.offset||Se.focusNode!==ae.node||Se.focusOffset!==ae.offset)){var ye=Ae.createRange();ye.setStart(fe.node,fe.offset),Se.removeAllRanges(),pt>Tn?(Se.addRange(ye),Se.extend(ae.node,ae.offset)):(ye.setEnd(ae.node,ae.offset),Se.addRange(ye))}}}}for(Ae=[],Se=X;Se=Se.parentNode;)Se.nodeType===1&&Ae.push({element:Se,left:Se.scrollLeft,top:Se.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;Xf?32:f,V.T=null,f=Fh,Fh=null;var E=co,H=As;if(gi=0,Va=co=null,As=0,(gn&6)!==0)throw Error(i(331));var X=gn;if(gn|=4,N1(E.current),C1(E,E.current,H,f),gn=X,Nc(0,!1),ke&&typeof ke.onPostCommitFiberRoot=="function")try{ke.onPostCommitFiberRoot(dt,E)}catch{}return!0}finally{Y.p=_,V.T=y,G1(s,l)}}function Y1(s,l,f){l=br(f,l),l=_h(s.stateNode,l,2),s=no(s,l,2),s!==null&&(dn(s,2),is(s))}function jn(s,l,f){if(s.tag===3)Y1(s,s,f);else for(;l!==null;){if(l.tag===3){Y1(l,s,f);break}else if(l.tag===1){var y=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(lo===null||!lo.has(y))){s=br(f,s),f=X_(2),y=no(l,f,2),y!==null&&(K_(f,y,l,s),dn(y,2),is(y));break}}l=l.return}}function Gh(s,l,f){var y=s.pingCache;if(y===null){y=s.pingCache=new mM;var _=new Set;y.set(l,_)}else _=y.get(l),_===void 0&&(_=new Set,y.set(l,_));_.has(f)||(Ph=!0,_.add(f),s=xM.bind(null,s,l,f),l.then(s,s))}function xM(s,l,f){var y=s.pingCache;y!==null&&y.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,An===s&&(Zt&f)===f&&(Qn===4||Qn===3&&(Zt&62914560)===Zt&&300>Ge()-zd?(gn&2)===0&&Ua(s,0):Bh|=f,Fa===Zt&&(Fa=0)),is(s)}function X1(s,l){l===0&&(l=Et()),s=Bo(s,l),s!==null&&(dn(s,l),is(s))}function vM(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),X1(s,f)}function bM(s,l){var f=0;switch(s.tag){case 31:case 13:var y=s.stateNode,_=s.memoizedState;_!==null&&(f=_.retryLane);break;case 19:y=s.stateNode;break;case 22:y=s.stateNode._retryCache;break;default:throw Error(i(314))}y!==null&&y.delete(l),X1(s,f)}function _M(s,l){return Bt(s,l)}var Ud=null,Ga=null,Wh=!1,qd=!1,Yh=!1,fo=0;function is(s){s!==Ga&&s.next===null&&(Ga===null?Ud=Ga=s:Ga=Ga.next=s),qd=!0,Wh||(Wh=!0,SM())}function Nc(s,l){if(!Yh&&qd){Yh=!0;do for(var f=!1,y=Ud;y!==null;){if(s!==0){var _=y.pendingLanes;if(_===0)var E=0;else{var H=y.suspendedLanes,X=y.pingedLanes;E=(1<<31-Ke(42|s)+1)-1,E&=_&~(H&~X),E=E&201326741?E&201326741|1:E?E|2:0}E!==0&&(f=!0,J1(y,E))}else E=Zt,E=Tt(y,y===An?E:0,y.cancelPendingCommit!==null||y.timeoutHandle!==-1),(E&3)===0||$t(y,E)||(f=!0,J1(y,E));y=y.next}while(f);Yh=!1}}function kM(){K1()}function K1(){qd=Wh=!1;var s=0;fo!==0&&MM()&&(s=fo);for(var l=Ge(),f=null,y=Ud;y!==null;){var _=y.next,E=Z1(y,l);E===0?(y.next=null,f===null?Ud=_:f.next=_,_===null&&(Ga=f)):(f=y,(s!==0||(E&3)!==0)&&(qd=!0)),y=_}gi!==0&&gi!==5||Nc(s),fo!==0&&(fo=0)}function Z1(s,l){for(var f=s.suspendedLanes,y=s.pingedLanes,_=s.expirationTimes,E=s.pendingLanes&-62914561;0X)break;var Ee=re.transferSize,Ae=re.initiatorType;Ee&&ak(Ae)&&(re=re.responseEnd,H+=Ee*(re"u"?null:document;function vk(s,l,f){var y=Wa;if(y&&typeof l=="string"&&l){var _=Ot(l);_='link[rel="'+s+'"][href="'+_+'"]',typeof f=="string"&&(_+='[crossorigin="'+f+'"]'),xk.has(_)||(xk.add(_),s={rel:s,crossOrigin:f,href:l},y.querySelector(_)===null&&(l=y.createElement("link"),Ii(l,"link",s),qt(l),y.head.appendChild(l)))}}function FM(s){Ms.D(s),vk("dns-prefetch",s,null)}function VM(s,l){Ms.C(s,l),vk("preconnect",s,l)}function UM(s,l,f){Ms.L(s,l,f);var y=Wa;if(y&&s&&l){var _='link[rel="preload"][as="'+Ot(l)+'"]';l==="image"&&f&&f.imageSrcSet?(_+='[imagesrcset="'+Ot(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(_+='[imagesizes="'+Ot(f.imageSizes)+'"]')):_+='[href="'+Ot(s)+'"]';var E=_;switch(l){case"style":E=Ya(s);break;case"script":E=Xa(s)}jr.has(E)||(s=p({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),jr.set(E,s),y.querySelector(_)!==null||l==="style"&&y.querySelector(Ac(E))||l==="script"&&y.querySelector(Mc(E))||(l=y.createElement("link"),Ii(l,"link",s),qt(l),y.head.appendChild(l)))}}function qM(s,l){Ms.m(s,l);var f=Wa;if(f&&s){var y=l&&typeof l.as=="string"?l.as:"script",_='link[rel="modulepreload"][as="'+Ot(y)+'"][href="'+Ot(s)+'"]',E=_;switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":E=Xa(s)}if(!jr.has(E)&&(s=p({rel:"modulepreload",href:s},l),jr.set(E,s),f.querySelector(_)===null)){switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(Mc(E)))return}y=f.createElement("link"),Ii(y,"link",s),qt(y),f.head.appendChild(y)}}}function GM(s,l,f){Ms.S(s,l,f);var y=Wa;if(y&&s){var _=hn(y).hoistableStyles,E=Ya(s);l=l||"default";var H=_.get(E);if(!H){var X={loading:0,preload:null};if(H=y.querySelector(Ac(E)))X.loading=5;else{s=p({rel:"stylesheet",href:s,"data-precedence":l},f),(f=jr.get(E))&&ug(s,f);var re=H=y.createElement("link");qt(re),Ii(re,"link",s),re._p=new Promise(function(ve,Ee){re.onload=ve,re.onerror=Ee}),re.addEventListener("load",function(){X.loading|=1}),re.addEventListener("error",function(){X.loading|=2}),X.loading|=4,Kd(H,l,y)}H={type:"stylesheet",instance:H,count:1,state:X},_.set(E,H)}}}function WM(s,l){Ms.X(s,l);var f=Wa;if(f&&s){var y=hn(f).hoistableScripts,_=Xa(s),E=y.get(_);E||(E=f.querySelector(Mc(_)),E||(s=p({src:s,async:!0},l),(l=jr.get(_))&&dg(s,l),E=f.createElement("script"),qt(E),Ii(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function YM(s,l){Ms.M(s,l);var f=Wa;if(f&&s){var y=hn(f).hoistableScripts,_=Xa(s),E=y.get(_);E||(E=f.querySelector(Mc(_)),E||(s=p({src:s,async:!0,type:"module"},l),(l=jr.get(_))&&dg(s,l),E=f.createElement("script"),qt(E),Ii(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function bk(s,l,f,y){var _=(_=ee.current)?Xd(_):null;if(!_)throw Error(i(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=Ya(f.href),f=hn(_).hoistableStyles,y=f.get(l),y||(y={type:"style",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=Ya(f.href);var E=hn(_).hoistableStyles,H=E.get(s);if(H||(_=_.ownerDocument||_,H={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},E.set(s,H),(E=_.querySelector(Ac(s)))&&!E._p&&(H.instance=E,H.state.loading=5),jr.has(s)||(f={rel:"preload",as:"style",href:f.href,crossOrigin:f.crossOrigin,integrity:f.integrity,media:f.media,hrefLang:f.hrefLang,referrerPolicy:f.referrerPolicy},jr.set(s,f),E||XM(_,s,f,H.state))),l&&y===null)throw Error(i(528,""));return H}if(l&&y!==null)throw Error(i(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Xa(f),f=hn(_).hoistableScripts,y=f.get(l),y||(y={type:"script",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,s))}}function Ya(s){return'href="'+Ot(s)+'"'}function Ac(s){return'link[rel="stylesheet"]['+s+"]"}function _k(s){return p({},s,{"data-precedence":s.precedence,precedence:null})}function XM(s,l,f,y){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?y.loading=1:(l=s.createElement("link"),y.preload=l,l.addEventListener("load",function(){return y.loading|=1}),l.addEventListener("error",function(){return y.loading|=2}),Ii(l,"link",f),qt(l),s.head.appendChild(l))}function Xa(s){return'[src="'+Ot(s)+'"]'}function Mc(s){return"script[async]"+s}function kk(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var y=s.querySelector('style[data-href~="'+Ot(f.href)+'"]');if(y)return l.instance=y,qt(y),y;var _=p({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return y=(s.ownerDocument||s).createElement("style"),qt(y),Ii(y,"style",_),Kd(y,f.precedence,s),l.instance=y;case"stylesheet":_=Ya(f.href);var E=s.querySelector(Ac(_));if(E)return l.state.loading|=4,l.instance=E,qt(E),E;y=_k(f),(_=jr.get(_))&&ug(y,_),E=(s.ownerDocument||s).createElement("link"),qt(E);var H=E;return H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Ii(E,"link",y),l.state.loading|=4,Kd(E,f.precedence,s),l.instance=E;case"script":return E=Xa(f.src),(_=s.querySelector(Mc(E)))?(l.instance=_,qt(_),_):(y=f,(_=jr.get(E))&&(y=p({},f),dg(y,_)),s=s.ownerDocument||s,_=s.createElement("script"),qt(_),Ii(_,"link",y),s.head.appendChild(_),l.instance=_);case"void":return null;default:throw Error(i(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(y=l.instance,l.state.loading|=4,Kd(y,f.precedence,s));return l.instance}function Kd(s,l,f){for(var y=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),_=y.length?y[y.length-1]:null,E=_,H=0;H title"):null)}function KM(s,l,f){if(f===1||l.itemProp!=null)return!1;switch(s){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;return l.rel==="stylesheet"?(s=l.disabled,typeof l.precedence=="string"&&s==null):!0;case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Ck(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function ZM(s,l,f,y){if(f.type==="stylesheet"&&(typeof y.media!="string"||matchMedia(y.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var _=Ya(y.href),E=l.querySelector(Ac(_));if(E){l=E._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Qd.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=E,qt(E);return}E=l.ownerDocument||l,y=_k(y),(_=jr.get(_))&&ug(y,_),E=E.createElement("link"),qt(E);var H=E;H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Ii(E,"link",y),f.instance=E}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Qd.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var fg=0;function QM(s,l){return s.stylesheets&&s.count===0&&ef(s,s.stylesheets),0fg?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(y),clearTimeout(_)}}:null}function Qd(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ef(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Jd=null;function ef(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Jd=new Map,l.forEach(JM,s),Jd=null,Qd.call(s))}function JM(s,l){if(!(l.state.loading&4)){var f=Jd.get(s);if(f)var y=f.get(null);else{f=new Map,Jd.set(s,f);for(var _=s.querySelectorAll("link[data-precedence],style[data-precedence]"),E=0;E<_.length;E++){var H=_[E];(H.nodeName==="LINK"||H.getAttribute("media")!=="not all")&&(f.set(H.dataset.precedence,H),y=H)}y&&f.set(null,y)}_=l.instance,H=_.getAttribute("data-precedence"),E=f.get(H)||y,E===y&&f.set(null,_),f.set(H,_),this.count++,y=Qd.bind(this),_.addEventListener("load",y),_.addEventListener("error",y),E?E.parentNode.insertBefore(_,E.nextSibling):(s=s.nodeType===9?s.head:s,s.insertBefore(_,s.firstChild)),l.state.loading|=4}}var Dc={$$typeof:j,Provider:null,Consumer:null,_currentValue:U,_currentValue2:U,_threadCount:0};function e3(s,l,f,y,_,E,H,X,re){this.tag=1,this.containerInfo=s,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Xn(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xn(0),this.hiddenUpdates=Xn(null),this.identifierPrefix=y,this.onUncaughtError=_,this.onCaughtError=E,this.onRecoverableError=H,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=re,this.incompleteTransitions=new Map}function jk(s,l,f,y,_,E,H,X,re,ve,Ee,Ae){return s=new e3(s,l,f,H,re,ve,Ee,Ae,X),l=1,E===!0&&(l|=24),E=ir(3,null,null,l),s.current=E,E.stateNode=s,l=qp(),l.refCount++,s.pooledCache=l,l.refCount++,E.memoizedState={element:y,isDehydrated:f,cache:l},Xp(E),s}function Ek(s){return s?(s=ja,s):ja}function Nk(s,l,f,y,_,E){_=Ek(_),y.context===null?y.context=_:y.pendingContext=_,y=to(l),y.payload={element:f},E=E===void 0?null:E,E!==null&&(y.callback=E),f=no(s,y,l),f!==null&&(Xi(f,s,l),fc(f,s,l))}function Ik(s,l){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var f=s.retryLane;s.retryLane=f!==0&&f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),_g.exports=h3(),_g.exports}var y3=g3();const x3=2e3,v3=3e4,b3=20,Xk=100,_3=3e4,k3=1e4,S3=new Set(["collab_sync","kanban_create_board","kanban_create_task","kanban_update_task","kanban_move_task","kanban_delete_board","kanban_delete_task","kanban_assign","kanban_status","kanban_switch_view","run_task","create_session","session_send","interaction_reply","session_update_config","session_delete","session_detail","session_stop","session_resume","session_complete","session_update_title","secretary_send","project_index","comms_state","comms_read_message"]),w3=3e4,C3=3e4;class j3{constructor(t,n){this.url=t,this.handlers=n,this.ws=null,this.reconnectTimer=null,this.closedByUser=!1,this.reconnectAttempt=0,this.pendingQueue=[],this.heartbeatTimer=null,this.pongTimer=null,this.pendingSessionDetailRequests=[],this.pendingInteractionReplies=new Map}updateUrl(t){this.url=t}connect(){this.closedByUser=!1,this.handlers.onStatus?.("connecting"),this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempt=0,this.handlers.onStatus?.("connected"),this.flushPendingQueue(),this.startHeartbeat()},this.ws.onmessage=t=>{this.handleMessage(t.data)},this.ws.onerror=()=>{this.handlers.onStatus?.("error","WebSocket error")},this.ws.onclose=()=>{this.stopHeartbeat(),this.failPendingSessionDetailRequests("connection_closed"),this.requeuePendingInteractionReplies(),this.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.failPendingSessionDetailRequests("disconnected"),this.failPendingInteractionReplies("disconnected"),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null);const t=this.ws;this.ws=null,t&&(t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null,t.close())}send(t){if(!this.ensureProjectScope(t))return"send-failed";const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return this.pendingQueue.length{const u=this.pendingInteractionReplies.get(n.clientRequestId);u&&(clearTimeout(u.timeout),u.resolve({ok:!1,accepted:!1,error:"duplicate_request_in_flight",checkpoint_id:n.checkpointId,checkpoint_type:n.checkpointType,client_request_id:n.clientRequestId}));const d=setTimeout(()=>{const h=this.pendingInteractionReplies.get(n.clientRequestId);if(!h)return;this.pendingInteractionReplies.delete(n.clientRequestId);const p=this.pendingQueue.indexOf(h.wireData);p>=0&&this.pendingQueue.splice(p,1),h.resolve({ok:!1,accepted:!1,error:"request_timeout",checkpoint_id:n.checkpointId,checkpoint_type:n.checkpointType,client_request_id:n.clientRequestId})},C3);this.pendingInteractionReplies.set(n.clientRequestId,{wireData:o,timeout:d,resolve:a});const m=this.send(r);(m==="queue-full"||m==="send-failed")&&this.failInteractionReply(n.clientRequestId,m==="queue-full"?"send_queue_full":"send_failed")})}deleteSession(t,n){const i=this.requireProjectId(t,"session_delete");this.send({type:"session_delete",project_id:i,task_id:n})}sessionUpdateTitle(t,n,i){const r=this.requireProjectId(t,"session_update_title");this.send({type:"session_update_title",project_id:r,task_id:n,title:i})}sessionUpdateConfig(t,n,i,r,o,a){const u=this.requireProjectId(t,"session_update_config");this.send({type:"session_update_config",project_id:u,task_id:n,exec_mode:i,company_profile:r,preferred_agent:o,org_id:a})}sessionStop(t,n){const i=this.requireProjectId(t,"session_stop");this.send({type:"session_stop",project_id:i,task_id:n})}sessionResume(t,n,i,r,o){const a=this.requireProjectId(t,"session_resume");this.send({type:"session_resume",project_id:a,task_id:n,runtime_session_id:i,checkpoint_id:r,content:o})}sessionComplete(t,n){const i=this.requireProjectId(t,"session_complete");this.send({type:"session_complete",project_id:i,task_id:n})}sessionDetail(t,n,i){const r=this.requireProjectId(t,"session_detail"),o=i?.detailLevel??"summary";return new Promise(a=>{const u={type:"session_detail",project_id:r,task_id:n,limit:i?.limit,before_created_at:i?.beforeCreatedAt,before_message_id:i?.beforeMessageId,detail_level:o,include:i?.include,view_generation:i?.viewGeneration},d=JSON.stringify(u),m={projectId:r,taskId:n,detailLevel:o,viewGeneration:i?.viewGeneration,historyPage:i?.beforeCreatedAt!==void 0||!!i?.beforeMessageId,wireData:d,queued:!1,settled:!1,timeout:null,resolve:a};m.timeout=setTimeout(()=>{const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.timeoutSessionDetailRequest(p)},w3),this.pendingSessionDetailRequests.push(m);const h=this.send(u);if(m.queued=h==="queued",h==="queue-full"||h==="send-failed"){const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.failSessionDetailRequest(p,h==="queue-full"?"send_queue_full":"send_failed")}})}secretarySend(t,n){const i=this.requireProjectId(t,"secretary_send");this.send({type:"secretary_send",project_id:i,content:n})}listProjects(){this.send({type:"list_projects"})}createProject(t){this.send({type:"create_project",project_id:this.normalizeProjectId(t)})}deleteProject(t){this.send({type:"delete_project",project_id:this.normalizeProjectId(t)})}switchProject(t,n){this.send({type:"switch_project",project_id:this.normalizeProjectId(t),switch_seq:n})}orgInfo(){this.send({type:"org_info"})}talentImport(t){this.send({type:"talent_import",repo_path:t})}talentList(){this.send({type:"talent_list"})}talentScanLocal(){this.send({type:"talent_scan_local"})}talentImportSelected(t){this.send({type:"talent_import_selected",template_ids:t})}talentHire(t,n,i,r){this.send({type:"talent_hire",template_id:t,role_id:n,employee_name:i,org_id:r})}employeeDetail(t){this.send({type:"employee_detail",employee_id:t})}reorgList(t){const n=this.requireProjectId(t,"reorg_list");this.send({type:"reorg_list",project_id:n})}importEmployeeAsAgent(t,n){this.send({type:"import_employee_as_agent",employee_id:t,office_id:n})}marketBrowse(){this.send({type:"market_browse"})}marketPreview(t){this.send({type:"market_preview",preset_id:t})}marketApplyPreset(t,n="namespace"){this.send({type:"market_apply_preset",preset_id:t,strategy:n})}marketListInstalled(){this.send({type:"market_list_installed"})}marketExport(t){this.send({type:"market_export",...t})}marketInstall(t,n="namespace"){this.send({type:"market_install",path:t,strategy:n})}marketUninstall(t){this.send({type:"market_uninstall",package_id:t})}addRole(t,n,i,r="owner",o){this.send({type:"add_role",role_id:t,name:n,responsibility:i,reports_to:r,icon:o||null})}bulkAddRoles(t){this.send({type:"bulk_add_roles",roles:t})}updateRole(t,n){this.send({type:"update_role",role_id:t,...n})}bindExternalTeam(t){this.send({type:"bind_external_team",external_agent:"jiuwenswarm",scope:"subtree",collapse_subtree:!0,provider_mode:"team",...t})}unbindExternalTeam(t){this.send({type:"unbind_external_team",...t})}deleteRole(t){this.send({type:"delete_role",role_id:t})}updateRuntimePolicy(t){this.send({type:"update_runtime_policy",policy:t})}updateOrgStrategy(t){this.send({type:"update_org_strategy",...t})}resetArchitecture(){this.send({type:"reset_architecture"})}orgConfigExport(){this.send({type:"org_config_export"})}orgConfigImport(t,n){this.send({type:"org_config_import",yaml:t,dry_run:n})}orgSavedList(){this.send({type:"org_saved_list"})}orgSavedSaveAs(t,n){this.send({type:"org_saved_save_as",name:t,overwrite:n})}orgSavedCreate(t,n){this.send({type:"org_saved_create",organization_name:t,members:n})}orgSavedLoad(t){this.send({type:"org_saved_load",name:t})}orgSavedDelete(t){this.send({type:"org_saved_delete",name:t})}commsState(t,n){const i=this.requireProjectId(t,"comms_state");this.send({type:"comms_state",project_id:i,...n||{}})}commsReadMessage(t,n,i){const r=this.requireProjectId(t,"comms_read_message");this.send({type:"comms_read_message",project_id:r,task_id:String(i?.task_id??""),path:n})}getLlmConfig(){this.send({type:"get_llm_config"})}updateLlmConfig(t){this.send({type:"update_llm_config",payload:t})}normalizeProjectId(t){return typeof t=="string"?t.trim():""}requireProjectId(t,n){const i=this.normalizeProjectId(t);if(!i)throw new Error(`${n} requires non-empty project_id`);return i}ensureProjectScope(t){const n=typeof t.type=="string"?t.type:"";if(!S3.has(n))return!0;const i=this.normalizeProjectId(t.project_id??t.projectId);if(!i){const r=`${n} requires non-empty project_id`;return console.error(`[wsClient] ${r}`,t),this.handlers.onAck?.({ok:!1,error:r,action:n}),!1}return t.project_id=i,!0}handleMessage(t){if(typeof t!="string")return;let n=null;try{n=JSON.parse(t)}catch{return}if(!(!n||typeof n!="object"||!("type"in n)))try{switch(n.type){case"snapshot":this.handlers.onSnapshot?.(n.payload);break;case"event":this.handlers.onEvent?.(n.payload);break;case"ack":{const i=this.settleSessionDetailRequest(n.payload),r=this.settleInteractionReply(i);this.handlers.onAck?.(r);break}case"channel_created":this.handlers.onChannelCreated?.(n.payload);break;case"board_task_created":case"board_task_moved":this.handlers.onBoardEvent?.(n.payload);break;case"board_task_status_changed":case"execution_mode_resolved":case"project_run_updated":case"seat_digest_updated":case"work_item_batch_updated":case"session_runtime_control":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"cross_office_collab":this.handlers.onCrossOfficeCollab?.(n.payload);break;case"chat_new_message":case"chat_channel_created":case"kanban_updated":case"kanban_board_created":case"collab_sync_push":case"project_index_push":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"agent_runtime_update":this.handlers.onAgentRuntimeUpdate?.(n.payload);break;case"runtime_status_sync":this.handlers.onRuntimeStatusSync?.(n.payload);break;case"worker_notification":this.handlers.onWorkerNotification?.(n.payload);break;case"session_progress":this.handlers.onSessionProgress?.(n.payload);break;case"work_item_progress":this.handlers.onWorkItemProgress?.(n.payload);break;case"kanban_view_data":this.handlers.onKanbanViewData?.(n.payload);break;case"session_created":this.handlers.onSessionCreated?.(n.payload);break;case"session_updated":this.handlers.onSessionUpdated?.(n.payload);break;case"session_message":this.handlers.onSessionMessage?.(n.payload);break;case"session_title_updated":this.handlers.onSessionTitleUpdated?.(n.payload);break;case"session_deleted":this.handlers.onSessionDeleted?.(n.payload);break;case"child_session_created":this.handlers.onChildSessionCreated?.(n.payload);break;case"project_switched":this.handlers.onProjectSwitched?.(n.payload);break;case"project_deleted":this.handlers.onProjectDeleted?.(n.payload);break;case"org_info":this.handlers.onOrgInfo?.(n.payload);break;case"comms_state":this.handlers.onCommsState?.(n.payload);break;case"get_llm_config":case"update_llm_config":this.handlers.onLlmConfig?.(n.payload);break;case"llm_config_updated":this.handlers.onLlmConfigUpdated?.(n.payload);break;case"comms_message":this.handlers.onCommsMessage?.(n.payload);break;case"comms_state_dirty":try{const i=typeof n.payload?.project_id=="string"?n.payload.project_id:"";i&&this.commsState(i)}catch{}break;case"talent_list":this.handlers.onTalentList?.(n.payload);break;case"talent_scan_local":this.handlers.onTalentScanLocal?.(n.payload);break;case"employee_detail":this.handlers.onEmployeeDetail?.(n.payload);break;case"reorg_list":this.handlers.onReorgList?.(n.payload);break;case"market_list_installed":this.handlers.onMarketListInstalled?.(n.payload);break;case"market_browse":this.handlers.onMarketBrowse?.(n.payload);break;case"market_preview":this.handlers.onMarketPreview?.(n.payload);break;case"org_config_export":this.handlers.onOrgConfigExport?.(n.payload);break;case"org_config_import":this.handlers.onOrgConfigImport?.(n.payload);break;case"org_saved_list":this.handlers.onOrgSavedList?.(n.payload);break;case"org_saved_save_as":this.handlers.onOrgSavedSaveAs?.(n.payload);break;case"org_saved_create":this.handlers.onOrgSavedCreate?.(n.payload);break;case"org_saved_load":this.handlers.onOrgSavedLoad?.(n.payload);break;case"org_saved_delete":this.handlers.onOrgSavedDelete?.(n.payload);break;case"pong":this.handlePong();break;default:break}}catch(i){console.error("[wsClient] Error handling message:",n.type,i)}}settleSessionDetailRequest(t){const n=typeof t.action=="string"?t.action.trim():"";if(!(n==="session_detail"||!n&&t.error==="store_not_ready"))return t;const r=this.normalizeProjectId(t.project_id??t.projectId),o=typeof t.task_id=="string"?t.task_id:"",a=t.detail_level==="full"?"full":t.detail_level==="summary"?"summary":"",u=typeof t.view_generation=="number"?t.view_generation:void 0,d=this.pendingSessionDetailRequests.findIndex(p=>(!r||p.projectId===r)&&(!o||p.taskId===o)&&(!a||p.detailLevel===a)&&(u===void 0||p.viewGeneration===u));if(d<0)return t;const[m]=this.pendingSessionDetailRequests.splice(d,1);m.timeout!==null&&clearTimeout(m.timeout);const h={...t,action:"session_detail",project_id:r||m.projectId,task_id:o||m.taskId,detail_level:a||m.detailLevel,client_history_page:m.historyPage};return m.settled||(m.settled=!0,m.resolve(h)),h}settleInteractionReply(t){if(String(t.action??"").trim()!=="interaction_reply")return t;const n=String(t.client_request_id??"").trim();if(!n)return t;const i=this.pendingInteractionReplies.get(n);if(!i)return t;this.pendingInteractionReplies.delete(n),clearTimeout(i.timeout);const r=this.pendingQueue.indexOf(i.wireData);return r>=0&&this.pendingQueue.splice(r,1),i.resolve({...t,ok:t.ok===!0,accepted:t.accepted===!0,checkpoint_id:String(t.checkpoint_id??""),checkpoint_type:String(t.checkpoint_type??""),client_request_id:n,error:typeof t.error=="string"?t.error:void 0,reason:typeof t.reason=="string"?t.reason:void 0,status:typeof t.status=="string"?t.status:void 0,deduplicated:t.deduplicated===!0}),t}failInteractionReply(t,n){const i=this.pendingInteractionReplies.get(t);if(!i)return;this.pendingInteractionReplies.delete(t),clearTimeout(i.timeout);const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1);let o="",a="";try{const u=JSON.parse(i.wireData);o=String(u.checkpoint_id??""),a=String(u.checkpoint_type??"")}catch{}i.resolve({ok:!1,accepted:!1,error:n,checkpoint_id:o,checkpoint_type:a,client_request_id:t})}failPendingInteractionReplies(t){for(const n of[...this.pendingInteractionReplies.keys()])this.failInteractionReply(n,t)}requeuePendingInteractionReplies(){for(const[t,n]of[...this.pendingInteractionReplies.entries()])if(!this.pendingQueue.includes(n.wireData)){if(this.pendingQueue.length>=Xk){this.failInteractionReply(t,"send_queue_full");continue}this.pendingQueue.push(n.wireData)}}timeoutSessionDetailRequest(t){const n=this.pendingSessionDetailRequests[t];if(n){if(n.queued){this.failSessionDetailRequest(t,"request_timeout");return}n.timeout!==null&&clearTimeout(n.timeout),n.timeout=null,n.settled||(n.settled=!0,n.resolve(this.sessionDetailFailurePayload(n,"request_timeout")))}}failSessionDetailRequest(t,n){const[i]=this.pendingSessionDetailRequests.splice(t,1);if(i){if(i.timeout!==null&&clearTimeout(i.timeout),i.queued){const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1)}i.settled||i.resolve(this.sessionDetailFailurePayload(i,n))}}sessionDetailFailurePayload(t,n){return{ok:!1,action:"session_detail",error:n,project_id:t.projectId,task_id:t.taskId,detail_level:t.detailLevel,client_history_page:t.historyPage}}failPendingSessionDetailRequests(t){for(;this.pendingSessionDetailRequests.length>0;)this.failSessionDetailRequest(0,t)}flushPendingQueue(){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return;const t=this.pendingQueue.splice(0);for(const n of t){const i=this.pendingSessionDetailRequests.findIndex(o=>o.queued&&o.wireData===n),r=[...this.pendingInteractionReplies.entries()].find(([,o])=>o.wireData===n)?.[0];try{this.ws.send(n),i>=0&&(this.pendingSessionDetailRequests[i].queued=!1)}catch{i>=0&&this.failSessionDetailRequest(i,"send_failed"),r&&this.failInteractionReply(r,"send_failed")}}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=window.setInterval(()=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},k3))},_3)}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}handlePong(){this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}scheduleReconnect(){if(this.reconnectTimer!==null)return;if(this.reconnectAttempt>=b3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(x3*Math.pow(2,this.reconnectAttempt),v3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var E3=l3();const Zi=ya(E3),R=32,Jn=20,fr=25,Zv=2,Kk=3,N3=Jn*Kk+Zv*(Kk-1),I3=fr,Cg=N3,$c=I3,au=R*8,ul=R*4,pl=R*20,fE=1.8,T3=fE,R3=fE,A3=30,M3=8,D3=-2,O3=.22,L3=5,z3=23;function P3(){if(typeof window>"u")return null;const e=o=>{const a=new URLSearchParams(o);return a.get("day")==="1"||a.get("daytime")==="1"?"day":a.get("night")==="1"?"night":null};let t=e(window.location.search||"");if(t)return t;const n=window.location.hash;if(!n)return null;const i=n.indexOf("?");if(i>=0&&(t=e(n.slice(i+1)),t))return t;const r=n.replace(/^#/,"");return r.includes("=")&&(t=e(r),t)?t:null}function lu(e=new Date){if(typeof window<"u")try{const n=P3();if(n==="day")return!0;if(n==="night")return!1;const i=window.localStorage?.getItem("opc_outdoor_override");if(i==="day")return!0;if(i==="night")return!1;if(window.localStorage?.getItem("opc_outdoor_day")==="1")return!0;if(window.localStorage?.getItem("opc_outdoor_night")==="1")return!1}catch{}const t=e.getHours();return t>=L3&&t<=z3}const Zk=11064556,Qk=3228986,B3=200,$3=100,H3=60,Lf=2,zf=20,mE=3,pE=6,Za=2.5,F3=8,V3=15,Jk=5,eS=10,U3=5,tS=3,nS=2;function q3(e,t,n){const i=t||e.clientWidth||window.innerWidth-380,r=n||e.clientHeight||window.innerHeight-48,o=lu()?"#a8d4ec":"#31453a";return{type:Zi.CANVAS,parent:e,width:i,height:r,pixelArt:!0,backgroundColor:o,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Zi.Scale.RESIZE,autoCenter:Zi.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const G3=16,W3=32,iS=6;class Y3 extends Zi.Scene{constructor(){super("Boot")}preload(){this.load.image("office-bg","assets/office-bg.png"),this.load.spritesheet("office-tileset-32","assets/office-tileset-32.png",{frameWidth:32,frameHeight:32});for(let n=0;n{t.clear(),t.fillStyle(4886745,1),t.fillRect(this.scale.width/2-100,this.scale.height/2-8,200*n,16)}),this.load.on("complete",()=>t.destroy())}create(){this.createCharacterAnimations(),console.log("[BootScene] All assets loaded"),this.scene.start("Office")}createCharacterAnimations(){const n=[{name:"down",row:0},{name:"up",row:1},{name:"right",row:2},{name:"left",row:2}];for(let i=0;i0)return t}}catch{}return gE()}function Dm(e){localStorage.setItem(hE,JSON.stringify(e))}function X3(e,t){const n=ei(),i=n.find(r=>r.id===e);i&&(i.name=t,Dm(n))}function jg(e,t){const n=ei();for(const r of n)r.assignedAgents=r.assignedAgents.filter(o=>o!==t);const i=n.find(r=>r.id===e);i&&i.assignedAgents.push(t),Dm(n)}function K3(e){const t=ei();for(const n of t)n.assignedAgents=n.assignedAgents.filter(i=>i!==e);Dm(t)}function Z3(e){return ei().find(t=>t.assignedAgents.includes(e))}function Q3(e,t,n){const i=ei(),r=i.find(o=>o.id===e);r&&(r.mapStr=t,r.seats=n,Dm(i))}function yE(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+Jn:Jn,n=[];for(let i=0;it.map(n=>n===0?".":"#").join(""))}function Mi(e,t,n,i,r=t+i){return{x:Math.round(e*R),y:Math.round(t*R),w:Math.round(n*R),h:Math.round(i*R),depthY:Math.round(r*R)}}const J3=[Mi(8,4,4.3,3.35,7.15),Mi(2.3,8.65,5.35,1.95,10.55),Mi(11.1,8.55,3.1,1.7,10.45),Mi(14.15,8.55,4.95,2,10.95),Mi(2.1,11.45,3.05,1.8,12.95),Mi(5.25,11.45,3.05,1.8,12.95),Mi(8.45,11.45,3.05,1.8,12.95),Mi(2.1,14.55,3.05,1.85,16.1),Mi(5.25,14.55,3.05,1.85,16.1),Mi(8.45,14.55,3.05,1.85,16.1),Mi(14,12.15,4.85,3,15.3),Mi(1,19.55,3.05,1.15,20.7),Mi(4.45,20.45,3.35,1.35,21.8),Mi(14.1,20.5,3.15,1.85,22.3),Mi(8.05,23.1,4.2,1,24.1),Mi(17,23.1,2.1,1,24.1)];class Kf{constructor(){this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null,this.tilesetFrames={shelfA:61,shelfB:62,waterCooler:105,waterCoolerAlt:106,fridge:108,vending:110,plantA:148,plantB:150,boxA:153,boxB:154,boxC:158}}clearSceneDecor(){for(const t of this.bgSprites)t.destroy();for(const t of this.foregroundSprites)t.destroy();for(const t of this.nameLabels)t.destroy();for(const t of this.decor)t.destroy();this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null}addForegroundOccluders(t,n){const i=n.offsetCol*R;for(const r of J3){const o=t.add.image(i,0,"office-bg");o.setOrigin(0,0),o.setCrop(r.x,r.y,r.w,r.h),o.setDepth(r.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,i,r,o,a="#f5efe3",u="10px"){const d=t.add.text(n,i,r,{fontSize:u,fontFamily:"monospace",color:a,backgroundColor:o,padding:{left:4,right:4,top:2,bottom:2},resolution:2,align:"center"});return d.setOrigin(.5,.5),d.setDepth(-94),this.decor.push(d),d}addTilesetSprite(t,n,i,r,o=1){const a=t.add.image(n,i,"office-tileset-32",r);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const i=n+R*10.1,r=R*4.1,o=i+r+R*.15,a=o+R*1.1;return{gateCenterX:t/2,roadY:i,roadHeight:r,waterTopY:o,dockY:a,bottomY:n+pl}}paintStylizedParkingCar(t,n,i,r,o,a){const u=o?{outline:1314840,body:14240338,bodyMid:13057092,bodyDark:9316914,cabin:14706798,cabinHi:15894668,cabinLo:11546684,glass:6062264,glassDeep:3824776,glassHi:12116220,tire:1842724,tireOuter:1184794,bonnetHi:15233140}:{outline:1053728,body:4095176,bodyMid:3105960,bodyDark:2377848,cabin:6068444,cabinHi:8303856,cabinLo:3434664,glass:4878240,glassDeep:3164264,glassHi:11065599,tire:1842724,tireOuter:1184794,bonnetHi:7121128},d=(x,v,b,S,w,k=1)=>{t.fillStyle(w,k);const j=r?-x-b:x;t.fillRect(Math.round(n+j),Math.round(i+v),b,S)};t.fillStyle(988175,.28),t.fillEllipse(n,i+36,36,9),d(-16,-38,32,76,u.outline),d(-15,-37,30,74,u.body),d(-14,2,28,35,u.bodyDark),d(-14,-4,28,10,u.bodyMid),d(-13,8,26,22,u.body),d(-13,8,26,7,u.bonnetHi,.92),d(-13,-35,26,32,u.cabin),d(-13,-35,26,4,u.cabinHi),d(-13,-8,26,5,u.cabinLo),d(-11,-7,22,11,u.glassDeep),d(-11,-7,22,5,u.glass),d(-10,-6,8,3,u.glassHi),d(-1,-6,6,2,u.glassHi,.75),d(-16,-2,3,8,u.bodyDark),d(13,-2,3,8,u.bodyDark);const m=22,h=-30,p=7,g=9;for(const x of[m,h])d(-22,x,p,g,u.tire),d(15,x,p,g,u.tire),d(-22,x,1,g,u.tireOuter),d(15+p-1,x,1,g,u.tireOuter);for(const x of[m,h])d(-18,x+1,4,g-2,u.bodyDark),d(14,x+1,4,g-2,u.bodyDark);a&&(d(-12,33,5,4,16052970),d(7,33,5,4,16052970),d(-11,34,2,2,16775368),d(8,34,2,2,16775368),d(-13,-38,4,3,16733488),d(9,-38,4,3,13121568),d(-18,4,3,4,16763976),d(15,4,3,4,16752688)),d(-15,-37,30,1,u.cabinHi,.45),d(-14,28,28,1,0,.12)}buildOutdoorBackdrop(t,n,i,r,o,a){const u=t.add.graphics();u.setDepth(-320);const d=-au,m=-ul,h=n+au*2,p=i+ul+pl,g=d+h,x=i+pl,v=m+R*6.2,b=i+R*.35,S=i+R*4.25,w=i+R*5.9,{gateCenterX:k,roadY:j,roadHeight:N,waterTopY:z,dockY:I}=this.getOutdoorMetrics(n,i),A=o?{skyTop:7259376,skyBand:11066104,towerFar:8953780,towerNear:10268868,towerRoof:11847900,winColor:16777215,winAlpha:.22,facadeColor:14214384,facadeAlpha:.36,bridgeColor:12636384,bridgeAlpha:.92,grassBase:3831876,grassLawn:6076520,treeTrunk:3562560,treeMid:5023848,treeHi:7526532,grove0:3168312,grove1:5150816,grove2:6865016,fence:10127992,road:3948616,roadDash:14207120,curb:3551792,water:3508408,ripple:6073556,rippleHi:10017008,edgeGreen:5810280,edgeGreenHi:8310928,logoDirt:12105880,logoDirtHi:13684920}:{skyTop:2503493,skyBand:3494250,towerFar:1253426,towerNear:1911614,towerRoof:2373195,winColor:15979916,winAlpha:.42,facadeColor:3163484,facadeAlpha:.45,bridgeColor:2306631,bridgeAlpha:.95,grassBase:3232315,grassLawn:5210447,treeTrunk:2835501,treeMid:4156223,treeHi:5539412,grove0:2637864,grove1:4222784,grove2:6130776,fence:8153685,road:3159098,roadDash:13676922,curb:3025447,water:2181730,ripple:3967139,rippleHi:7913424,edgeGreen:7310175,edgeGreenHi:9417850,logoDirt:10265207,logoDirtHi:12301197};if(u.fillStyle(A.skyTop,1),u.fillRect(d,m,h,R*8.2),u.fillStyle(A.skyBand,1),u.fillRect(d,m+R*6.15,h,R*2.05),o){u.fillStyle(16775400,.45);for(let ge=0;ge<5;ge++){const me=d+h*(.12+ge*.19)+ge*17%40,qe=m+R*(1.4+ge%3*.35);u.fillEllipse(me,qe,R*2.2,R*.95)}u.fillStyle(16773808,.92),u.fillCircle(g-R*2.4,m+R*1.25,R*.85),u.fillStyle(16776432,.35),u.fillCircle(g-R*2.4,m+R*1.25,R*1.45)}u.fillStyle(A.towerFar,1);for(let ge=d-R;geR*1.9&&u.fillRect(ge+ht-8,Oe+4,3,3));u.fillStyle(A.facadeColor,A.facadeAlpha),u.fillRect(ge+ht*.5,we+R*.4,2,ce-R*.8),u.fillStyle(A.towerNear,1)}u.fillStyle(A.bridgeColor,A.bridgeAlpha);for(let ge=d+R*6;ge(ge.offsetCol+2.95)*R),O=R*.9,T=n-R*1.8,$=6,G=R*1.7,P=i+R*.08,F=R*2.05,V=P+F,Y=R*9.4,U=k-Y/2,Q=V-2,W=R*3.1,q=Q+W,J=R*2.3;u.fillStyle(12428667,1),u.fillRect(k-R*4.25,q,R*8.5,j-q),u.fillStyle(14141089,.95);for(let ge=q+R*.35;geZ&&u.fillRect(Z,P,me-Z,$),u.fillStyle(8415310,1),u.fillRect(me-4,P,4,R*.62),u.fillRect(me+G,P,4,R*.62),u.fillStyle(11045217,1),u.fillRect(me,P,G,4),u.fillStyle(15920612,1),Z=me+G}Zk-R*5.4&&ge=0&&this.decor.splice(ge,1),this.outdoorParking.destroy(),this.outdoorParking=null}const je=t.add.graphics();je.setDepth(-300);const Ve=4080460,We=15262424,Pe=[{x:d+R*2.2,count:5},{x:g-R*11.4,count:5}];je.lineStyle(0,0,0),je.fillStyle(Ve,1);for(const ge of Pe)je.fillRect(ge.x,w,R*12.8,R*3.8);je.lineStyle(1,We,.95);for(const ge of Pe)for(let me=0;mek-R;for(let qe=0;qe=0&&this.decor.splice(a,1),this.outdoorParking.destroy(),this.outdoorParking=null}if(this.outdoorBackdrop){const a=this.decor.indexOf(this.outdoorBackdrop);a>=0&&this.decor.splice(a,1),this.outdoorBackdrop.destroy(),this.outdoorBackdrop=null}this.buildOutdoorBackdrop(t,r,o,i,n,{skipLabels:!0})}buildBoundaryDecor(t,n,i){const r=t.add.graphics();r.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+Jn)*R,u=fr*R,d=Jn*R,m=R*2,h=R*20;this.buildOutdoorBackdrop(t,a,u,n,i),r.fillStyle(2498844,1),r.fillRect(-R,0,a+R*2,u),r.fillStyle(3221794,1),r.fillRect(0,0,a,u),r.fillStyle(6048831,1),r.fillRect(0,0,a,8),r.fillRect(0,u-8,a,8),r.fillRect(0,0,8,u),r.fillRect(a-8,0,8,u),r.fillStyle(2367001,1),r.fillRect(8,8,a-16,3),r.fillRect(8,u-11,a-16,3),r.fillStyle(1709844,1),r.fillRect(0,0,a,m),r.fillStyle(4931637,1),r.fillRect(0,m-5,a,5),r.fillStyle(4208173,1),r.fillRect(0,m,a,u-m),r.fillStyle(4865588,1),r.fillRect(0,R*8,a,R*4),r.fillStyle(3813416,1),r.fillRect(0,h,a,u-h),r.lineStyle(1,5917503,.32);for(let p=0;p<=a;p+=R)r.beginPath(),r.moveTo(p,m),r.lineTo(p,u),r.strokePath();for(let p=m;p<=u;p+=R)r.beginPath(),r.moveTo(0,p),r.lineTo(a,p),r.strokePath();for(let p=R*3;pT.id===p.id);r.fillStyle(5785659,1),r.fillRect(g-10,0,d+20,u),r.fillStyle(2301208,1),r.fillRect(g-4,0,d+8,u),r.lineStyle(2,8087640,.9),r.strokeRect(g-10,0,d+20,u),r.lineStyle(2,10982014,.34),r.strokeRect(g-4,0,d+8,u),r.fillStyle(1578259,1),r.fillRect(g-4,0,d+8,R),r.fillStyle(7166796,1),r.fillRect(g+R*5.5,R*.55,R*9,5),r.fillStyle(9074018,1),r.fillRect(g-10,0,8,8),r.fillRect(g+d+2,0,8,8),r.fillRect(g-10,u-8,8,8),r.fillRect(g+d+2,u-8,8,8),r.fillStyle(3221536,1),r.fillRect(g-4,h,d+8,6);const v=g+R*.7,b=g+R*14.65,S=R*1.05,w=R*4.45,k=R*6.4,j=S+k+R*.35,N=R*.55,z=x%2===0?6115909:5069382,I=x%2===0?4609113:5984070,A=x%2===0?5205640:7297908,L=x%2===0?5666919:9073231,M=x%2===0?7045045:10119803,O=x%2===0?6196089:10979160;r.fillStyle(2827295,1),r.fillRect(g+R*.58,j,d-R*1.16,R*.44),r.fillStyle(7692879,1),r.fillRect(g+R*.92,j+2,d-R*1.84,2),r.fillRect(g+R*4.3,j-R*.2,4,R*.84),r.fillRect(g+d-R*4.3,j-R*.2,4,R*.84),o.fillStyle(1906966,1),o.fillRect(v,S,w,k),o.fillRect(b,S,w,k),o.fillStyle(3090722,1),o.fillRect(v+4,S+4,w-8,k-8),o.fillRect(b+4,S+4,w-8,k-8),o.fillStyle(z,1),o.fillRect(v+4,S+4,w-8,R*.7),o.fillStyle(I,1),o.fillRect(b+4,S+4,w-8,R*.7),o.fillStyle(A,.95),o.fillRect(v+4,S+R*1.15,w-8,k-R*1.45),o.fillStyle(L,.95),o.fillRect(b+4,S+R*1.15,w-8,k-R*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,S+10,w-20,2),o.fillRect(b+10,S+10,w-20,2),o.lineStyle(1,6181444,.28);for(let T=v+12;T","#2d241c","#e8d5b6","8px"),this.decor.push(r,o)}buildMap(t,n=lu()){this.clearSceneDecor();const i=ei(),r=((i[i.length-1]?.offsetCol??0)+Jn)*R,o=fr*R,a=this.getOutdoorMetrics(r,o);this.buildBoundaryDecor(t,i,n);for(const m of i){const h=(m.offsetCol+Jn/2)*R,p=t.add.image(m.offsetCol*R,0,"office-bg");p.setOrigin(0,0),p.setDepth(-100),this.bgSprites.push(p),this.addForegroundOccluders(t,m);const g=t.add.text(h,6,m.name,{fontSize:"14px",fontFamily:"monospace",color:"#ffffff",stroke:"#000000",strokeThickness:3,align:"center"});g.setOrigin(.5,0),g.setDepth(99999),g.setData("officeId",m.id),this.nameLabels.push(g)}const u=xE(i),d=Kf.buildWallBodies(t,u);return console.log("[OfficeMapBuilder] Composite map ready —",i.length,"offices"),{wallBodies:d,collisionGrid:u,waterfront:{dockCenterX:a.gateCenterX,dockY:a.dockY,waterTopY:a.waterTopY,waterBottomY:a.bottomY}}}getBackgroundSprites(){return this.bgSprites}getNameLabels(){return this.nameLabels}updateLabel(t,n){const i=this.nameLabels.find(r=>r.getData("officeId")===t);i&&i.setText(n)}static buildWallBodies(t,n){const i=n.length,r=i>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const h=d-u,p=t.add.rectangle(u*R+h*R/2,a*R+R/2,h*R,R);p.setVisible(!1),o.add(p),u=-1}}}return o}static buildWallBodiesForRegion(t,n,i,r){const o=n.length,a=o>0?n[0].length:0;for(let u=0;u=0){const p=m-d,g=t.add.rectangle((r+d)*R+p*R/2,u*R+R/2,p*R,R);g.setVisible(!1),i.add(g),d=-1}}}}}const ot={IDLE:"idle",WALK:"walk",TYPE:"type",THINK:"think",CELEBRATE:"celebrate",COFFEE:"coffee",CHAT:"chat",PRACTICE:"practice",REFLECT:"reflect",SLEEP:"sleep",PRESENT:"present"},Qa={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function Qx(e,t){return e+Math.random()*(t-e)}function e4(e,t){return Math.floor(Qx(e,t+1))}class t4 extends Zi.GameObjects.Container{constructor(t,n,i,r,o,a){const u=o*R+R/2,d=a*R+R/2;super(t,u,d),this.officeId="office-0",this.agentState=ot.IDLE,this.dir=Qa.DOWN,this.isActive=!1,this.currentTool=null,this.seatId=null,this.urgency="relaxed",this.isSubagent=!1,this.parentAgentId=null,this.lastEventAt=0,this.stateTimer=0,this.seatTimer=0,this.wanderCount=0,this.hueShift=0,this.bubbleText=null,this.bubbleTimer=0,this.myceliumEffect=null,this.myceliumEffectTimer=0,this.myceliumSession=null,this.bubbleObj=null,this.currentPath=[],this.pathIndex=0,this.pathfinder=null,this.arrivalCallback=null,this.agentId=n,this.displayName=i,this.palette=r%6,this.wanderTimer=Qx(.5,2.5),this.wanderLimit=e4(mE,pE);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,D3,A3,M3,1382432,O3),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(T3,R3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const h=Math.min(12,R-4),p=Math.min(6,R/2);this.body.setSize(h,p),this.body.setOffset(-h/2,-p),this.body.setCollideWorldBounds(!0),this.setDepth(d),this.playAnimForState()}setPathfinder(t){this.pathfinder=t}getState(){return this.agentState}getTilePos(){return{x:Math.floor(this.x/R),y:Math.floor(this.y/R)}}setAgentState(t){this.agentState!==t&&(this.agentState=t,this.playAnimForState())}setDirection(t){this.dir!==t&&(this.dir=t,this.playAnimForState())}playAnimForState(){if(!this.sprite?.anims)return;const t=`char_${this.palette}`,n=this.dir,i=n===Qa.LEFT;this.sprite.setFlipX(i);const r=i?"right":n;switch(this.agentState){case ot.WALK:this.sprite.play(`${t}_walk_${r}`,!0);break;case ot.CELEBRATE:this.sprite.play(`${t}_celebrate_${r}`,!0);break;case ot.TYPE:case ot.PRESENT:case ot.PRACTICE:this.sprite.play(`${t}_type_${r}`,!0);break;case ot.THINK:case ot.REFLECT:this.sprite.play(`${t}_read_${r}`,!0);break;case ot.COFFEE:case ot.CHAT:this.sprite.play(`${t}_coffee_${r}`,!0);break;case ot.SLEEP:case ot.IDLE:default:this.sprite.play(`${t}_idle_${r}`,!0);break}}async walkTo(t,n,i){if(!this.pathfinder||!this.sprite?.anims)return!1;const r=this.getTilePos(),o=await this.pathfinder.findPath(r,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=i??null,this.setAgentState(ot.WALK),!0)}stopMovement(){this.currentPath=[],this.pathIndex=0,this.arrivalCallback=null,this.body?.setVelocity(0,0)}get isMoving(){return this.agentState===ot.WALK&&this.currentPath.length>0}getWalkSpeed(){switch(this.urgency){case"urgent":return B3;case"normal":return $3;default:return H3}}showBubble(t,n=U3){this.bubbleText=t,this.bubbleTimer=n,this.updateBubbleDisplay()}clearBubble(){this.bubbleText=null,this.bubbleTimer=0,this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null)}updateBubbleDisplay(){if(this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null),!this.bubbleText)return;const t=this.scene.add.container(this.x,this.y-70),n=this.scene.add.text(0,0,this.bubbleText,{fontSize:"10px",fontFamily:"monospace",color:"#1a1a2e",backgroundColor:"#ffffff",padding:{x:4,y:2},resolution:2});n.setOrigin(.5,1);const i=this.scene.add.graphics(),r=n.width+8,o=n.height+4;i.fillStyle(16777215,.95),i.fillRoundedRect(-r/2,-o,r,o,4),i.lineStyle(1,6710886,.5),i.strokeRoundedRect(-r/2,-o,r,o,4),t.add([i,n]),t.setDepth(1e5),this.bubbleObj=t}update(t){this.setDepth(this.y),this.bubbleObj&&(this.bubbleObj.setPosition(this.x,this.y-70),this.bubbleTimer>0&&(this.bubbleTimer-=t,this.bubbleTimer<=0&&this.clearBubble())),this.stateTimer>0&&(this.stateTimer-=t,this.stateTimer<=0&&(this.stateTimer=0,this.agentState===ot.CELEBRATE&&this.setAgentState(ot.IDLE),this.agentState===ot.COFFEE&&(this.setAgentState(ot.IDLE),this.wanderTimer=Qx(Lf,zf)),this.agentState===ot.CHAT&&this.setAgentState(ot.IDLE))),this.agentState===ot.WALK&&this.currentPath.length>0&&this.followPath(t)}followPath(t){if(this.body.setVelocity(0,0),this.pathIndex>=this.currentPath.length){this.arriveAtDestination();return}const n=this.currentPath[this.pathIndex],i=n.x*R+R/2,r=n.y*R+R/2,o=i-this.x,a=r-this.y,u=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(u<=m+.5){this.x=i,this.y=r,this.pathIndex++,this.pathIndex>=this.currentPath.length&&this.arriveAtDestination();return}this.x+=o/u*m,this.y+=a/u*m,Math.abs(o)>Math.abs(a)?this.setDirection(o>0?Qa.RIGHT:Qa.LEFT):this.setDirection(a>0?Qa.DOWN:Qa.UP)}arriveAtDestination(){this.currentPath=[],this.pathIndex=0,this.body.setVelocity(0,0);const t=this.arrivalCallback;this.arrivalCallback=null,t?t():this.agentState===ot.WALK&&this.setAgentState(ot.IDLE)}destroy(t){this.clearBubble(),super.destroy(t)}}var Ng,sS;function n4(){return sS||(sS=1,Ng=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),Ng}var Ig,oS;function i4(){return oS||(oS=1,Ig=function(e,t,n,i,r){this.parent=e,this.x=t,this.y=n,this.costSoFar=i,this.simpleDistanceToTarget=r,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),Ig}var Pf={exports:{}},r4=Pf.exports,aS;function s4(){return aS||(aS=1,(function(e,t){(function(){var n,i,r,o,a,u,d,m,h,p,g,x,v,b,S;r=Math.floor,p=Math.min,i=function(w,k){return wk?1:0},h=function(w,k,j,N,z){var I;if(j==null&&(j=0),z==null&&(z=i),j<0)throw new Error("lo must be non-negative");for(N==null&&(N=w.length);jO;0<=O?M++:M--)L.push(M);return L}).apply(this).reverse(),A=[],N=0,z=I.length;NT;0<=T?++L:--L)$.push(a(w,j));return $},b=function(w,k,j,N){var z,I,A;for(N==null&&(N=i),z=w[j];j>k;){if(A=j-1>>1,I=w[A],N(z,I)<0){w[j]=I,j=A;continue}break}return w[j]=z},S=function(w,k,j){var N,z,I,A,L;for(j==null&&(j=i),z=w.length,L=k,I=w[k],N=2*k+1;Np[0].length-1||G>p.length-1||P>p[0].length-1||F>p.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if($===P&&G===F){Y([]);return}for(var U=p[F][P],Q=!1,W=0;W"u"){k.shift();continue}if(G.openList.size()===0){G.callback(null),delete w[$],k.shift();continue}var P=G.openList.pop();if(G.endX===P.x&&G.endY===P.y){var F=[];F.push({x:P.x,y:P.y});for(var V=P.parent;V!=null;)F.push({x:V.x,y:V.y}),V=V.parent;F.reverse();var Y=F;G.callback(Y),delete w[$],k.shift();continue}P.list=r,P.y>0&&I(G,P,0,-1,u*M(P.x,P.y-1)),P.x0&&I(G,P,-1,0,u*M(P.x-1,P.y)),z&&(P.x>0&&P.y>0&&(b||A(p,N,P.x,P.y-1,P)&&A(p,N,P.x-1,P.y,P))&&I(G,P,-1,-1,d*M(P.x-1,P.y-1)),P.x0&&(b||A(p,N,P.x,P.y-1,P)&&A(p,N,P.x+1,P.y,P))&&I(G,P,1,-1,d*M(P.x+1,P.y-1)),P.x>0&&P.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new l4.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(i=>{if(t.x<0||t.x>=this.gridCols||t.y<0||t.y>=this.gridRows||n.x<0||n.x>=this.gridCols||n.y<0||n.y>=this.gridRows){i([]);return}if(this.grid[n.y]?.[n.x]===1){const r=this.findNearestWalkable(n.x,n.y);if(!r){i([]);return}n=r}if(this.grid[t.y]?.[t.x]===1){const r=this.findNearestWalkable(t.x,t.y);if(!r){i([]);return}t=r}this.easystar.findPath(t.x,t.y,n.x,n.y,r=>{i(r??[])}),this.easystar.calculate()})}blockTile(t,n){n>=0&&n=0&&t=0&&n=0&&t=this.grid.length||t<0||t<0||t>=this.grid[0].length?!1:this.grid[n][t]===0}getWalkableTiles(){const t=[];for(let n=0;n=r&&e=o&&tu4(`${e.id}-${u.id}`,u.localX+t,u.localY,u.type)),doorways:o.doorways.map(u=>({id:`${e.id}-${u.id}`,tileX:u.localX+t,tileY:u.localY}))}}const i={};for(const[r,o]of e.seats){const a=f4(r,o),u=`${e.id}-${a}`;if(!n[u])continue;i[u]=(i[u]??0)+1;const d=i[u],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",h=d4(r,o,a);n[u].seats.push(c4(`${e.id}-${m}-${d}`,r+t,o,h))}return n}function bE(e){const t=e??ei(),n={};for(const i of t)Object.assign(n,m4(i));return n}let No=bE();function p4(e){No=bE(e)}function _E(e){const t=No[`${e}-workspace`]?.seats??[],n=No[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function dS(){return Object.values(No).flatMap(e=>e.seats)}function h4(e){const t=No[e];if(!t)return null;const{x:n,y:i,w:r,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=ei().find(g=>g.id===a);if(!d)return{x:n+1,y:i+1};const m=yE(d.mapStr),h=d.offsetCol,p=[];for(let g=i;g=0&&v({x:n.tileX,y:n.tileY})):[]}function na(e,t){return e+Math.random()*(t-e)}function g4(e,t){return Math.floor(na(e,t+1))}function rs(e,t){return e.length>t?e.slice(0,t)+"...":e}function mS(e){if(!e)return"Tool";const t=e.toLowerCase().trim();return t==="shell"?"Shell":t==="write_file"||t==="write"?"Write":t==="edit_file"||t==="edit"?"Edit":t==="read_file"||t==="read"?"Read":t==="grep"||t==="search"?"Search":t==="web_search"||t==="websearch"?"WebSearch":t==="web_fetch"||t==="webfetch"?"Fetch":e.slice(0,12)}class y4{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},i=t.agent_id||"openopc-main";if(i==="user")return;const r=i.startsWith("subagent-"),o=r?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=r?`Sub ${i.slice(-4)}`:void 0,u=this.scene.ensureAgent(i,a,r,o);switch(u.lastEventAt=Date.now(),typeof n.task_preview=="string"&&(u.taskSummary=n.task_preview),typeof n.result_preview=="string"&&(u.taskSummary=n.result_preview),t.type){case"tool_start":this.onToolStart(u,n);break;case"tool_done":this.onToolDone(u,n);break;case"agent_active":this.onAgentActive(u);break;case"waiting":this.onWaiting(u);break;case"reflect_start":this.onReflectStart(u);break;case"reflect_done":this.onReflectDone(u);break;case"skill_synthesized":this.onSkillSynthesized(u,n);break;case"subagent_spawn":this.onSubagentSpawn(u,i,o);break;case"subagent_done":this.onSubagentDone(u,i);break;case"message_in":this.onMessageIn(u,n);break;case"message_out":this.onMessageOut(u,n);break;case"practice_start":this.onPracticeStart(u,n);break;case"practice_done":this.onPracticeDone(u);break;case"task_routed":this.onTaskRouted(u,n);break;case"task_delegated":this.onTaskDelegated(u,i,n);break;case"delegation_done":this.onDelegationDone(u,n);break;case"agent_spawned":this.onAgentSpawned(u,i,n);break;case"agent_removed":this.onAgentRemoved(u,i);break;case"collab_started":this.onCollabStarted(u);break;case"collab_ended":this.onCollabEnded(u);break;case"skill_published":this.onSkillPublished(u,n);break;case"skill_adopted":this.onSkillAdopted(u,n);break;case"mycelium_transport":this.onMyceliumTransport(u,i,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(u,i,n);break;case"mycelium_spore":this.onMyceliumSpore(u,i,n);break;case"mycelium_decompose":this.onMyceliumDecompose(u,i,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(u,n);break;case"mycelium_germinate":this.onMyceliumGerminate(u,i,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(i,n);break;case"hyphal_weaken":this.onHyphalWeaken(i,n);break}}onToolStart(t,n){const i=typeof n.tool_name=="string"?n.tool_name:"tool",r=mS(i);t.urgency="urgent",t.currentTool=i,t.isActive=!0,t.showBubble(`${r}...`),this.sendToSeat(t)}onToolDone(t,n){const i=typeof n.tool_name=="string"?n.tool_name:t.currentTool,r=mS(i);t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Za,t.isActive=!1,t.showBubble(`${r} done`)}onAgentActive(t){t.urgency="urgent",t.isActive=!0,t.currentTool||this.sendToSeat(t)}onWaiting(t){t.urgency="relaxed",t.isActive=!1,t.currentTool=null,t.showBubble("Waiting");const n=this.moveToZone(t,"breakRoom",ot.COFFEE);n||t.setAgentState(ot.IDLE),n&&(t.stateTimer=na(F3,V3))}onReflectStart(t){t.urgency="normal",t.isActive=!1,t.currentTool="Reflect",this.moveToZone(t,"meetingRoom",ot.REFLECT)||t.setAgentState(ot.REFLECT),t.stateTimer=30,t.showBubble("Reflecting...")}onReflectDone(t){t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Za,t.showBubble("Insight!")}onSkillSynthesized(t,n){const i=rs(String(n.skill_name??"new"),20);t.setAgentState(ot.PRESENT),t.showBubble(`New Skill: ${i}`)}onSubagentSpawn(t,n,i){this.placeAtDoorway(t),t.urgency="urgent",t.isActive=!0,t.showBubble("Spawned"),this.sendToSeat(t)}onSubagentDone(t,n){t.urgency="relaxed",t.currentTool=null,t.isActive=!1,t.showBubble("Finished"),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onMessageIn(t,n){t.urgency="urgent";const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?rs(i,30):"New task";t.showBubble(r),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?rs(i,30):"Reply sent";t.showBubble(`Reply: ${r}`)}onPracticeStart(t,n){t.urgency="normal";const i=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${rs(i,20)}`),t.isActive=!1,t.currentTool="Practice",this.moveToZone(t,"meetingRoom",ot.PRACTICE)||t.setAgentState(ot.PRACTICE)}onPracticeDone(t){t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Za,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const i=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${i})`)}onTaskDelegated(t,n,i){t.urgency="normal",t.stateTimer=na(Jk,eS);const r=typeof i.target=="string"?i.target:"?";t.setAgentState(ot.CHAT),t.showBubble(`Delegating to ${r}...`);const o=this.scene.getAgent(r);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const i=typeof n.target=="string"?n.target:"";if(t.setAgentState(ot.IDLE),t.showBubble("Delegation complete"),i){const r=this.scene.getAgent(i);r&&(r.parentAgentId=null)}}onAgentSpawned(t,n,i){const r=typeof i.role_name=="string"?i.role_name:n;t.displayName=r,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${r} joined`)}onAgentRemoved(t,n){t.showBubble("Leaving..."),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onCollabStarted(t){t.urgency="normal",t.isActive=!1,t.stateTimer=na(Jk,eS),this.moveToZone(t,"meetingRoom",ot.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Za,t.setAgentState(ot.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const i=rs(String(n.skill_name??"skill"),20);t.setAgentState(ot.CELEBRATE),t.stateTimer=Za,t.showBubble(`Published: ${i}`)}onSkillAdopted(t,n){const i=rs(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${i}`)}onMyceliumTransport(t,n,i){const r=typeof i.source=="string"?i.source:n,o=typeof i.target=="string"?i.target:null,a=typeof i.domain=="string"?rs(i.domain,15):"?",u=this.scene.ensureAgent(r);if(u.myceliumEffect="transport_send",u.myceliumEffectTimer=3,u.showBubble(`-> [${a}]`),o){const d=this.scene.ensureAgent(o);d.myceliumEffect="transport_recv",d.myceliumEffectTimer=2,d.showBubble("Receiving...");const m=d.getTilePos();u.walkTo(m.x,m.y+1)}}onMyceliumCrystallize(t,n,i){const r=Array.isArray(i.corroborating_agents)?i.corroborating_agents:[],o=rs(String(i.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...r])),u=`${t.officeId}-meetingRoom`,d=No[u]?.seats??[];for(let m=0;m{p.setDirection(x.facing),p.setAgentState(ot.CHAT)}),p.showBubble(h===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,i){const r=rs(String(i.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(ot.PRESENT),t.showBubble(`Breakthrough! ${r}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,i){const r=rs(String(i.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(ot.REFLECT),t.showBubble(`Learning: ${r}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const i=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${i}]...`,2)}onMyceliumGerminate(t,n,i){const r=typeof i.target_agent=="string"?i.target_agent:n,o=this.scene.ensureAgent(r);o.myceliumEffect=null,o.setAgentState(ot.CELEBRATE),o.stateTimer=Za,o.showBubble("Insight took root!")}onHyphalStrengthen(t,n){}onHyphalWeaken(t,n){}updateIdle(t){for(const n of this.scene.agents.values()){if(this.pendingDespawn.has(n.agentId)&&!n.isMoving){this.pendingDespawn.delete(n.agentId),this.scene.removeAgent(n.agentId);continue}if(n.myceliumEffectTimer>0&&(n.myceliumEffectTimer-=t,n.myceliumEffectTimer<=0&&(n.myceliumEffect=null,n.myceliumEffectTimer=0,n.myceliumSession=null)),n.agentState===ot.TYPE&&!n.isActive){n.seatTimer>0?(n.seatTimer-=t,n.seatTimer<=0&&(n.seatTimer=0,n.setAgentState(ot.IDLE),n.wanderCount=0,n.wanderLimit=g4(mE,pE),n.wanderTimer=na(Lf,zf))):n.setAgentState(ot.IDLE);continue}if(n.agentState===ot.IDLE){if(n.isActive){if(n.urgency="urgent",!n.seatId){n.setAgentState(ot.TYPE);continue}this.sendToSeat(n);continue}if(n.wanderTimer-=t,n.wanderTimer<=0){if(n.wanderCount>=n.wanderLimit&&n.seatId){n.urgency="relaxed",this.sendToSeat(n),n.wanderTimer=na(Lf,zf);continue}const i=this.scene.getWalkableTilesForOffice(n.officeId);if(i.length>0){n.urgency="relaxed";const r=i[Math.floor(Math.random()*i.length)];n.walkTo(r.x,r.y),n.wanderCount++}n.wanderTimer=na(Lf,zf)}}}}sendToSeat(t){if(!t.seatId)return;const n=this.scene.getSeatById(t.seatId);n&&t.walkTo(n.tileX,n.tileY,()=>{t.setAgentState(ot.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=tS+Math.random()*nS)}).then(i=>{i||(t.setAgentState(ot.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=tS+Math.random()*nS))})}moveToZone(t,n,i){const r=`${t.officeId}-${n}`,o=No[r];if(!o)return!1;if(o.seats.length>0){const u=new Set;for(const m of this.scene.agents.values()){if(m===t||m.isMoving)continue;const h=m.getTilePos();u.add(`${h.x},${h.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const h=m.currentPath;if(h?.length){const p=h[h.length-1];u.add(`${p.x},${p.y}`)}}const d=o.seats.find(m=>!u.has(`${m.tileX},${m.tileY}`));if(d)return t.walkTo(d.tileX,d.tileY,()=>{t.setDirection(d.facing),i?t.setAgentState(i):t.setAgentState(ot.IDLE)}),!0}const a=h4(r);return a?(t.walkTo(a.x,a.y,()=>{i?t.setAgentState(i):t.setAgentState(ot.IDLE)}),!0):!1}moveToDoorway(t){const n=fS(t.officeId);if(n.length===0)return!1;const i=n[Math.floor(Math.random()*n.length)];return t.walkTo(i.x,i.y),!0}placeAtDoorway(t){const n=fS(t.officeId);if(n.length>0){const i=n[Math.floor(Math.random()*n.length)];t.setPosition(i.x*R+R/2,i.y*R+R/2)}}}class x4 extends Zi.Scene{constructor(){super("Office"),this.yachtLoopStarted=!1,this.outdoorIsDay=null,this.agents=new Map,this.seats=[],this.walkableTiles=[],this.walkableTilesByOffice=new Map,this.dragState={pointerId:null,lastX:0,lastY:0,moved:!1}}create(){this.bridge=this.registry.get("bridge");const t=lu();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Zk:Qk),this.mapBuilder=new Kf,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new uS(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=dS().map(d=>({...d})),this.behavior=new y4(this);const n=Cg*R,i=$c*R,r=-au,o=-ul,a=n+au*2,u=i+ul+pl;this.physics.world.setBounds(r,o,a,u),this.cameras.main.setBounds(r,o,a,u),this.resetCameraView(!1),this.startWaterfrontLoop(),this.input.on("pointerdown",d=>{d.leftButtonDown()&&(this.dragState.pointerId=d.id,this.dragState.lastX=d.x,this.dragState.lastY=d.y,this.dragState.moved=!1)}),this.input.on("pointermove",d=>{if(!d.isDown||this.dragState.pointerId!==d.id)return;const m=d.x-this.dragState.lastX,h=d.y-this.dragState.lastY;if(!this.dragState.moved&&Math.abs(d.downX-d.x)+Math.abs(d.downY-d.y)<6)return;this.dragState.moved=!0;const p=this.cameras.main;p.stopFollow(),p.scrollX-=m/p.zoom,p.scrollY-=h/p.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,h,p)=>{const g=this.cameras.main,x=this.input.activePointer,v=g.getWorldPoint(x.x,x.y),b=this.getMinCameraZoom(g),S=Zi.Math.Clamp(g.zoom-p*.0015,b,3);g.setZoom(S);const w=g.getWorldPoint(x.x,x.y);g.scrollX+=v.x-w.x,g.scrollY+=v.y-w.y,g.scrollX=g.clampX(g.scrollX),g.scrollY=g.clampY(g.scrollY)}),this.scale.on("resize",()=>{const d=this.cameras.main,m=this.getMinCameraZoom(d);d.zoom{if(this.dragState.pointerId!==d.id)return;const m=this.dragState.pointerId===d.id&&this.dragState.moved;if(this.dragState.pointerId=null,this.dragState.moved=!1,m)return;const h=this.cameras.main.getWorldPoint(d.x,d.y);let p=null,g=1/0;for(const x of this.agents.values()){const v=Zi.Math.Distance.Between(h.x,h.y,x.x,x.y);v<24&&vthis.add.circle(U,5,2.1,14284031,.95));F.add(V),F.setDepth(-250),F.setAlpha(0),F.setRotation(-.04),F.setScale(o),this.tweens.add({targets:[p,g,x],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const Y=()=>{F.setPosition(u,a),F.setAlpha(0),F.setRotation(-.04),p.setAlpha(.55),g.setAlpha(.42),x.setAlpha(.24),this.tweens.add({targets:F,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{p.setAlpha(.22),g.setAlpha(.14),x.setAlpha(.08),this.tweens.add({targets:F,x:d+4,y:a+R*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{p.setAlpha(.48),g.setAlpha(.32),x.setAlpha(.18),this.tweens.add({targets:F,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,Y)}})})}})};Y()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=ei();for(const n of t){const i=[];for(const r of this.walkableTiles)r.x>=n.offsetCol&&r.xm.id===t);if(!i)return;const r=(i.offsetCol+Jn/2)*R,o=$c/2*R,a=this.cameras.main,u=this.getMinCameraZoom(a),d=Zi.Math.Clamp(Math.min(this.scale.width/((Jn+4)*R),this.scale.height/(($c-4)*R)),u,Math.max(1.5,u));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.easeOut"}),a.pan(r,o,380,"Cubic.easeOut")}resolveOfficeForAgent(t){const n=Z3(t);if(n)return n.id;const i=ei();let r=null,o=-1;for(const u of i){const d=_E(u.id),m=u.assignedAgents.length,h=d.length-m;h>o&&(r=u,o=h)}const a=r?.id??i[0]?.id??"office-0";return jg(a,t),a}addAgent(t,n,i=!1,r=null,o,a,u){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,h=o?(jg(o,t),o):this.resolveOfficeForAgent(t),p=u?this.seats.find(j=>j.id===u&&!j.assigned)??this.findFreeSeatInOffice(h):this.findFreeSeatInOffice(h),v=(ei().find(j=>j.id===h)?.offsetCol??0)+5,b=20;let S=v,w=b;p&&(S=p.tileX,w=p.tileY,p.assigned=!0,p.assignedTo=t);const k=new t4(this,t,d,m,S,w);return k.officeId=h,k.setPathfinder(this.pathfinder),k.seatId=p?.id??null,k.isSubagent=i,k.parentAgentId=r,p&&(k.setAgentState(ot.TYPE),k.setDirection(p.facing),k.seatTimer=10),this.agents.set(t,k),k}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const i=this.seats.find(r=>r.id===n.seatId);i&&(i.assigned=!1,i.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:i}=require("../map/OfficeStore");i(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,i=!1,r=null,o,a,u){const d=this.agents.get(t);return d?(o&&d.officeId!==o&&this.reassignAgent(t,o),u&&d.seatId!==u&&this.changeAgentSeat(t,u),d):this.addAgent(t,n,i,r,o,a,u)}findFreeSeatInOffice(t){const n=this.seats.filter(i=>i.id.startsWith(`${t}-desk-`)).find(i=>!i.assigned);return n||(this.seats.filter(i=>i.id.startsWith(`${t}-leader-`)).find(i=>!i.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const m=this.seats.find(h=>h.id===i.seatId);m&&(m.assigned=!1,m.assignedTo=null)}i.stopMovement(),jg(n,t),i.officeId=n;const r=this.findFreeSeatInOffice(n),u=(ei().find(m=>m.id===n)?.offsetCol??0)+5,d=20;r?(r.assigned=!0,r.assignedTo=t,i.seatId=r.id,i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(ot.TYPE),i.setDirection(r.facing),i.seatTimer=10):(i.seatId=null,i.setPosition(u*R+R/2,d*R+R/2))}getCharacterCards(){const t=[];for(const n of this.agents.values())t.push({id:n.agentId,displayName:n.displayName,state:n.agentState,currentTool:n.currentTool,isSubagent:n.isSubagent,parentAgentId:n.parentAgentId,taskSummary:n.taskSummary,lastEventAt:n.lastEventAt,officeId:n.officeId,seatId:n.seatId});return t}changeAgentSeat(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const o=this.seats.find(a=>a.id===i.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const r=this.seats.find(o=>o.id===n);!r||r.assigned&&r.assignedTo!==t||(r.assigned=!0,r.assignedTo=t,i.seatId=n,i.stopMovement(),i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(ot.TYPE),i.setDirection(r.facing),i.seatTimer=10)}rebuildOfficeCollision(t,n,i){Q3(t,n,i),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const r=ei(),o=xE(r),a=Kf.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new uS(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),p4(r),this.seats=dS().map(u=>({...u}));for(const u of this.agents.values())u.setPathfinder(this.pathfinder),u.stopMovement();console.log("[OfficeScene] Office collision rebuilt —",t,"walkable:",this.walkableTiles.length)}renameOffice(t,n){X3(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(lu())}syncOutdoorLighting(){this.applyOutdoorLighting(lu())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Zk:Qk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=Cg*R,n=$c*R;return{worldW:t+au*2,worldH:n+ul+pl}}getMinCameraZoom(t){const{worldW:n,worldH:i}=this.getWorldSize();return Math.max(t.width/n,t.height/i)}}function v4({bridge:e,active:t=!0}){const n=C.useRef(null),i=C.useRef(null),r=C.useRef(null),o=C.useRef(t);return o.current=t,C.useEffect(()=>{const a=r.current;!a||!a.loop||(t?a.loop.started&&!a.loop.running&&(a.loop.wake(),a.scale.getParentBounds(),a.scale.refresh()):a.loop.running&&a.loop.sleep())},[t]),C.useEffect(()=>{if(!n.current||!i.current)return;const a=n.current,u=i.current,d=(h,p)=>{console.log("[PhaserGame] Creating Phaser game",h,"×",p);const g=q3(u,h,p);g.scene=[Y3,x4];const x=new Zi.Game(g);x.registry.set("bridge",e),x.events.once(Zi.Core.Events.READY,()=>{!o.current&&x.loop.running&&x.loop.sleep()}),r.current=x};if(typeof ResizeObserver>"u")return d(a.clientWidth||window.innerWidth-380,a.clientHeight||window.innerHeight-48),()=>{r.current?.destroy(!0),r.current=null};const m=new ResizeObserver(h=>{const p=h[h.length-1].contentRect,g=Math.floor(p.width),x=Math.floor(p.height);if(!(g<1||x<1))if(!r.current)d(g,x);else{const v=r.current.scale;v.getParentBounds(),v.refresh()}});return m.observe(a),()=>{m.disconnect(),r.current?.destroy(!0),r.current=null}},[e]),c.jsx("div",{ref:n,style:{width:"100%",height:"100%"},children:c.jsx("div",{ref:i,style:{width:"100%",height:"100%"}})})}class b4 extends Zi.Events.EventEmitter{constructor(){super(),this.scene=null,this.eventQueue=[],this.snapshotQueue=[]}on(t,n,i){return super.on(t,n,i)}off(t,n,i,r){return super.off(t,n,i,r)}setScene(t){this.scene=t;for(const n of this.snapshotQueue)this.applySnapshot(n);this.snapshotQueue=[];for(const n of this.eventQueue)this.applyEvent(n);this.eventQueue=[]}getScene(){return this.scene}pushEvent(t){if(!this.scene){this.eventQueue.push(t),this.eventQueue.length>500&&this.eventQueue.shift();return}this.applyEvent(t)}pushSnapshot(t){const n=Object.keys(t.agents??{}).length;if(!this.scene){console.log(`[GameBridge] pushSnapshot queued (scene not ready) — ${n} agents`),this.snapshotQueue=[t],this.eventQueue=[];return}console.log(`[GameBridge] pushSnapshot applying now — ${n} agents`),this.applySnapshot(t)}sendToSeat(t){this.scene&&this.scene.behavior.sendToSeat(this.scene.ensureAgent(t))}setAgentActive(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(i.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(n?i.showBubble(n):i.clearBubble())}ensureAgent(t,n,i,r,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,i,r,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return ei()}renameOffice(t,n){this.scene&&(this.scene.renameOffice(t,n),this.emit("officeChanged"))}assignAgentToOffice(t,n){this.scene&&(this.scene.reassignAgent(t,n),this.emit("officeChanged"))}panToOffice(t){this.scene&&this.scene.panToOffice(t)}resetCamera(){this.scene&&this.scene.resetCameraView()}syncOutdoorLighting(){this.scene&&this.scene.syncOutdoorLighting()}rebuildOfficeCollision(t,n,i){this.scene&&this.scene.rebuildOfficeCollision(t,n,i)}getSeatsForOffice(t){return this.scene?this.scene.seats.filter(n=>n.id.startsWith(`${t}-desk-`)||n.id.startsWith(`${t}-leader-`)).map(n=>({id:n.id,assigned:n.assigned,assignedTo:n.assignedTo})):[]}changeAgentSeat(t,n){this.scene&&(this.scene.changeAgentSeat(t,n),this.emit("officeChanged"))}notifyChannelMessage(t,n){if(this.scene)for(const i of t){const r=this.scene.getAgent(i);r&&(r.showBubble(n.slice(0,30)),setTimeout(()=>r.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const i=this.scene.getAgent(n);i&&this.scene.behavior.moveToZone(i,"meetingRoom")}}triggerCelebration(t){if(!this.scene)return;const n=this.scene.getAgent(t);n&&(n.showBubble("🎉 Done!"),setTimeout(()=>n.clearBubble(),3e3))}applyEvent(t){this.scene&&(this.scene.behavior.applyEvent(t),this.emit("eventApplied",t))}applySnapshot(t){if(!this.scene){console.warn("[GameBridge] applySnapshot called but scene is null");return}const n=Array.from(this.scene.agents.keys());console.log("[GameBridge] applySnapshot — clearing",n.length,"old agents:",n);for(const o of n)this.scene.removeAgent(o);const i=t.timeline??[];for(const o of i)this.scene.behavior.applyEvent(o);const r=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",r.length,"agents:",r.map(([o])=>o));for(const[o,a]of r){const u=a,d=u.name||u.role_name||o,m=u.office_id,h=u.appearance?.palette,p=u.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,h,p),x=u.runtime_status||u.status;x==="tool_active"?(g.currentTool=u.current_tool??null,g.isActive=!0,g.setAgentState(ot.TYPE)):x==="reflecting"&&(g.currentTool=u.current_tool??"Reflect",g.isActive=!1,g.setAgentState(ot.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${h}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}i.length===0&&r.length===0&&(console.warn("[GameBridge] applySnapshot — empty snapshot, creating fallback agent"),this.scene.ensureAgent("openopc-main","OpenOPC")),console.log("[GameBridge] applySnapshot done — total agents:",this.scene.agents.size),this.emit("snapshotApplied",t)}}const _4="assets/office-bg.png";function k4({bridge:e}){const t=C.useRef(null),n=C.useRef(null),i=C.useRef(!1),[r,o]=C.useState(()=>ei()),[a,u]=C.useState(()=>ei()[0]?.id??"office-0"),d=r.find(ee=>ee.id===a)??r[0],[m,h]=C.useState(()=>Eg(d?.mapStr??cu,Jn,fr)),[p,g]=C.useState(()=>[...d?.seats??uu]),[x,v]=C.useState("wall"),[b,S]=C.useState(!1),[w,k]=C.useState(!1),[j,N]=C.useState(!1),[z,I]=C.useState(1),[A,L]=C.useState(!0),M=Jn,O=fr,T=ee=>{const te=ei();o(te),u(ee);const oe=te.find(le=>le.id===ee);oe&&(h(Eg(oe.mapStr,Jn,fr)),g([...oe.seats])),N(!1)};C.useEffect(()=>{const ee=new Image;ee.crossOrigin="anonymous",ee.onload=()=>{n.current=ee,S(!0)},ee.onerror=()=>{n.current=null,S(!0)},ee.src=_4},[]);const $=C.useCallback(()=>{const ee=t.current;if(!ee)return;const te=ee.getContext("2d");if(!te)return;const oe=M*R,le=O*R;ee.width=oe,ee.height=le,te.clearRect(0,0,oe,le),n.current?te.drawImage(n.current,0,0,oe,le):(te.fillStyle="#3d3d3d",te.fillRect(0,0,oe,le));for(let he=0;he{$()},[$]);const G=ee=>{const te=t.current;if(!te)return null;const oe=te.getBoundingClientRect(),le=te.width/oe.width,he=te.height/oe.height,Ie=Math.floor((ee.clientX-oe.left)*le/R),xe=Math.floor((ee.clientY-oe.top)*he/R);return Ie<0||Ie>=M||xe<0||xe>=O?null:{c:Ie,r:xe}},P=C.useCallback((ee,te)=>{if(N(!1),x==="seat")g(oe=>{const le=oe.findIndex(([he,Ie])=>he===ee&&Ie===te);return le>=0?oe.filter((he,Ie)=>Ie!==le):[...oe,[ee,te]]}),h(oe=>{if(oe[te]?.[ee]===1){const le=oe.map(he=>[...he]);return le[te][ee]=0,le}return oe});else{const oe=x==="wall"?1:0;h(le=>{if(le[te]?.[ee]===oe)return le;const he=le.map(Ie=>[...Ie]);return he[te][ee]=oe,he}),x==="wall"&&g(le=>le.filter(([he,Ie])=>!(he===ee&&Ie===te)))}},[x]),F=ee=>{if(ee.button!==0)return;i.current=!0;const te=G(ee);te&&P(te.c,te.r)},V=ee=>{if(!i.current||x==="seat")return;const te=G(ee);te&&P(te.c,te.r)},Y=()=>{i.current=!1},U=()=>{const ee=rS(m);e.rebuildOfficeCollision(a,ee,p),N(!0),o(ei()),setTimeout(()=>N(!1),2e3)},Q=()=>k(ee=>!ee),W=()=>{h(Eg(cu,Jn,fr)),g([...uu]),N(!1)},q=(()=>{const te=rS(m).map((le,he)=>` '${le}', // ${he}`).join(` +`),oe=p.map(([le,he])=>` [${le}, ${he}],`).join(` +`);return`const MAP_STR: string[] = [ +${te} +] + +const SEATS: [number, number][] = [ +${oe} +]`})(),J=()=>I(ee=>Math.min(ee+.25,3)),D=()=>I(ee=>Math.max(ee-.25,.5)),Z=m.flat().filter(ee=>ee===1).length,ie=m.flat().filter(ee=>ee===0).length;return c.jsxs("div",{className:"collision-editor",children:[c.jsxs("div",{className:"ce-toolbar",children:[c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsx("span",{className:"ce-title",children:"Map Editor"}),c.jsx("select",{className:"ce-office-select",value:a,onChange:ee=>T(ee.target.value),children:r.map(ee=>c.jsx("option",{value:ee.id,children:ee.name},ee.id))})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsxs("button",{className:`ce-mode-btn ${x==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[c.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),c.jsxs("button",{className:`ce-mode-btn ${x==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[c.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),c.jsxs("button",{className:`ce-mode-btn ${x==="seat"?"active seat":""}`,onClick:()=>v("seat"),children:[c.jsx("span",{className:"ce-mode-dot seat"})," Seat"]})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsx("button",{className:"ce-btn",onClick:D,children:"-"}),c.jsxs("span",{className:"ce-zoom-label",children:[Math.round(z*100),"%"]}),c.jsx("button",{className:"ce-btn",onClick:J,children:"+"}),c.jsx("button",{className:`ce-btn${A?" active":""}`,onClick:()=>L(ee=>!ee),children:"Grid"})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsx("button",{className:`ce-btn apply${j?" success":""}`,onClick:U,children:j?"Applied":"Apply"}),c.jsx("button",{className:`ce-btn${w?" active":""}`,onClick:Q,children:"Export"}),c.jsx("button",{className:"ce-btn danger",onClick:W,children:"Reset"})]}),c.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[c.jsxs("span",{children:["Walls: ",Z]}),c.jsxs("span",{children:["Floor: ",ie]}),c.jsxs("span",{children:["Seats: ",p.length]})]})]}),c.jsxs("div",{className:"ce-body",children:[c.jsx("div",{className:"ce-canvas-wrap",style:{overflow:"auto"},children:c.jsx("canvas",{ref:t,style:{width:M*R*z,height:O*R*z,imageRendering:"pixelated",cursor:x==="seat"?"crosshair":"cell"},onMouseDown:F,onMouseMove:V,onMouseUp:Y,onMouseLeave:Y})}),w&&c.jsxs("div",{className:"ce-export-panel",children:[c.jsxs("div",{className:"ce-export-header",children:[c.jsx("span",{children:"Export — copy to source code"}),c.jsx("button",{className:"ce-btn",onClick:()=>navigator.clipboard.writeText(q),children:"Copy"})]}),c.jsx("textarea",{className:"ce-export-textarea",value:q,readOnly:!0,rows:20})]})]})]})}let S4=0;function yi(e,t,n={}){return{event_id:`test-${++S4}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function qn(e){return new Promise(t=>setTimeout(t,e))}async function w4(e){const t=[],n=e.getScene();if(!n)return t.push({name:"scene-ready",pass:!1,detail:"OfficeScene not initialized"}),t;console.log("%c[EventTest] Starting full event test suite (multi-office)...","color: #6366f1; font-weight: bold");for(const T of[...n.agents.keys()])n.removeAgent(T);await qn(100);const i=ei();t.push({name:"offices-loaded",pass:i.length>=3,detail:`${i.length} offices loaded: ${i.map(T=>T.name).join(", ")}`});const r=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const T of r)e.pushEvent(yi("agent_active",T));await qn(300);const o=new Set;let a=!1;for(const T of r){const $=n.getAgent(T);$&&$.seatId&&(o.has($.seatId)&&(a=!0),o.add($.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===r.length,detail:`Assigned ${o.size} unique seats to ${r.length} agents. IDs: [${[...o].join(", ")}]`});const u=r.every(T=>n.getAgent(T)?.officeId!=null);t.push({name:"agents-have-officeId",pass:u,detail:r.map(T=>`${T}=${n.getAgent(T)?.officeId}`).join(", ")}),e.pushEvent(yi("tool_start","agent-A",{tool_name:"shell"})),await qn(200);const d=n.getAgent("agent-A");t.push({name:"tool_start-state",pass:d.isActive===!0&&d.currentTool==="shell",detail:`isActive=${d.isActive}, currentTool=${d.currentTool}`}),e.pushEvent(yi("tool_done","agent-A",{tool_name:"shell"})),await qn(100),t.push({name:"tool_done-celebrate",pass:d.agentState==="celebrate",detail:`state=${d.agentState}`});for(let T=0;T<20&&d.agentState==="celebrate";T++)await qn(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(yi("waiting","agent-B")),await qn(200);const m=n.getAgent("agent-B");t.push({name:"waiting-state",pass:m.isActive===!1&&(m.agentState==="walk"||m.agentState==="idle"||m.agentState==="coffee"),detail:`isActive=${m.isActive}, state=${m.agentState}`}),e.pushEvent(yi("reflect_start","agent-C")),await qn(200);const h=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:h.currentTool==="Reflect"&&(h.agentState==="walk"||h.agentState==="reflect"),detail:`currentTool=${h.currentTool}, state=${h.agentState}`}),e.pushEvent(yi("reflect_done","agent-C")),await qn(100),t.push({name:"reflect_done-celebrate",pass:h.agentState==="celebrate",detail:`state=${h.agentState}`});const p=["agent-A","agent-B","agent-C","agent-D"];for(const T of p)e.pushEvent(yi("collab_started",T));await qn(4e3);const g=new Map;let x=!1;for(const T of p){const $=n.getAgent(T);if(!$)continue;const G=$.getTilePos(),P=`${G.x},${G.y}`;g.has(P)&&(x=!0),g.set(P,T)}t.push({name:"collab-no-overlap",pass:!x,detail:`${p.length} agents, ${g.size} unique positions`});for(const T of p)e.pushEvent(yi("collab_ended",T));await qn(100);const v=p.every(T=>n.getAgent(T)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:p.map(T=>`${T}=${n.getAgent(T)?.agentState}`).join(", ")}),await qn(3e3),e.pushEvent(yi("practice_start","agent-E",{target_domain:"TypeScript"})),await qn(200);const b=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:b.currentTool==="Practice"&&(b.agentState==="walk"||b.agentState==="practice"),detail:`currentTool=${b.currentTool}, state=${b.agentState}`}),e.pushEvent(yi("practice_done","agent-E")),await qn(100),t.push({name:"practice_done-celebrate",pass:b.agentState==="celebrate",detail:`state=${b.agentState}`}),await qn(3e3),e.pushEvent(yi("task_delegated","agent-A",{target:"agent-B"})),await qn(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(yi("delegation_done","agent-A",{target:"agent-B"})),await qn(300),t.push({name:"delegation_done-return",pass:["idle","walk","type"].includes(d.agentState),detail:`state=${d.agentState}`});const S=n.getAgent("agent-F");e.pushEvent(yi("message_in","agent-F",{content_preview:"Hello test"})),await qn(200),t.push({name:"message_in-active",pass:S.isActive===!0,detail:`isActive=${S.isActive}, state=${S.agentState}`}),e.pushEvent(yi("message_out","agent-F",{content_preview:"Reply test"})),await qn(100),t.push({name:"message_out-bubble",pass:S.bubbleText?.includes("Reply")===!0,detail:`bubble="${S.bubbleText}"`}),e.pushEvent(yi("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await qn(200);const w=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:w!=null&&w.isSubagent===!0,detail:`created=${!!w}, isSubagent=${w?.isSubagent}`}),e.pushEvent(yi("subagent_done","subagent-test-1")),await qn(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(yi("task_routed","agent-E",{method:"auto"})),await qn(200),t.push({name:"task_routed-active",pass:b.isActive===!0,detail:`isActive=${b.isActive}, state=${b.agentState}`}),e.pushEvent(yi("agent_removed","agent-F")),await qn(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(yi("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await qn(4e3);const k=new Map;let j=!1;for(const T of["agent-A","agent-B","agent-C"]){const $=n.getAgent(T);if(!$)continue;const G=$.getTilePos(),P=`${G.x},${G.y}`;k.has(P)&&(j=!0),k.set(P,T)}t.push({name:"crystal-no-overlap",pass:!j,detail:`3 agents, ${k.size} unique positions`});const N=new Map;let z=!1;for(const T of n.agents.values())T.seatId&&(N.has(T.seatId)&&(z=!0),N.set(T.seatId,T.agentId));t.push({name:"desk-seat-no-conflict",pass:!z,detail:`${N.size} desk seats assigned, conflict=${z}`});const I=n.getAgent("agent-D");if(I){const T=I.officeId,$=i.find(P=>P.id!==T)??i[1];e.assignAgentToOffice("agent-D",$.id),await qn(300);const G=I.officeId;t.push({name:"reassign-office",pass:G===$.id&&G!==T,detail:`${T} → ${G} (expected ${$.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const A=new Map;let L=!1;for(const T of n.agents.values())T.seatId&&(A.has(T.seatId)&&(L=!0),A.set(T.seatId,T.agentId));t.push({name:"cross-office-seat-unique",pass:!L,detail:`${A.size} seats, conflict=${L}`});const M=t.filter(T=>T.pass).length,O=t.filter(T=>!T.pass).length;console.log(""),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold"),console.log(`%c[EventTest] Results: ${M} passed, ${O} failed, ${t.length} total`,`color: ${O>0?"#f87171":"#34d399"}; font-weight: bold`),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold");for(const T of t){const $=T.pass?"✅":"❌",G=T.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${$} ${T.name}: ${T.detail}`,G)}return t}function C4(e){window.__runEventTests=()=>w4(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const j4={queued:"todo",ready:"todo",ready_for_rework:"todo",waiting_dependencies:"todo",running:"in-progress",waiting_for_peer:"in-progress",waiting_for_children:"in-progress",paused:"in-progress",needs_attention:"in-progress",awaiting_manager_review:"in-review",awaiting_human:"in-review",approved:"done",failed:"done",cancelled:"done"};function E4(e){return e?j4[e]??"todo":"todo"}function N4(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function I4(e,t){switch(t.type){case"SET":return t.boards;case"UPDATE_NAME":return e.map(n=>n.id===t.boardId?{...n,name:t.name}:n);default:return e}}function T4(e,t){return t.type==="SET"?t.columns:e}function R4(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(i=>i.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(i=>i.id===t.id?{...i,...t.partial,updatedAt:n}:i);case"DELETE":return e.filter(i=>i.id!==t.id);case"MOVE":return e.map(i=>i.id===t.id?{...i,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:i);case"ASSIGN":return e.map(i=>i.id===t.taskId?{...i,assigneeIds:t.agentIds,updatedAt:n}:i);case"REMOVE_ASSIGNEE":return e.map(i=>i.assigneeIds.includes(t.agentId)?{...i,assigneeIds:i.assigneeIds.filter(r=>r!==t.agentId),updatedAt:n}:i);default:return e}}function A4(){const[e,t]=C.useReducer(I4,[]),[n,i]=C.useReducer(T4,[]),[r,o]=C.useReducer(R4,[]),[a,u]=C.useState(null),[d,m]=C.useState("default"),h=C.useMemo(()=>e.find(A=>A.id===a)??null,[e,a]),p=C.useMemo(()=>n.filter(A=>A.boardId===a).sort((A,L)=>A.sortOrder-L.sortOrder),[n,a]),g=C.useMemo(()=>{const A=r.filter(M=>M.boardId===a),L={};for(const M of p)L[M.id]=[];for(const M of A){const O=M.phase?E4(M.phase):M.columnId;L[O]&&L[O].push(M)}for(const M of Object.keys(L))L[M].sort((O,T)=>O.sortOrder-T.sortOrder);return L},[r,a,p]),x=C.useCallback(A=>{const L=e.find($=>$.id===A.boardId),M=L?.nextTaskNum??1,O=L?.prefix??"T",T={id:A.taskId??`task-${N4()}`,displayId:A.displayId??`${O}-${String(M).padStart(3,"0")}`,boardId:A.boardId,columnId:A.columnId,title:A.title,description:A.description,priority:A.priority??null,assigneeIds:A.assigneeIds??[],tags:A.tags??[],sortOrder:M,createdAt:Date.now(),updatedAt:Date.now()};return o({type:"ADD",task:T}),T},[e]),v=C.useCallback((A,L)=>o({type:"UPDATE",id:A,partial:L}),[]),b=C.useCallback(A=>o({type:"DELETE",id:A}),[]),S=C.useCallback((A,L,M)=>o({type:"MOVE",id:A,columnId:L,sortOrder:M}),[]),w=C.useCallback((A,L)=>o({type:"ASSIGN",taskId:A,agentIds:L}),[]),k=C.useCallback(()=>{const A=new Set(n.filter(L=>L.isTerminal).map(L=>L.id));return r.filter(L=>!A.has(L.columnId)).length},[r,n]),j=C.useCallback(A=>{o({type:"REMOVE_ASSIGNEE",agentId:A})},[]),N=C.useCallback((A,L,M,O,T)=>{const $=A||"default",G=$!==d,P=!G&&!!T?.preserveTasksWhenIncomingEmpty&&O.length===0;m($),t({type:"SET",boards:L}),i({type:"SET",columns:M}),o({type:"SET",tasks:P?r:O}),u(F=>!G&&F&&L.some(V=>V.id===F)?F:null)},[d,r]),z=C.useCallback(A=>{u(A)},[]),I=C.useCallback((A,L)=>{t({type:"UPDATE_NAME",boardId:A,name:L})},[]);return C.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:r,activeBoardId:a,activeBoard:h,activeBoardColumns:p,tasksByColumn:g,setActiveBoard:z,createTask:x,updateTask:v,deleteTask:b,moveTask:S,assignTask:w,dispatchTask:o,getOpenTaskCount:k,removeAssignee:j,initFromBackend:N,updateBoardName:I}),[d,e,n,r,a,h,p,g,z,x,v,b,S,w,o,k,j,N,I])}var Om=dE();const M4=ya(Om);function Ja(e,t,n){let i=n.initialDeps??[],r,o=!0;function a(){var u,d,m;let h;n.key&&((u=n.debug)!=null&&u.call(n))&&(h=Date.now());const p=e();if(!(p.length!==i.length||p.some((v,b)=>i[b]!==v)))return r;i=p;let x;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(x=Date.now()),r=t(...p),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-h)*100)/100,b=Math.round((Date.now()-x)*100)/100,S=b/16,w=(k,j)=>{for(k=String(k);k.length{i=u},a}function pS(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const D4=(e,t)=>Math.abs(e-t)<1.01,O4=(e,t,n)=>{let i;return function(...r){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,r),n)}},hS=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},L4=e=>e,z4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let r=t;r<=n;r++)i.push(r);return i},P4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;const r=a=>{const{width:u,height:d}=a;t({width:Math.round(u),height:Math.round(d)})};if(r(hS(n)),!i.ResizeObserver)return()=>{};const o=new i.ResizeObserver(a=>{const u=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){r({width:m.inlineSize,height:m.blockSize});return}}r(hS(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(u):u()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},gS={passive:!0},yS=typeof window>"u"?!0:"onscrollend"in window,B4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;let r=0;const o=e.options.useScrollendEvent&&yS?()=>{}:O4(i,()=>{t(r,!1)},e.options.isScrollingResetDelay),a=h=>()=>{const{horizontal:p,isRtl:g}=e.options;r=p?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(r,h)},u=a(!0),d=a(!1);n.addEventListener("scroll",u,gS);const m=e.options.useScrollendEvent&&yS;return m&&n.addEventListener("scrollend",d,gS),()=>{n.removeEventListener("scroll",u),m&&n.removeEventListener("scrollend",d)}},$4=(e,t,n)=>{if(t?.borderBoxSize){const i=t.borderBoxSize[0];if(i)return Math.round(i[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},H4=(e,{adjustments:t=0,behavior:n},i)=>{var r,o;const a=e+t;(o=(r=i.scrollElement)==null?void 0:r.scrollTo)==null||o.call(r,{[i.options.horizontal?"left":"top"]:a,behavior:n})};class F4{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var n,i,r;return((r=(i=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:i.now)==null?void 0:r.call(i))??Date.now()},this.observer=(()=>{let n=null;const i=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(r=>{r.forEach(o=>{const a=()=>{const u=o.target,d=this.indexFromElement(u);if(!u.isConnected){this.observer.unobserve(u);return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(u,o,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));return{disconnect:()=>{var r;(r=i())==null||r.disconnect(),n=null},observe:r=>{var o;return(o=i())==null?void 0:o.observe(r,{box:"border-box"})},unobserve:r=>{var o;return(o=i())==null?void 0:o.unobserve(r)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([i,r])=>{typeof r>"u"&&delete n[i]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:L4,rangeExtractor:z4,onChange:()=>{},measureElement:$4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var i,r;(r=(i=this.options).onChange)==null||r.call(i,this,n)},this.maybeNotify=Ja(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const i=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==i){if(this.cleanup(),!i){this.maybeNotify();return}this.scrollElement=i,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(r=>{this.observer.observe(r)}),this.unsubs.push(this.options.observeElementRect(this,r=>{this.scrollRect=r,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(r,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,i)=>{const r=new Map,o=new Map;for(let a=i-1;a>=0;a--){const u=n[a];if(r.has(u.lane))continue;const d=o.get(u.lane);if(d==null||u.end>d.end?o.set(u.lane,u):u.enda.end===u.end?a.index-u.index:a.end-u.end)[0]:void 0},this.getMeasurementOptions=Ja(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,i,r,o,a,u)=>(this.prevLanes!==void 0&&this.prevLanes!==u&&(this.lanesChangedFlag=!0),this.prevLanes=u,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:u}),{key:!1}),this.getMeasurements=Ja(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:u},d)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>n)for(const g of this.laneAssignments.keys())g>=n&&this.laneAssignments.delete(g);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(g=>{this.itemSizeCache.set(g.key,g.size)}));const m=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===n&&(this.lanesSettling=!1);const h=this.measurementsCache.slice(0,m),p=new Array(u).fill(void 0);for(let g=0;g1){b=v;const N=p[b],z=N!==void 0?h[N]:void 0;S=z?z.end+this.options.gap:i+r}else{const N=this.options.lanes===1?h[g-1]:this.getFurthestMeasurement(h,g);S=N?N.end+this.options.gap:i+r,b=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,b)}const w=d.get(x),k=typeof w=="number"?w:this.options.estimateSize(g),j=S+k;h[g]={index:g,start:S,size:k,end:j,key:x,lane:b},p[b]=g}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ja(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,i,r,o)=>this.range=n.length>0&&i>0?V4({measurements:n,outerSize:i,scrollOffset:r,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ja(()=>{let n=null,i=null;const r=this.calculateRange();return r&&(n=r.startIndex,i=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,i]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,i]},(n,i,r,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:i,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const i=this.options.indexAttribute,r=n.getAttribute(i);return r?parseInt(r,10):(console.warn(`Missing attribute name '${i}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var i;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const r=this.scrollState.index??((i=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:i.index);if(r!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,r-o),u=Math.min(this.options.count-1,r+o);return n>=a&&n<=u}return!0},this.measureElement=n=>{if(!n){this.elementsCache.forEach((a,u)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(u))});return}const i=this.indexFromElement(n),r=this.options.getItemKey(i),o=this.elementsCache.get(r);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(r,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,i)=>{var r;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,u=i-a;u!==0&&(((r=this.scrollState)==null?void 0:r.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,u,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,i)=>{const r=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const i=this.getMeasurements();if(i.length!==0)return pS(i[kE(0,i.length-1,r=>pS(i[r]).start,n)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const n=this.scrollElement.document.documentElement;return this.options.horizontal?n.scrollWidth-this.scrollElement.innerWidth:n.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(n,i,r=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();i==="auto"&&(i=n>=a+o?"end":"start"),i==="center"?n+=(r-o)/2:i==="end"&&(n-=o);const u=this.getMaxScrollOffset();return Math.max(Math.min(u,n),0)},this.getOffsetForIndex=(n,i="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const r=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(i==="auto")if(a.end>=o+r-this.options.scrollPaddingEnd)i="end";else if(a.start<=o+this.options.scrollPaddingStart)i="start";else return[o,i];if(i==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),i];const u=i==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(u,i,a.size),i]},this.scrollToOffset=(n,{align:i="start",behavior:r="auto"}={})=>{const o=this.getOffsetForAlignment(n,i),a=this.now();this.scrollState={index:null,align:i,behavior:r,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:i="auto",behavior:r="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,i);if(!o)return;const[a,u]=o,d=this.now();this.scrollState={index:n,align:u,behavior:r,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:i="auto"}={})=>{const r=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:i,startedAt:o,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const i=this.getMeasurements();let r;if(i.length===0)r=this.options.paddingStart;else if(this.options.lanes===1)r=((n=i[i.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=i.length-1;for(;a>=0&&o.some(u=>u===null);){const u=i[a];o[u.lane]===null&&(o[u.lane]=u.end),a--}r=Math.max(...o.filter(u=>u!==null))}return Math.max(r-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:i,behavior:r})=>{this.options.scrollToFn(n,{behavior:r,adjustments:i},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(t)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const i=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,r=i?i[0]:this.scrollState.lastTargetOffset,o=1,a=r!==this.scrollState.lastTargetOffset;if(!a&&D4(r,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=r,this.scrollState.behavior="auto",this._scrollToOffset(r,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const kE=(e,t,n,i)=>{for(;e<=t;){const r=(e+t)/2|0,o=n(r);if(oi)t=r-1;else return r}return e>0?e-1:0};function V4({measurements:e,outerSize:t,scrollOffset:n,lanes:i}){const r=e.length-1,o=d=>e[d].start;if(e.length<=i)return{startIndex:0,endIndex:r};let a=kE(0,r,o,n),u=a;if(i===1)for(;u1){const d=Array(i).fill(0);for(;uh=0&&m.some(h=>h>=n);){const h=e[a];m[h.lane]=h.start,a--}a=Math.max(0,a-a%i),u=Math.min(r,u+(i-1-u%i))}return{startIndex:a,endIndex:u}}const xS=typeof document<"u"?C.useLayoutEffect:C.useEffect;function U4({useFlushSync:e=!0,...t}){const n=C.useReducer(()=>({}),{})[1],i={...t,onChange:(o,a)=>{var u;e&&a?Om.flushSync(n):n(),(u=t.onChange)==null||u.call(t,o,a)}},[r]=C.useState(()=>new F4(i));return r.setOptions(i),xS(()=>r._didMount(),[]),xS(()=>r._willUpdate()),r}function q4(e){return U4({observeElementRect:P4,observeElementOffset:B4,scrollToFn:H4,...e})}function G4(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M12 2C9.5 2 7.5 3.5 7 5.5C5 5.5 3 7.5 3 10C3 12 4.5 13.5 6 14V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V14C19.5 13.5 21 12 21 10C21 7.5 19 5.5 17 5.5C16.5 3.5 14.5 2 12 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M12 2V8M8 6H16M12 14V18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Lm(){return c.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94L6.73 20.15a2.12 2.12 0 0 1-3-3l6.72-6.72a6 6 0 0 1 7.94-7.94L14.7 6.3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function SE(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"3",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("rect",{x:"8",y:"8",width:"8",height:"8",rx:"1.5",fill:"currentColor"})]})}function W4(){return c.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M5 12L3 3L21 12L3 21L5 12ZM5 12H13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function zm(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Vl(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M20 6L9 17L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function Y4(){return c.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M13 8H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M17 12H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function X4(){return c.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66L9.41 17.41a2 2 0 0 1-2.83-2.83l8.49-8.49",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function ds({down:e}){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",style:{transition:"transform 200ms",transform:e?"rotate(90deg)":"none"},children:c.jsx("path",{d:"M9 18L15 12L9 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function K4(){return c.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M12 5V19M5 12H19",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function Qv(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("circle",{cx:"11",cy:"11",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("path",{d:"M21 21L16.65 16.65",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Z4(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M3 6H5H21",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6L18.13 20.11A2 2 0 0 1 16.14 22H7.86a2 2 0 0 1-2-1.89L5 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Q4(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"})]})}function wE(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M22 12H18L15 21L9 3L6 12H2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function bu(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function kl(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function CE(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M5 12h14",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"m12 5 7 7-7 7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})}function J4(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M9 11L12 14L22 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M21 12V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function vS(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M13 2L3 14H12L11 22L21 10H12L13 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Pm(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M4 18H10V14H4V18Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M8 14H14V10H8V14Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M12 10H18V6H12V10Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M18 8L21 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function eD(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M9 12L11 14L15 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function tD(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Hc(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("path",{d:"M12 6V12L16 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Zf(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M7 17L2 12L7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M17 7L22 12L17 17",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M2 12H22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Sl(){return c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M12 2V22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("circle",{cx:"12",cy:"6",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("circle",{cx:"12",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("circle",{cx:"12",cy:"18",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),c.jsx("path",{d:"M14 6H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M14 12H18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),c.jsx("path",{d:"M14 18H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Bm(){return c.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:c.jsx("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function bS({size:e=12}={}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[c.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function nD({size:e=14}={}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[c.jsx("circle",{cx:"12",cy:"8",r:"5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M20 21a8 8 0 0 0-16 0",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function iD({size:e=14}={}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M10 6h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M10 10h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M10 14h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M10 18h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function rD({size:e=14}={}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[c.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),c.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}const al=new Set(["done","failed","cancelled"]),sD=new Set(["company","org","custom"]),oD=new Set(["idle","done","failed","cancelled"]);function $m(e){return al.has(e.status)?"idle":e.agentStatus==="reflecting"||e.agentStatus==="tool_active"?e.agentStatus:e.runtimeControlState&&e.runtimeControlState!=="running"&&e.runtimeControlState!=="suspending"&&e.runtimeControlState!=="resuming"?"idle":e.status==="running"?"reflecting":"idle"}function fs(e){return $m(e)!=="idle"}function aD(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return sD.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function lD(e,t){if(!aD(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(oD.has(n)){const i=e?.runtimeControlState;return i==="suspending"||i==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function Ag(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function _S(e){return Math.max(0,Math.min(Math.round(e),100))}function jE(e){const t=Ag(e?.contextTokens),n=Ag(e?.contextWindow),i=Ag(e?.contextRemainingPct),r=typeof t=="number"?Math.max(0,Math.round(t)):void 0,o=typeof n=="number"&&n>0?Math.max(1,Math.round(n)):void 0,a=typeof i=="number"?_S(i):void 0;if(typeof r=="number"&&typeof o=="number"){const u=Math.min(r,o),d=_S(u/o*100);return{usedPct:d,remainingPct:100-d,usedTokens:u,windowTokens:o}}if(typeof a=="number"&&typeof o=="number"){const u=100-a;return{usedPct:u,remainingPct:a,usedTokens:Math.round(u/100*o),windowTokens:o}}return typeof o=="number"?{usedPct:0,remainingPct:100,usedTokens:0,windowTokens:o}:typeof a=="number"?{remainingPct:a}:typeof r=="number"?{usedTokens:r}:{}}const cD=new Set(["runtime_v2_assistant","runtime_v2_company_assistant","child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]);function Hm(e){const t=e??{};for(const n of["canonical_turn_id","conversation_turn_id","turn_id","execution_turn_id"]){const i=String(t[n]??"").trim();if(i)return i}return""}function Qf(e){if(e.sender==="user")return"";const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!cD.has(n))return"";if(n==="runtime_v2_company_assistant"){const i=String(t.ui_message_id??"").trim();if(!(t.company_final_turn===!0||!!String(t.result_delivery_id??"").trim()||i.startsWith("runtime-v2-company-assistant-final:")||String(t.detail_visibility??"").trim()==="summary"))return""}return Hm(t)}const uD=new Set(["child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]),Jx=new Set(["runtime_v2_assistant","runtime_v2_company_assistant"]);function sa(e,...t){for(const n of t){const i=String(e[n]??"").trim();if(i)return i}return""}function dD(e,t){const i=sa(e,"result_attempt","attempt","attempt_index","retry_count","retryCount")||(t.endsWith("_retry")?"retry":""),r=sa(e,"result_revision","delivery_revision","revision");return[i?`attempt:${i}`:"",r?`revision:${r}`:""].filter(Boolean).join(":")}function Mg(e,t,n){const i=dD(t,n);return i?`${e}:${i}`:e}function EE(e){const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!uD.has(n)&&!Jx.has(n))return"";const i=sa(t,"canonical_delivery_id","result_delivery_id","delivery_id");if(i)return`delivery:${i}`;if(Jx.has(n)){const d=Hm(t);return d?`turn:${d}`:""}const o=sa(t,"source_task_id","child_task_id")||(n==="top_level_reply"?"":sa(t,"task_id","taskId"));if(o)return Mg(`source-task:${o}`,t,n);const a=sa(t,"work_item_id","work_item_projection_id");if(a)return Mg(`work-item:${a}`,t,n);const u=sa(t,"child_session_id");return u?Mg(`child-session:${u}`,t,n):""}function Jv(e){const t=e.metadata??{},n=String(t.checkpoint_id??"").trim();if(n)return`checkpoint:${n}`;const i=String(t.ui_message_id??"").trim(),r=String(t.transcript_kind??t.kind??"").trim(),o=String(t.role??"").trim().toLowerCase(),a=e.sender==="user"||o==="user"||r==="runtime_v2_user_turn"||r==="top_level_user_turn";if(a&&i)return`ui:${i}`;const u=String(t.ui_timeline_id??"").trim();if(u)return u;const d=Jx.has(r)?Qf(e):"";if(!a&&d)return`turn:assistant:${d}`;const m=EE(e);return!a&&m?`result:${m}`:`message:${e.id}`}const fD=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,mD=/(\d{1,3})%\s*used/i,pD=/(\d{1,3})%\s*remaining/i;function e0(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function hD(e){return e.replace(/\s+/g," ").trim()}function gD(e){let t=String(e||"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(i=>i.trimEnd()).join(` +`).replace(/\n{3,}/g,` + +`).trim();for(;;){const i=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!i)break;const r=i[2].trim();if(r.length<80||r===t)break;t=r}const n=t.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return n.length>1&&/^Verification:\s/i.test(n[n.length-1])&&(t=n.slice(0,-1).join(` + +`).trim()),hD(t).slice(0,2e3)}function ev(e){const t=e.metadata??{};switch(String(t.transcript_kind??t.kind??"").trim()){case"child_task_result":return 80;case"child_task_result_retry":return 79;case"company_role_result":return 75;case"company_role_result_retry":return 74;case"child_result":return 70;case"runtime_v2_assistant":return 60;case"runtime_v2_company_assistant":return 20;case"top_level_reply":return 40}return String(t.kind??"").trim()==="worker_notification"?20:0}function kS(e){return String(e.content??"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(t=>t.trimEnd()).join(` +`).trim().length}function SS(e){const t=e.metadata??{};let n=0;return String(t.source??"").trim()==="engine"&&(n+=4),String(t.source_result_message_id??"").trim()&&(n+=2),(t.authoritative_output===!0||t.canonical_result===!0)&&(n+=1),n}function yD(e,t){const n=[[ev(e),ev(t)],[SS(e),SS(t)],[kS(e),kS(t)]];for(const[o,a]of n)if(o!==a)return o>a?1:-1;const i=e.id.localeCompare(t.id);if(i!==0)return i;const r=e.content.localeCompare(t.content);return r!==0?r:e.timestamp===t.timestamp?0:e.timestamp>t.timestamp?1:-1}function NE(e){if(ev(e)<=0)return"";const t=EE(e);if(t)return`result:${t}`;const n=gD(e.content);return n?`result:${n}`:""}function cf(e){if(!e)return;const t=e.replace(/,/g,"").trim();if(!t)return;const n=Number(t);return Number.isFinite(n)?Math.max(0,Math.round(n)):void 0}function wS(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function wl(e){if(!e)return;const t=String(e.execMode??"").trim();if(!(t==="company"||t==="org"||t==="custom"||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems))return;const i=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(i.length===0)return;const r=i.map(o=>o.aggregatedStatus);if(r.some(o=>o==="active"))return"running";if(r.some(o=>o==="waiting")||r.some(o=>o==="pending"))return"pending";if(r.every(o=>o==="failed"))return"failed";if(r.every(o=>o==="done")||r.some(o=>o==="done"))return"done"}function xD(e){const t={};for(const n of e??[]){const i=`${n.summary??""} ${n.detail??""}`.trim();if(!i)continue;const r=fD.exec(i);if(r){const u=cf(r[1]),d=cf(r[2]);typeof u=="number"&&(t.contextTokens=u),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=pD.exec(i);if(o){t.contextRemainingPct=wS(cf(o[1]));continue}const a=mD.exec(i);if(a){const u=wS(cf(a[1]));typeof u=="number"&&(t.contextRemainingPct=100-u)}}return t}function Jf(e){const t=xD(e.progressLog),n=e.contextTokens??t.contextTokens,i=e.contextWindow??t.contextWindow,r=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&i===e.contextWindow&&r===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:i,contextRemainingPct:r}}function IE(e){const t=new Set,n=[];for(const i of e)t.has(i.taskId)||(t.add(i.taskId),n.push(i));return n}function vD(e){return!!(String(e?.workItemRoleId??"").trim()||String(e?.workItemRoleName??"").trim())}function Bf(e,t){if(!e||e.mode==="child")return[];const n=new Set;e.sessionId&&n.add(e.sessionId),n.add(e.taskId);const i=String(e.originTaskId??e.taskId??"").trim(),r=new Map;for(const u of e.workItemLog??[]){const d=u.executionTurnId||u.runtimeTaskId;d&&!r.has(d)&&r.set(d,r.size)}const o=new Set;return t.filter(u=>{if(u.taskId===e.taskId||o.has(u.taskId))return!1;const d=!!u.parentSessionId&&n.has(u.parentSessionId),m=r.has(u.taskId),h=!!i&&String(u.originTaskId??"").trim()===i;return!d&&!m&&!h?!1:(o.add(u.taskId),!0)}).sort((u,d)=>{const m=r.get(u.taskId),h=r.get(d.taskId);return m!=null&&h!=null&&m!==h?m-h:m!=null&&h==null?-1:m==null&&h!=null?1:d.updatedAt-u.updatedAt})}function CS(e,t){const n=Bf(e,t);return!e||e.mode==="child"||!vD(e)?n:IE([e,...n])}function em(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const i=new Set;return t.filter(r=>r.taskId===e.taskId||i.has(r.taskId)||String(r.sessionId??"").trim()!==n?!1:(i.add(r.taskId),!0)).sort((r,o)=>o.updatedAt-r.updatedAt)}function bD(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function jS(e){const t=fs(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,i=Math.max(0,e.messageCount??0)*1e4,r=(e.progressLog?.length??0)*100;return n+t+i+r+e.updatedAt}function ES(e){const t=jE(e),n=fs(e)?1e11:0,i=String(e.draftAssistantText??"").trim()?1e10:0,r=typeof t.usedPct=="number"||typeof t.usedTokens=="number"||typeof t.windowTokens=="number"?1e10:0,o=typeof e.inputTokens=="number"||typeof e.outputTokens=="number"||typeof e.totalTokens=="number"?1e9:0,a=Math.max(0,e.messageCount??0)*1e4,u=(e.progressLog?.length??0)*100;return n+i+r+o+a+u}function tm(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=Jf(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const i=t.map(Jf),r=i.filter(p=>p.status!=="cancelled"),o=r.length>0?r:i,a=IE([n,...o]),u=bD(e),d=[...a].sort((p,g)=>jS(g)-jS(p))[0]??n,m=u?n:d,h=[...a].sort((p,g)=>ES(g)-ES(p))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:h,projectedFromChild:!u&&m.taskId!==e.taskId}}function NS(e,t,n){if(!e)return null;const i=Jf(e),r=t??i,o=wl(r)??wl(i),a=nm(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),assigneeIds:r.assigneeIds.length>0?r.assigneeIds:i.assigneeIds,agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,workItemProjectionId:r.workItemProjectionId??i.workItemProjectionId,workItemTurnType:r.workItemTurnType??i.workItemTurnType,companyProfile:i.companyProfile??r.companyProfile,workItemRoleId:i.workItemRoleId??r.workItemRoleId,workItemRoleName:i.workItemRoleName??r.workItemRoleName,workItemGate:i.workItemGate??r.workItemGate,employeeAssignment:i.employeeAssignment??r.employeeAssignment,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,draftAssistantText:r.draftAssistantText??i.draftAssistantText,draftUpdatedAt:r.draftUpdatedAt??i.draftUpdatedAt,draftIteration:r.draftIteration??i.draftIteration,draftTurnId:r.draftTurnId??i.draftTurnId,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a),isCompanyRuntime:!!(i.isCompanyRuntime||r.isCompanyRuntime),workItemLog:(i.workItemLog?.length??0)>0?i.workItemLog:r.workItemLog,roleWorkItems:i.roleWorkItems??r.roleWorkItems,executorRoleWorkItems:i.executorRoleWorkItems??r.executorRoleWorkItems,activeSubagents:i.activeSubagents??r.activeSubagents,permissionRequests:i.permissionRequests??r.permissionRequests}}function _D(e,t,n){if(!e)return null;const i=Jf(e),r=t??i,o=wl(r)??wl(i),a=nm(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a)}}function tv(e){const t=new Set,n=new Map,i=new Map,r=[];for(const o of e)for(const a of o){const u=a.metadata??{},d=String(u.checkpoint_id??"").trim();if(d){const x=i.get(d);if(x!==void 0){const v=r[x],b=a.timestamp>=v.timestamp?a:v,S=a.timestamp0,S=b?a:v,w=b?v:a;r[x]={...w,...S,timestamp:Math.min(v.timestamp,a.timestamp),metadata:{...w.metadata??{},...S.metadata??{},ui_timeline_id:h||Jv(v)}};continue}n.set(h,r.length)}const p=d?`checkpoint:${d}`:"",g=h||p||m||`${a.sender}:${a.replyToId??""}:${a.timestamp}:${a.content.trim()}`;t.has(g)||(t.add(g),d&&i.set(d,r.length),r.push(a))}return r.sort((o,a)=>o.timestamp===a.timestamp?o.id.localeCompare(a.id):o.timestamp-a.timestamp)}function IS(e,t){const n=[];for(const i of e){if(i.channelId===t){e0(i,"summary")&&n.push(i);continue}const r=i.metadata??{},o=String(r.transcript_kind??r.kind??"").trim(),a=String(r.checkpoint_id??"").trim(),u=String(r.checkpoint_type??"").trim(),d=String(r.response_to_checkpoint_id??"").trim();if(a&&u||d){n.push(i);continue}["company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result","top_level_reply"].includes(o)&&n.push(i)}return tv([n])}function TS(e){const t=new Set,n=[];for(const i of e)for(const r of i.progressLog??[]){const o=`${r.timestamp}:${r.type}:${r.summary}:${r.detail??""}`;t.has(o)||(t.add(o),n.push(r))}return n.sort((i,r)=>i.timestamp-r.timestamp)}function nm(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const TE="openopc_locale",kD={"app.page.workspace":"Workspace","app.page.office":"Office","app.page.org":"Org","app.page.mapEditor":"Map editor","app.metric.agents":"agents","app.metric.skills":"skills","app.metric.tasks":"tasks","language.label":"Language","language.english":"EN","language.chinese":"简","outdoor.title":"Outdoor lighting override","outdoor.auto":"Outdoor auto","outdoor.day":"Outdoor day","outdoor.night":"Outdoor night","theme.label":"Color theme","theme.midnight":"Midnight","theme.neon":"Neon","theme.paper":"Paper","theme.retro":"Retro","theme.terminal":"Terminal","theme.cozy":"Cozy","theme.openopc":"OpenOPC","dev.tools":"Developer Tools","dev.connection":"Connection","dev.evolution":"Evolution Pipeline","dev.events":"Events","dev.channels":"Channels","dev.phase.trace":"Trace","dev.phase.reflect":"Reflect","dev.phase.synthesize":"Synthesize","dev.phase.practice":"Practice","dev.phase.lifecycle":"Lifecycle","project.switch":"Switch project","project.new":"New project","project.create":"Create project","project.delete":"Delete project","project.deleteButton":"Del","project.placeholder":"project-name","project.nameInvalid":"Start with a letter or number; then use letters, numbers, hyphens, or underscores","project.policyUnavailable":"Project naming rules are unavailable","project.confirmTitle":'Delete project "{name}"?',"project.confirmBody":"All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone.","common.cancel":"Cancel","common.delete":"Delete","common.yes":"Yes","common.no":"No","common.loading":"Loading...","common.ready":"ready","common.autoSaved":"Auto-saved","common.active":"active","common.idle":"idle","common.general":"general","common.state":"State","common.tool":"Tool","common.task":"Task","common.seat":"Seat","common.role":"Role","common.employee":"Employee","common.manager":"Manager","common.origin":"Origin","common.projection":"Projection","common.gate":"Gate","common.runtime":"Runtime","office.modeHint.org":"Manage your team in the Org tab","office.modeHint.switch":"Switch to Org mode to create or manage agents","office.offices":"Offices","office.activeAgents":"Active Agents","office.rename":"Rename","office.noSeat":"no seat","office.moveHere":"+ Move here","office.characters":"Characters","office.hideSub":"hide sub","office.showSub":"show sub","office.hideSubagents":"Hide sub-agents","office.showSubagents":"Show sub-agents","office.showSidePanel":"Show side panel","office.hideSidePanel":"Hide side panel","office.removeAgent":"Remove {name}","office.deleteQuestion":"Delete?","office.emptyAgents":"No agents yet — click a template above to spawn one.","session.newChat":"New Chat","session.secretary":"Secretary","session.search":"Search...","session.activity":"Activity","session.noSessions":"No sessions yet","session.today":"Today","session.yesterday":"Yesterday","session.earlier":"Earlier","session.runtimeSuffix":"Runtime Sessions","session.justNow":"just now","session.minutes":"{count}m","session.hours":"{count}h","session.days":"{count}d","session.companyRuntime":"Company runtime","session.expand":"Expand","session.collapse":"Collapse","session.subTask":"{count} sub-task","session.subTasks":"{count} sub-tasks","workspace.selectRuntimeSession":"Select a Runtime Session on the left to view its Work Item board.","workspace.noWorkItems":"No work items yet — start delegation to populate this board.","workspace.clickEditTitle":"Click to edit session title","workspace.channel.secretary":"Secretary","workspace.channel.activity":"Activity","workspace.confirmNoRoles":`Your org has no roles defined. + +Set up at least one role before running a task. + +Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. + +Choose one final decider in the Org tab before running a task. + +Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: + +{warnings} + +Run anyway?`,"kanban.addTask":"Add task","kanban.taskTitle":"Task title...","kanban.startTask":"Start task","kanban.startWorkItem":"Start Work Item","kanban.upstreamDeps":"{count} upstream dep(s)","kanban.dep":"{count} dep","kanban.crossOffice":"Cross-office","kanban.executionTurn":"Execution Turn: {id}","kanban.column.Todo":"Todo","kanban.column.In Progress":"In Progress","kanban.column.Done":"Done","kanban.column.Ready":"Ready","kanban.column.Running":"Running","kanban.column.Review":"Review","kanban.column.Approved":"Approved","kanban.status.todo":"To do","kanban.status.in_progress":"In progress","kanban.status.in_review":"In review","kanban.status.done":"Done","kanban.status.running":"Running","kanban.status.idle":"Idle","kanban.status.blocked":"Blocked","kanban.status.awaiting_peer":"Awaiting","kanban.status.awaiting_manager_review":"Mgr Review","kanban.status.awaiting_human":"Human Review","kanban.status.awaiting_review":"In Review","kanban.status.failed":"Failed","kanban.status.cancelled":"Cancelled","agent.status.idle":"Idle","agent.status.reflecting":"Thinking...","agent.status.tool_active":"Running tool","agent.summary.active":"{active}/{total} active","agent.summary.count":"{count} agent","agent.summary.countPlural":"{count} agents","org.loading":"Loading organization data...","org.company":"Company","org.customOrg":"Custom org","org.corporateCompany":"Corporate company","org.kind.saved":"Saved org","org.kind.corporate":"Corporate","org.state.editableSaved":"Editable saved architecture","org.state.editableDraft":"Editable draft architecture","org.state.readOnly":"Built-in read-only architecture","org.organization":"Organization","org.corporate":"Corporate","org.newOrganization":"New organization","org.roles":"roles","org.employees":"employees","org.runtimeTeams":"runtime teams","org.tab.team":"Team","org.tab.runtime":"Runtime","org.tab.architecture":"Architecture","org.tab.employees":"Employees","org.createdToast":"Created {name} and saved automatically","org.architectureApplied":"Architecture applied successfully"},SD={"app.page.workspace":"工作台","app.page.office":"办公室","app.page.org":"组织","app.page.mapEditor":"地图编辑","app.metric.agents":"Agent","app.metric.skills":"技能","app.metric.tasks":"任务","language.label":"语言","language.english":"EN","language.chinese":"简","outdoor.title":"户外光照","outdoor.auto":"户外自动","outdoor.day":"户外白天","outdoor.night":"户外夜晚","theme.label":"配色主题","theme.midnight":"午夜","theme.neon":"霓虹","theme.paper":"纸张","theme.retro":"复古","theme.terminal":"终端","theme.cozy":"舒适","theme.openopc":"OpenOPC","dev.tools":"开发工具","dev.connection":"连接","dev.evolution":"进化流水线","dev.events":"事件","dev.channels":"频道","dev.phase.trace":"追踪","dev.phase.reflect":"反思","dev.phase.synthesize":"合成","dev.phase.practice":"练习","dev.phase.lifecycle":"生命周期","project.switch":"切换项目","project.new":"新建项目","project.create":"创建项目","project.delete":"删除项目","project.deleteButton":"删","project.placeholder":"项目名","project.nameInvalid":"项目 ID 须以字母或数字开头,后续可使用字母、数字、连字符或下划线","project.policyUnavailable":"暂时无法加载项目命名规则","project.confirmTitle":"删除项目“{name}”?","project.confirmBody":"此项目中的所有会话、消息、任务和 Agent 数据都会被永久删除。此操作无法撤销。","common.cancel":"取消","common.delete":"删除","common.yes":"是","common.no":"否","common.loading":"加载中...","common.ready":"就绪","common.autoSaved":"已自动保存","common.active":"活跃","common.idle":"空闲","common.general":"通用","common.state":"状态","common.tool":"工具","common.task":"任务","common.seat":"座位","common.role":"角色","common.employee":"员工","common.manager":"经理","common.origin":"来源","common.projection":"投影","common.gate":"关卡","common.runtime":"运行时","office.modeHint.org":"在“组织”页管理你的团队","office.modeHint.switch":"切换到“组织”模式以创建或管理 Agent","office.offices":"办公室","office.activeAgents":"活跃 Agent","office.rename":"重命名","office.noSeat":"未分配座位","office.moveHere":"+ 移到这里","office.characters":"角色","office.hideSub":"隐藏子项","office.showSub":"显示子项","office.hideSubagents":"隐藏子 Agent","office.showSubagents":"显示子 Agent","office.showSidePanel":"显示侧栏","office.hideSidePanel":"隐藏侧栏","office.removeAgent":"移除 {name}","office.deleteQuestion":"删除?","office.emptyAgents":"还没有 Agent,点击上方模板生成一个。","session.newChat":"新聊天","session.secretary":"秘书","session.search":"搜索...","session.activity":"动态","session.noSessions":"还没有会话","session.today":"今天","session.yesterday":"昨天","session.earlier":"更早","session.runtimeSuffix":"运行时会话","session.justNow":"刚刚","session.minutes":"{count} 分钟","session.hours":"{count} 小时","session.days":"{count} 天","session.companyRuntime":"公司运行时","session.expand":"展开","session.collapse":"折叠","session.subTask":"{count} 个子任务","session.subTasks":"{count} 个子任务","workspace.selectRuntimeSession":"在左侧选择一个运行时会话来查看它的工作项看板。","workspace.noWorkItems":"还没有工作项,开始委派后会填充此看板。","workspace.clickEditTitle":"点击编辑会话标题","workspace.channel.secretary":"秘书","workspace.channel.activity":"动态","workspace.confirmNoRoles":`你的组织还没有定义角色。 + +运行任务前请至少设置一个角色。 + +现在前往“组织”页吗?`,"workspace.confirmNoDecider":`你的组织有多个顶层角色,但尚未选择最终决策者。 + +运行任务前请在“组织”页选择一个最终决策者。 + +现在前往“组织”页吗?`,"workspace.warningNoTeams":"尚未定义运行时团队,系统会根据角色自动生成","workspace.warningVacantRoles":"{count} 个角色没有员工:{names}","workspace.confirmWarnings":`运行此任务前: + +{warnings} + +仍然运行吗?`,"kanban.addTask":"添加任务","kanban.taskTitle":"任务标题...","kanban.startTask":"启动任务","kanban.startWorkItem":"启动工作项","kanban.upstreamDeps":"{count} 个上游依赖","kanban.dep":"{count} 依赖","kanban.crossOffice":"跨办公室","kanban.executionTurn":"执行轮次:{id}","kanban.column.Todo":"待办","kanban.column.In Progress":"进行中","kanban.column.Done":"完成","kanban.column.Ready":"就绪","kanban.column.Running":"运行中","kanban.column.Review":"评审","kanban.column.Approved":"已批准","kanban.status.todo":"待办","kanban.status.in_progress":"进行中","kanban.status.in_review":"评审中","kanban.status.done":"完成","kanban.status.running":"运行中","kanban.status.idle":"空闲","kanban.status.blocked":"阻塞","kanban.status.awaiting_peer":"等待同伴","kanban.status.awaiting_manager_review":"经理评审","kanban.status.awaiting_human":"人工评审","kanban.status.awaiting_review":"评审中","kanban.status.failed":"失败","kanban.status.cancelled":"已取消","agent.status.idle":"空闲","agent.status.reflecting":"思考中...","agent.status.tool_active":"运行工具","agent.summary.active":"{active}/{total} 活跃","agent.summary.count":"{count} 个 Agent","agent.summary.countPlural":"{count} 个 Agent","org.loading":"正在加载组织数据...","org.company":"公司","org.customOrg":"自定义组织","org.corporateCompany":"企业公司","org.kind.saved":"已保存组织","org.kind.corporate":"企业","org.state.editableSaved":"可编辑的已保存架构","org.state.editableDraft":"可编辑草稿架构","org.state.readOnly":"内置只读架构","org.organization":"组织","org.corporate":"企业","org.newOrganization":"新建组织","org.roles":"角色","org.employees":"员工","org.runtimeTeams":"运行时团队","org.tab.team":"团队","org.tab.runtime":"运行时","org.tab.architecture":"架构","org.tab.employees":"员工","org.createdToast":"已创建 {name} 并自动保存","org.architectureApplied":"架构已成功应用"},Dg={en:kD,"zh-CN":SD},RE=C.createContext(null);function wD(){try{const e=localStorage.getItem(TE);if(e==="en"||e==="zh-CN")return e}catch{}try{return navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en"}catch{return"en"}}function CD(e,t){return t?e.replace(/\{(\w+)\}/g,(n,i)=>Object.prototype.hasOwnProperty.call(t,i)?String(t[i]):`{${i}}`):e}function jD({children:e}){const[t,n]=C.useState(()=>wD());C.useEffect(()=>{document.documentElement.lang=t==="zh-CN"?"zh-CN":"en"},[t]);const i=C.useCallback(u=>{n(u);try{localStorage.setItem(TE,u),document.documentElement.lang=u==="zh-CN"?"zh-CN":"en"}catch{}},[]),r=C.useCallback((u,d)=>{const m=Dg[t][u]??Dg.en[u]??u;return CD(m,d)},[t]),o=C.useCallback((u,d)=>{const m=String(d??"").trim();if(!m)return"";const h=`${u}.${m}`;return Dg[t][h]??m},[t]),a=C.useMemo(()=>({locale:t,setLocale:i,t:r,translateMaybe:o}),[t,i,r,o]);return c.jsx(RE.Provider,{value:a,children:e})}function Kr(){const e=C.useContext(RE);if(!e)throw new Error("useI18n must be used within I18nProvider");return e}const ED={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function ND(e){const t=wl(e)??e.status,n=$m({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":ED[t]??"status-pending"}function ID(e,t){const n=Date.now()-e;return n<6e4?t("session.justNow"):n<36e5?t("session.minutes",{count:Math.floor(n/6e4)}):n<864e5?t("session.hours",{count:Math.floor(n/36e5)}):t("session.days",{count:Math.floor(n/864e5)})}function TD(e){const t=new Date,n=new Date(e),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(i.getTime()-864e5);return n>=i?"Today":n>=r?"Yesterday":"Earlier"}function RS(e,t,n){const i=n(e==="Today"?"session.today":e==="Yesterday"?"session.yesterday":"session.earlier");return t?`${i} ${n("session.runtimeSuffix")}`:i}function RD(e){const t=new Map,n=[];for(const i of e)if(i.mode==="child"&&i.parentSessionId){const r=t.get(i.parentSessionId)??[];r.push(i),t.set(i.parentSessionId,r)}else n.push(i);return n.map(i=>({session:i,children:Array.from(new Map([...i.sessionId?t.get(i.sessionId)??[]:[],...t.get(i.taskId)??[]].map(r=>[r.taskId,r])).values())}))}function uf({session:e,isActive:t,isChild:n,isLast:i,unreadCount:r,onSelect:o,onDelete:a}){const{t:u,translateMaybe:d}=Kr(),[m,h]=C.useState(!1),[p,g]=C.useState(!1),x=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,v=wl(e)??e.status;return C.useEffect(()=>{if(!p)return;const b=setTimeout(()=>g(!1),3e3);return()=>clearTimeout(b)},[p]),c.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[n&&c.jsx("span",{className:`session-tree-line${i?" last":""}`}),c.jsx("span",{className:`session-dot ${ND(e)}`}),c.jsxs("div",{className:"session-item-content",children:[c.jsxs("span",{className:"session-item-title",children:[n&&x&&c.jsx("span",{className:"session-agent-tag",children:x}),!n&&e.isCompanyRuntime&&c.jsx("span",{className:"session-runtime-badge",title:u("session.companyRuntime"),children:c.jsx(Pm,{})}),e.title]}),c.jsxs("span",{className:"session-item-meta",children:[d("kanban.status",v)||v," · ",ID(e.updatedAt,u)]})]}),!!r&&r>0&&c.jsx("span",{className:"session-unread-badge",children:r>99?"99+":r}),m&&!n&&!p&&c.jsx("button",{className:"session-delete-btn",onClick:b=>{b.stopPropagation(),g(!0)},title:u("common.delete"),children:c.jsx(Z4,{})}),p&&c.jsxs("span",{className:"session-confirm-delete",onClick:b=>b.stopPropagation(),children:[c.jsx("button",{className:"session-confirm-yes",onClick:()=>{g(!1),a()},children:u("common.delete")}),c.jsx("button",{className:"session-confirm-no",onClick:()=>g(!1),children:u("common.cancel")})]})]})}function AD({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:i,unreadCounts:r,onSelect:o,onCreateSession:a,onDeleteSession:u,onSelectSecretary:d}){const{t:m}=Kr(),[h,p]=C.useState(""),[g,x]=C.useState(new Set),v=e.some(M=>M.isCompanyRuntime||M.mode==="child"||M.execMode==="company"||M.execMode==="org"||M.execMode==="custom"),b=C.useCallback(M=>{x(O=>{const T=new Set(O);return T.has(M)?T.delete(M):T.add(M),T})},[]),S=C.useMemo(()=>{if(!h.trim())return e;const M=h.toLowerCase();return e.filter(O=>O.title.toLowerCase().includes(M))},[e,h]),w=C.useMemo(()=>RD(S),[S]),k=C.useMemo(()=>{const M={Today:[],Yesterday:[],Earlier:[]};for(const O of w){const T=TD(O.session.createdAt);M[T]?.push(O)}return M},[w]),j=C.useMemo(()=>{const M=[];for(const O of["Today","Yesterday","Earlier"]){const T=k[O];if(!(!T||T.length===0)){M.push({kind:"group",group:O});for(const $ of T){M.push({kind:"primary",node:$});const G=$.children.length>0,P=g.has($.session.taskId);G&&P?M.push({kind:"child-count",node:$}):G&&$.children.forEach((F,V)=>{M.push({kind:"child",parentTaskId:$.session.taskId,child:F,childIndex:V,childCount:$.children.length})})}}}return M},[g,k]),N=j.length>120,z=C.useRef(null),I=q4({count:j.length,getScrollElement:()=>z.current,estimateSize:M=>{const O=j[M];return O?.kind==="group"?26:O?.kind==="child-count"?30:54},overscan:8}),A=C.useCallback(M=>{const O=M.children.length>0,T=g.has(M.session.taskId);return c.jsx("div",{className:"session-tree-node",children:c.jsxs("div",{className:"session-tree-primary",children:[O&&c.jsx("button",{className:`session-expand-btn${T?" collapsed":""}`,onClick:$=>{$.stopPropagation(),b(M.session.taskId)},"aria-label":m(T?"session.expand":"session.collapse")}),c.jsx(uf,{session:M.session,isActive:M.session.taskId===t,unreadCount:r?.[M.session.channelId],onSelect:()=>o(M.session.taskId),onDelete:()=>u(M.session.taskId)})]})})},[t,g,u,o,b,r,m]),L=C.useCallback(M=>M.kind==="group"?c.jsx("div",{className:"session-group-label",children:RS(M.group,v,m)}):M.kind==="primary"?A(M.node):M.kind==="child-count"?c.jsx("button",{className:"session-child-count",onClick:()=>b(M.node.session.taskId),children:m(M.node.children.length>1?"session.subTasks":"session.subTask",{count:M.node.children.length})}):c.jsx("div",{className:"session-children",children:c.jsx(uf,{session:M.child,isActive:M.child.taskId===t,isChild:!0,isLast:M.childIndex===M.childCount-1,unreadCount:r?.[M.child.channelId],onSelect:()=>o(M.child.taskId),onDelete:()=>u(M.child.taskId)})}),[t,v,u,o,A,b,r,m]);return c.jsxs("div",{className:"session-sidebar",children:[c.jsxs("button",{className:"session-new-btn",onClick:a,children:[c.jsx(K4,{}),c.jsx("span",{children:m("session.newChat")})]}),d&&c.jsxs("button",{className:`session-nav-btn${n===i?" active":""}`,onClick:d,children:[c.jsx(bu,{}),c.jsx("span",{children:m("session.secretary")}),!!(i&&r?.[i])&&r[i]>0&&c.jsx("span",{className:"session-unread-badge",children:r[i]>99?"99+":r[i]})]}),c.jsxs("div",{className:"session-search-wrap",children:[c.jsx(Qv,{}),c.jsx("input",{className:"session-search",placeholder:m("session.search"),value:h,onChange:M=>p(M.target.value)})]}),c.jsxs("div",{ref:z,className:`session-list${N?" session-list-virtualized":""}`,children:[N?c.jsx("div",{style:{height:I.getTotalSize(),width:"100%",position:"relative"},children:I.getVirtualItems().map(M=>c.jsx("div",{"data-index":M.index,ref:I.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${M.start}px)`},children:L(j[M.index])},M.key))}):["Today","Yesterday","Earlier"].map(M=>{const O=k[M];return!O||O.length===0?null:c.jsxs("div",{className:"session-group",children:[c.jsx("div",{className:"session-group-label",children:RS(M,v,m)}),O.map(T=>{const $=T.children.length>0,G=g.has(T.session.taskId);return c.jsxs("div",{className:"session-tree-node",children:[c.jsxs("div",{className:"session-tree-primary",children:[$&&c.jsx("button",{className:`session-expand-btn${G?" collapsed":""}`,onClick:P=>{P.stopPropagation(),b(T.session.taskId)},"aria-label":m(G?"session.expand":"session.collapse")}),c.jsx(uf,{session:T.session,isActive:T.session.taskId===t,unreadCount:r?.[T.session.channelId],onSelect:()=>o(T.session.taskId),onDelete:()=>u(T.session.taskId)})]}),$&&!G&&c.jsx("div",{className:"session-children",children:T.children.map((P,F)=>c.jsx(uf,{session:P,isActive:P.taskId===t,isChild:!0,isLast:F===T.children.length-1,unreadCount:r?.[P.channelId],onSelect:()=>o(P.taskId),onDelete:()=>u(P.taskId)},P.taskId))}),$&&G&&c.jsx("button",{className:"session-child-count",onClick:()=>b(T.session.taskId),children:m(T.children.length>1?"session.subTasks":"session.subTask",{count:T.children.length})})]},T.session.taskId)})]},M)}),S.length===0&&c.jsx("div",{className:"session-empty",children:m("session.noSessions")})]}),c.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==i?" active":""}`,onClick:()=>o(null),children:[c.jsx(wE,{}),c.jsx("span",{children:m("session.activity")})]})]})}function $i(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var MD=typeof Symbol=="function"&&Symbol.observable||"@@observable",AS=MD,MS=()=>Math.random().toString(36).substring(7).split("").join("."),DD={INIT:`@@redux/INIT${MS()}`,REPLACE:`@@redux/REPLACE${MS()}`},DS=DD;function OD(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function AE(e,t,n){if(typeof e!="function")throw new Error($i(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error($i(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error($i(1));return n(AE)(e,t)}let i=e,r=t,o=new Map,a=o,u=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((S,w)=>{a.set(w,S)}))}function h(){if(d)throw new Error($i(3));return r}function p(S){if(typeof S!="function")throw new Error($i(4));if(d)throw new Error($i(5));let w=!0;m();const k=u++;return a.set(k,S),function(){if(w){if(d)throw new Error($i(6));w=!1,m(),a.delete(k),o=null}}}function g(S){if(!OD(S))throw new Error($i(7));if(typeof S.type>"u")throw new Error($i(8));if(typeof S.type!="string")throw new Error($i(17));if(d)throw new Error($i(9));try{d=!0,r=i(r,S)}finally{d=!1}return(o=a).forEach(k=>{k()}),S}function x(S){if(typeof S!="function")throw new Error($i(10));i=S,g({type:DS.REPLACE})}function v(){const S=p;return{subscribe(w){if(typeof w!="object"||w===null)throw new Error($i(11));function k(){const N=w;N.next&&N.next(h())}return k(),{unsubscribe:S(k)}},[AS](){return this}}}return g({type:DS.INIT}),{dispatch:g,subscribe:p,getState:h,replaceReducer:x,[AS]:v}}function OS(e,t){return function(...n){return t(e.apply(this,n))}}function LS(e,t){if(typeof e=="function")return OS(e,t);if(typeof e!="object"||e===null)throw new Error($i(16));const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=OS(r,t))}return n}function ME(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...i)=>t(n(...i)))}function LD(...e){return t=>(n,i)=>{const r=t(n,i);let o=()=>{throw new Error($i(15))};const a={getState:r.getState,dispatch:(d,...m)=>o(d,...m)},u=e.map(d=>d(a));return o=ME(...u)(r.dispatch),{...r,dispatch:o}}}var Og={exports:{}},Lg={};var zS;function zD(){if(zS)return Lg;zS=1;var e=Fl();function t(d,m){return d===m&&(d!==0||1/d===1/m)||d!==d&&m!==m}var n=typeof Object.is=="function"?Object.is:t,i=e.useSyncExternalStore,r=e.useRef,o=e.useEffect,a=e.useMemo,u=e.useDebugValue;return Lg.useSyncExternalStoreWithSelector=function(d,m,h,p,g){var x=r(null);if(x.current===null){var v={hasValue:!1,value:null};x.current=v}else v=x.current;x=a(function(){function S(z){if(!w){if(w=!0,k=z,z=p(z),g!==void 0&&v.hasValue){var I=v.value;if(g(I,z))return j=I}return j=z}if(I=j,n(k,z))return I;var A=p(z);return g!==void 0&&g(I,A)?(k=z,I):(k=z,j=A)}var w=!1,k,j,N=h===void 0?null:h;return[function(){return S(m())},N===null?void 0:function(){return S(N())}]},[m,h,p,g]);var b=i(d,x[0],x[1]);return o(function(){v.hasValue=!0,v.value=b},[b]),u(b),b},Lg}var PS;function PD(){return PS||(PS=1,Og.exports=zD()),Og.exports}PD();var BD=C.version.startsWith("19"),$D=Symbol.for(BD?"react.transitional.element":"react.element"),HD=Symbol.for("react.portal"),FD=Symbol.for("react.fragment"),VD=Symbol.for("react.strict_mode"),UD=Symbol.for("react.profiler"),qD=Symbol.for("react.consumer"),GD=Symbol.for("react.context"),DE=Symbol.for("react.forward_ref"),WD=Symbol.for("react.suspense"),YD=Symbol.for("react.suspense_list"),t0=Symbol.for("react.memo"),XD=Symbol.for("react.lazy"),KD=DE,ZD=t0;function QD(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case $D:switch(e=e.type,e){case FD:case UD:case VD:case WD:case YD:return e;default:switch(e=e&&e.$$typeof,e){case GD:case DE:case XD:case t0:return e;case qD:return e;default:return t}}case HD:return t}}}function JD(e){return QD(e)===t0}function e5(e,t,n,i,{areStatesEqual:r,areOwnPropsEqual:o,areStatePropsEqual:a}){let u=!1,d,m,h,p,g;function x(k,j){return d=k,m=j,h=e(d,m),p=t(i,m),g=n(h,p,m),u=!0,g}function v(){return h=e(d,m),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function b(){return e.dependsOnOwnProps&&(h=e(d,m)),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function S(){const k=e(d,m),j=!a(k,h);return h=k,j&&(g=n(h,p,m)),g}function w(k,j){const N=!o(j,m),z=!r(k,d,j,m);return d=k,m=j,N&&z?v():N?b():z?S():g}return function(j,N){return u?w(j,N):x(j,N)}}function t5(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:i,...r}){const o=t(e,r),a=n(e,r),u=i(e,r);return e5(o,a,u,e,r)}function n5(e,t){const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=(...o)=>t(r(...o)))}return n}function nv(e){return function(n){const i=e(n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function BS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function OE(e,t){return function(i,{displayName:r}){const o=function(u,d){return o.dependsOnOwnProps?o.mapToProps(u,d):o.mapToProps(u,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(u,d){o.mapToProps=e,o.dependsOnOwnProps=BS(e);let m=o(u,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=BS(m),m=o(u,d)),m},o}}function n0(e,t){return(n,i)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${i.wrappedComponentName}.`)}}function i5(e){return e&&typeof e=="object"?nv(t=>n5(e,t)):e?typeof e=="function"?OE(e):n0(e,"mapDispatchToProps"):nv(t=>({dispatch:t}))}function r5(e){return e?typeof e=="function"?OE(e):n0(e,"mapStateToProps"):nv(()=>({}))}function s5(e,t,n){return{...n,...e,...t}}function o5(e){return function(n,{displayName:i,areMergedPropsEqual:r}){let o=!1,a;return function(d,m,h){const p=e(d,m,h);return o?r(p,a)||(a=p):(o=!0,a=p),a}}}function a5(e){return e?typeof e=="function"?o5(e):n0(e,"mergeProps"):()=>s5}function l5(e){e()}function c5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){l5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let i=e;for(;i;)n.push(i),i=i.next;return n},subscribe(n){let i=!0;const r=t={callback:n,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!i||e===null||(i=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var $S={notify(){},get:()=>[]};function LE(e,t){let n,i=$S,r=0,o=!1;function a(b){h();const S=i.subscribe(b);let w=!1;return()=>{w||(w=!0,S(),p())}}function u(){i.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function h(){r++,n||(n=t?t.addNestedSub(d):e.subscribe(d),i=c5())}function p(){r--,n&&r===0&&(n(),n=void 0,i.clear(),i=$S)}function g(){o||(o=!0,h())}function x(){o&&(o=!1,p())}const v={addNestedSub:a,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:x,getListeners:()=>i};return v}var u5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",d5=u5(),f5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",m5=f5(),p5=()=>d5||m5?C.useLayoutEffect:C.useEffect,im=p5();function HS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function zg(e,t){if(HS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let r=0;re(...t),n)}function N5(e,t,n,i,r,o){e.current=i,n.current=!1,r.current&&(r.current=null,o())}function I5(e,t,n,i,r,o,a,u,d,m,h){if(!e)return()=>{};let p=!1,g=null;const x=()=>{if(p||!u.current)return;const b=t.getState();let S,w;try{S=i(b,r.current)}catch(k){w=k,g=k}w||(g=null),S===o.current?a.current||m():(o.current=S,d.current=S,a.current=!0,h())};return n.onStateChange=x,n.trySubscribe(),x(),()=>{if(p=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function T5(e,t){return e===t}function R5(e,t,n,{pure:i,areStatesEqual:r=T5,areOwnPropsEqual:o=zg,areStatePropsEqual:a=zg,areMergedPropsEqual:u=zg,forwardRef:d=!1,context:m=PE}={}){const h=m,p=r5(e),g=i5(t),x=a5(n),v=!!e;return S=>{const w=S.displayName||S.name||"Component",k=`Connect(${w})`,j={shouldHandleStateChanges:v,displayName:k,wrappedComponentName:w,WrappedComponent:S,initMapStateToProps:p,initMapDispatchToProps:g,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:u};function N(A){const[L,M,O]=C.useMemo(()=>{const{reactReduxForwardedRef:xe,...je}=A;return[A.context,xe,je]},[A]),T=C.useMemo(()=>{let xe=h;return L?.Consumer,xe},[L,h]),$=C.useContext(T),G=!!A.store&&!!A.store.getState&&!!A.store.dispatch,P=!!$&&!!$.store,F=G?A.store:$.store,V=P?$.getServerState:F.getState,Y=C.useMemo(()=>t5(F.dispatch,j),[F]),[U,Q]=C.useMemo(()=>{if(!v)return j5;const xe=LE(F,G?void 0:$.subscription),je=xe.notifyNestedSubs.bind(xe);return[xe,je]},[F,G,$]),W=C.useMemo(()=>G?$:{...$,subscription:U},[G,$,U]),q=C.useRef(void 0),J=C.useRef(O),D=C.useRef(void 0),Z=C.useRef(!1),ie=C.useRef(!1),ee=C.useRef(void 0);im(()=>(ie.current=!0,()=>{ie.current=!1}),[]);const te=C.useMemo(()=>()=>D.current&&O===J.current?D.current:Y(F.getState(),O),[F,O]),oe=C.useMemo(()=>je=>U?I5(v,F,U,Y,J,q,Z,ie,D,Q,je):()=>{},[U]);E5(N5,[J,q,Z,O,D,Q]);let le;try{le=C.useSyncExternalStore(oe,te,V?()=>Y(V(),O):te)}catch(xe){throw ee.current&&(xe.message+=` +The error may be correlated with this previous error: +${ee.current.stack} + +`),xe}im(()=>{ee.current=void 0,D.current=void 0,q.current=le});const he=C.useMemo(()=>C.createElement(S,{...le,ref:M}),[M,S,le]);return C.useMemo(()=>v?C.createElement(T.Provider,{value:W},he):he,[T,he,W])}const I=C.memo(N);if(I.WrappedComponent=S,I.displayName=N.displayName=k,d){const L=C.forwardRef(function(O,T){return C.createElement(I,{...O,reactReduxForwardedRef:T})});return L.displayName=k,L.WrappedComponent=S,iv(L,S)}return iv(I,S)}}var BE=R5;function A5(e){const{children:t,context:n,serverState:i,store:r}=e,o=C.useMemo(()=>{const d=LE(r);return{store:r,subscription:d,getServerState:i?()=>i:void 0}},[r,i]),a=C.useMemo(()=>r.getState(),[r]);im(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==r.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const u=n||PE;return C.createElement(u.Provider,{value:o},t)}var M5=A5,D5="Invariant failed";function O5(e,t){throw new Error(D5)}var Ur=function(t){var n=t.top,i=t.right,r=t.bottom,o=t.left,a=i-o,u=r-n,d={top:n,right:i,bottom:r,left:o,width:a,height:u,x:o,y:n,center:{x:(i+o)/2,y:(r+n)/2}};return d},i0=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},qS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},L5=function(t,n){return{top:t.top+n.y,left:t.left+n.x,bottom:t.bottom+n.y,right:t.right+n.x}},Pg={top:0,right:0,bottom:0,left:0},r0=function(t){var n=t.borderBox,i=t.margin,r=i===void 0?Pg:i,o=t.border,a=o===void 0?Pg:o,u=t.padding,d=u===void 0?Pg:u,m=Ur(i0(n,r)),h=Ur(qS(n,a)),p=Ur(qS(h,d));return{marginBox:m,borderBox:Ur(n),paddingBox:h,contentBox:p,margin:r,border:a,padding:d}},Er=function(t){var n=t.slice(0,-2),i=t.slice(-2);if(i!=="px")return 0;var r=Number(n);return isNaN(r)&&O5(),r},z5=function(){return{x:window.pageXOffset,y:window.pageYOffset}},rm=function(t,n){var i=t.borderBox,r=t.border,o=t.margin,a=t.padding,u=L5(i,n);return r0({borderBox:u,border:r,margin:o,padding:a})},sm=function(t,n){return n===void 0&&(n=z5()),rm(t,n)},$E=function(t,n){var i={top:Er(n.marginTop),right:Er(n.marginRight),bottom:Er(n.marginBottom),left:Er(n.marginLeft)},r={top:Er(n.paddingTop),right:Er(n.paddingRight),bottom:Er(n.paddingBottom),left:Er(n.paddingLeft)},o={top:Er(n.borderTopWidth),right:Er(n.borderRightWidth),bottom:Er(n.borderBottomWidth),left:Er(n.borderLeftWidth)};return r0({borderBox:t,margin:i,padding:r,border:o})},HE=function(t){var n=t.getBoundingClientRect(),i=window.getComputedStyle(t);return $E(n,i)},_u=function(t){var n=[],i=null,r=function(){for(var a=arguments.length,u=new Array(a),d=0;d{const o=P5(n,r.options);return e.addEventListener(r.eventName,r.fn,o),function(){e.removeEventListener(r.eventName,r.fn,o)}});return function(){i.forEach(o=>{o()})}}const B5="Invariant failed";class am extends Error{}am.prototype.toString=function(){return this.message};function Fe(e,t){throw new am(B5)}let $5=class extends At.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=Co,this.onWindowError=n=>{const i=this.getCallbacks();i.isDragging()&&i.tryAbort(),n.error instanceof am&&n.preventDefault()},this.getCallbacks=()=>{if(!this.callbacks)throw new Error("Unable to find AppCallbacks in ");return this.callbacks},this.setCallbacks=n=>{this.callbacks=n}}componentDidMount(){this.unbind=Rr(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof am){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const H5=` + Press space bar to start a drag. + When dragging you can use the arrow keys to move the item around and escape to cancel. + Some screen readers may require you to be in focus mode or to use your pass through key +`,lm=e=>e+1,F5=e=>` + You have lifted an item in position ${lm(e.source.index)} +`,VE=(e,t)=>{const n=e.droppableId===t.droppableId,i=lm(e.index),r=lm(t.index);return n?` + You have moved the item from position ${i} + to position ${r} + `:` + You have moved the item from position ${i} + in list ${e.droppableId} + to list ${t.droppableId} + in position ${r} + `},UE=(e,t,n)=>t.droppableId===n.droppableId?` + The item ${e} + has been combined with ${n.draggableId}`:` + The item ${e} + in list ${t.droppableId} + has been combined with ${n.draggableId} + in list ${n.droppableId} + `,V5=e=>{const t=e.destination;if(t)return VE(e.source,t);const n=e.combine;return n?UE(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},GS=e=>` + The item has returned to its starting position + of ${lm(e.index)} +`,U5=e=>{if(e.reason==="CANCEL")return` + Movement cancelled. + ${GS(e.source)} + `;const t=e.destination,n=e.combine;return t?` + You have dropped the item. + ${VE(e.source,t)} + `:n?` + You have dropped the item. + ${UE(e.draggableId,e.source,n)} + `:` + The item has been dropped while not over a drop area. + ${GS(e.source)} + `},$f={dragHandleUsageInstructions:H5,onDragStart:F5,onDragUpdate:V5,onDragEnd:U5};function q5(e,t){return!!(e===t||Number.isNaN(e)&&Number.isNaN(t))}function qE(e,t){if(e.length!==t.length)return!1;for(let n=0;n({inputs:t,result:e()}))[0],i=C.useRef(!0),r=C.useRef(n),a=i.current||!!(t&&r.current.inputs&&qE(t,r.current.inputs))?r.current:{inputs:t,result:e()};return C.useEffect(()=>{i.current=!1,r.current=a},[a]),a.result}function st(e,t){return nn(()=>e,t)}const wi={x:0,y:0},Ti=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),mr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),jo=(e,t)=>e.x===t.x&&e.y===t.y,Ul=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),ua=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},ku=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),WS=(e,t)=>Math.min(...t.map(n=>ku(e,n))),GE=e=>t=>({x:e(t.x),y:e(t.y)});var G5=(e,t)=>{const n=Ur({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n};const Fu=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),YS=e=>[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}],W5={top:0,right:0,bottom:0,left:0},Y5=(e,t)=>t?Fu(e,t.scroll.diff.displacement):e,X5=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,K5=(e,t)=>t&&t.shouldClipSubject?G5(t.pageMarginBox,e):Ur(e);var Cl=({page:e,withPlaceholder:t,axis:n,frame:i})=>{const r=Y5(e.marginBox,i),o=X5(r,n,t),a=K5(o,i);return{page:e,withPlaceholder:t,active:a}},s0=(e,t)=>{e.frame||Fe();const n=e.frame,i=mr(t,n.scroll.initial),r=Ul(i),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:i,displacement:r},max:n.scroll.max}},a=Cl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function Si(e,t=qE){let n=null;function i(...r){if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;const o=e.apply(this,r);return n={lastResult:o,lastArgs:r,lastThis:this},o}return i.clear=function(){n=null},i}const WE=Si(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),YE=Si(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),Fm=Si(e=>Object.values(e)),Z5=Si(e=>Object.values(e));var ql=Si((e,t)=>Z5(t).filter(i=>e===i.descriptor.droppableId).sort((i,r)=>i.descriptor.index-r.descriptor.index));function o0(e){return e.at&&e.at.type==="REORDER"?e.at.destination:null}function Vm(e){return e.at&&e.at.type==="COMBINE"?e.at.combine:null}var Um=Si((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),Q5=({isMovingForward:e,draggable:t,destination:n,insideDestination:i,previousImpact:r})=>{if(!n.isCombineEnabled||!o0(r))return null;function a(x){const v={type:"COMBINE",combine:{draggableId:x,droppableId:n.descriptor.id}};return{...r,at:v}}const u=r.displaced.all,d=u.length?u[0]:null;if(e)return d?a(d):null;const m=Um(t,i);if(!d){if(!m.length)return null;const x=m[m.length-1];return a(x.descriptor.id)}const h=m.findIndex(x=>x.descriptor.id===d);h===-1&&Fe();const p=h-1;if(p<0)return null;const g=m[p];return a(g.descriptor.id)},Gl=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const XE={point:wi,value:0},Su={invisible:{},visible:{},all:[]},J5={displaced:Su,displacedBy:XE,at:null};var Ar=(e,t)=>n=>e<=n&&n<=t,KE=e=>{const t=Ar(e.top,e.bottom),n=Ar(e.left,e.right);return i=>{if(t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right))return!0;const o=t(i.top)||t(i.bottom),a=n(i.left)||n(i.right);if(o&&a)return!0;const d=i.tope.bottom,m=i.lefte.right;return d&&m?!0:d&&a||m&&o}},eO=e=>{const t=Ar(e.top,e.bottom),n=Ar(e.left,e.right);return i=>t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right)};const a0={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},ZE={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"};var tO=e=>t=>{const n=Ar(t.top,t.bottom),i=Ar(t.left,t.right);return r=>e===a0?n(r.top)&&n(r.bottom):i(r.left)&&i(r.right)};const nO=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:wi;return Fu(e,n)},iO=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,rO=(e,t,n)=>n(t)(e),l0=({target:e,destination:t,viewport:n,withDroppableDisplacement:i,isVisibleThroughFrameFn:r})=>{const o=i?nO(e,t):e;return iO(o,t,r)&&rO(o,n,r)},sO=e=>l0({...e,isVisibleThroughFrameFn:KE}),QE=e=>l0({...e,isVisibleThroughFrameFn:eO}),oO=e=>l0({...e,isVisibleThroughFrameFn:tO(e.destination.axis)}),aO=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:i,visible:r}=t;if(i[e])return!1;const o=r[e];return o?o.shouldAnimate:!0};function lO(e,t){const n=e.page.marginBox,i={top:t.point.y,right:0,bottom:0,left:t.point.x};return Ur(i0(n,i))}function wu({afterDragging:e,destination:t,displacedBy:n,viewport:i,forceShouldAnimate:r,last:o}){return e.reduce(function(u,d){const m=lO(d,n),h=d.descriptor.id;if(u.all.push(h),!sO({target:m,destination:t,viewport:i,withDroppableDisplacement:!0}))return u.invisible[d.descriptor.id]=!0,u;const g=aO(h,o,r),x={draggableId:h,shouldAnimate:g};return u.visible[h]=x,u},{all:[],visible:{},invisible:{}})}function cO(e,t){if(!e.length)return 0;const n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}function XS({insideDestination:e,inHomeList:t,displacedBy:n,destination:i}){const r=cO(e,{inHomeList:t});return{displaced:Su,displacedBy:n,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:r}}}}function cm({draggable:e,insideDestination:t,destination:n,viewport:i,displacedBy:r,last:o,index:a,forceShouldAnimate:u}){const d=Gl(e,n);if(a==null)return XS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return XS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const h=Um(e,t),p=t.indexOf(m),g=h.slice(p);return{displaced:wu({afterDragging:g,destination:n,displacedBy:r,last:o,viewport:i.frame,forceShouldAnimate:u}),displacedBy:r,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function Io(e,t){return!!t.effected[e]}var uO=({isMovingForward:e,destination:t,draggables:n,combine:i,afterCritical:r})=>{if(!t.isCombineEnabled)return null;const o=i.draggableId,u=n[o].descriptor.index;return Io(o,r)?e?u:u-1:e?u+1:u},dO=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:i})=>{if(!n.length)return null;const r=i.index,o=e?r+1:r-1,a=n[0].descriptor.index,u=n[n.length-1].descriptor.index,d=t?u:u+1;return od?null:o},fO=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:i,destination:r,insideDestination:o,previousImpact:a,viewport:u,afterCritical:d})=>{const m=a.at;if(m||Fe(),m.type==="REORDER"){const p=dO({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return p==null?null:cm({draggable:n,insideDestination:o,destination:r,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:p})}const h=uO({isMovingForward:e,destination:r,displaced:a.displaced,draggables:i,combine:m.combine,afterCritical:d});return h==null?null:cm({draggable:n,insideDestination:o,destination:r,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:h})},mO=({displaced:e,afterCritical:t,combineWith:n,displacedBy:i})=>{const r=!!(e.visible[n]||e.invisible[n]);return Io(n,t)?r?wi:Ul(i.point):r?i.point:wi},pO=({afterCritical:e,impact:t,draggables:n})=>{const i=Vm(t);i||Fe();const r=i.draggableId,o=n[r].page.borderBox.center,a=mO({displaced:t.displaced,afterCritical:e,combineWith:r,displacedBy:t.displacedBy});return Ti(o,a)};const JE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,hO=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,c0=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,KS=({axis:e,moveRelativeTo:t,isMoving:n})=>ua(e.line,t.marginBox[e.end]+JE(e,n),c0(e,t.marginBox,n)),ZS=({axis:e,moveRelativeTo:t,isMoving:n})=>ua(e.line,t.marginBox[e.start]-hO(e,n),c0(e,t.marginBox,n)),gO=({axis:e,moveInto:t,isMoving:n})=>ua(e.line,t.contentBox[e.start]+JE(e,n),c0(e,t.contentBox,n));var yO=({impact:e,draggable:t,draggables:n,droppable:i,afterCritical:r})=>{const o=ql(i.descriptor.id,n),a=t.page,u=i.axis;if(!o.length)return gO({axis:u,moveInto:i.page,isMoving:a});const{displaced:d,displacedBy:m}=e,h=d.all[0];if(h){const g=n[h];if(Io(h,r))return ZS({axis:u,moveRelativeTo:g.page,isMoving:a});const x=rm(g.page,m.point);return ZS({axis:u,moveRelativeTo:x,isMoving:a})}const p=o[o.length-1];if(p.descriptor.id===t.descriptor.id)return a.borderBox.center;if(Io(p.descriptor.id,r)){const g=rm(p.page,Ul(r.displacedBy.point));return KS({axis:u,moveRelativeTo:g,isMoving:a})}return KS({axis:u,moveRelativeTo:p.page,isMoving:a})},rv=(e,t)=>{const n=e.frame;return n?Ti(t,n.scroll.diff.displacement):t};const xO=({impact:e,draggable:t,droppable:n,draggables:i,afterCritical:r})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?yO({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:r}):pO({impact:e,draggables:i,afterCritical:r})};var qm=e=>{const t=xO(e),n=e.droppable;return n?rv(n,t):t},eN=(e,t)=>{const n=mr(t,e.scroll.initial),i=Ul(n);return{frame:Ur({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:i}}}};function QS(e,t){return e.map(n=>t[n])}function vO(e,t){for(let n=0;n{const o=eN(t,Ti(t.scroll.current,r)),a=n.frame?s0(n,Ti(n.frame.scroll.current,r)):n,u=e.displaced,d=wu({afterDragging:QS(u.all,i),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:u,forceShouldAnimate:!1}),m=wu({afterDragging:QS(u.all,i),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:u,forceShouldAnimate:!1}),h={},p={},g=[u,d,m];return u.all.forEach(v=>{const b=vO(v,g);if(b){p[v]=b;return}h[v]=!0}),{...e,displaced:{all:u.all,invisible:h,visible:p}}},_O=(e,t)=>Ti(e.scroll.diff.displacement,t),u0=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const i=_O(n,e),r=mr(i,t.page.borderBox.center);return Ti(t.client.borderBox.center,r)},tN=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:i,withDroppableDisplacement:r,onlyOnMainAxis:o=!1})=>{const a=mr(n,e.page.borderBox.center),d={target:Fu(e.page.borderBox,a),destination:t,withDroppableDisplacement:r,viewport:i};return o?oO(d):QE(d)},kO=({isMovingForward:e,draggable:t,destination:n,draggables:i,previousImpact:r,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:u,afterCritical:d})=>{if(!n.isEnabled)return null;const m=ql(n.descriptor.id,i),h=Gl(t,n),p=Q5({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:r})||fO({isMovingForward:e,isInHomeList:h,draggable:t,draggables:i,destination:n,insideDestination:m,previousImpact:r,viewport:o,afterCritical:d});if(!p)return null;const g=qm({impact:p,draggable:t,droppable:n,draggables:i,afterCritical:d});if(tN({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:u0({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:p,scrollJumpRequest:null};const v=mr(g,a),b=bO({impact:p,viewport:o,destination:n,draggables:i,maxScrollChange:v});return{clientSelection:u,impact:b,scrollJumpRequest:v}};const Bi=e=>{const t=e.subject.active;return t||Fe(),t};var SO=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:i,viewport:r})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,u=Ar(o[a.start],o[a.end]),d=Fm(i).filter(h=>h!==n).filter(h=>h.isEnabled).filter(h=>!!h.subject.active).filter(h=>KE(r.frame)(Bi(h))).filter(h=>{const p=Bi(h);return e?o[a.crossAxisEnd]{const p=Bi(h),g=Ar(p[a.start],p[a.end]);return u(p[a.start])||u(p[a.end])||g(o[a.start])||g(o[a.end])}).sort((h,p)=>{const g=Bi(h)[a.crossAxisStart],x=Bi(p)[a.crossAxisStart];return e?g-x:x-g}).filter((h,p,g)=>Bi(h)[a.crossAxisStart]===Bi(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(h=>Ar(Bi(h)[a.start],Bi(h)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((h,p)=>Bi(h)[a.start]-Bi(p)[a.start])[0]:d.sort((h,p)=>{const g=WS(t,YS(Bi(h))),x=WS(t,YS(Bi(p)));return g!==x?g-x:Bi(h)[a.start]-Bi(p)[a.start]})[0]};const JS=(e,t)=>{const n=e.page.borderBox.center;return Io(e.descriptor.id,t)?mr(n,t.displacedBy.point):n},wO=(e,t)=>{const n=e.page.borderBox;return Io(e.descriptor.id,t)?Fu(n,Ul(t.displacedBy.point)):n};var CO=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:i,afterCritical:r})=>i.filter(a=>QE({target:wO(a,r),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,u)=>{const d=ku(e,rv(n,JS(a,r))),m=ku(e,rv(n,JS(u,r)));return d{const i=e.axis;if(e.descriptor.mode==="virtual")return ua(i.line,t[i.line]);const r=e.subject.page.contentBox[i.size],d=ql(e.descriptor.id,n).reduce((m,h)=>m+h.client.marginBox[i.size],0)+t[i.line]-r;return d<=0?null:ua(i.line,d)},nN=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),iN=(e,t,n)=>{const i=e.frame;Gl(t,e)&&Fe(),e.subject.withPlaceholder&&Fe();const r=Vu(e.axis,t.displaceBy).point,o=jO(e,r,n),a={placeholderSize:r,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!i){const h=Cl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:h}}const u=o?Ti(i.scroll.max,o):i.scroll.max,d=nN(i,u),m=Cl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},EO=e=>{const t=e.subject.withPlaceholder;t||Fe();const n=e.frame;if(!n){const a=Cl({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const i=t.oldFrameMaxScroll;i||Fe();const r=nN(n,i),o=Cl({page:e.subject.page,axis:e.axis,frame:r,withPlaceholder:null});return{...e,subject:o,frame:r}};var NO=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:i,draggables:r,destination:o,viewport:a,afterCritical:u})=>{if(!t){if(n.length)return null;const p={displaced:Su,displacedBy:XE,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=qm({impact:p,draggable:i,droppable:o,draggables:r,afterCritical:u}),x=Gl(i,o)?o:iN(o,i,r);return tN({draggable:i,destination:x,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?p:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const p=t.descriptor.index;return t.descriptor.id===i.descriptor.id||d?p:p+1})(),h=Vu(o.axis,i.displaceBy);return cm({draggable:i,insideDestination:n,destination:o,viewport:a,displacedBy:h,last:Su,index:m})},IO=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:i,draggables:r,droppables:o,viewport:a,afterCritical:u})=>{const d=SO({isMovingForward:e,pageBorderBoxCenter:t,source:i,droppables:o,viewport:a});if(!d)return null;const m=ql(d.descriptor.id,r),h=CO({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:u}),p=NO({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:r,moveRelativeTo:h,insideDestination:m,viewport:a,afterCritical:u});if(!p)return null;const g=qm({impact:p,draggable:n,droppable:d,draggables:r,afterCritical:u});return{clientSelection:u0({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null}},pr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const TO=(e,t)=>{const n=pr(e);return n?t[n]:null};var RO=({state:e,type:t})=>{const n=TO(e.impact,e.dimensions.droppables),i=!!n,r=e.dimensions.droppables[e.critical.droppable.id],o=n||r,a=o.axis.direction,u=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(u&&!i)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],h=e.current.page.borderBoxCenter,{draggables:p,droppables:g}=e.dimensions;return u?kO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,destination:o,draggables:p,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):IO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,isOver:o,draggables:p,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function ia(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function rN(e){const t=Ar(e.top,e.bottom),n=Ar(e.left,e.right);return function(r){return t(r.y)&&n(r.x)}}function AO(e,t){return e.leftt.left&&e.topt.top}function MO({pageBorderBox:e,draggable:t,candidates:n}){const i=t.page.borderBox.center,r=n.map(o=>{const a=o.axis,u=ua(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:ku(i,u)}}).sort((o,a)=>a.distance-o.distance);return r[0]?r[0].id:null}function DO({pageBorderBox:e,draggable:t,droppables:n}){const i=Fm(n).filter(r=>{if(!r.isEnabled)return!1;const o=r.subject.active;if(!o||!AO(e,o))return!1;if(rN(o)(e.center))return!0;const a=r.axis,u=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],h=Ar(o[a.crossAxisStart],o[a.crossAxisEnd]),p=h(d),g=h(m);return!p&&!g?!0:p?du});return i.length?i.length===1?i[0].descriptor.id:MO({pageBorderBox:e,draggable:t,candidates:i}):null}const sN=(e,t)=>Ur(Fu(e,t));var OO=(e,t)=>{const n=e.frame;return n?sN(t,n.scroll.diff.value):t};function oN({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function LO({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var zO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:i,last:r,viewport:o,afterCritical:a})=>{const u=n.axis,d=Vu(n.axis,t.displaceBy),m=d.value,h=e[u.start],p=e[u.end],x=Um(t,i).find(b=>{const S=b.descriptor.id,w=b.page.borderBox.center[u.line],k=Io(S,a),j=oN({displaced:r,id:S});return k?j?p<=w:h{if(!i.isCombineEnabled)return null;const a=i.axis,u=Vu(i.axis,e.displaceBy),d=u.value,m=t[a.start],h=t[a.end],g=Um(e,r).find(v=>{const b=v.descriptor.id,S=v.page.borderBox,k=S[a.size]/PO,j=Io(b,o),N=oN({displaced:n.displaced,id:b});return j?N?h>S[a.start]+k&&hS[a.start]-d+k&&mS[a.start]+d+k&&hS[a.start]+k&&m{const u=sN(t.page.borderBox,e),d=DO({pageBorderBox:u,draggable:t,droppables:i});if(!d)return J5;const m=i[d],h=ql(m.descriptor.id,n),p=OO(m,u);return BO({pageBorderBoxWithDroppableScroll:p,draggable:t,previousImpact:r,destination:m,insideDestination:h,afterCritical:a})||zO({pageBorderBoxWithDroppableScroll:p,draggable:t,destination:m,insideDestination:h,last:r.displaced,viewport:o,afterCritical:a})},d0=(e,t)=>({...e,[t.descriptor.id]:t});const $O=({previousImpact:e,impact:t,droppables:n})=>{const i=pr(e),r=pr(t);if(!i||i===r)return n;const o=n[i];if(!o.subject.withPlaceholder)return n;const a=EO(o);return d0(n,a)};var HO=({draggable:e,draggables:t,droppables:n,previousImpact:i,impact:r})=>{const o=$O({previousImpact:i,impact:r,droppables:n}),a=pr(r);if(!a)return o;const u=n[a];if(Gl(e,u)||u.subject.withPlaceholder)return o;const d=iN(u,e,t);return d0(o,d)},du=({state:e,clientSelection:t,dimensions:n,viewport:i,impact:r,scrollJumpRequest:o})=>{const a=i||e.viewport,u=n||e.dimensions,d=t||e.current.client.selection,m=mr(d,e.initial.client.selection),h={offset:m,selection:d,borderBoxCenter:Ti(e.initial.client.borderBoxCenter,m)},p={selection:Ti(h.selection,a.scroll.current),borderBoxCenter:Ti(h.borderBoxCenter,a.scroll.current),offset:Ti(h.offset,a.scroll.diff.value)},g={client:h,page:p};if(e.phase==="COLLECTING")return{...e,dimensions:u,viewport:a,current:g};const x=u.draggables[e.critical.draggable.id],v=r||aN({pageOffset:p.offset,draggable:x,draggables:u.draggables,droppables:u.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),b=HO({draggable:x,impact:v,previousImpact:e.impact,draggables:u.draggables,droppables:u.droppables});return{...e,current:g,dimensions:{draggables:u.draggables,droppables:b},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function FO(e,t){return e.map(n=>t[n])}var lN=({impact:e,viewport:t,draggables:n,destination:i,forceShouldAnimate:r})=>{const o=e.displaced,a=FO(o.all,n),u=wu({afterDragging:a,destination:i,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:r,last:o});return{...e,displaced:u}},cN=({impact:e,draggable:t,droppable:n,draggables:i,viewport:r,afterCritical:o})=>{const a=qm({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:o});return u0({pageBorderBoxCenter:a,draggable:t,viewport:r})},uN=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&Fe();const i=e.impact,r=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:u}=o,d=a[e.critical.draggable.id],m=pr(i);m||Fe();const h=u[m],p=lN({impact:i,viewport:r,destination:h,draggables:a}),g=cN({impact:p,draggable:d,droppable:h,draggables:a,viewport:r,afterCritical:e.afterCritical});return du({impact:p,clientSelection:g,state:e,dimensions:o,viewport:r})},VO=e=>({index:e.index,droppableId:e.droppableId}),dN=({draggable:e,home:t,draggables:n,viewport:i})=>{const r=Vu(t.axis,e.displaceBy),o=ql(t.descriptor.id,n),a=o.indexOf(e);a===-1&&Fe();const u=o.slice(a+1),d=u.reduce((g,x)=>(g[x.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:r,effected:d};return{impact:{displaced:wu({afterDragging:u,destination:t,displacedBy:r,last:null,viewport:i.frame,forceShouldAnimate:!1}),displacedBy:r,at:{type:"REORDER",destination:VO(e.descriptor)}},afterCritical:m}},UO=(e,t)=>({draggables:e.draggables,droppables:d0(e.droppables,t)}),qO=({draggable:e,offset:t,initialWindowScroll:n})=>{const i=rm(e.client,t),r=sm(i,n);return{...e,placeholder:{...e.placeholder,client:i},client:i,page:r}},GO=e=>{const t=e.frame;return t||Fe(),t},WO=({additions:e,updatedDroppables:t,viewport:n})=>{const i=n.scroll.diff.value;return e.map(r=>{const o=r.descriptor.droppableId,a=t[o],d=GO(a).scroll.diff.value,m=Ti(i,d);return qO({draggable:r,offset:m,initialWindowScroll:n.scroll.initial})})},YO=({state:e,published:t})=>{const n=t.modified.map(w=>{const k=e.dimensions.droppables[w.droppableId];return s0(k,w.scroll)}),i={...e.dimensions.droppables,...WE(n)},r=YE(WO({additions:t.additions,updatedDroppables:i,viewport:e.viewport})),o={...e.dimensions.draggables,...r};t.removals.forEach(w=>{delete o[w]});const a={droppables:i,draggables:o},u=pr(e.impact),d=u?a.droppables[u]:null,m=a.draggables[e.critical.draggable.id],h=a.droppables[e.critical.droppable.id],{impact:p,afterCritical:g}=dN({draggable:m,home:h,draggables:o,viewport:e.viewport}),x=d&&d.isCombineEnabled?e.impact:p,v=aN({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:x,viewport:e.viewport,afterCritical:g}),b={...e,phase:"DRAGGING",impact:v,onLiftImpact:p,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?b:{...b,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const sv=e=>e.movementMode==="SNAP",Bg=(e,t,n)=>{const i=UO(e.dimensions,t);return!sv(e)||n?du({state:e,dimensions:i}):uN({state:e,dimensions:i})};function $g(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const ew={phase:"IDLE",completed:null,shouldFlush:!1};var XO=(e=ew,t)=>{if(t.type==="FLUSH")return{...ew,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&Fe();const{critical:n,clientSelection:i,viewport:r,dimensions:o,movementMode:a}=t.payload,u=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:i,borderBoxCenter:u.client.borderBox.center,offset:wi},h={client:m,page:{selection:Ti(m.selection,r.scroll.initial),borderBoxCenter:Ti(m.selection,r.scroll.initial),offset:Ti(m.selection,r.scroll.diff.value)}},p=Fm(o.droppables).every(b=>!b.isFixedOnPage),{impact:g,afterCritical:x}=dN({draggable:u,home:d,draggables:o.draggables,viewport:r});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:h,current:h,isWindowScrollAllowed:p,impact:g,afterCritical:x,onLiftImpact:g,viewport:r,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&Fe(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||Fe(),YO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;ia(e)||Fe();const{client:n}=t.payload;return jo(n,e.current.client.selection)?e:du({state:e,clientSelection:n,impact:sv(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return $g(e);ia(e)||Fe();const{id:n,newScroll:i}=t.payload,r=e.dimensions.droppables[n];if(!r)return e;const o=s0(r,i);return Bg(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;ia(e)||Fe();const{id:n,isEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Fe(),r.isEnabled===i&&Fe();const o={...r,isEnabled:i};return Bg(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;ia(e)||Fe();const{id:n,isCombineEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||Fe(),r.isCombineEnabled===i&&Fe();const o={...r,isCombineEnabled:i};return Bg(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;ia(e)||Fe(),e.isWindowScrollAllowed||Fe();const n=t.payload.newScroll;if(jo(e.viewport.scroll.current,n))return $g(e);const i=eN(e.viewport,n);return sv(e)?uN({state:e,viewport:i}):du({state:e,viewport:i})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!ia(e))return e;const n=t.payload.maxScroll;if(jo(n,e.viewport.scroll.max))return e;const i={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:i}}if(t.type==="MOVE_UP"||t.type==="MOVE_DOWN"||t.type==="MOVE_LEFT"||t.type==="MOVE_RIGHT"){if(e.phase==="COLLECTING"||e.phase==="DROP_PENDING")return e;e.phase!=="DRAGGING"&&Fe();const n=RO({state:e,type:t.type});return n?du({state:e,impact:n.impact,clientSelection:n.clientSelection,scrollJumpRequest:n.scrollJumpRequest}):e}if(t.type==="DROP_PENDING"){const n=t.payload.reason;return e.phase!=="COLLECTING"&&Fe(),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:n}}if(t.type==="DROP_ANIMATE"){const{completed:n,dropDuration:i,newHomeClientOffset:r}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||Fe(),{phase:"DROP_ANIMATING",completed:n,dropDuration:i,newHomeClientOffset:r,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function kn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const KO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),ZO=e=>({type:"LIFT",payload:e}),QO=e=>({type:"INITIAL_PUBLISH",payload:e}),JO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),eL=()=>({type:"COLLECTION_STARTING",payload:null}),tL=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),nL=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),iL=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),fN=e=>({type:"MOVE",payload:e}),rL=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),sL=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),oL=()=>({type:"MOVE_UP",payload:null}),aL=()=>({type:"MOVE_DOWN",payload:null}),lL=()=>({type:"MOVE_RIGHT",payload:null}),cL=()=>({type:"MOVE_LEFT",payload:null}),f0=()=>({type:"FLUSH",payload:null}),uL=e=>({type:"DROP_ANIMATE",payload:e}),m0=e=>({type:"DROP_COMPLETE",payload:e}),mN=e=>({type:"DROP",payload:e}),dL=e=>({type:"DROP_PENDING",payload:e}),pN=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var fL=e=>({getState:t,dispatch:n})=>i=>r=>{if(!kn(r,"LIFT")){i(r);return}const{id:o,clientSelection:a,movementMode:u}=r.payload,d=t();d.phase==="DROP_ANIMATING"&&n(m0({completed:d.completed})),t().phase!=="IDLE"&&Fe(),n(f0()),n(KO({draggableId:o,movementMode:u}));const h={draggableId:o,scrollOptions:{shouldPublishImmediately:u==="SNAP"}},{critical:p,dimensions:g,viewport:x}=e.startPublishing(h);n(QO({critical:p,dimensions:g,clientSelection:a,movementMode:u,viewport:x}))},mL=e=>()=>t=>n=>{kn(n,"INITIAL_PUBLISH")&&e.dragging(),kn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(kn(n,"FLUSH")||kn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const p0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},Cu={opacity:{drop:0,combining:.7},scale:{drop:.75}},hN={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Qo=`${hN.outOfTheWay}s ${p0.outOfTheWay}`,fu={fluid:`opacity ${Qo}`,snap:`transform ${Qo}, opacity ${Qo}`,drop:e=>{const t=`${e}s ${p0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Qo}`,placeholder:`height ${Qo}, width ${Qo}, margin ${Qo}`},tw=e=>jo(e,wi)?void 0:`translate(${e.x}px, ${e.y}px)`,ov={moveTo:tw,drop:(e,t)=>{const n=tw(e);if(n)return t?`${n} scale(${Cu.scale.drop})`:n}},{minDropTime:av,maxDropTime:gN}=hN,pL=gN-av,nw=1500,hL=.6;var gL=({current:e,destination:t,reason:n})=>{const i=ku(e,t);if(i<=0)return av;if(i>=nw)return gN;const r=i/nw,o=av+pL*r,a=n==="CANCEL"?o*hL:o;return Number(a.toFixed(2))},yL=({impact:e,draggable:t,dimensions:n,viewport:i,afterCritical:r})=>{const{draggables:o,droppables:a}=n,u=pr(e),d=u?a[u]:null,m=a[t.descriptor.droppableId],h=cN({impact:e,draggable:t,draggables:o,afterCritical:r,droppable:d||m,viewport:i});return mr(h,t.client.borderBox.center)},xL=({draggables:e,reason:t,lastImpact:n,home:i,viewport:r,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:lN({draggables:e,impact:o,destination:i,viewport:r,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:Su},didDropInsideDroppable:!0};const vL=({getState:e,dispatch:t})=>n=>i=>{if(!kn(i,"DROP")){n(i);return}const r=e(),o=i.payload.reason;if(r.phase==="COLLECTING"){t(dL({reason:o}));return}if(r.phase==="IDLE")return;r.phase==="DROP_PENDING"&&r.isWaiting&&Fe(),r.phase==="DRAGGING"||r.phase==="DROP_PENDING"||Fe();const u=r.critical,d=r.dimensions,m=d.draggables[r.critical.draggable.id],{impact:h,didDropInsideDroppable:p}=xL({reason:o,lastImpact:r.impact,afterCritical:r.afterCritical,onLiftImpact:r.onLiftImpact,home:r.dimensions.droppables[r.critical.droppable.id],viewport:r.viewport,draggables:r.dimensions.draggables}),g=p?o0(h):null,x=p?Vm(h):null,v={index:u.draggable.index,droppableId:u.droppable.id},b={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:r.movementMode,destination:g,combine:x},S=yL({impact:h,draggable:m,dimensions:d,viewport:r.viewport,afterCritical:r.afterCritical}),w={critical:r.critical,afterCritical:r.afterCritical,result:b,impact:h};if(!(!jo(r.current.client.offset,S)||!!b.combine)){t(m0({completed:w}));return}const j=gL({current:r.current.client.offset,destination:S,reason:o});t(uL({newHomeClientOffset:S,dropDuration:j,completed:w}))};var yN=()=>({x:window.pageXOffset,y:window.pageYOffset});function bL(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function _L({onWindowScroll:e}){function t(){e(yN())}const n=_u(t),i=bL(n);let r=Co;function o(){return r!==Co}function a(){o()&&Fe(),r=Rr(window,[i])}function u(){o()||Fe(),n.cancel(),r(),r=Co}return{start:a,stop:u,isActive:o}}const kL=e=>kn(e,"DROP_COMPLETE")||kn(e,"DROP_ANIMATE")||kn(e,"FLUSH"),SL=e=>{const t=_L({onWindowScroll:n=>{e.dispatch(rL({newScroll:n}))}});return n=>i=>{!t.isActive()&&kn(i,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&kL(i)&&t.stop(),n(i)}};var wL=e=>{let t=!1,n=!1;const i=setTimeout(()=>{n=!0}),r=o=>{t||n||(t=!0,e(o),clearTimeout(i))};return r.wasCalled=()=>t,r},CL=()=>{const e=[],t=r=>{const o=e.findIndex(u=>u.timerId===r);o===-1&&Fe();const[a]=e.splice(o,1);a.callback()};return{add:r=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:r};e.push(a)},flush:()=>{if(!e.length)return;const r=[...e];e.length=0,r.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const jL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,EL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,NL=(e,t)=>{if(e===t)return!0;const n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,i=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&i},Fc=(e,t)=>{t()},df=(e,t)=>({draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t});function Hg(e,t,n,i){if(!e){n(i(t));return}const r=wL(n);e(t,{announce:r}),r.wasCalled()||n(i(t))}var IL=(e,t)=>{const n=CL();let i=null;const r=(p,g)=>{i&&Fe(),Fc("onBeforeCapture",()=>{const x=e().onBeforeCapture;x&&x({draggableId:p,mode:g})})},o=(p,g)=>{i&&Fe(),Fc("onBeforeDragStart",()=>{const x=e().onBeforeDragStart;x&&x(df(p,g))})},a=(p,g)=>{i&&Fe();const x=df(p,g);i={mode:g,lastCritical:p,lastLocation:x.source,lastCombine:null},n.add(()=>{Fc("onDragStart",()=>Hg(e().onDragStart,x,t,$f.onDragStart))})},u=(p,g)=>{const x=o0(g),v=Vm(g);i||Fe();const b=!NL(p,i.lastCritical);b&&(i.lastCritical=p);const S=!jL(i.lastLocation,x);S&&(i.lastLocation=x);const w=!EL(i.lastCombine,v);if(w&&(i.lastCombine=v),!b&&!S&&!w)return;const k={...df(p,i.mode),combine:v,destination:x};n.add(()=>{Fc("onDragUpdate",()=>Hg(e().onDragUpdate,k,t,$f.onDragUpdate))})},d=()=>{i||Fe(),n.flush()},m=p=>{i||Fe(),i=null,Fc("onDragEnd",()=>Hg(e().onDragEnd,p,t,$f.onDragEnd))};return{beforeCapture:r,beforeStart:o,start:a,update:u,flush:d,drop:m,abort:()=>{if(!i)return;const p={...df(i.lastCritical,i.mode),combine:null,destination:null,reason:"CANCEL"};m(p)}}},TL=(e,t)=>{const n=IL(e,t);return i=>r=>o=>{if(kn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(kn(o,"INITIAL_PUBLISH")){const u=o.payload.critical;n.beforeStart(u,o.payload.movementMode),r(o),n.start(u,o.payload.movementMode);return}if(kn(o,"DROP_COMPLETE")){const u=o.payload.completed.result;n.flush(),r(o),n.drop(u);return}if(r(o),kn(o,"FLUSH")){n.abort();return}const a=i.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const RL=e=>t=>n=>{if(!kn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const i=e.getState();i.phase!=="DROP_ANIMATING"&&Fe(),e.dispatch(m0({completed:i.completed}))},AL=e=>{let t=null,n=null;function i(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return r=>o=>{if((kn(o,"FLUSH")||kn(o,"DROP_COMPLETE")||kn(o,"DROP_ANIMATION_FINISHED"))&&i(),r(o),!kn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(pN())}};n=requestAnimationFrame(()=>{n=null,t=Rr(window,[a])})}};var ML=e=>()=>t=>n=>{(kn(n,"DROP_COMPLETE")||kn(n,"FLUSH")||kn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},DL=e=>{let t=!1;return()=>n=>i=>{if(kn(i,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(i.payload.critical.draggable.id),n(i),e.tryRestoreFocusRecorded();return}if(n(i),!!t){if(kn(i,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(kn(i,"DROP_COMPLETE")){t=!1;const r=i.payload.completed.result;r.combine&&e.tryShiftRecord(r.draggableId,r.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const OL=e=>kn(e,"DROP_COMPLETE")||kn(e,"DROP_ANIMATE")||kn(e,"FLUSH");var LL=e=>t=>n=>i=>{if(OL(i)){e.stop(),n(i);return}if(kn(i,"INITIAL_PUBLISH")){n(i);const r=t.getState();r.phase!=="DRAGGING"&&Fe(),e.start(r);return}n(i),e.scroll(t.getState())};const zL=e=>t=>n=>{if(t(n),!kn(n,"PUBLISH_WHILE_DRAGGING"))return;const i=e.getState();i.phase==="DROP_PENDING"&&(i.isWaiting||e.dispatch(mN({reason:i.reason})))},PL=ME;var BL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:i,announce:r,autoScroller:o})=>AE(XO,PL(LD(mL(n),ML(e),fL(e),vL,RL,AL,zL,LL(o),SL,DL(t),TL(i,r))));const Fg=()=>({additions:{},removals:{},modified:{}});function $L({registry:e,callbacks:t}){let n=Fg(),i=null;const r=()=>{i||(t.collectionStarting(),i=requestAnimationFrame(()=>{i=null;const{additions:d,removals:m,modified:h}=n,p=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(wi)).sort((v,b)=>v.descriptor.index-b.descriptor.index),g=Object.keys(h).map(v=>{const S=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:S}}),x={additions:p,removals:Object.keys(m),modified:g};n=Fg(),t.publish(x)}))};return{add:d=>{const m=d.descriptor.id;n.additions[m]=d,n.modified[d.descriptor.droppableId]=!0,n.removals[m]&&delete n.removals[m],r()},remove:d=>{const m=d.descriptor;n.removals[m.id]=!0,n.modified[m.droppableId]=!0,n.additions[m.id]&&delete n.additions[m.id],r()},stop:()=>{i&&(cancelAnimationFrame(i),i=null,n=Fg())}}}var xN=({scrollHeight:e,scrollWidth:t,height:n,width:i})=>{const r=mr({x:t,y:e},{x:i,y:n});return{x:Math.max(0,r.x),y:Math.max(0,r.y)}},vN=()=>{const e=document.documentElement;return e||Fe(),e},bN=()=>{const e=vN();return xN({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},HL=()=>{const e=yN(),t=bN(),n=e.y,i=e.x,r=vN(),o=r.clientWidth,a=r.clientHeight,u=i+o,d=n+a;return{frame:Ur({top:n,left:i,right:u,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:wi,displacement:wi}}}},FL=({critical:e,scrollOptions:t,registry:n})=>{const i=HL(),r=i.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(h=>h.callbacks.getDimensionAndWatchScroll(r,t)),u=n.draggable.getAllByType(e.draggable.type).map(h=>h.getDimension(r));return{dimensions:{draggables:YE(u),droppables:WE(a)},critical:e,viewport:i}};function iw(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var VL=(e,t)=>{let n=null;const i=$L({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),r=(g,x)=>{e.droppable.exists(g)||Fe(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:x})},o=(g,x)=>{n&&(e.droppable.exists(g)||Fe(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:x}))},a=(g,x)=>{n&&(e.droppable.exists(g)||Fe(),t.updateDroppableScroll({id:g,newScroll:x}))},u=(g,x)=>{n&&e.droppable.getById(g).callbacks.scroll(x)},d=()=>{if(!n)return;i.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(x=>x.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||Fe();const x=n.critical.draggable;g.type==="ADDITION"&&iw(e,x,g.value)&&i.add(g.value),g.type==="REMOVAL"&&iw(e,x,g.value)&&i.remove(g.value)};return{updateDroppableIsEnabled:r,updateDroppableIsCombineEnabled:o,scrollDroppable:u,updateDroppableScroll:a,startPublishing:g=>{n&&Fe();const x=e.draggable.getById(g.draggableId),v=e.droppable.getById(x.descriptor.droppableId),b={draggable:x.descriptor,droppable:v.descriptor},S=e.subscribe(m);return n={critical:b,unsubscribe:S},FL({critical:b,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},_N=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",UL=e=>{window.scrollBy(e.x,e.y)};const qL=Si(e=>Fm(e).filter(t=>!(!t.isEnabled||!t.frame))),GL=(e,t)=>qL(t).find(i=>(i.frame||Fe(),rN(i.frame.pageMarginBox)(e)))||null;var WL=({center:e,destination:t,droppables:n})=>{if(t){const r=n[t];return r.frame?r:null}return GL(e,n)};const ju={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var YL=(e,t,n=()=>ju)=>{const i=n(),r=e[t.size]*i.startFromPercentage,o=e[t.size]*i.maxScrollAtPercentage;return{startScrollingFrom:r,maxScrollValueAt:o}},kN=({startOfRange:e,endOfRange:t,current:n})=>{const i=t-e;return i===0?0:(n-e)/i},h0=1,XL=(e,t,n=()=>ju)=>{const i=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return i.maxPixelScroll;if(e===t.startScrollingFrom)return h0;const o=1-kN({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=i.maxPixelScroll*i.ease(o);return Math.ceil(a)},KL=(e,t,n)=>{const i=n(),r=i.durationDampening.accelerateAt,o=i.durationDampening.stopDampeningAt,a=t,u=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=XL(e,t,r);return o===0?0:i?Math.max(KL(o,n,r),h0):o},sw=({container:e,distanceToEdges:t,dragStartTime:n,axis:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=YL(e,i,o);return t[i.end]{const i=t.height>e.height,r=t.width>e.width;return!r&&!i?n:r&&i?null:{x:r?0:n.x,y:i?0:n.y}};const QL=GE(e=>e===0?0:e);var SN=({dragStartTime:e,container:t,subject:n,center:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a={top:i.y-t.top,right:t.right-i.x,bottom:t.bottom-i.y,left:i.x-t.left},u=sw({container:t,distanceToEdges:a,dragStartTime:e,axis:a0,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),d=sw({container:t,distanceToEdges:a,dragStartTime:e,axis:ZE,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),m=QL({x:d,y:u});if(jo(m,wi))return null;const h=ZL({container:t,subject:n,proposedScroll:m});return h?jo(h,wi)?null:h:null};const JL=GE(e=>e===0?0:e>0?1:-1),g0=(()=>{const e=(t,n)=>t<0?t:t>n?t-n:0;return({current:t,max:n,change:i})=>{const r=Ti(t,i),o={x:e(r.x,n.x),y:e(r.y,n.y)};return jo(o,wi)?null:o}})(),wN=({max:e,current:t,change:n})=>{const i={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},r=JL(n),o=g0({max:i,current:t,change:r});return!o||r.x!==0&&o.x===0||r.y!==0&&o.y===0},y0=(e,t)=>wN({current:e.scroll.current,max:e.scroll.max,change:t}),e6=(e,t)=>{if(!y0(e,t))return null;const n=e.scroll.max,i=e.scroll.current;return g0({current:i,max:n,change:t})},x0=(e,t)=>{const n=e.frame;return n?wN({current:n.scroll.current,max:n.scroll.max,change:t}):!1},t6=(e,t)=>{const n=e.frame;return!n||!x0(e,t)?null:g0({current:n.scroll.current,max:n.scroll.max,change:t})};var n6=({viewport:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=SN({dragStartTime:i,container:e.frame,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return a&&y0(e,a)?a:null},i6=({droppable:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const u=SN({dragStartTime:i,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return u&&x0(e,u)?u:null},ow=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:i,scrollDroppable:r,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const p=e.viewport,g=n6({dragStartTime:t,viewport:p,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){i(g);return}}const m=WL({center:a,destination:pr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const h=i6({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});h&&r(m.descriptor.id,h)},r6=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>ju})=>{const i=_u(e),r=_u(t);let o=null;const a=m=>{o||Fe();const{shouldUseTimeDampening:h,dragStartTime:p}=o;ow({state:m,scrollWindow:i,scrollDroppable:r,dragStartTime:p,shouldUseTimeDampening:h,getAutoScrollerOptions:n})};return{start:m=>{o&&Fe();const h=Date.now();let p=!1;const g=()=>{p=!0};ow({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:h,shouldUseTimeDampening:p},p&&a(m)},stop:()=>{o&&(i.cancel(),r.cancel(),o=null)},scroll:a}},s6=({move:e,scrollDroppable:t,scrollWindow:n})=>{const i=(u,d)=>{const m=Ti(u.current.client.selection,d);e({client:m})},r=(u,d)=>{if(!x0(u,d))return d;const m=t6(u,d);if(!m)return t(u.descriptor.id,d),null;const h=mr(d,m);return t(u.descriptor.id,h),mr(d,h)},o=(u,d,m)=>{if(!u||!y0(d,m))return m;const h=e6(d,m);if(!h)return n(m),null;const p=mr(m,h);return n(p),mr(m,p)};return u=>{const d=u.scrollJumpRequest;if(!d)return;const m=pr(u.impact);m||Fe();const h=r(u.dimensions.droppables[m],d);if(!h)return;const p=u.viewport,g=o(u.isWindowScrollAllowed,p,h);g&&i(u,g)}},o6=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:i})=>{const r=r6({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:i}),o=s6({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(i().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){r.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:r.start,stop:r.stop}};const jl="data-rfd",El=(()=>{const e=`${jl}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),lv=(()=>{const e=`${jl}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),a6=(()=>{const e=`${jl}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),aw={contextId:`${jl}-scroll-container-context-id`},l6=e=>t=>`[${t}="${e}"]`,Vc=(e,t)=>e.map(n=>{const i=n.styles[t];return i?`${n.selector} { ${i} }`:""}).join(" "),c6="pointer-events: none;";var u6=e=>{const t=l6(e),n=(()=>{const u=` + cursor: -webkit-grab; + cursor: grab; + `;return{selector:t(El.contextId),styles:{always:` + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0,0,0,0); + touch-action: manipulation; + `,resting:u,dragging:c6,dropAnimating:u}}})(),i=(()=>{const u=` + transition: ${fu.outOfTheWay}; + `;return{selector:t(lv.contextId),styles:{dragging:u,dropAnimating:u,userCancel:u}}})(),r={selector:t(a6.contextId),styles:{always:"overflow-anchor: none;"}},a=[i,n,r,{selector:"body",styles:{dragging:` + cursor: grabbing; + cursor: -webkit-grabbing; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + overflow-anchor: none; + `}}];return{always:Vc(a,"always"),resting:Vc(a,"resting"),dragging:Vc(a,"dragging"),dropAnimating:Vc(a,"dropAnimating"),userCancel:Vc(a,"userCancel")}};const hr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect,Vg=()=>{const e=document.querySelector("head");return e||Fe(),e},lw=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function d6(e,t){const n=nn(()=>u6(e),[e]),i=C.useRef(null),r=C.useRef(null),o=st(Si(p=>{const g=r.current;g||Fe(),g.textContent=p}),[]),a=st(p=>{const g=i.current;g||Fe(),g.textContent=p},[]);hr(()=>{!i.current&&!r.current||Fe();const p=lw(t),g=lw(t);return i.current=p,r.current=g,p.setAttribute(`${jl}-always`,e),g.setAttribute(`${jl}-dynamic`,e),Vg().appendChild(p),Vg().appendChild(g),a(n.always),o(n.resting),()=>{const x=v=>{const b=v.current;b||Fe(),Vg().removeChild(b),v.current=null};x(i),x(r)}},[t,a,o,n.always,n.resting,e]);const u=st(()=>o(n.dragging),[o,n.dragging]),d=st(p=>{if(p==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=st(()=>{r.current&&o(n.resting)},[o,n.resting]);return nn(()=>({dragging:u,dropping:d,resting:m}),[u,d,m])}function CN(e,t){return Array.from(e.querySelectorAll(t))}var jN=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function Gm(e){return e instanceof jN(e).HTMLElement}function f6(e,t){const n=`[${El.contextId}="${e}"]`,i=CN(document,n);if(!i.length)return null;const r=i.find(o=>o.getAttribute(El.draggableId)===t);return!r||!Gm(r)?null:r}function m6(e){const t=C.useRef({}),n=C.useRef(null),i=C.useRef(null),r=C.useRef(!1),o=st(function(g,x){const v={id:g,focus:x};return t.current[g]=v,function(){const S=t.current;S[g]!==v&&delete S[g]}},[]),a=st(function(g){const x=f6(e,g);x&&x!==document.activeElement&&x.focus()},[e]),u=st(function(g,x){n.current===g&&(n.current=x)},[]),d=st(function(){i.current||r.current&&(i.current=requestAnimationFrame(()=>{i.current=null;const g=n.current;g&&a(g)}))},[a]),m=st(function(g){n.current=null;const x=document.activeElement;x&&x.getAttribute(El.draggableId)===g&&(n.current=g)},[]);return hr(()=>(r.current=!0,function(){r.current=!1;const g=i.current;g&&cancelAnimationFrame(g)}),[]),nn(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:u}),[o,m,d,u])}function p6(){const e={draggables:{},droppables:{}},t=[];function n(p){return t.push(p),function(){const x=t.indexOf(p);x!==-1&&t.splice(x,1)}}function i(p){t.length&&t.forEach(g=>g(p))}function r(p){return e.draggables[p]||null}function o(p){const g=r(p);return g||Fe(),g}const a={register:p=>{e.draggables[p.descriptor.id]=p,i({type:"ADDITION",value:p})},update:(p,g)=>{const x=e.draggables[g.descriptor.id];x&&x.uniqueId===p.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[p.descriptor.id]=p)},unregister:p=>{const g=p.descriptor.id,x=r(g);x&&p.uniqueId===x.uniqueId&&(delete e.draggables[g],e.droppables[p.descriptor.droppableId]&&i({type:"REMOVAL",value:p}))},getById:o,findById:r,exists:p=>!!r(p),getAllByType:p=>Object.values(e.draggables).filter(g=>g.descriptor.type===p)};function u(p){return e.droppables[p]||null}function d(p){const g=u(p);return g||Fe(),g}const m={register:p=>{e.droppables[p.descriptor.id]=p},unregister:p=>{const g=u(p.descriptor.id);g&&p.uniqueId===g.uniqueId&&delete e.droppables[p.descriptor.id]},getById:d,findById:u,exists:p=>!!u(p),getAllByType:p=>Object.values(e.droppables).filter(g=>g.descriptor.type===p)};function h(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:h}}function h6(){const e=nn(p6,[]);return C.useEffect(()=>function(){e.clean()},[e]),e}var v0=At.createContext(null),um=()=>{const e=document.body;return e||Fe(),e};const g6={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},y6=e=>`rfd-announcement-${e}`;function x6(e){const t=nn(()=>y6(e),[e]),n=C.useRef(null);return C.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),om(o.style,g6),um().appendChild(o),function(){setTimeout(function(){const d=um();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),st(r=>{const o=n.current;if(o){o.textContent=r;return}},[])}const v6={separator:"::"};function b0(e,t=v6){const n=At.useId();return nn(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function b6({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function _6({contextId:e,text:t}){const n=b0("hidden-text",{separator:"-"}),i=nn(()=>b6({contextId:e,uniqueId:n}),[n,e]);return C.useEffect(function(){const o=document.createElement("div");return o.id=i,o.textContent=t,o.style.display="none",um().appendChild(o),function(){const u=um();u.contains(o)&&u.removeChild(o)}},[i,t]),i}var Wm=At.createContext(null);function EN(e){const t=C.useRef(e);return C.useEffect(()=>{t.current=e}),t}function k6(){let e=null;function t(){return!!e}function n(a){return a===e}function i(a){e&&Fe();const u={abandon:a};return e=u,u}function r(){e||Fe(),e=null}function o(){e&&(e.abandon(),r())}return{isClaimed:t,isActive:n,claim:i,release:r,tryAbandon:o}}function Eu(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const S6=9,w6=13,_0=27,NN=32,C6=33,j6=34,E6=35,N6=36,I6=37,T6=38,R6=39,A6=40,M6={[w6]:!0,[S6]:!0};var IN=e=>{M6[e.keyCode]&&e.preventDefault()};const Ym=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(i=>`on${i}`in document)||e})(),TN=0,cw=5;function D6(e,t){return Math.abs(t.x-e.x)>=cw||Math.abs(t.y-e.y)>=cw}const uw={type:"IDLE"};function O6({cancel:e,completed:t,getPhase:n,setPhase:i}){return[{eventName:"mousemove",fn:r=>{const{button:o,clientX:a,clientY:u}=r;if(o!==TN)return;const d={x:a,y:u},m=n();if(m.type==="DRAGGING"){r.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&Fe();const h=m.point;if(!D6(h,d))return;r.preventDefault();const p=m.actions.fluidLift(d);i({type:"DRAGGING",actions:p})}},{eventName:"mouseup",fn:r=>{const o=n();if(o.type!=="DRAGGING"){e();return}r.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:r=>{n().type==="DRAGGING"&&r.preventDefault(),e()}},{eventName:"keydown",fn:r=>{if(n().type==="PENDING"){e();return}if(r.keyCode===_0){r.preventDefault(),e();return}IN(r)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:r=>{const o=n();if(o.type==="IDLE"&&Fe(),o.actions.shouldRespectForcePress()){e();return}r.preventDefault()}},{eventName:Ym,fn:e}]}function L6(e){const t=C.useRef(uw),n=C.useRef(Co),i=nn(()=>({eventName:"mousedown",fn:function(p){if(p.defaultPrevented||p.button!==TN||p.ctrlKey||p.metaKey||p.shiftKey||p.altKey)return;const g=e.findClosestDraggableId(p);if(!g)return;const x=e.tryGetLock(g,a,{sourceEvent:p});if(!x)return;p.preventDefault();const v={x:p.clientX,y:p.clientY};n.current(),m(x,v)}}),[e]),r=nn(()=>({eventName:"webkitmouseforcewillbegin",fn:h=>{if(h.defaultPrevented)return;const p=e.findClosestDraggableId(h);if(!p)return;const g=e.findOptionsForDraggable(p);g&&(g.shouldRespectForcePress||e.canGetLock(p)&&h.preventDefault())}}),[e]),o=st(function(){const p={passive:!1,capture:!0};n.current=Rr(window,[r,i],p)},[r,i]),a=st(()=>{t.current.type!=="IDLE"&&(t.current=uw,n.current(),o())},[o]),u=st(()=>{const h=t.current;a(),h.type==="DRAGGING"&&h.actions.cancel({shouldBlockNextClick:!0}),h.type==="PENDING"&&h.actions.abort()},[a]),d=st(function(){const p={capture:!0,passive:!1},g=O6({cancel:u,completed:a,getPhase:()=>t.current,setPhase:x=>{t.current=x}});n.current=Rr(window,g,p)},[u,a]),m=st(function(p,g){t.current.type!=="IDLE"&&Fe(),t.current={type:"PENDING",point:g,actions:p},d()},[d]);hr(function(){return o(),function(){n.current()}},[o])}function z6(){}const P6={[j6]:!0,[C6]:!0,[N6]:!0,[E6]:!0};function B6(e,t){function n(){t(),e.cancel()}function i(){t(),e.drop()}return[{eventName:"keydown",fn:r=>{if(r.keyCode===_0){r.preventDefault(),n();return}if(r.keyCode===NN){r.preventDefault(),i();return}if(r.keyCode===A6){r.preventDefault(),e.moveDown();return}if(r.keyCode===T6){r.preventDefault(),e.moveUp();return}if(r.keyCode===R6){r.preventDefault(),e.moveRight();return}if(r.keyCode===I6){r.preventDefault(),e.moveLeft();return}if(P6[r.keyCode]){r.preventDefault();return}IN(r)}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Ym,fn:n}]}function $6(e){const t=C.useRef(z6),n=nn(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==NN)return;const a=e.findClosestDraggableId(o);if(!a)return;const u=e.tryGetLock(a,h,{sourceEvent:o});if(!u)return;o.preventDefault();let d=!0;const m=u.snapLift();t.current();function h(){d||Fe(),d=!1,t.current(),i()}t.current=Rr(window,B6(m,h),{capture:!0,passive:!1})}}),[e]),i=st(function(){const o={passive:!1,capture:!0};t.current=Rr(window,[n],o)},[n]);hr(function(){return i(),function(){t.current()}},[i])}const Ug={type:"IDLE"},H6=120,F6=.15;function V6({cancel:e,getPhase:t}){return[{eventName:"orientationchange",fn:e},{eventName:"resize",fn:e},{eventName:"contextmenu",fn:n=>{n.preventDefault()}},{eventName:"keydown",fn:n=>{if(t().type!=="DRAGGING"){e();return}n.keyCode===_0&&n.preventDefault(),e()}},{eventName:Ym,fn:e}]}function U6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}r.hasMoved=!0;const{clientX:o,clientY:a}=i.touches[0],u={x:o,y:a};i.preventDefault(),r.actions.move(u)}},{eventName:"touchend",fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}i.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:i=>{if(n().type!=="DRAGGING"){e();return}i.preventDefault(),e()}},{eventName:"touchforcechange",fn:i=>{const r=n();r.type==="IDLE"&&Fe();const o=i.touches[0];if(!o||!(o.force>=F6))return;const u=r.actions.shouldRespectForcePress();if(r.type==="PENDING"){u&&e();return}if(u){if(r.hasMoved){i.preventDefault();return}e();return}i.preventDefault()}},{eventName:Ym,fn:e}]}function q6(e){const t=C.useRef(Ug),n=C.useRef(Co),i=st(function(){return t.current},[]),r=st(function(x){t.current=x},[]),o=nn(()=>({eventName:"touchstart",fn:function(x){if(x.defaultPrevented)return;const v=e.findClosestDraggableId(x);if(!v)return;const b=e.tryGetLock(v,u,{sourceEvent:x});if(!b)return;const S=x.touches[0],{clientX:w,clientY:k}=S,j={x:w,y:k};n.current(),p(b,j)}}),[e]),a=st(function(){const x={capture:!0,passive:!1};n.current=Rr(window,[o],x)},[o]),u=st(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),r(Ug),n.current(),a())},[a,r]),d=st(()=>{const g=t.current;u(),g.type==="DRAGGING"&&g.actions.cancel({shouldBlockNextClick:!0}),g.type==="PENDING"&&g.actions.abort()},[u]),m=st(function(){const x={capture:!0,passive:!1},v={cancel:d,completed:u,getPhase:i},b=Rr(window,U6(v),x),S=Rr(window,V6(v),x);n.current=function(){b(),S()}},[d,i,u]),h=st(function(){const x=i();x.type!=="PENDING"&&Fe();const v=x.actions.fluidLift(x.point);r({type:"DRAGGING",actions:v,hasMoved:!1})},[i,r]),p=st(function(x,v){i().type!=="IDLE"&&Fe();const b=setTimeout(h,H6);r({type:"PENDING",point:v,actions:x,longPressTimerId:b}),m()},[m,i,r,h]);hr(function(){return a(),function(){n.current();const v=i();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),r(Ug))}},[i,a,r]),hr(function(){return Rr(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const G6=["input","button","textarea","select","option","optgroup","video","audio"];function RN(e,t){if(t==null)return!1;if(G6.includes(t.tagName.toLowerCase()))return!0;const i=t.getAttribute("contenteditable");return i==="true"||i===""?!0:t===e?!1:RN(e,t.parentElement)}function W6(e,t){const n=t.target;return Gm(n)?RN(e,n):!1}var Y6=e=>Ur(e.getBoundingClientRect()).center;function X6(e){return e instanceof jN(e).Element}const K6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(i=>i in Element.prototype)||e})();function AN(e,t){return e==null?null:e[K6](t)?e:AN(e.parentElement,t)}function Z6(e,t){return e.closest?e.closest(t):AN(e,t)}function Q6(e){return`[${El.contextId}="${e}"]`}function J6(e,t){const n=t.target;if(!X6(n))return null;const i=Q6(e),r=Z6(n,i);return!r||!Gm(r)?null:r}function ez(e,t){const n=J6(e,t);return n?n.getAttribute(El.draggableId):null}function tz(e,t){const n=`[${lv.contextId}="${e}"]`,r=CN(document,n).find(o=>o.getAttribute(lv.id)===t);return!r||!Gm(r)?null:r}function nz(e){e.preventDefault()}function ff({expected:e,phase:t,isLockActive:n,shouldWarn:i}){return!(!n()||e!==t)}function MN({lockAPI:e,store:t,registry:n,draggableId:i}){if(e.isClaimed())return!1;const r=n.draggable.findById(i);return!(!r||!r.options.isEnabled||!_N(t.getState(),i))}function iz({lockAPI:e,contextId:t,store:n,registry:i,draggableId:r,forceSensorStop:o,sourceEvent:a}){if(!MN({lockAPI:e,store:n,registry:i,draggableId:r}))return null;const d=i.draggable.getById(r),m=tz(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&W6(m,a))return null;const h=e.claim(o||Co);let p="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function x(){return e.isActive(h)}function v(z,I){ff({expected:z,phase:p,isLockActive:x,shouldWarn:!0})&&n.dispatch(I())}const b=v.bind(null,"DRAGGING");function S(z){function I(){e.release(),p="COMPLETED"}p!=="PRE_DRAG"&&(I(),Fe()),n.dispatch(ZO(z.liftActionArgs)),p="DRAGGING";function A(L,M={shouldBlockNextClick:!1}){if(z.cleanup(),M.shouldBlockNextClick){const O=Rr(window,[{eventName:"click",fn:nz,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(O)}I(),n.dispatch(mN({reason:L}))}return{isActive:()=>ff({expected:"DRAGGING",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,drop:L=>A("DROP",L),cancel:L=>A("CANCEL",L),...z.actions}}function w(z){const I=_u(L=>{b(()=>fN({client:L}))});return{...S({liftActionArgs:{id:r,clientSelection:z,movementMode:"FLUID"},cleanup:()=>I.cancel(),actions:{move:I}}),move:I}}function k(){const z={moveUp:()=>b(oL),moveRight:()=>b(lL),moveDown:()=>b(aL),moveLeft:()=>b(cL)};return S({liftActionArgs:{id:r,clientSelection:Y6(m),movementMode:"SNAP"},cleanup:Co,actions:z})}function j(){ff({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!0})&&e.release()}return{isActive:()=>ff({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:w,snapLift:k,abort:j}}const rz=[L6,$6,q6];function sz({contextId:e,store:t,registry:n,customSensors:i,enableDefaultSensors:r}){const o=[...r?rz:[],...i||[]],a=C.useState(()=>k6())[0],u=st(function(S,w){Eu(S)&&!Eu(w)&&a.tryAbandon()},[a]);hr(function(){let S=t.getState();return t.subscribe(()=>{const k=t.getState();u(S,k),S=k})},[a,t,u]),hr(()=>a.tryAbandon,[a.tryAbandon]);const d=st(b=>MN({lockAPI:a,registry:n,store:t,draggableId:b}),[a,n,t]),m=st((b,S,w)=>iz({lockAPI:a,registry:n,contextId:e,store:t,draggableId:b,forceSensorStop:S||null,sourceEvent:w&&w.sourceEvent?w.sourceEvent:null}),[e,a,n,t]),h=st(b=>ez(e,b),[e]),p=st(b=>{const S=n.draggable.findById(b);return S?S.options:null},[n.draggable]),g=st(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(f0()))},[a,t]),x=st(()=>a.isClaimed(),[a]),v=nn(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:h,findOptionsForDraggable:p,tryReleaseLock:g,isLockClaimed:x}),[d,m,h,p,g,x]);for(let b=0;b({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};Om.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),az=e=>({...ju,...e.autoScrollerOptions,durationDampening:{...ju.durationDampening,...e.autoScrollerOptions}});function Uc(e){return e.current||Fe(),e.current}function lz(e){const{contextId:t,setCallbacks:n,sensors:i,nonce:r,dragHandleUsageInstructions:o}=e,a=C.useRef(null),u=EN(e),d=st(()=>oz(u.current),[u]),m=st(()=>az(u.current),[u]),h=x6(t),p=_6({contextId:t,text:o}),g=d6(t,r),x=st(O=>{Uc(a).dispatch(O)},[]),v=nn(()=>LS({publishWhileDragging:JO,updateDroppableScroll:tL,updateDroppableIsEnabled:nL,updateDroppableIsCombineEnabled:iL,collectionStarting:eL},x),[x]),b=h6(),S=nn(()=>VL(b,v),[b,v]),w=nn(()=>o6({scrollWindow:UL,scrollDroppable:S.scrollDroppable,getAutoScrollerOptions:m,...LS({move:fN},x)}),[S.scrollDroppable,x,m]),k=m6(t),j=nn(()=>BL({announce:h,autoScroller:w,dimensionMarshal:S,focusMarshal:k,getResponders:d,styleMarshal:g}),[h,w,S,k,d,g]);a.current=j;const N=st(()=>{const O=Uc(a);O.getState().phase!=="IDLE"&&O.dispatch(f0())},[]),z=st(()=>{const O=Uc(a).getState();return O.phase==="DROP_ANIMATING"?!0:O.phase==="IDLE"?!1:O.isDragging},[]),I=nn(()=>({isDragging:z,tryAbort:N}),[z,N]);n(I);const A=st(O=>_N(Uc(a).getState(),O),[]),L=st(()=>ia(Uc(a).getState()),[]),M=nn(()=>({marshal:S,focus:k,contextId:t,canLift:A,isMovementAllowed:L,dragHandleUsageInstructionsId:p,registry:b}),[t,S,p,k,A,L,b]);return sz({contextId:t,store:j,registry:b,customSensors:i||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),C.useEffect(()=>N,[N]),At.createElement(Wm.Provider,{value:M},At.createElement(M5,{context:v0,store:j},e.children))}function cz(){return At.useId()}function uz(e){const t=cz(),n=e.dragHandleUsageInstructions||$f.dragHandleUsageInstructions;return At.createElement($5,null,i=>At.createElement(lz,{nonce:e.nonce,contextId:t,setCallbacks:i,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd,autoScrollerOptions:e.autoScrollerOptions},e.children))}const dw={dragging:5e3,dropAnimating:4500},dz=(e,t)=>t?fu.drop(t.duration):e?fu.snap:fu.fluid,fz=(e,t)=>{if(e)return t?Cu.opacity.drop:Cu.opacity.combining},mz=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function pz(e){const n=e.dimension.client,{offset:i,combineWith:r,dropping:o}=e,a=!!r,u=mz(e),d=!!o,m=d?ov.drop(i,a):ov.moveTo(i);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:dz(u,o),transform:m,opacity:fz(a,d),zIndex:d?dw.dropAnimating:dw.dragging,pointerEvents:"none"}}function hz(e){return{transform:ov.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function gz(e){return e.type==="DRAGGING"?pz(e):hz(e)}function yz(e,t,n=wi){const i=window.getComputedStyle(t),r=t.getBoundingClientRect(),o=$E(r,i),a=sm(o,n),u={client:o,tagName:t.tagName.toLowerCase(),display:i.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:u,displaceBy:d,client:o,page:a}}function xz(e){const t=b0("draggable"),{descriptor:n,registry:i,getDraggableRef:r,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}=e,d=nn(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}),[o,u,a]),m=st(x=>{const v=r();return v||Fe(),yz(n,v,x)},[n,r]),h=nn(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),p=C.useRef(h),g=C.useRef(!0);hr(()=>(i.draggable.register(p.current),()=>i.draggable.unregister(p.current)),[i.draggable]),hr(()=>{if(g.current){g.current=!1;return}const x=p.current;p.current=h,i.draggable.update(h,x)},[h,i.draggable])}var k0=At.createContext(null);function dm(e){const t=C.useContext(e);return t||Fe(),t}function vz(e){e.preventDefault()}const bz=e=>{const t=C.useRef(null),n=st((I=null)=>{t.current=I},[]),i=st(()=>t.current,[]),{contextId:r,dragHandleUsageInstructionsId:o,registry:a}=dm(Wm),{type:u,droppableId:d}=dm(k0),m=nn(()=>({id:e.draggableId,index:e.index,type:u,droppableId:d}),[e.draggableId,e.index,u,d]),{children:h,draggableId:p,isEnabled:g,shouldRespectForcePress:x,canDragInteractiveElements:v,isClone:b,mapped:S,dropAnimationFinished:w}=e;if(!b){const I=nn(()=>({descriptor:m,registry:a,getDraggableRef:i,canDragInteractiveElements:v,shouldRespectForcePress:x,isEnabled:g}),[m,a,i,v,x,g]);xz(I)}const k=nn(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":p,"data-rfd-drag-handle-context-id":r,draggable:!1,onDragStart:vz}:null,[r,o,p,g]),j=st(I=>{S.type==="DRAGGING"&&S.dropping&&I.propertyName==="transform"&&Om.flushSync(w)},[w,S]),N=nn(()=>{const I=gz(S),A=S.type==="DRAGGING"&&S.dropping?j:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":r,"data-rfd-draggable-id":p,style:I,onTransitionEnd:A},dragHandleProps:k}},[r,k,p,S,j,n]),z=nn(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return At.createElement(At.Fragment,null,h(N,S.snapshot,z))};var DN=(e,t)=>e===t,ON=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const _z=e=>e.combine?e.combine.draggableId:null,kz=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function Sz(){const e=Si((r,o)=>({x:r,y:o})),t=Si((r,o,a=null,u=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:r,draggingOver:a,combineWith:u,combineTargetFor:null})),n=Si((r,o,a,u,d=null,m=null,h=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:r,dimension:a,forceShouldAnimate:h,snapshot:t(o,u,d,m,null)}}));return(r,o)=>{if(Eu(r)){if(r.critical.draggable.id!==o.draggableId)return null;const a=r.current.client.offset,u=r.dimensions.draggables[o.draggableId],d=pr(r.impact),m=kz(r.impact),h=r.forceShouldAnimate;return n(e(a.x,a.y),r.movementMode,u,o.isClone,d,m,h)}if(r.phase==="DROP_ANIMATING"){const a=r.completed;if(a.result.draggableId!==o.draggableId)return null;const u=o.isClone,d=r.dimensions.draggables[o.draggableId],m=a.result,h=m.mode,p=ON(m),g=_z(m),v={duration:r.dropDuration,curve:p0.drop,moveTo:r.newHomeClientOffset,opacity:g?Cu.opacity.drop:null,scale:g?Cu.scale.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:d,dropping:v,draggingOver:p,combineWith:g,mode:h,forceShouldAnimate:null,snapshot:t(h,u,p,g,v)}}}return null}}function LN(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const wz={mapped:{type:"SECONDARY",offset:wi,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:LN(null)}};function Cz(){const e=Si((a,u)=>({x:a,y:u})),t=Si(LN),n=Si((a,u=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:u,shouldAnimateDisplacement:d,snapshot:t(u)}})),i=a=>a?n(wi,a,!0):null,r=(a,u,d,m)=>{const h=d.displaced.visible[a],p=!!(m.inVirtualList&&m.effected[a]),g=Vm(d),x=g&&g.draggableId===a?u:null;if(!h){if(!p)return i(x);if(d.displaced.invisible[a])return null;const S=Ul(m.displacedBy.point),w=e(S.x,S.y);return n(w,x,!0)}if(p)return i(x);const v=d.displacedBy.point,b=e(v.x,v.y);return n(b,x,h.shouldAnimate)};return(a,u)=>{if(Eu(a))return a.critical.draggable.id===u.draggableId?null:r(u.draggableId,a.critical.draggable.id,a.impact,a.afterCritical);if(a.phase==="DROP_ANIMATING"){const d=a.completed;return d.result.draggableId===u.draggableId?null:r(u.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const jz=()=>{const e=Sz(),t=Cz();return(i,r)=>e(i,r)||t(i,r)||wz},Ez={dropAnimationFinished:pN},Nz=BE(jz,Ez,null,{context:v0,areStatePropsEqual:DN})(bz);function zN(e){return dm(k0).isUsingCloneFor===e.draggableId&&!e.isClone?null:At.createElement(Nz,e)}function Iz(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,i=!!e.shouldRespectForcePress;return At.createElement(zN,om({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:i}))}const PN=e=>t=>e===t,Tz=PN("scroll"),Rz=PN("auto"),fw=(e,t)=>t(e.overflowX)||t(e.overflowY),Az=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return fw(n,Tz)||fw(n,Rz)},Mz=()=>!1,BN=e=>e==null?null:e===document.body?Mz()?e:null:e===document.documentElement?null:Az(e)?e:BN(e.parentElement);var cv=e=>({x:e.scrollLeft,y:e.scrollTop});const $N=e=>e?window.getComputedStyle(e).position==="fixed"?!0:$N(e.parentElement):!1;var Dz=e=>{const t=BN(e),n=$N(e);return{closestScrollable:t,isFixedOnPage:n}},Oz=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:i,direction:r,client:o,page:a,closest:u})=>{const d=(()=>{if(!u)return null;const{scrollSize:g,client:x}=u,v=xN({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:x.paddingBox.height,width:x.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:x,scrollSize:g,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:v,diff:{value:wi,displacement:wi}}}})(),m=r==="vertical"?a0:ZE,h=Cl({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:i,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:h}};const Lz=(e,t)=>{const n=HE(e);if(!t||e!==t)return n;const i=n.paddingBox.top-t.scrollTop,r=n.paddingBox.left-t.scrollLeft,o=i+t.scrollHeight,a=r+t.scrollWidth,d=i0({top:i,right:a,bottom:o,left:r},n.border);return r0({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var zz=({ref:e,descriptor:t,env:n,windowScroll:i,direction:r,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:u})=>{const d=n.closestScrollable,m=Lz(e,d),h=sm(m,i),p=(()=>{if(!d)return null;const x=HE(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:x,page:sm(x,i),scroll:cv(d),scrollSize:v,shouldClipSubject:u}})();return Oz({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:r,client:m,page:h,closest:p})};const Pz={passive:!1},Bz={passive:!0};var mw=e=>e.shouldPublishImmediately?Pz:Bz;const mf=e=>e&&e.env.closestScrollable||null;function $z(e){const t=C.useRef(null),n=dm(Wm),i=b0("droppable"),{registry:r,marshal:o}=n,a=EN(e),u=nn(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=C.useRef(u),m=nn(()=>Si((N,z)=>{t.current||Fe();const I={x:N,y:z};o.updateDroppableScroll(u.id,I)}),[u.id,o]),h=st(()=>{const N=t.current;return!N||!N.env.closestScrollable?wi:cv(N.env.closestScrollable)},[]),p=st(()=>{const N=h();m(N.x,N.y)},[h,m]),g=nn(()=>_u(p),[p]),x=st(()=>{const N=t.current,z=mf(N);if(N&&z||Fe(),N.scrollOptions.shouldPublishImmediately){p();return}g()},[g,p]),v=st((N,z)=>{t.current&&Fe();const I=a.current,A=I.getDroppableRef();A||Fe();const L=Dz(A),M={ref:A,descriptor:u,env:L,scrollOptions:z};t.current=M;const O=zz({ref:A,descriptor:u,env:L,windowScroll:N,direction:I.direction,isDropDisabled:I.isDropDisabled,isCombineEnabled:I.isCombineEnabled,shouldClipSubject:!I.ignoreContainerClipping}),T=L.closestScrollable;return T&&(T.setAttribute(aw.contextId,n.contextId),T.addEventListener("scroll",x,mw(M.scrollOptions))),O},[n.contextId,u,x,a]),b=st(()=>{const N=t.current,z=mf(N);return N&&z||Fe(),cv(z)},[]),S=st(()=>{const N=t.current;N||Fe();const z=mf(N);t.current=null,z&&(g.cancel(),z.removeAttribute(aw.contextId),z.removeEventListener("scroll",x,mw(N.scrollOptions)))},[x,g]),w=st(N=>{const z=t.current;z||Fe();const I=mf(z);I||Fe(),I.scrollTop+=N.y,I.scrollLeft+=N.x},[]),k=nn(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:b,dragStopped:S,scroll:w}),[S,v,b,w]),j=nn(()=>({uniqueId:i,descriptor:u,callbacks:k}),[k,u,i]);hr(()=>(d.current=j.descriptor,r.droppable.register(j),()=>{t.current&&S(),r.droppable.unregister(j)}),[k,u,S,j,o,r.droppable]),hr(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),hr(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function qg(){}const pw={width:0,height:0,margin:W5},Hz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?pw:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},Fz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const i=Hz({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:i.width,height:i.height,marginTop:i.margin.top,marginRight:i.margin.right,marginBottom:i.margin.bottom,marginLeft:i.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?fu.placeholder:null}},Vz=e=>{const t=C.useRef(null),n=st(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:i,onTransitionEnd:r,onClose:o,contextId:a}=e,[u,d]=C.useState(e.animate==="open");C.useEffect(()=>u?i!=="open"?(n(),d(!1),qg):t.current?qg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):qg,[i,u,n]);const m=st(p=>{p.propertyName==="height"&&(r(),i==="close"&&o())},[i,o,r]),h=Fz({isAnimatingOpenOnMount:u,animate:e.animate,placeholder:e.placeholder});return At.createElement(e.placeholder.tagName,{style:h,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var Uz=At.memo(Vz);class qz extends At.PureComponent{constructor(...t){super(...t),this.state={isVisible:!!this.props.on,data:this.props.on,animate:this.props.shouldAnimate&&this.props.on?"open":"none"},this.onClose=()=>{this.state.animate==="close"&&this.setState({isVisible:!1})}}static getDerivedStateFromProps(t,n){return t.shouldAnimate?t.on?{isVisible:!0,data:t.on,animate:"open"}:n.isVisible?{isVisible:!0,data:n.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:!!t.on,data:t.on,animate:"none"}}render(){if(!this.state.isVisible)return null;const t={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(t)}}const Gz=e=>{const t=C.useContext(Wm);t||Fe();const{contextId:n,isMovementAllowed:i}=t,r=C.useRef(null),o=C.useRef(null),{children:a,droppableId:u,type:d,mode:m,direction:h,ignoreContainerClipping:p,isDropDisabled:g,isCombineEnabled:x,snapshot:v,useClone:b,updateViewportMaxScroll:S,getContainerForClone:w}=e,k=st(()=>r.current,[]),j=st((T=null)=>{r.current=T},[]);st(()=>o.current,[]);const N=st((T=null)=>{o.current=T},[]),z=st(()=>{i()&&S({maxScroll:bN()})},[i,S]);$z({droppableId:u,type:d,mode:m,direction:h,isDropDisabled:g,isCombineEnabled:x,ignoreContainerClipping:p,getDroppableRef:k});const I=nn(()=>At.createElement(qz,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:T,data:$,animate:G})=>At.createElement(Uz,{placeholder:$,onClose:T,innerRef:N,animate:G,contextId:n,onTransitionEnd:z})),[n,z,e.placeholder,e.shouldAnimatePlaceholder,N]),A=nn(()=>({innerRef:j,placeholder:I,droppableProps:{"data-rfd-droppable-id":u,"data-rfd-droppable-context-id":n}}),[n,u,I,j]),L=b?b.dragging.draggableId:null,M=nn(()=>({droppableId:u,type:d,isUsingCloneFor:L}),[u,L,d]);function O(){if(!b)return null;const{dragging:T,render:$}=b,G=At.createElement(zN,{draggableId:T.draggableId,index:T.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(P,F)=>$(P,F,T));return M4.createPortal(G,w())}return At.createElement(k0.Provider,{value:M},a(A,v),O())};function Wz(){return document.body||Fe(),document.body}const hw={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:Wz},HN=e=>{let t={...e},n;for(n in hw)e[n]===void 0&&(t={...t,[n]:hw[n]});return t},Gg=(e,t)=>e===t.droppable.type,gw=(e,t)=>t.draggables[e.draggable.id],Yz=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=Si(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),i=Si((o,a,u,d,m,h)=>{const p=m.descriptor.id;if(m.descriptor.droppableId===o){const v=h?{render:h,dragging:n(m.descriptor)}:null,b={isDraggingOver:u,draggingOverWith:u?p:null,draggingFromThisWith:p,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:b,useClone:v}}if(!a)return t;if(!d)return e;const x={isDraggingOver:u,draggingOverWith:p,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:x,useClone:null}});return(o,a)=>{const u=HN(a),d=u.droppableId,m=u.type,h=!u.isDropDisabled,p=u.renderClone;if(Eu(o)){const g=o.critical;if(!Gg(m,g))return t;const x=gw(g,o.dimensions),v=pr(o.impact)===d;return i(d,h,v,v,x,p)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!Gg(m,g.critical))return t;const x=gw(g.critical,o.dimensions);return i(d,h,ON(g.result)===d,pr(g.impact)===d,x,p)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!Gg(m,g.critical))return t;const x=pr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),b=g.critical.droppable.id===d;return x?v?e:t:b?e:t}return t}},Xz={updateViewportMaxScroll:sL},Kz=BE(Yz,Xz,(e,t,n)=>({...HN(n),...e,...t}),{context:v0,areStatePropsEqual:DN})(Gz),fm={urgent:{label:"Urgent",color:"var(--red)",symbol:"▲▲"},high:{label:"High",color:"var(--yellow)",symbol:"▲"},medium:{label:"Medium",color:"var(--accent)",symbol:"■"},low:{label:"Low",color:"var(--text-secondary)",symbol:"▽"}},S0={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function w0(e){const t=(e??"").trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function Nl(e){const t=(e.workItemRoleName??"").trim();return t||w0(e.workItemRoleId)}function Zz(e){return(e.employeeAssignment?.name??"").trim()}function Wg(e){const t=Nl(e),n=Zz(e);return t&&n?`${t} · ${n}`:t||n}function hl(e){return typeof e=="string"?e.trim():""}function ko(e){if(!e)return"";const t=e;return hl(t.executionTurnId)||hl(t.runtimeTaskId)||hl(t.taskId)}function Xm(e){return hl(e?.workItemId)?hl(e?.executionTurnId)||hl(e?.runtimeTaskId):""}const Qz={todo:{label:"To do",color:"#9ca3af"},in_progress:{label:"In progress",color:"#f59e0b"},in_review:{label:"In review",color:"#fbbf24"},done:{label:"Done",color:"#34d399"},running:{label:"Running",color:"#34d399"},idle:{label:"Idle",color:"#6366f1"},blocked:{label:"Blocked",color:"#f97316"},awaiting_peer:{label:"Awaiting",color:"#fbbf24"},awaiting_manager_review:{label:"Mgr Review",color:"#fbbf24"},awaiting_human:{label:"Human Review",color:"#fbbf24"},awaiting_review:{label:"In Review",color:"#fbbf24"},failed:{label:"Failed",color:"#ef4444"},cancelled:{label:"Cancelled",color:"#9ca3af"}};function Jz({task:e,index:t,agents:n,officeMap:i,companyMode:r,isSelected:o,onClick:a,onStart:u}){const{t:d,translateMaybe:m}=Kr(),h=e.assigneeIds.map(M=>n.find(O=>O.agent_id===M)).filter(Boolean),p=e.priority?fm[e.priority]:null,g=i&&h.length>1&&new Set(h.map(M=>i[M.agent_id]).filter(Boolean)).size>1,x=e.agentStatus&&e.agentStatus!=="idle",v=e.dependencies?.length??0,b=e.phase,S=!x&&b&&b!=="ready"?Qz[b]??null:null,w=e.employeeAssignment,k=Nl(e),j=e.workItemGate,N=w0(e.managerRoleId),z=(e.blockedReason??"").trim(),I=(e.reworkFeedback??"").trim(),A=Xm(e),L=e.agentStatus?m("agent.status",e.agentStatus)||S0[e.agentStatus]||e.agentStatus:"";return c.jsx(Iz,{draggableId:e.id,index:t,isDragDisabled:!!r,children:(M,O)=>c.jsxs("div",{ref:M.innerRef,...M.draggableProps,...M.dragHandleProps,className:`kanban-card${O.isDragging?" is-dragging":""}${x?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:T=>{T.button===0&&!O.isDragging&&a(e)},children:[c.jsxs("div",{className:"kanban-card-top",children:[c.jsx("span",{className:"kanban-card-id",children:e.displayId}),S&&c.jsxs("span",{className:"kanban-status-badge",style:{color:S.color},children:[c.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:S.color,marginRight:3}}),m("kanban.status",b)||S.label]}),v>0&&c.jsx("span",{className:"kanban-dep-badge",title:d("kanban.upstreamDeps",{count:v}),children:d("kanban.dep",{count:v})}),g&&c.jsx("span",{className:"kanban-cross-badge",title:d("kanban.crossOffice"),children:"⇄"}),u&&c.jsx("button",{className:"kanban-start-btn",title:d(r?"kanban.startWorkItem":"kanban.startTask"),onClick:T=>{T.stopPropagation(),u(e.id)},children:"▶"})]}),c.jsx("p",{className:"kanban-card-title",children:e.title}),(k||w?.name||j?.type||e.originChannel||e.workItemProjectionId)&&c.jsxs("div",{className:"kanban-card-meta-row",children:[k&&c.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`${d("common.role")}: ${k}`,children:k}),w?.name&&c.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`${d("common.employee")}: ${w.name}${w.category?` (${w.category})`:""}`,children:[c.jsx("span",{className:"kanban-meta-icon",children:"👤"}),w.name]}),e.workItemProjectionId&&c.jsx("span",{className:"kanban-meta-badge kanban-projection-badge",title:`${d("common.projection")}: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),j?.type&&c.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${j.type}`,title:`${d("common.gate")}: ${j.type}${j.reviewerRole?` by ${j.reviewerRole}`:""}`,children:[j.type==="review"?"✉":j.type==="approval"?"✓":"✋",j.type]}),e.originChannel&&c.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`${d("common.origin")}: ${e.originChannel}`,children:["#",e.originChannel]}),N&&c.jsx("span",{className:"kanban-meta-badge",title:`${d("common.manager")}: ${N}`,children:N})]}),(z||I||A)&&c.jsxs("div",{className:"kanban-card-tags",children:[z&&c.jsx("span",{className:"kanban-tag",children:z}),I&&c.jsx("span",{className:"kanban-tag",children:I}),A&&c.jsx("span",{className:"kanban-tag",title:d("kanban.executionTurn",{id:A}),children:d("common.runtime")})]}),x&&c.jsxs("div",{className:`kanban-card-runtime status-${e.agentStatus}`,children:[c.jsx("span",{className:"kanban-runtime-dot"}),c.jsx("span",{className:"kanban-runtime-label",children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:L})]}),e.tags.length>0&&c.jsx("div",{className:"kanban-card-tags",children:e.tags.slice(0,3).map(T=>c.jsx("span",{className:"kanban-tag",children:T},T))}),(p||h.length>0)&&c.jsxs("div",{className:"kanban-card-footer",children:[c.jsx("div",{className:"kanban-card-footer-left",children:p&&c.jsx("span",{className:"kanban-priority",style:{color:p.color},title:p.label,children:p.symbol})}),c.jsxs("div",{className:"kanban-assignee-group",children:[h.slice(0,3).map(T=>c.jsx("span",{className:"kanban-assignee-badge",title:T.name,children:T.name.charAt(0).toUpperCase()},T.agent_id)),h.length>3&&c.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",h.length-3]})]})]})]})})}function e8({column:e,tasks:t,agents:n,officeMap:i,companyMode:r,selectedTaskId:o,onCardClick:a,onStartTask:u,onQuickCreate:d}){const{t:m,translateMaybe:h}=Kr(),[p,g]=C.useState(!1),[x,v]=C.useState(""),b=C.useRef(!1),S=C.useCallback(()=>{if(b.current)return;b.current=!0;const w=x.trim();w&&d&&d(w),v(""),g(!1)},[x,d]);return c.jsxs("div",{className:"kanban-column",children:[c.jsxs("div",{className:"kanban-column-header",children:[c.jsx("span",{className:"kanban-col-dot",style:{background:e.color}}),c.jsx("span",{className:"kanban-col-label",children:h("kanban.column",e.name)||e.name}),c.jsx("span",{className:"kanban-col-count",children:t.length}),d&&c.jsx("button",{className:"kanban-col-add",title:m("kanban.addTask"),onClick:()=>{b.current=!1,g(!0)},children:"+"})]}),p&&c.jsx("div",{className:"kanban-quick-add",children:c.jsx("input",{className:"kanban-quick-input",value:x,onChange:w=>v(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),S()),w.key==="Escape"&&(b.current=!0,v(""),g(!1))},onBlur:S,placeholder:m("kanban.taskTitle"),autoFocus:!0})}),c.jsx(Kz,{droppableId:e.id,isDropDisabled:!!r,children:w=>c.jsxs("div",{ref:w.innerRef,...w.droppableProps,className:"kanban-col-body",children:[t.length===0&&!p&&c.jsx("div",{className:"kanban-empty",children:c.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((k,j)=>c.jsx(Jz,{task:k,index:j,agents:n,officeMap:i,companyMode:r,isSelected:k.id===o,onClick:a,onStart:u},k.id)),w.placeholder]})})]})}function t8({columns:e,tasksByColumn:t,agents:n,officeMap:i,store:r,companyMode:o,selectedTaskId:a,onCardClick:u,onStartTask:d,onQuickCreate:m,onMoveTask:h}){const p=g=>{if(o||!g.destination)return;const x=g.source.droppableId,v=g.destination.droppableId;if(x!==v)return;const b=g.destination.index,S=g.draggableId,w=[...t[v]??[]].filter(j=>j.id!==S),k=(t[v]??[]).find(j=>j.id===S);k&&w.splice(b,0,k),w.forEach((j,N)=>{r.moveTask(j.id,v,N)})};return c.jsx(uz,{onDragEnd:p,children:c.jsx("div",{className:"kanban-board",children:e.map(g=>c.jsx(e8,{column:g,tasks:t[g.id]??[],agents:n,officeMap:i,companyMode:o,selectedTaskId:a,onCardClick:u,onStartTask:!o&&g.name==="Todo"?d:void 0,onQuickCreate:!o&&g.name==="Todo"?m:void 0},g.id))})})}function n8({agents:e,tasks:t}){const{t:n,translateMaybe:i}=Kr(),r=C.useMemo(()=>{const a=new Map(t.map(u=>[u.id,u]));return e.map(u=>{const d=t.find(h=>h.assigneeIds.includes(u.agent_id)&&h.agentStatus&&h.agentStatus!=="idle"),m=u.current_task_id?a.get(u.current_task_id):void 0;return{agent:u,status:d?.agentStatus??u.runtime_status??"idle",currentTool:d?.currentTool??u.current_tool,taskDisplayId:d?.displayId??m?.displayId}})},[e,t]);if(e.length===0)return null;const o=r.filter(a=>a.status!=="idle").length;return c.jsxs("div",{className:"agent-status-bar",children:[c.jsx("span",{className:"agent-status-summary",children:o>0?n("agent.summary.active",{active:o,total:e.length}):n(e.length!==1?"agent.summary.countPlural":"agent.summary.count",{count:e.length})}),c.jsx("div",{className:"agent-status-chips",children:r.map(({agent:a,status:u,currentTool:d,taskDisplayId:m})=>{const h=u==="tool_active"&&d?d:i("agent.status",u)||S0[u];return c.jsxs("div",{className:`agent-status-chip status-${u}`,title:`${a.name}: ${h}${m?` (${m})`:""}`,children:[c.jsx("span",{className:"agent-status-avatar",children:a.name.charAt(0).toUpperCase()}),c.jsx("span",{className:"agent-status-name",children:a.name}),u!=="idle"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"kanban-runtime-dot"}),c.jsx("span",{className:"agent-status-detail",children:h})]}),m&&c.jsx("span",{className:"agent-status-task",children:m})]},a.agent_id)})})]})}function i8({boards:e,activeBoardId:t,onSelect:n}){const{translateMaybe:i}=Kr();return c.jsx("div",{className:"board-selector",children:c.jsx("div",{className:"board-tabs",children:e.map(r=>c.jsxs("button",{className:`board-tab${r.id===t?" active":""}`,style:{"--board-color":r.color},onClick:()=>n(r.id),children:[c.jsx("span",{className:"board-tab-dot",style:{background:r.color}}),i("kanban.column",r.name)||r.name]},r.id))})})}function xi(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ir(e){return Array.isArray(e)?e.filter(xi):[]}function Il(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function r8(e){return xi(e)?{run_id:typeof e.run_id=="string"?e.run_id:void 0,status:typeof e.status=="string"?e.status:void 0,total_cells:typeof e.total_cells=="number"?e.total_cells:void 0,total_role_sessions:typeof e.total_role_sessions=="number"?e.total_role_sessions:void 0,total_work_items:typeof e.total_work_items=="number"?e.total_work_items:void 0,ready_count:typeof e.ready_count=="number"?e.ready_count:void 0,running_count:typeof e.running_count=="number"?e.running_count:void 0,blocked_count:typeof e.blocked_count=="number"?e.blocked_count:void 0,waiting_count:typeof e.waiting_count=="number"?e.waiting_count:void 0,done_count:typeof e.done_count=="number"?e.done_count:void 0,failed_count:typeof e.failed_count=="number"?e.failed_count:void 0}:{}}function s8(e){return{cell_id:String(e.cell_id??e.team_id??e.id??"").trim(),team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,team_id:typeof e.team_id=="string"?e.team_id:void 0,manager_role_id:String(e.manager_role_id??"").trim(),member_role_ids:Il(e.member_role_ids),seat_ids:Il(e.seat_ids),parent_team_id:typeof e.parent_team_id=="string"?e.parent_team_id:void 0,status:String(e.status??"idle"),is_final_decider_cell:typeof e.is_final_decider_cell=="boolean"?e.is_final_decider_cell:void 0}}function o8(e){return{role_session_id:String(e.role_session_id??e.id??"").trim(),role_id:String(e.role_id??"").trim(),employee_id:String(e.employee_id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,seat_id:typeof e.seat_id=="string"?e.seat_id:void 0,focused_work_item_id:typeof e.focused_work_item_id=="string"?e.focused_work_item_id:void 0,current_work_item_id:typeof e.current_work_item_id=="string"?e.current_work_item_id:void 0,background_work_item_ids:Il(e.background_work_item_ids),manager_role_ids:Il(e.manager_role_ids),manager_seat_id:typeof e.manager_seat_id=="string"?e.manager_seat_id:void 0,resident_status:typeof e.resident_status=="string"?e.resident_status:void 0,latest_notification:xi(e.latest_notification)?e.latest_notification:void 0,manager_digest:xi(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function a8(e){const t=xi(e.metadata)?e.metadata:void 0,n=xi(e.adaptive)?e.adaptive:t&&xi(t.adaptive)?t.adaptive:void 0;return{work_item_id:String(e.work_item_id??e.id??"").trim(),role_id:String(e.role_id??"").trim(),cell_id:String(e.cell_id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,seat_id:typeof e.seat_id=="string"?e.seat_id:void 0,title:String(e.title??""),kind:String(e.kind??"execute"),phase:String(e.phase??"ready"),kanban_column:String(e.kanban_column??"todo"),batch_id:typeof e.batch_id=="string"?e.batch_id:void 0,batch_index:typeof e.batch_index=="number"?e.batch_index:void 0,deliverable_summary:typeof e.deliverable_summary=="string"?e.deliverable_summary:void 0,blocked_reason:typeof e.blocked_reason=="string"?e.blocked_reason:void 0,handoff_status:typeof e.handoff_status=="string"?e.handoff_status:void 0,parent_work_item_id:typeof e.parent_work_item_id=="string"?e.parent_work_item_id:void 0,work_item_projection_id:typeof e.work_item_projection_id=="string"?e.work_item_projection_id:void 0,metadata:t,adaptive:n}}function l8(e){if(xi(e))return{run_id:typeof e.run_id=="string"?e.run_id:void 0,project_id:typeof e.project_id=="string"?e.project_id:void 0,session_id:typeof e.session_id=="string"?e.session_id:void 0,status:typeof e.status=="string"?e.status:void 0,lifecycle_status:typeof e.lifecycle_status=="string"?e.lifecycle_status:void 0,company_profile:typeof e.company_profile=="string"?e.company_profile:void 0,execution_model:typeof e.execution_model=="string"?e.execution_model:void 0,current_revision:typeof e.current_revision=="number"?e.current_revision:void 0,latest_deliverable_summary:typeof e.latest_deliverable_summary=="string"?e.latest_deliverable_summary:void 0,recovery_pointer:xi(e.recovery_pointer)?e.recovery_pointer:void 0}}function c8(e){if(xi(e))return{project_id:typeof e.project_id=="string"?e.project_id:void 0,run_id:typeof e.run_id=="string"?e.run_id:void 0,latest_deliverable_summary:typeof e.latest_deliverable_summary=="string"?e.latest_deliverable_summary:void 0,architecture_decisions:Ir(e.architecture_decisions),completed_work_items:Ir(e.completed_work_items),open_issues:Il(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:Ir(e.artifact_index),handoff_summaries:Ir(e.handoff_summaries),last_failure_summary:typeof e.last_failure_summary=="string"?e.last_failure_summary:void 0,project_memory_excerpt:typeof e.project_memory_excerpt=="string"?e.project_memory_excerpt:void 0,session_memory_excerpt:typeof e.session_memory_excerpt=="string"?e.session_memory_excerpt:void 0}}function u8(e){return{seat_id:String(e.seat_id??e.id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,role_id:typeof e.role_id=="string"?e.role_id:void 0,employee_id:typeof e.employee_id=="string"?e.employee_id:void 0,role_session_id:typeof e.role_session_id=="string"?e.role_session_id:void 0,resident_status:typeof e.resident_status=="string"?e.resident_status:void 0,current_work_item:xi(e.current_work_item)?e.current_work_item:void 0,latest_notification:xi(e.latest_notification)?e.latest_notification:void 0,manager_digest:xi(e.manager_digest)?e.manager_digest:void 0}}function d8(e){return{link_id:typeof e.link_id=="string"?e.link_id:void 0,session_id:typeof e.session_id=="string"?e.session_id:void 0,linked_session_id:typeof e.linked_session_id=="string"?e.linked_session_id:void 0,link_type:typeof e.link_type=="string"?e.link_type:void 0,metadata:xi(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function FN(e){const t=xi(e)?e:{},n=Ir(t.runtime_teams).map(s8),i=Ir(t.runtime_seats).map(o8),r=Ir(t.work_items).map(a8);return{roles:Array.isArray(t.roles)?t.roles:[],employees:Array.isArray(t.employees)?t.employees:[],company_profile:typeof t.company_profile=="string"?t.company_profile:"",organization_id:typeof t.organization_id=="string"?t.organization_id:void 0,organization_name:typeof t.organization_name=="string"?t.organization_name:void 0,organization_config_file:typeof t.organization_config_file=="string"?t.organization_config_file:void 0,final_decider_role_id:typeof t.final_decider_role_id=="string"?t.final_decider_role_id:null,top_level_role_ids:Il(t.top_level_role_ids),runtime_teams:n,runtime_seats:i,work_items:r,frontier:r8(t.frontier),project_run:l8(t.project_run),project_dossier:c8(t.project_dossier),seat_digests:Ir(t.seat_digests).map(u8),revision_links:Ir(t.revision_links).map(d8),project_recovery:xi(t.project_recovery)?t.project_recovery:void 0,channels:Array.isArray(t.channels)?t.channels:[],connectors:Array.isArray(t.connectors)?t.connectors:[],org_version:typeof t.org_version=="number"?t.org_version:0,runtime_topology_version:typeof t.runtime_topology_version=="number"?t.runtime_topology_version:0,installed_packages:Array.isArray(t.installed_packages)?t.installed_packages:[],runtime_policy:xi(t.runtime_policy)?t.runtime_policy:void 0,runtime_topology_preview:xi(t.runtime_topology_preview)?t.runtime_topology_preview:void 0,work_item_runtime_preview:xi(t.work_item_runtime_preview)?t.work_item_runtime_preview:void 0,external_team_bindings:Ir(t.external_team_bindings),external_execution_units:Ir(t.external_execution_units),external_agent_profiles:Ir(t.external_agent_profiles)}}function Km(e){const t=FN(e);return{runtimeTeams:t.runtime_teams??[],runtimeSeats:t.runtime_seats??[],workItems:t.work_items??[],frontier:t.frontier??{},projectRun:t.project_run,projectDossier:t.project_dossier,seatDigests:t.seat_digests??[],revisionLinks:t.revision_links??[],projectRecovery:t.project_recovery}}function f8({state:e,message:t,onRefresh:n,onReadMessage:i,pollIntervalMs:r=3e4,embedded:o=!1}){const[a,u]=C.useState(null),d=C.useRef(n);d.current=n,C.useEffect(()=>{if(!r)return;d.current();const g=window.setInterval(()=>d.current(),r);return()=>window.clearInterval(g)},[r]);const m=C.useMemo(()=>e?.roles?e.roles.reduce((g,x)=>g+x.unread_count,0):0,[e?.roles]),h=g=>{u(g),i(g)},p=o?{fontSize:13,color:"var(--text)"}:{border:"1px solid var(--border, #333)",borderRadius:6,background:"var(--bg-primary, #1e1e1e)",fontSize:13};return c.jsxs("div",{className:"comms-panel",style:p,children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--border, #333)"},children:[c.jsx("span",{style:{fontWeight:600,fontSize:13,flex:1},children:"Agent Communications"}),m>0&&c.jsxs(Nu,{color:"var(--accent, #3498db)",children:[m," unread"]}),c.jsx("button",{onClick:n,style:{background:"var(--surface, #2a2a2a)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4},children:"Refresh"})]}),e?e.available?e.empty?c.jsx(Hf,{children:"No communications yet. They will appear once agents start collaborating."}):c.jsx(m8,{state:e,selectedPath:a,onSelectMessage:h}):c.jsxs(Hf,{children:["Not available",e.reason?`: ${e.reason}`:""]}):c.jsx(Hf,{children:"Loading communications..."}),t&&c.jsx(g8,{message:t,onClose:()=>u(null)})]})}function m8({state:e,selectedPath:t,onSelectMessage:n}){const i=(e.roles?.length??0)>0,r=(e.meetings?.length??0)>0,o=(e.recent_failures?.length??0)>0;return c.jsxs("div",{style:{padding:"4px 0"},children:[o&&c.jsx(Yg,{title:"Failures",children:(e.recent_failures||[]).map((a,u)=>c.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,background:"color-mix(in srgb, var(--red, #e74c3c) 6%, transparent)",borderLeft:"3px solid var(--red, #e74c3c)"},children:[c.jsxs("div",{style:{fontWeight:600,fontSize:12},children:[a.operation," · ",a.from_role," → ",a.to_role]}),c.jsx("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:2},children:a.reason})]},`${a.recorded_at||"f"}-${u}`))}),i&&c.jsx(Yg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>c.jsx(p8,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),r&&c.jsx(Yg,{title:"Meetings",children:(e.meetings||[]).map(a=>c.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,borderLeft:`3px solid ${a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)"}`},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[c.jsx(Nu,{color:a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)",children:a.status}),c.jsx("strong",{style:{fontSize:12,flex:1},children:a.topic}),c.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #888)"},children:[a.entry_count," entries"]})]}),c.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:3},children:["by ",a.organizer," · ",a.participants.join(", ")]}),a.decision&&c.jsxs("div",{style:{fontSize:11,marginTop:3,color:"var(--green, #27ae60)"},children:["Decision: ",a.decision]})]},a.meeting_id))}),!i&&!r&&!o&&c.jsx(Hf,{children:"No communication activity yet."})]})}function p8({role:e,selectedPath:t,onSelectMessage:n}){const[i,r]=C.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,u]=C.useState(e.unread_count>0?"unread":"history"),d=C.useMemo(()=>{switch(a){case"unread":return e.recent_unread||[];case"history":return e.recent_seen||[];case"sent":return e.recent_outbox||[];default:return[]}},[a,e.recent_unread,e.recent_seen,e.recent_outbox]),m=e.role_id.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase());return c.jsxs("div",{style:{marginBottom:2},children:[c.jsxs("div",{onClick:()=>r(h=>!h),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:i?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[c.jsx("span",{style:{fontSize:10,width:10},children:i?"▼":"▶"}),c.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&c.jsx(Nu,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&c.jsxs(Nu,{color:"var(--accent, #3498db)",children:[e.unread_count," new"]}),c.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #666)"},children:[e.seen_count," read · ",e.outbox_count," sent"]})]}),i&&o&&c.jsxs("div",{style:{paddingLeft:12},children:[c.jsxs("div",{style:{display:"flex",gap:2,padding:"4px 0",borderBottom:"1px solid var(--border, #333)",marginBottom:4},children:[c.jsxs(Xg,{active:a==="unread",onClick:()=>u("unread"),children:["Unread (",e.unread_count,")"]}),c.jsxs(Xg,{active:a==="history",onClick:()=>u("history"),children:["Read (",e.recent_seen?.length??0,")"]}),c.jsxs(Xg,{active:a==="sent",onClick:()=>u("sent"),children:["Sent (",e.recent_outbox?.length??0,")"]})]}),d.length===0?c.jsx("div",{style:{padding:"8px 0",fontSize:11,color:"var(--text-dim, #666)"},children:"No messages."}):c.jsx("div",{style:{maxHeight:280,overflow:"auto"},children:d.map(h=>c.jsx(h8,{message:h,selected:h.path===t,onClick:()=>n(h.path)},h.message_id))})]})]})}function h8({message:e,selected:t,onClick:n}){const r=e.bucket==="sent"?`To: ${e.to||"?"}`:`From: ${e.from}`;return c.jsx("div",{onClick:n,style:{padding:"5px 8px",marginBottom:2,background:t?"var(--accent-soft, #2c4a6b)":"transparent",cursor:"pointer",borderRadius:4,borderLeft:e.blocking?"3px solid var(--red, #e74c3c)":"3px solid transparent",transition:"background 0.1s"},children:c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[c.jsxs("span",{style:{fontSize:11,color:"var(--text-secondary, #aaa)",minWidth:0,flex:1},children:[c.jsx("strong",{children:r})," ",c.jsx("span",{style:{color:"var(--text, #ddd)"},children:e.subject})]}),e.blocking&&c.jsx("span",{style:{fontSize:9,color:"var(--red, #e74c3c)",fontWeight:700},children:"BLK"}),c.jsx("span",{style:{fontSize:10,color:"var(--text-dim, #666)",flexShrink:0},children:e.sent_at?.slice(11,19)||""})]})})}function g8({message:e,onClose:t}){return c.jsxs("div",{style:{margin:"8px 12px 12px",padding:12,border:"1px solid var(--border, #444)",borderRadius:6,background:"var(--bg-secondary, #262626)",maxHeight:400,overflow:"auto"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[c.jsx("strong",{style:{flex:1,fontSize:13},children:e.header.subject||"(no subject)"}),c.jsx("button",{onClick:t,style:{background:"var(--surface, #333)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"2px 10px",cursor:"pointer",borderRadius:4},children:"Close"})]}),c.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginBottom:8,display:"flex",gap:8,flexWrap:"wrap"},children:[c.jsxs("span",{children:["From: ",c.jsx("strong",{children:e.header.from||"?"})]}),c.jsxs("span",{children:["To: ",c.jsx("strong",{children:e.header.to||"?"})]}),c.jsx("span",{children:e.header.sent_at||""}),e.header.blocking&&c.jsx(Nu,{color:"var(--red, #e74c3c)",children:"BLOCKING"})]}),c.jsx("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text, #ddd)",lineHeight:1.5},children:e.body})]})}function Yg({title:e,children:t}){return c.jsxs("div",{style:{marginBottom:4},children:[c.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:.6,fontWeight:700,color:"var(--text-dim, #777)",padding:"8px 12px 4px"},children:e}),t]})}function Nu({color:e,children:t}){return c.jsx("span",{style:{background:e,color:"white",borderRadius:10,padding:"1px 7px",fontSize:10,fontWeight:600,whiteSpace:"nowrap"},children:t})}function Xg({active:e,onClick:t,children:n}){return c.jsx("button",{onClick:t,style:{background:e?"var(--accent-soft, #2c4a6b)":"transparent",border:"none",color:e?"var(--text, #ddd)":"var(--text-secondary, #999)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4,fontWeight:e?600:400},children:n})}function Hf({children:e}){return c.jsx("div",{style:{padding:"20px 16px",fontSize:12,color:"var(--text-secondary, #888)",textAlign:"center"},children:e})}function el(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function tl(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function Nr(e,t="Pending"){return String(e??"").trim()||t}function qc(e,t="Team"){const n=String(e??"").trim();return n?n.replace(/[_-]+/g," ").replace(/\b\w/g,i=>i.toUpperCase()):t}function yw(e){return Nr(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function y8({orgInfoData:e,commsState:t,onStopRun:n,embedded:i=!1}){const r=C.useMemo(()=>Km(e??null),[e]),o=r.projectRun,a=r.seatDigests,u=a.reduce((b,S)=>{const w=el(S.manager_digest);return b+tl(w.pending_decisions).length},0),d=a.reduce((b,S)=>b+tl(el(S.manager_digest).actionable_chat).length,0),m=a.reduce((b,S)=>b+tl(el(S.manager_digest).protocol_backlog).length,0),h=a.reduce((b,S)=>b+tl(el(S.manager_digest).notification_backlog).length,0),p=d+m+h,g=[{label:"Actionable",value:d},{label:"Protocol",value:m},{label:"Notifications",value:h},{label:"Meetings",value:t?.meetings?.length??0},{label:"Failures",value:t?.recent_failures?.length??0}],x=C.useMemo(()=>{const b=new Map;for(const k of a){const j=String(k.seat_id??"").trim();j&&b.set(j,el(k.manager_digest))}const S=r.runtimeTeams.map(k=>{const j=[String(k.cell_id??"").trim(),String(k.team_id??"").trim(),String(k.team_instance_id??"").trim()].filter(Boolean),N=r.runtimeSeats.filter(A=>j.includes(String(A.team_id??"").trim())||j.includes(String(A.team_instance_id??"").trim())),z=N.reduce((A,L)=>{const M=b.get(String(L.seat_id??"").trim())??{};return A+tl(M.pending_decisions).length},0),I=N.map(A=>Nr(A.latest_notification?.subject??A.latest_notification?.summary,"")).find(Boolean);return{key:String(k.cell_id??k.team_id??k.team_instance_id??k.manager_role_id??"team"),label:qc(k.team_id??k.cell_id,"Team"),managerLabel:qc(k.manager_role_id,"Unassigned manager"),status:Nr(k.status,"idle"),seatCount:N.length||k.member_role_ids.length,pendingApprovals:z,latestAlert:I,seats:N.map(A=>({key:String(A.seat_id??A.role_session_id??A.role_id),roleLabel:qc(A.role_id,"Seat"),seatLabel:Nr(A.seat_id??A.role_session_id,"Seat"),status:Nr(A.resident_status??A.status,"idle")}))}}),w=new Set(S.flatMap(k=>k.seats.map(j=>j.key)));for(const k of r.runtimeSeats){const j=String(k.seat_id??k.role_session_id??k.role_id).trim();if(!j||w.has(j))continue;const N=String(k.team_id??k.team_instance_id??"unassigned").trim()||"unassigned";let z=S.find(A=>A.key===N);z||(z={key:N,label:qc(N,"Unassigned Team"),managerLabel:"Unassigned manager",status:Nr(k.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},S.push(z));const I=b.get(String(k.seat_id??"").trim())??{};z.pendingApprovals+=tl(I.pending_decisions).length,z.latestAlert||(z.latestAlert=Nr(k.latest_notification?.subject??k.latest_notification?.summary,"")),z.seats.push({key:j,roleLabel:qc(k.role_id,"Seat"),seatLabel:Nr(k.seat_id??k.role_session_id,"Seat"),status:Nr(k.resident_status??k.status,"idle")}),z.seatCount=z.seats.length}return S.sort((k,j)=>k.label.localeCompare(j.label))},[r.runtimeTeams,r.runtimeSeats,a]),v=x.map(b=>b.latestAlert).find(Boolean)||"No current alerts";return!o?.run_id&&x.length===0?null:c.jsxs("section",{className:`project-cockpit${i?" embedded":""}`,"aria-label":"Team",children:[c.jsxs("div",{className:"project-cockpit-overview",children:[c.jsxs("div",{className:"project-cockpit-title",children:[c.jsx("span",{className:"project-cockpit-label",children:"Team"}),c.jsx("strong",{children:Nr(o?.run_id,"Runtime Team Status")}),n&&c.jsx("button",{className:"project-cockpit-stop-btn",onClick:n,title:"Stop this run",children:"Stop"})]}),c.jsxs("div",{className:"project-cockpit-metrics",children:[c.jsx("span",{children:Nr(o?.lifecycle_status,"active")}),c.jsxs("span",{children:["Teams ",x.length]}),c.jsxs("span",{children:["Seats ",r.runtimeSeats.length]}),c.jsxs("span",{children:["Approvals ",u]}),c.jsxs("span",{children:["Unread ",p]}),c.jsxs("span",{children:["Run state ",Nr(el(o?.recovery_pointer).status,"clean")]})]})]}),c.jsxs("div",{className:"project-cockpit-grid project-cockpit-grid--team",children:[c.jsxs("section",{className:"project-cockpit-panel",children:[c.jsxs("header",{children:[c.jsx("h3",{children:"Communication"}),c.jsx("span",{children:g.length})]}),c.jsxs("div",{className:"project-cockpit-summary",children:[g.map(b=>c.jsxs("span",{children:[b.label," ",b.value]},b.label)),c.jsx("div",{className:"project-cockpit-inline-text",children:v})]})]}),c.jsxs("section",{className:"project-cockpit-panel project-cockpit-panel--wide",children:[c.jsxs("header",{children:[c.jsx("h3",{children:"Teams"}),c.jsx("span",{children:x.length})]}),c.jsx("div",{className:"project-cockpit-team-grid",children:x.map(b=>c.jsxs("article",{className:"project-cockpit-team-card",children:[c.jsxs("div",{className:"project-cockpit-team-head",children:[c.jsxs("div",{className:"project-cockpit-team-title",children:[c.jsx("strong",{children:b.label}),c.jsx("span",{children:b.managerLabel})]}),c.jsx("span",{className:`project-cockpit-team-status status-${yw(b.status)}`,children:b.status})]}),c.jsxs("div",{className:"project-cockpit-team-meta",children:[c.jsxs("span",{children:["Seats ",b.seatCount]}),c.jsxs("span",{children:["Approvals ",b.pendingApprovals]}),b.latestAlert&&c.jsx("span",{children:b.latestAlert})]}),c.jsx("div",{className:"project-cockpit-seat-list",children:b.seats.length>0?b.seats.map(S=>c.jsxs("div",{className:"project-cockpit-seat-row",children:[c.jsx("span",{className:"project-cockpit-seat-role",children:S.roleLabel}),c.jsx("span",{className:"project-cockpit-seat-id",children:S.seatLabel}),c.jsx("span",{className:`project-cockpit-seat-status status-${yw(S.status)}`,children:S.status})]},S.key)):c.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},b.key))})]})]})]})}const Ps={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode",jiuwen:"Jiuwen",jiuwenswarm:"JiuwenSwarm Team"},Zm=["codex","jiuwen","jiuwenswarm","native","claude_code","cursor","opencode"],VN=["native","codex","jiuwen","jiuwenswarm","claude_code","cursor","opencode"];function da(e){const t=String(e??"").trim().toLowerCase().replaceAll("-","_");return Ps[t]??String(e??"").trim()}function x8(e){const t=Date.now()-e;return t<6e4?"just now":t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}const xw={running:{color:"var(--green)",label:"Running"},idle:{color:"var(--accent)",label:"Idle"},done:{color:"var(--green)",label:"Done"},pending:{color:"var(--text-secondary)",label:"Pending"},failed:{color:"var(--red)",label:"Failed"},cancelled:{color:"var(--text-secondary)",label:"Cancelled"},blocked:{color:"var(--yellow)",label:"Blocked"},awaiting_human:{color:"var(--yellow)",label:"Waiting for review"},awaiting_manager_review:{color:"var(--yellow)",label:"Manager review"},awaiting_review:{color:"var(--yellow)",label:"Waiting for review"},awaiting_peer:{color:"var(--yellow)",label:"Waiting for peer"}},v8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function b8({session:e,agents:t,onTitleChange:n,onViewOnBoard:i,onStop:r,onComplete:o,onResume:a}){const[u,d]=C.useState(!1),[m,h]=C.useState(e.title),p=C.useRef(null);C.useEffect(()=>{u||h(e.title)},[e.title,u]);const g=C.useCallback(()=>{const q=m.trim();q&&q!==e.title?n(e.taskId,q):h(e.title),d(!1)},[m,e.title,e.taskId,n]),x=C.useCallback(()=>{h(e.title),d(!0),setTimeout(()=>p.current?.select(),0)},[e.title]),v=e.assigneeIds.map(q=>t.find(J=>J.agent_id===q)).filter(Boolean),b=String(e.execMode??"").trim().toLowerCase(),S=b==="company"||b==="org"||b==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,w=v.length>0&&!S,k=e.runtimeControlState??(e.status==="running"?"running":"idle"),j=k==="suspending",N=k==="resuming",z=k==="suspended",I=e.status==="running"&&!j&&!z&&!N,A=v8.has(e.status),L=(e.canStop??e.status==="running")&&!j&&!z&&!N,M=(e.canResume??(z||!A&&!I&&e.status!=="done"&&e.status!=="pending"))&&!j&&!N,O=xw[e.status]??xw.pending,T=j?"Stopping":z?"Suspended":N?"Resuming":O.label,$=Nl(e),G=$m(e),P=fs(e),F=e.displayTool||e.currentTool,[V,Y]=C.useState(F||void 0);C.useEffect(()=>{if(!I){Y(void 0);return}F&&Y(F)},[I,F]);const U=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,Q=U,W=j?"var(--yellow)":z?"var(--text-secondary)":G==="tool_active"?"var(--green)":G==="reflecting"?"var(--yellow)":O.color;return c.jsxs("div",{className:"task-header-shell",children:[c.jsxs("div",{className:"task-header-bar",children:[c.jsxs("div",{className:"task-header-left",children:[u?c.jsx("input",{ref:p,className:"task-title-input",value:m,onChange:q=>h(q.target.value),onBlur:g,onKeyDown:q=>{q.key==="Enter"&&g(),q.key==="Escape"&&(h(e.title),d(!1))}}):c.jsx("span",{className:"task-title",onClick:x,title:"Click to edit",children:e.title}),c.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":P?"true":"false",children:[c.jsx("span",{className:"task-status-dot",style:{background:W}}),T]}),I&&V&&c.jsxs("span",{className:"task-tool-pill",children:[c.jsx(Lm,{}),c.jsx("code",{children:V}),e.currentTool&&typeof e.toolElapsedMs=="number"&&e.toolElapsedMs>0&&c.jsxs("span",{children:[e.toolElapsedMs,"ms"]})]}),e.lastToolSummary&&c.jsx("span",{className:"task-projection-pill",title:e.lastToolSummary,children:e.lastToolSummary.slice(0,48)}),$&&c.jsx("span",{className:"task-role-pill",title:`Role: ${$}`,children:$}),e.employeeAssignment?.name&&c.jsxs("span",{className:"task-employee-pill",title:`Employee: ${e.employeeAssignment.name}${e.employeeAssignment.category?` (${e.employeeAssignment.category})`:""}`,children:[c.jsx("span",{className:"task-employee-icon",children:"👤"}),e.employeeAssignment.name]}),e.selectedExecutionAgent&&c.jsxs("span",{className:"task-agent-pill",title:`Execution Agent: ${da(e.selectedExecutionAgent)}`,children:[c.jsx("span",{className:"task-agent-icon",children:"⚙"}),da(e.selectedExecutionAgent)]})]}),c.jsxs("div",{className:"task-header-right",children:[w&&c.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(q=>c.jsx("span",{className:"task-header-avatar",title:q.name,children:q.name.charAt(0).toUpperCase()},q.agent_id))}),c.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:x8(e.createdAt)}),(L||j)&&r&&c.jsxs("button",{className:"task-stop-btn",onClick:r,title:"Stop task",disabled:!L,children:[c.jsx(SE,{}),c.jsx("span",{children:j?"Stopping...":"Stop"})]}),M&&a&&e.status!=="done"&&c.jsx("button",{className:"task-resume-btn",onClick:a,title:"Resume prior runtime (re-awaken original team, no new plan)",children:c.jsx("span",{children:"Continue"})}),o&&c.jsxs("button",{className:"task-done-btn",onClick:o,title:"Mark task as done",children:[c.jsx(Vl,{}),c.jsx("span",{children:"Done"})]}),i&&c.jsx("button",{className:"task-board-btn",onClick:i,title:"View on Board",children:c.jsx(Q4,{})})]})]}),Q&&c.jsx("div",{className:"task-header-metrics",children:U&&c.jsxs("div",{className:"task-runtime-metric task-runtime-metric-approval",title:"Pending approvals",children:[c.jsx("span",{className:"task-runtime-metric-label",children:"Approvals"}),c.jsx("span",{className:"task-runtime-metric-value",children:e.pendingPermissionCount})]})})]})}function ss(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function UN(e){const t=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;if(t)return`${e.type}:${ss(e.turnId)}:${ss(t)}`;if(e.type==="thinking"||e.type==="assistant")return`${e.type}:${ss(e.turnId)||ss(e.executionMode)||"stream"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.type==="tool_call")return`tool:${ss(e.turnId)||"turnless"}:${ss(e.summary)||"tool"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.turnId&&typeof e.seq=="number")return`${e.type}:${ss(e.turnId)}:seq:${e.seq}`;const n=[e.type,ss(e.turnId)];return typeof e.seq=="number"&&Number.isFinite(e.seq)&&n.push(`seq-${e.seq}`),n.push(Number.isFinite(e.timestamp)?e.timestamp:"",ss(e.summary),ss(e.detail)),n.join(":")}const _8=new Set(["done","failed","cancelled"]),vw=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),mm={thinking:{icon:c.jsx(G4,{}),color:"var(--accent)",label:"Thinking"},assistant:{icon:c.jsx(kl,{}),color:"var(--accent)",label:"Reply"},tool_call:{icon:c.jsx(Lm,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:c.jsx(bu,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:c.jsx(CE,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:c.jsx(J4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:c.jsx(vS,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:c.jsx(Pm,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:c.jsx(eD,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:c.jsx(tD,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:c.jsx(Hc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:c.jsx(Hc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:c.jsx(Hc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:c.jsx(Hc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:c.jsx(vS,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:c.jsx(Zf,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:c.jsx(Hc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:c.jsx(bu,{}),color:"var(--accent)",label:"Verification"}},Kg=5;function Gc(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"just now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);return n<60?`${n}m ago`:`${Math.floor(n/60)}h ago`}function Ff(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return Ff(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(Ff):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Ff(n)])):e}function k8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(Ff(JSON.parse(t)),null,2)}catch{return e}}function Tl({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:i,lastToolSummary:r,sessionStatus:o,expandedByDefault:a}){const[u,d]=C.useState(!!a),m=!!o&&_8.has(o),h=!m&&t==="reflecting",p=!m&&t==="tool_active",g=h||p,x=C.useMemo(()=>e,[e]),v=C.useMemo(()=>u||x.length<=Kg?x:x.slice(-Kg),[x,u]),b=x.length-v.length;return x.length===0&&!g&&!m?null:c.jsxs("div",{className:"ptl-block",children:[g&&c.jsxs("div",{className:`ptl-live ${p?"ptl-live-tool":"ptl-live-think"}`,children:[c.jsx("span",{className:"ptl-live-icon",children:p?c.jsx(Lm,{}):c.jsx(kl,{})}),c.jsx("span",{className:"ptl-live-text",children:p?"Running":"Thinking"}),p&&n&&c.jsx("code",{className:"ptl-live-tool-name",children:n}),p&&typeof i=="number"&&i>0&&c.jsx("span",{className:"ptl-live-elapsed",children:i<1e3?`${i}ms`:`${(i/1e3).toFixed(1)}s`}),c.jsx("span",{className:"ptl-live-shimmer"})]}),r&&!p&&c.jsxs("div",{className:"ptl-last-tool-summary",children:[c.jsx("span",{className:"ptl-last-tool-label",children:"Last tool result:"}),c.jsx("span",{className:"ptl-last-tool-text",children:r})]}),b>0&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[c.jsx(ds,{}),c.jsxs("span",{children:[b," earlier step",b>1?"s":""]})]}),v.length>0&&c.jsx("div",{className:"ptl-timeline",children:v.map((S,w)=>{const k=w===v.length-1,j=mm[S.type]||mm.status_change;return c.jsxs("div",{className:`ptl-entry${k?" ptl-entry-last":""}`,children:[c.jsxs("div",{className:"ptl-connector",children:[c.jsx("div",{className:"ptl-dot",style:{color:j.color},children:j.icon}),!k&&c.jsx("div",{className:"ptl-line"})]}),c.jsx("div",{className:"ptl-content",children:c.jsx(qN,{entry:S})})]},UN(S))})}),m&&!g&&c.jsxs("div",{className:`ptl-completion ptl-completion-${o}`,children:[c.jsx("span",{className:"ptl-completion-icon",children:o==="done"?"✓":o==="failed"?"✗":"—"}),c.jsx("span",{className:"ptl-completion-text",children:o==="done"?"Completed":o==="failed"?"Failed":"Cancelled"})]}),u&&x.length>Kg&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[c.jsx(ds,{down:!0}),c.jsx("span",{children:"Show less"})]}),!u&&b>0&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[c.jsx(ds,{}),c.jsxs("span",{children:["Show more (",b," earlier step",b>1?"s":"",")"]})]})]})}const qN=At.memo(function({entry:t}){const[n,i]=C.useState(!1),r=mm[t.type]||mm.status_change,o=t.type==="tool_call"&&!!t.detail;if(t.type==="tool_call")return c.jsxs("div",{className:`ptl-tool-card${n?" expanded":""}`,children:[c.jsxs("button",{className:`ptl-row ptl-tool-toggle${o?" clickable":""}`,onClick:()=>{o&&i(a=>!a)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Gc(t.timestamp)}),o&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(ds,{down:n})})]}),n&&t.detail&&c.jsx("pre",{className:"ptl-tool-card-detail",children:k8(t.detail)})]});if(t.type==="autonomy"){const a=!!t.detail;return c.jsxs("div",{className:`ptl-tool-card ptl-autonomy-card${n?" expanded":""}`,children:[c.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Gc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(ds,{down:n})})]}),n&&t.detail&&c.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking"||t.type==="assistant")return c.jsxs("div",{className:"ptl-tool-card",children:[c.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>i(a=>!a),type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Gc(t.timestamp)}),c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(ds,{down:n})})]}),n&&c.jsx("div",{className:"ptl-tool-card-detail ptl-thinking-detail",children:t.detail||t.summary})]});if(t.type==="verification"){const a=!!t.detail;return c.jsxs("div",{className:`ptl-tool-card ptl-verification-card${n?" expanded":""}`,children:[c.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),c.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),c.jsx("span",{className:"ptl-time",children:Gc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(ds,{down:n})})]}),n&&t.detail&&c.jsx("div",{className:"ptl-tool-card-detail ptl-verification-detail",children:t.detail})]})}return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"ptl-row",children:[c.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Gc(t.timestamp)})]}),t.detail&&c.jsx("div",{className:"ptl-detail",children:t.detail})]})});function S8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const w8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,C8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,j8={};function bw(e,t){return(j8.jsx?C8:w8).test(e)}const E8=/[ \t\n\f\r]/g;function N8(e){return typeof e=="object"?e.type==="text"?_w(e.value):!1:_w(e)}function _w(e){return e.replace(E8,"")===""}class Uu{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}Uu.prototype.normal={};Uu.prototype.property={};Uu.prototype.space=void 0;function GN(e,t){const n={},i={};for(const r of e)Object.assign(n,r.property),Object.assign(i,r.normal);return new Uu(n,i,t)}function uv(e){return e.toLowerCase()}class Ji{constructor(t,n){this.attribute=n,this.property=t}}Ji.prototype.attribute="";Ji.prototype.booleanish=!1;Ji.prototype.boolean=!1;Ji.prototype.commaOrSpaceSeparated=!1;Ji.prototype.commaSeparated=!1;Ji.prototype.defined=!1;Ji.prototype.mustUseProperty=!1;Ji.prototype.number=!1;Ji.prototype.overloadedBoolean=!1;Ji.prototype.property="";Ji.prototype.spaceSeparated=!1;Ji.prototype.space=void 0;let I8=0;const Pt=xa(),di=xa(),dv=xa(),Le=xa(),Ln=xa(),gl=xa(),ur=xa();function xa(){return 2**++I8}const fv=Object.freeze(Object.defineProperty({__proto__:null,boolean:Pt,booleanish:di,commaOrSpaceSeparated:ur,commaSeparated:gl,number:Le,overloadedBoolean:dv,spaceSeparated:Ln},Symbol.toStringTag,{value:"Module"})),Zg=Object.keys(fv);class C0 extends Ji{constructor(t,n,i,r){let o=-1;if(super(t,n),kw(this,"space",r),typeof i=="number")for(;++o4&&n.slice(0,4)==="data"&&D8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(Sw,z8);i="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!Sw.test(o)){let a=o.replace(M8,L8);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}r=C0}return new r(i,t)}function L8(e){return"-"+e.toLowerCase()}function z8(e){return e.charAt(1).toUpperCase()}const P8=GN([WN,T8,KN,ZN,QN],"html"),j0=GN([WN,R8,KN,ZN,QN],"svg");function B8(e){return e.join(" ").trim()}var nl={},Qg,ww;function $8(){if(ww)return Qg;ww=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,u=/^\s+|\s+$/g,d=` +`,m="/",h="*",p="",g="comment",x="declaration";function v(S,w){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];w=w||{};var k=1,j=1;function N(P){var F=P.match(t);F&&(k+=F.length);var V=P.lastIndexOf(d);j=~V?P.length-V:j+P.length}function z(){var P={line:k,column:j};return function(F){return F.position=new I(P),M(),F}}function I(P){this.start=P,this.end={line:k,column:j},this.source=w.source}I.prototype.content=S;function A(P){var F=new Error(w.source+":"+k+":"+j+": "+P);if(F.reason=P,F.filename=w.source,F.line=k,F.column=j,F.source=S,!w.silent)throw F}function L(P){var F=P.exec(S);if(F){var V=F[0];return N(V),S=S.slice(V.length),F}}function M(){L(n)}function O(P){var F;for(P=P||[];F=T();)F!==!1&&P.push(F);return P}function T(){var P=z();if(!(m!=S.charAt(0)||h!=S.charAt(1))){for(var F=2;p!=S.charAt(F)&&(h!=S.charAt(F)||m!=S.charAt(F+1));)++F;if(F+=2,p===S.charAt(F-1))return A("End of comment missing");var V=S.slice(2,F-2);return j+=2,N(V),S=S.slice(F),j+=2,P({type:g,comment:V})}}function $(){var P=z(),F=L(i);if(F){if(T(),!L(r))return A("property missing ':'");var V=L(o),Y=P({type:x,property:b(F[0].replace(e,p)),value:V?b(V[0].replace(e,p)):p});return L(a),Y}}function G(){var P=[];O(P);for(var F;F=$();)F!==!1&&(P.push(F),O(P));return P}return M(),G()}function b(S){return S?S.replace(u,p):p}return Qg=v,Qg}var Cw;function H8(){if(Cw)return nl;Cw=1;var e=nl&&nl.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(nl,"__esModule",{value:!0}),nl.default=n;const t=e($8());function n(i,r){let o=null;if(!i||typeof i!="string")return o;const a=(0,t.default)(i),u=typeof r=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:h}=d;u?r(m,h,d):h&&(o=o||{},o[m]=h)}),o}return nl}var Wc={},jw;function F8(){if(jw)return Wc;jw=1,Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,r=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,h){return h.toUpperCase()},u=function(m,h){return"".concat(h,"-")},d=function(m,h){return h===void 0&&(h={}),o(m)?m:(m=m.toLowerCase(),h.reactCompat?m=m.replace(r,u):m=m.replace(i,u),m.replace(t,a))};return Wc.camelCase=d,Wc}var Yc,Ew;function V8(){if(Ew)return Yc;Ew=1;var e=Yc&&Yc.__importDefault||function(r){return r&&r.__esModule?r:{default:r}},t=e(H8()),n=F8();function i(r,o){var a={};return!r||typeof r!="string"||(0,t.default)(r,function(u,d){u&&d&&(a[(0,n.camelCase)(u,o)]=d)}),a}return i.default=i,Yc=i,Yc}var U8=V8();const q8=ya(U8),JN=eI("end"),E0=eI("start");function eI(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function G8(e){const t=E0(e),n=JN(e);if(t&&n)return{start:t,end:n}}function mu(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Nw(e.position):"start"in e||"end"in e?Nw(e):"line"in e||"column"in e?mv(e):""}function mv(e){return Iw(e&&e.line)+":"+Iw(e&&e.column)}function Nw(e){return mv(e&&e.start)+"-"+mv(e&&e.end)}function Iw(e){return e&&typeof e=="number"?e:1}class Li extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let r="",o={},a=!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"?r=t:!o.cause&&t&&(a=!0,r=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof i=="string"){const d=i.indexOf(":");d===-1?o.ruleId=i:(o.source=i.slice(0,d),o.ruleId=i.slice(d+1))}if(!o.place&&o.ancestors&&o.ancestors){const d=o.ancestors[o.ancestors.length-1];d&&(o.place=d.position)}const u=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=u?u.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=u?u.line:void 0,this.name=mu(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=a&&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}}Li.prototype.file="";Li.prototype.name="";Li.prototype.reason="";Li.prototype.message="";Li.prototype.stack="";Li.prototype.column=void 0;Li.prototype.line=void 0;Li.prototype.ancestors=void 0;Li.prototype.cause=void 0;Li.prototype.fatal=void 0;Li.prototype.place=void 0;Li.prototype.ruleId=void 0;Li.prototype.source=void 0;const N0={}.hasOwnProperty,W8=new Map,Y8=/[A-Z]/g,X8=new Set(["table","tbody","thead","tfoot","tr"]),K8=new Set(["td","th"]),tI="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Z8(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=sP(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");i=rP(n,t.jsx,t.jsxs)}const r={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,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"?j0:P8,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=nI(r,e,void 0);return o&&typeof o!="string"?o:r.create(e,r.Fragment,{children:o||void 0},void 0)}function nI(e,t,n){if(t.type==="element")return Q8(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return J8(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return tP(e,t,n);if(t.type==="mdxjsEsm")return eP(e,t);if(t.type==="root")return nP(e,t,n);if(t.type==="text")return iP(e,t)}function Q8(e,t,n){const i=e.schema;let r=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(r=j0,e.schema=r),e.ancestors.push(t);const o=rI(e,t.tagName,!1),a=oP(e,t);let u=T0(e,t);return X8.has(t.tagName)&&(u=u.filter(function(d){return typeof d=="string"?!N8(d):!0})),iI(e,a,o,t),I0(a,u),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function J8(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Iu(e,t.position)}function eP(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Iu(e,t.position)}function tP(e,t,n){const i=e.schema;let r=i;t.name==="svg"&&i.space==="html"&&(r=j0,e.schema=r),e.ancestors.push(t);const o=t.name===null?e.Fragment:rI(e,t.name,!0),a=aP(e,t),u=T0(e,t);return iI(e,a,o,t),I0(a,u),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function nP(e,t,n){const i={};return I0(i,T0(e,t)),e.create(t,e.Fragment,i,n)}function iP(e,t){return t.value}function iI(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function I0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function rP(e,t,n){return i;function i(r,o,a,u){const m=Array.isArray(a.children)?n:t;return u?m(o,a,u):m(o,a)}}function sP(e,t){return n;function n(i,r,o,a){const u=Array.isArray(o.children),d=E0(i);return t(r,o,a,u,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function oP(e,t){const n={};let i,r;for(r in t.properties)if(r!=="children"&&N0.call(t.properties,r)){const o=lP(e,r,t.properties[r]);if(o){const[a,u]=o;e.tableCellAlignToStyle&&a==="align"&&typeof u=="string"&&K8.has(t.tagName)?i=u:n[a]=u}}if(i){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function aP(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const o=i.data.estree.body[0];o.type;const a=o.expression;a.type;const u=a.properties[0];u.type,Object.assign(n,e.evaluater.evaluateExpression(u.argument))}else Iu(e,t.position);else{const r=i.name;let o;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const u=i.value.data.estree.body[0];u.type,o=e.evaluater.evaluateExpression(u.expression)}else Iu(e,t.position);else o=i.value===null?!0:i.value;n[r]=o}return n}function T0(e,t){const n=[];let i=-1;const r=e.passKeys?new Map:W8;for(;++ir?0:r+t:t=t>r?r:t,n=n>0?n:0,i.length<1e4)a=Array.from(i),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(gr(e,e.length,0,t),e):t}const Aw={}.hasOwnProperty;function oI(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 Wr(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Hi=Ao(/[A-Za-z]/),Oi=Ao(/[\dA-Za-z]/),yP=Ao(/[#-'*+\--9=?A-Z^-~]/);function pm(e){return e!==null&&(e<32||e===127)}const pv=Ao(/\d/),xP=Ao(/[\dA-Fa-f]/),vP=Ao(/[!-/:-@[-`{-~]/);function mt(e){return e!==null&&e<-2}function Mn(e){return e!==null&&(e<0||e===32)}function Yt(e){return e===-2||e===-1||e===32}const Qm=Ao(new RegExp("\\p{P}|\\p{S}","u")),fa=Ao(/\s/);function Ao(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Yl(e){const t=[];let n=-1,i=0,r=0;for(;++n55295&&o<57344){const u=e.charCodeAt(n+1);o<56320&&u>56319&&u<57344?(a=String.fromCharCode(o,u),r=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(i,n),encodeURIComponent(a)),i=n+r+1,a=""),r&&(n+=r,r=0)}return t.join("")+e.slice(i)}function rn(e,t,n,i){const r=i?i-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Yt(d)?(e.enter(n),u(d)):t(d)}function u(d){return Yt(d)&&o++a))return;const A=t.events.length;let L=A,M,O;for(;L--;)if(t.events[L][0]==="exit"&&t.events[L][1].type==="chunkFlow"){if(M){O=t.events[L][1].end;break}M=!0}for(w(i),I=A;Ij;){const z=n[N];t.containerState=z[1],z[0].exit.call(t,e)}n.length=j}function k(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}function wP(e,t,n){return rn(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Rl(e){if(e===null||Mn(e)||fa(e))return 1;if(Qm(e))return 2}function Jm(e,t,n){const i=[];let r=-1;for(;++r1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[i][1].end},g={...e[n][1].start};Dw(p,-d),Dw(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:p,end:{...e[i][1].end}},u={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},r={type:d>1?"strong":"emphasis",start:{...a.start},end:{...u.end}},e[i][1].end={...a.start},e[n][1].start={...u.end},m=[],e[i][1].end.offset-e[i][1].start.offset&&(m=Tr(m,[["enter",e[i][1],t],["exit",e[i][1],t]])),m=Tr(m,[["enter",r,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=Tr(m,Jm(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),m=Tr(m,[["exit",o,t],["enter",u,t],["exit",u,t],["exit",r,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,m=Tr(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,gr(e,i-1,n-i+3,m),n=i+m.length-h-2;break}}for(n=-1;++n0&&Yt(I)?rn(e,k,"linePrefix",o+1)(I):k(I)}function k(I){return I===null||mt(I)?e.check(Ow,b,N)(I):(e.enter("codeFlowValue"),j(I))}function j(I){return I===null||mt(I)?(e.exit("codeFlowValue"),k(I)):(e.consume(I),j)}function N(I){return e.exit("codeFenced"),t(I)}function z(I,A,L){let M=0;return O;function O(F){return I.enter("lineEnding"),I.consume(F),I.exit("lineEnding"),T}function T(F){return I.enter("codeFencedFence"),Yt(F)?rn(I,$,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):$(F)}function $(F){return F===u?(I.enter("codeFencedFenceSequence"),G(F)):L(F)}function G(F){return F===u?(M++,I.consume(F),G):M>=a?(I.exit("codeFencedFenceSequence"),Yt(F)?rn(I,P,"whitespace")(F):P(F)):L(F)}function P(F){return F===null||mt(F)?(I.exit("codeFencedFence"),A(F)):L(F)}}}function LP(e,t,n){const i=this;return r;function r(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}const ey={name:"codeIndented",tokenize:PP},zP={partial:!0,tokenize:BP};function PP(e,t,n){const i=this;return r;function r(m){return e.enter("codeIndented"),rn(e,o,"linePrefix",5)(m)}function o(m){const h=i.events[i.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):mt(m)?e.attempt(zP,a,d)(m):(e.enter("codeFlowValue"),u(m))}function u(m){return m===null||mt(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),u)}function d(m){return e.exit("codeIndented"),t(m)}}function BP(e,t,n){const i=this;return r;function r(a){return i.parser.lazy[i.now().line]?n(a):mt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r):rn(e,o,"linePrefix",5)(a)}function o(a){const u=i.events[i.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?t(a):mt(a)?r(a):n(a)}}const $P={name:"codeText",previous:FP,resolve:HP,tokenize:VP};function HP(e){let t=e.length-4,n=3,i,r;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=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-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const r=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return i&&Xc(this.left,i),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),Xc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Xc(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(a):e.interrupt(i.parser.constructs.flow,n,t)(a)}}function fI(e,t,n,i,r,o,a,u,d){const m=d||Number.POSITIVE_INFINITY;let h=0;return p;function p(w){return w===60?(e.enter(i),e.enter(r),e.enter(o),e.consume(w),e.exit(o),g):w===null||w===32||w===41||pm(w)?n(w):(e.enter(i),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),b(w))}function g(w){return w===62?(e.enter(o),e.consume(w),e.exit(o),e.exit(r),e.exit(i),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),x(w))}function x(w){return w===62?(e.exit("chunkString"),e.exit(u),g(w)):w===null||w===60||mt(w)?n(w):(e.consume(w),w===92?v:x)}function v(w){return w===60||w===62||w===92?(e.consume(w),x):x(w)}function b(w){return!h&&(w===null||w===41||Mn(w))?(e.exit("chunkString"),e.exit(u),e.exit(a),e.exit(i),t(w)):h999||x===null||x===91||x===93&&!d||x===94&&!u&&"_hiddenFootnoteSupport"in a.parser.constructs?n(x):x===93?(e.exit(o),e.enter(r),e.consume(x),e.exit(r),e.exit(i),t):mt(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===null||x===91||x===93||mt(x)||u++>999?(e.exit("chunkString"),h(x)):(e.consume(x),d||(d=!Yt(x)),x===92?g:p)}function g(x){return x===91||x===92||x===93?(e.consume(x),u++,p):p(x)}}function pI(e,t,n,i,r,o){let a;return u;function u(g){return g===34||g===39||g===40?(e.enter(i),e.enter(r),e.consume(g),e.exit(r),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(r),e.consume(g),e.exit(r),e.exit(i),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):mt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),rn(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(g))}function h(g){return g===a||g===null||mt(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?p:h)}function p(g){return g===a||g===92?(e.consume(g),h):h(g)}}function pu(e,t){let n;return i;function i(r){return mt(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,i):Yt(r)?rn(e,i,n?"linePrefix":"lineSuffix")(r):t(r)}}const ZP={name:"definition",tokenize:JP},QP={partial:!0,tokenize:eB};function JP(e,t,n){const i=this;let r;return o;function o(x){return e.enter("definition"),a(x)}function a(x){return mI.call(i,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(x)}function u(x){return r=Wr(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),x===58?(e.enter("definitionMarker"),e.consume(x),e.exit("definitionMarker"),d):n(x)}function d(x){return Mn(x)?pu(e,m)(x):m(x)}function m(x){return fI(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(x)}function h(x){return e.attempt(QP,p,p)(x)}function p(x){return Yt(x)?rn(e,g,"whitespace")(x):g(x)}function g(x){return x===null||mt(x)?(e.exit("definition"),i.parser.defined.push(r),t(x)):n(x)}}function eB(e,t,n){return i;function i(u){return Mn(u)?pu(e,r)(u):n(u)}function r(u){return pI(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function o(u){return Yt(u)?rn(e,a,"whitespace")(u):a(u)}function a(u){return u===null||mt(u)?t(u):n(u)}}const tB={name:"hardBreakEscape",tokenize:nB};function nB(e,t,n){return i;function i(o){return e.enter("hardBreakEscape"),e.consume(o),r}function r(o){return mt(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const iB={name:"headingAtx",resolve:rB,tokenize:sB};function rB(e,t){let n=e.length-2,i=3,r,o;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},o={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},gr(e,i,n-i+1,[["enter",r,t],["enter",o,t],["exit",o,t],["exit",r,t]])),e}function sB(e,t,n){let i=0;return r;function r(h){return e.enter("atxHeading"),o(h)}function o(h){return e.enter("atxHeadingSequence"),a(h)}function a(h){return h===35&&i++<6?(e.consume(h),a):h===null||Mn(h)?(e.exit("atxHeadingSequence"),u(h)):n(h)}function u(h){return h===35?(e.enter("atxHeadingSequence"),d(h)):h===null||mt(h)?(e.exit("atxHeading"),t(h)):Yt(h)?rn(e,u,"whitespace")(h):(e.enter("atxHeadingText"),m(h))}function d(h){return h===35?(e.consume(h),d):(e.exit("atxHeadingSequence"),u(h))}function m(h){return h===null||h===35||Mn(h)?(e.exit("atxHeadingText"),u(h)):(e.consume(h),m)}}const oB=["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"],zw=["pre","script","style","textarea"],aB={concrete:!0,name:"htmlFlow",resolveTo:uB,tokenize:dB},lB={partial:!0,tokenize:mB},cB={partial:!0,tokenize:fB};function uB(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 dB(e,t,n){const i=this;let r,o,a,u,d;return m;function m(D){return h(D)}function h(D){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(D),p}function p(D){return D===33?(e.consume(D),g):D===47?(e.consume(D),o=!0,b):D===63?(e.consume(D),r=3,i.interrupt?t:W):Hi(D)?(e.consume(D),a=String.fromCharCode(D),S):n(D)}function g(D){return D===45?(e.consume(D),r=2,x):D===91?(e.consume(D),r=5,u=0,v):Hi(D)?(e.consume(D),r=4,i.interrupt?t:W):n(D)}function x(D){return D===45?(e.consume(D),i.interrupt?t:W):n(D)}function v(D){const Z="CDATA[";return D===Z.charCodeAt(u++)?(e.consume(D),u===Z.length?i.interrupt?t:$:v):n(D)}function b(D){return Hi(D)?(e.consume(D),a=String.fromCharCode(D),S):n(D)}function S(D){if(D===null||D===47||D===62||Mn(D)){const Z=D===47,ie=a.toLowerCase();return!Z&&!o&&zw.includes(ie)?(r=1,i.interrupt?t(D):$(D)):oB.includes(a.toLowerCase())?(r=6,Z?(e.consume(D),w):i.interrupt?t(D):$(D)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(D):o?k(D):j(D))}return D===45||Oi(D)?(e.consume(D),a+=String.fromCharCode(D),S):n(D)}function w(D){return D===62?(e.consume(D),i.interrupt?t:$):n(D)}function k(D){return Yt(D)?(e.consume(D),k):O(D)}function j(D){return D===47?(e.consume(D),O):D===58||D===95||Hi(D)?(e.consume(D),N):Yt(D)?(e.consume(D),j):O(D)}function N(D){return D===45||D===46||D===58||D===95||Oi(D)?(e.consume(D),N):z(D)}function z(D){return D===61?(e.consume(D),I):Yt(D)?(e.consume(D),z):j(D)}function I(D){return D===null||D===60||D===61||D===62||D===96?n(D):D===34||D===39?(e.consume(D),d=D,A):Yt(D)?(e.consume(D),I):L(D)}function A(D){return D===d?(e.consume(D),d=null,M):D===null||mt(D)?n(D):(e.consume(D),A)}function L(D){return D===null||D===34||D===39||D===47||D===60||D===61||D===62||D===96||Mn(D)?z(D):(e.consume(D),L)}function M(D){return D===47||D===62||Yt(D)?j(D):n(D)}function O(D){return D===62?(e.consume(D),T):n(D)}function T(D){return D===null||mt(D)?$(D):Yt(D)?(e.consume(D),T):n(D)}function $(D){return D===45&&r===2?(e.consume(D),V):D===60&&r===1?(e.consume(D),Y):D===62&&r===4?(e.consume(D),q):D===63&&r===3?(e.consume(D),W):D===93&&r===5?(e.consume(D),Q):mt(D)&&(r===6||r===7)?(e.exit("htmlFlowData"),e.check(lB,J,G)(D)):D===null||mt(D)?(e.exit("htmlFlowData"),G(D)):(e.consume(D),$)}function G(D){return e.check(cB,P,J)(D)}function P(D){return e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),F}function F(D){return D===null||mt(D)?G(D):(e.enter("htmlFlowData"),$(D))}function V(D){return D===45?(e.consume(D),W):$(D)}function Y(D){return D===47?(e.consume(D),a="",U):$(D)}function U(D){if(D===62){const Z=a.toLowerCase();return zw.includes(Z)?(e.consume(D),q):$(D)}return Hi(D)&&a.length<8?(e.consume(D),a+=String.fromCharCode(D),U):$(D)}function Q(D){return D===93?(e.consume(D),W):$(D)}function W(D){return D===62?(e.consume(D),q):D===45&&r===2?(e.consume(D),W):$(D)}function q(D){return D===null||mt(D)?(e.exit("htmlFlowData"),J(D)):(e.consume(D),q)}function J(D){return e.exit("htmlFlow"),t(D)}}function fB(e,t,n){const i=this;return r;function r(a){return mt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}function mB(e,t,n){return i;function i(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(qu,t,n)}}const pB={name:"htmlText",tokenize:hB};function hB(e,t,n){const i=this;let r,o,a;return u;function u(W){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(W),d}function d(W){return W===33?(e.consume(W),m):W===47?(e.consume(W),z):W===63?(e.consume(W),j):Hi(W)?(e.consume(W),L):n(W)}function m(W){return W===45?(e.consume(W),h):W===91?(e.consume(W),o=0,v):Hi(W)?(e.consume(W),k):n(W)}function h(W){return W===45?(e.consume(W),x):n(W)}function p(W){return W===null?n(W):W===45?(e.consume(W),g):mt(W)?(a=p,Y(W)):(e.consume(W),p)}function g(W){return W===45?(e.consume(W),x):p(W)}function x(W){return W===62?V(W):W===45?g(W):p(W)}function v(W){const q="CDATA[";return W===q.charCodeAt(o++)?(e.consume(W),o===q.length?b:v):n(W)}function b(W){return W===null?n(W):W===93?(e.consume(W),S):mt(W)?(a=b,Y(W)):(e.consume(W),b)}function S(W){return W===93?(e.consume(W),w):b(W)}function w(W){return W===62?V(W):W===93?(e.consume(W),w):b(W)}function k(W){return W===null||W===62?V(W):mt(W)?(a=k,Y(W)):(e.consume(W),k)}function j(W){return W===null?n(W):W===63?(e.consume(W),N):mt(W)?(a=j,Y(W)):(e.consume(W),j)}function N(W){return W===62?V(W):j(W)}function z(W){return Hi(W)?(e.consume(W),I):n(W)}function I(W){return W===45||Oi(W)?(e.consume(W),I):A(W)}function A(W){return mt(W)?(a=A,Y(W)):Yt(W)?(e.consume(W),A):V(W)}function L(W){return W===45||Oi(W)?(e.consume(W),L):W===47||W===62||Mn(W)?M(W):n(W)}function M(W){return W===47?(e.consume(W),V):W===58||W===95||Hi(W)?(e.consume(W),O):mt(W)?(a=M,Y(W)):Yt(W)?(e.consume(W),M):V(W)}function O(W){return W===45||W===46||W===58||W===95||Oi(W)?(e.consume(W),O):T(W)}function T(W){return W===61?(e.consume(W),$):mt(W)?(a=T,Y(W)):Yt(W)?(e.consume(W),T):M(W)}function $(W){return W===null||W===60||W===61||W===62||W===96?n(W):W===34||W===39?(e.consume(W),r=W,G):mt(W)?(a=$,Y(W)):Yt(W)?(e.consume(W),$):(e.consume(W),P)}function G(W){return W===r?(e.consume(W),r=void 0,F):W===null?n(W):mt(W)?(a=G,Y(W)):(e.consume(W),G)}function P(W){return W===null||W===34||W===39||W===60||W===61||W===96?n(W):W===47||W===62||Mn(W)?M(W):(e.consume(W),P)}function F(W){return W===47||W===62||Mn(W)?M(W):n(W)}function V(W){return W===62?(e.consume(W),e.exit("htmlTextData"),e.exit("htmlText"),t):n(W)}function Y(W){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(W),e.exit("lineEnding"),U}function U(W){return Yt(W)?rn(e,Q,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(W):Q(W)}function Q(W){return e.enter("htmlTextData"),a(W)}}const M0={name:"labelEnd",resolveAll:vB,resolveTo:bB,tokenize:_B},gB={tokenize:kB},yB={tokenize:SB},xB={tokenize:wB};function vB(e){let t=-1;const n=[];for(;++t=3&&(m===null||mt(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===r?(e.consume(m),i++,d):(e.exit("thematicBreakSequence"),Yt(m)?rn(e,u,"whitespace")(m):u(m))}}const Ki={continuation:{tokenize:DB},exit:LB,name:"list",tokenize:MB},RB={partial:!0,tokenize:zB},AB={partial:!0,tokenize:OB};function MB(e,t,n){const i=this,r=i.events[i.events.length-1];let o=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,a=0;return u;function u(x){const v=i.containerState.type||(x===42||x===43||x===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||x===i.containerState.marker:pv(x)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),x===42||x===45?e.check(Vf,n,m)(x):m(x);if(!i.interrupt||x===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(x)}return n(x)}function d(x){return pv(x)&&++a<10?(e.consume(x),d):(!i.interrupt||a<2)&&(i.containerState.marker?x===i.containerState.marker:x===41||x===46)?(e.exit("listItemValue"),m(x)):n(x)}function m(x){return e.enter("listItemMarker"),e.consume(x),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||x,e.check(qu,i.interrupt?n:h,e.attempt(RB,g,p))}function h(x){return i.containerState.initialBlankLine=!0,o++,g(x)}function p(x){return Yt(x)?(e.enter("listItemPrefixWhitespace"),e.consume(x),e.exit("listItemPrefixWhitespace"),g):n(x)}function g(x){return i.containerState.size=o+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(x)}}function DB(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(qu,r,o);function r(u){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,rn(e,t,"listItemIndent",i.containerState.size+1)(u)}function o(u){return i.containerState.furtherBlankLines||!Yt(u)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(u)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(AB,t,a)(u))}function a(u){return i.containerState._closeFlow=!0,i.interrupt=void 0,rn(e,e.attempt(Ki,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u)}}function OB(e,t,n){const i=this;return rn(e,r,"listItemIndent",i.containerState.size+1);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?t(o):n(o)}}function LB(e){e.exit(this.containerState.type)}function zB(e,t,n){const i=this;return rn(e,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(o){const a=i.events[i.events.length-1];return!Yt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Pw={name:"setextUnderline",resolveTo:PB,tokenize:BB};function PB(e,t){let n=e.length,i,r,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(r=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[i][1],t]),e[i][1].end={...e[o][1].end}):e[i][1]=a,e.push(["exit",a,t]),e}function BB(e,t,n){const i=this;let r;return o;function o(m){let h=i.events.length,p;for(;h--;)if(i.events[h][1].type!=="lineEnding"&&i.events[h][1].type!=="linePrefix"&&i.events[h][1].type!=="content"){p=i.events[h][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||p)?(e.enter("setextHeadingLine"),r=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),u(m)}function u(m){return m===r?(e.consume(m),u):(e.exit("setextHeadingLineSequence"),Yt(m)?rn(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||mt(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const $B={tokenize:HB};function HB(e){const t=this,n=e.attempt(qu,i,e.attempt(this.parser.constructs.flowInitial,r,rn(e,e.attempt(this.parser.constructs.flow,r,e.attempt(GP,r)),"linePrefix")));return n;function i(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const FB={resolveAll:gI()},VB=hI("string"),UB=hI("text");function hI(e){return{resolveAll:gI(e==="text"?qB:void 0),tokenize:t};function t(n){const i=this,r=this.parser.constructs[e],o=n.attempt(r,a,u);return a;function a(h){return m(h)?o(h):u(h)}function u(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),d}function d(h){return m(h)?(n.exit("data"),o(h)):(n.consume(h),d)}function m(h){if(h===null)return!0;const p=r[h];let g=-1;if(p)for(;++g-1){const u=a[0];typeof u=="string"?a[0]=u.slice(i):a.shift()}o>0&&a.push(e[r].slice(0,o))}return a}function r9(e,t){let n=-1;const i=[];let r;for(;++n0){const bt=Oe.tokenStack[Oe.tokenStack.length-1];(bt[1]||$w).call(Oe,void 0,bt[0])}for(we.position={start:vo(ce.length>0?ce[0][1].start:{line:1,column:1,offset:0}),end:vo(ce.length>0?ce[ce.length-2][1].end:{line:1,column:1,offset:0})},Xe=-1;++Xe0&&(i.className=["language-"+r[0]]);let o={type:"element",tagName:"code",properties:i,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 x9(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function v9(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function b9(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),r=Yl(i.toLowerCase()),o=e.footnoteOrder.indexOf(i);let a,u=e.footnoteCounts.get(i);u===void 0?(u=0,e.footnoteOrder.push(i),a=e.footnoteOrder.length):a=o+1,u+=1,e.footnoteCounts.set(i,u);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+r,id:n+"fnref-"+r+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,d);const m={type:"element",tagName:"sup",properties:{},children:[d]};return e.patch(t,m),e.applyData(t,m)}function _9(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 k9(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function vI(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const r=e.all(t),o=r[0];o&&o.type==="text"?o.value="["+o.value:r.unshift({type:"text",value:"["});const a=r[r.length-1];return a&&a.type==="text"?a.value+=i:r.push({type:"text",value:i}),r}function S9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return vI(e,t);const r={src:Yl(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)}function w9(e,t){const n={src:Yl(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 i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function C9(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function j9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return vI(e,t);const r={href:Yl(i.url||"")};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function E9(e,t){const n={href:Yl(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function N9(e,t,n){const i=e.all(t),r=n?I9(n):bI(t),o={},a=[];if(typeof t.checked=="boolean"){const h=i[0];let p;h&&h.type==="element"&&h.tagName==="p"?p=h:(p={type:"element",tagName:"p",properties:{},children:[]},i.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 u=-1;for(;++u1}function T9(e,t){const n={},i=e.all(t);let r=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++r0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},u=E0(t.children[1]),d=JN(t.children[t.children.length-1]);u&&d&&(a.position={start:u,end:d}),r.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function O9(e,t,n){const i=n?n.children:void 0,o=(i?i.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,u=a?a.length:t.children.length;let d=-1;const m=[];for(;++d0,!0),i[0]),r=i.index+i[0].length,i=n.exec(t);return o.push(Vw(t.slice(r),r>0,!1)),o.join("")}function Vw(e,t,n){let i=0,r=e.length;if(t){let o=e.codePointAt(i);for(;o===Hw||o===Fw;)i++,o=e.codePointAt(i)}if(n){let o=e.codePointAt(r-1);for(;o===Hw||o===Fw;)r--,o=e.codePointAt(r-1)}return r>i?e.slice(i,r):""}function P9(e,t){const n={type:"text",value:z9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function B9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const $9={blockquote:h9,break:g9,code:y9,delete:x9,emphasis:v9,footnoteReference:b9,heading:_9,html:k9,imageReference:S9,image:w9,inlineCode:C9,linkReference:j9,link:E9,listItem:N9,list:T9,paragraph:R9,root:A9,strong:M9,table:D9,tableCell:L9,tableRow:O9,text:P9,thematicBreak:B9,toml:pf,yaml:pf,definition:pf,footnoteDefinition:pf};function pf(){}const _I=-1,ep=0,hu=1,hm=2,D0=3,O0=4,L0=5,z0=6,kI=7,SI=8,Uw=typeof self=="object"?self:globalThis,H9=(e,t)=>{const n=(r,o)=>(e.set(o,r),r),i=r=>{if(e.has(r))return e.get(r);const[o,a]=t[r];switch(o){case ep:case _I:return n(a,r);case hu:{const u=n([],r);for(const d of a)u.push(i(d));return u}case hm:{const u=n({},r);for(const[d,m]of a)u[i(d)]=i(m);return u}case D0:return n(new Date(a),r);case O0:{const{source:u,flags:d}=a;return n(new RegExp(u,d),r)}case L0:{const u=n(new Map,r);for(const[d,m]of a)u.set(i(d),i(m));return u}case z0:{const u=n(new Set,r);for(const d of a)u.add(i(d));return u}case kI:{const{name:u,message:d}=a;return n(new Uw[u](d),r)}case SI:return n(BigInt(a),r);case"BigInt":return n(Object(BigInt(a)),r);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:u}=new Uint8Array(a);return n(new DataView(u),a)}}return n(new Uw[o](a),r)};return i},qw=e=>H9(new Map,e)(0),il="",{toString:F9}={},{keys:V9}=Object,Kc=e=>{const t=typeof e;if(t!=="object"||!e)return[ep,t];const n=F9.call(e).slice(8,-1);switch(n){case"Array":return[hu,il];case"Object":return[hm,il];case"Date":return[D0,il];case"RegExp":return[O0,il];case"Map":return[L0,il];case"Set":return[z0,il];case"DataView":return[hu,n]}return n.includes("Array")?[hu,n]:n.includes("Error")?[kI,n]:[hm,n]},hf=([e,t])=>e===ep&&(t==="function"||t==="symbol"),U9=(e,t,n,i)=>{const r=(a,u)=>{const d=i.push(a)-1;return n.set(u,d),d},o=a=>{if(n.has(a))return n.get(a);let[u,d]=Kc(a);switch(u){case ep:{let h=a;switch(d){case"bigint":u=SI,h=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);h=null;break;case"undefined":return r([_I],a)}return r([u,h],a)}case hu:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),r([d,[...g]],a)}const h=[],p=r([u,h],a);for(const g of a)h.push(o(g));return p}case hm:{if(d)switch(d){case"BigInt":return r([d,a.toString()],a);case"Boolean":case"Number":case"String":return r([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const h=[],p=r([u,h],a);for(const g of V9(a))(e||!hf(Kc(a[g])))&&h.push([o(g),o(a[g])]);return p}case D0:return r([u,a.toISOString()],a);case O0:{const{source:h,flags:p}=a;return r([u,{source:h,flags:p}],a)}case L0:{const h=[],p=r([u,h],a);for(const[g,x]of a)(e||!(hf(Kc(g))||hf(Kc(x))))&&h.push([o(g),o(x)]);return p}case z0:{const h=[],p=r([u,h],a);for(const g of a)(e||!hf(Kc(g)))&&h.push(o(g));return p}}const{message:m}=a;return r([u,{name:d,message:m}],a)};return o},Gw=(e,{json:t,lossy:n}={})=>{const i=[];return U9(!(t||n),!!t,new Map,i)(e),i},gm=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?qw(Gw(e,t)):structuredClone(e):(e,t)=>qw(Gw(e,t));function q9(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 G9(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function W9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||q9,i=e.options.footnoteBackLabel||G9,r=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},u=[];let d=-1;for(;++d0&&v.push({type:"text",value:" "});let k=typeof n=="string"?n:n(d,x);typeof k=="string"&&(k={type:"text",value:k}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(x>1?"-"+x:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(d,x),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}const S=h[h.length-1];if(S&&S.type==="element"&&S.tagName==="p"){const k=S.children[S.children.length-1];k&&k.type==="text"?k.value+=" ":S.children.push({type:"text",value:" "}),S.children.push(...v)}else h.push(...v);const w={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(h,!0)};e.patch(m,w),u.push(w)}if(u.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...gm(a),id:"footnote-label"},children:[{type:"text",value:r}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:` +`}]}}const tp=(function(e){if(e==null)return Z9;if(typeof e=="function")return np(e);if(typeof e=="object")return Array.isArray(e)?Y9(e):X9(e);if(typeof e=="string")return K9(e);throw new Error("Expected function, string, or object as test")});function Y9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let x=wI,v,b,S;if((!t||o(d,m,h[h.length-1]||void 0))&&(x=t$(n(d,h)),x[0]===gv))return x;if("children"in d&&d.children){const w=d;if(w.children&&x[0]!==e$)for(b=(i?w.children.length:-1)+a,S=h.concat(w);b>-1&&b0&&n.push({type:"text",value:` +`}),n}function Ww(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Yw(e,t){const n=i$(e,t),i=n.one(e,void 0),r=W9(n),o=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return r&&o.children.push({type:"text",value:` +`},r),o}function l$(e,t){return e&&"run"in e?async function(n,i){const r=Yw(n,{file:i,...t});await e.run(r,i)}:function(n,i){return Yw(n,{file:i,...e||t})}}function Xw(e){if(e)throw e}var ny,Kw;function c$(){if(Kw)return ny;Kw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=function(m){return typeof Array.isArray=="function"?Array.isArray(m):t.call(m)==="[object Array]"},o=function(m){if(!m||t.call(m)!=="[object Object]")return!1;var h=e.call(m,"constructor"),p=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!h&&!p)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,h){n&&h.name==="__proto__"?n(m,h.name,{enumerable:!0,configurable:!0,value:h.newValue,writable:!0}):m[h.name]=h.newValue},u=function(m,h){if(h==="__proto__")if(e.call(m,h)){if(i)return i(m,h).value}else return;return m[h]};return ny=function d(){var m,h,p,g,x,v,b=arguments[0],S=1,w=arguments.length,k=!1;for(typeof b=="boolean"&&(k=b,b=arguments[1]||{},S=2),(b==null||typeof b!="object"&&typeof b!="function")&&(b={});Sa.length;let d;u&&a.push(r);try{d=e.apply(this,a)}catch(m){const h=m;if(u&&n)throw h;return r(h)}u||(d&&d.then&&typeof d.then=="function"?d.then(o,r):d instanceof Error?r(d):o(d))}function r(a,...u){n||(n=!0,t(a,...u))}function o(a){r(null,a)}}const os={basename:m$,dirname:p$,extname:h$,join:g$,sep:"/"};function m$(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Gu(e);let n=0,i=-1,r=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else i<0&&(o=!0,i=r+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let a=-1,u=t.length-1;for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else a<0&&(o=!0,a=r+1),u>-1&&(e.codePointAt(r)===t.codePointAt(u--)?u<0&&(i=r):(u=-1,i=a));return n===i?i=a:i<0&&(i=e.length),e.slice(n,i)}function p$(e){if(Gu(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function h$(e){Gu(e);let t=e.length,n=-1,i=0,r=-1,o=0,a;for(;t--;){const u=e.codePointAt(t);if(u===47){if(a){i=t+1;break}continue}n<0&&(a=!0,n=t+1),u===46?r<0?r=t:o!==1&&(o=1):r>-1&&(o=-1)}return r<0||n<0||o===0||o===1&&r===n-1&&r===i+1?"":e.slice(r,n)}function g$(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function x$(e,t){let n="",i=0,r=-1,o=0,a=-1,u,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",i=0):(n=n.slice(0,d),i=n.length-1-n.lastIndexOf("/")),r=a,o=0;continue}}else if(n.length>0){n="",i=0,r=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(r+1,a):n=e.slice(r+1,a),i=a-r-1;r=a,o=0}else u===46&&o>-1?o++:o=-1}return n}function Gu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const v$={cwd:b$};function b$(){return"/"}function vv(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function _$(e){if(typeof e=="string")e=new URL(e);else if(!vv(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 k$(e)}function k$(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[x,...v]=h;const b=i[g][1];xv(b)&&xv(x)&&(x=iy(!0,b,x)),i[g]=[m,x,...v]}}}}const j$=new B0().freeze();function ay(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ly(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function cy(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 Qw(e){if(!xv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Jw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function gf(e){return E$(e)?e:new jI(e)}function E$(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function N$(e){return typeof e=="string"||I$(e)}function I$(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const T$="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",eC=[],tC={allowDangerousHtml:!0},R$=/^(https?|ircs?|mailto|xmpp)$/i,A$=[{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 M$(e){const t=D$(e),n=O$(e);return L$(t.runSync(t.parse(n),n),e)}function D$(e){const t=e.rehypePlugins||eC,n=e.remarkPlugins||eC,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...tC}:tC;return j$().use(p9).use(n).use(l$,i).use(t)}function O$(e){const t=e.children||"",n=new jI;return typeof t=="string"&&(n.value=t),n}function L$(e,t){const n=t.allowedElements,i=t.allowElement,r=t.components,o=t.disallowedElements,a=t.skipHtml,u=t.unwrapDisallowed,d=t.urlTransform||z$;for(const h of A$)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+T$+h.id,void 0);return P0(e,m),Z8(e,{Fragment:c.Fragment,components:r,ignoreInvalidStyle:!0,jsx:c.jsx,jsxs:c.jsxs,passKeys:!0,passNode:!0});function m(h,p,g){if(h.type==="raw"&&g&&typeof p=="number")return a?g.children.splice(p,1):g.children[p]={type:"text",value:h.value},p;if(h.type==="element"){let x;for(x in Jg)if(Object.hasOwn(Jg,x)&&Object.hasOwn(h.properties,x)){const v=h.properties[x],b=Jg[x];(b===null||b.includes(h.tagName))&&(h.properties[x]=d(String(v||""),x,h))}}if(h.type==="element"){let x=n?!n.includes(h.tagName):o?o.includes(h.tagName):!1;if(!x&&i&&typeof p=="number"&&(x=!i(h,p,g)),x&&g&&typeof p=="number")return u&&h.children?g.children.splice(p,1,...h.children):g.children.splice(p,1),p}}}function z$(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),r=e.indexOf("/");return t===-1||r!==-1&&t>r||n!==-1&&t>n||i!==-1&&t>i||R$.test(e.slice(0,t))?e:""}function nC(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,r=n.indexOf(t);for(;r!==-1;)i++,r=n.indexOf(t,r+t.length);return i}function P$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function B$(e,t,n){const r=tp((n||{}).ignore||[]),o=$$(t);let a=-1;for(;++a0?{type:"text",value:I}:void 0),I===!1?g.lastIndex=N+1:(v!==N&&k.push({type:"text",value:m.value.slice(v,N)}),Array.isArray(I)?k.push(...I):I&&k.push(I),v=N+j[0].length,w=!0),!g.global)break;j=g.exec(m.value)}return w?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const r=nC(e,"(");let o=nC(e,")");for(;i!==-1&&r>o;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),o++;return[e,n]}function EI(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||fa(n)||Qm(n))&&(!t||n!==47)}NI.peek=c7;function t7(){this.buffer()}function n7(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function i7(){this.buffer()}function r7(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function s7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Wr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function o7(e){this.exit(e)}function a7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Wr(this.sliceSerialize(e)).toLowerCase(),n.label=t}function l7(e){this.exit(e)}function c7(){return"["}function NI(e,t,n,i){const r=n.createTracker(i);let o=r.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return o+=r.move(n.safe(n.associationId(e),{after:"]",before:o})),u(),a(),o+=r.move("]"),o}function u7(){return{enter:{gfmFootnoteCallString:t7,gfmFootnoteCall:n7,gfmFootnoteDefinitionLabelString:i7,gfmFootnoteDefinition:r7},exit:{gfmFootnoteCallString:s7,gfmFootnoteCall:o7,gfmFootnoteDefinitionLabelString:a7,gfmFootnoteDefinition:l7}}}function d7(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:NI},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,r,o,a){const u=o.createTracker(a);let d=u.move("[^");const m=o.enter("footnoteDefinition"),h=o.enter("label");return d+=u.move(o.safe(o.associationId(i),{before:d,after:"]"})),h(),d+=u.move("]:"),i.children&&i.children.length>0&&(u.shift(4),d+=u.move((t?` +`:" ")+o.indentLines(o.containerFlow(i,u.current()),t?II:f7))),m(),d}}function f7(e,t,n){return t===0?e:II(e,t,n)}function II(e,t,n){return(n?"":" ")+e}const m7=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];TI.peek=x7;function p7(){return{canContainEols:["delete"],enter:{strikethrough:g7},exit:{strikethrough:y7}}}function h7(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:m7}],handlers:{delete:TI}}}function g7(e){this.enter({type:"delete",children:[]},e)}function y7(e){this.exit(e)}function TI(e,t,n,i){const r=n.createTracker(i),o=n.enter("strikethrough");let a=r.move("~~");return a+=n.containerPhrasing(e,{...r.current(),before:a,after:"~"}),a+=r.move("~~"),o(),a}function x7(){return"~"}function v7(e){return e.length}function b7(e,t){const n=t||{},i=(n.align||[]).concat(),r=n.stringLength||v7,o=[],a=[],u=[],d=[];let m=0,h=-1;for(;++hm&&(m=e[h].length);++wd[w])&&(d[w]=j)}b.push(k)}a[h]=b,u[h]=S}let p=-1;if(typeof i=="object"&&"length"in i)for(;++pd[p]&&(d[p]=k),x[p]=k),g[p]=j}a.splice(1,0,g),u.splice(1,0,x),h=-1;const v=[];for(;++h "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),S7);return r(),a}function S7(e,t,n){return">"+(n?"":" ")+e}function w7(e,t){return rC(e,t.inConstruct,!0)&&!rC(e,t.notInConstruct,!1)}function rC(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++ia&&(a=o):o=1,r=i+t.length,i=n.indexOf(t,r);return a}function j7(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 E7(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 N7(e,t,n,i){const r=E7(n),o=e.value||"",a=r==="`"?"GraveAccent":"Tilde";if(j7(e,n)){const p=n.enter("codeIndented"),g=n.indentLines(o,I7);return p(),g}const u=n.createTracker(i),d=r.repeat(Math.max(C7(o,r)+1,3)),m=n.enter("codeFenced");let h=u.move(d);if(e.lang){const p=n.enter(`codeFencedLang${a}`);h+=u.move(n.safe(e.lang,{before:h,after:" ",encode:["`"],...u.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);h+=u.move(" "),h+=u.move(n.safe(e.meta,{before:h,after:` +`,encode:["`"],...u.current()})),p()}return h+=u.move(` +`),o&&(h+=u.move(o+` +`)),h+=u.move(d),m(),h}function I7(e,t,n){return(n?"":" ")+e}function $0(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 T7(e,t,n,i){const r=$0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const d=n.createTracker(i);let m=d.move("[");return m+=d.move(n.safe(n.associationId(e),{before:m,after:"]",...d.current()})),m+=d.move("]: "),u(),!e.url||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(u=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":` +`,...d.current()}))),u(),e.title&&(u=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),u()),a(),m}function R7(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 Tu(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ym(e,t,n){const i=Rl(e),r=Rl(t);return i===void 0?r===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}RI.peek=A7;function RI(e,t,n,i){const r=R7(n),o=n.enter("emphasis"),a=n.createTracker(i),u=a.move(r);let d=a.move(n.containerPhrasing(e,{after:r,before:u,...a.current()}));const m=d.charCodeAt(0),h=ym(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Tu(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=ym(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Tu(p));const x=a.move(r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},u+d+x}function A7(e,t,n){return n.options.emphasis||"*"}function M7(e,t){let n=!1;return P0(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,gv}),!!((!e.depth||e.depth<3)&&R0(e)&&(t.options.setext||n))}function D7(e,t,n,i){const r=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(i);if(M7(e,n)){const h=n.enter("headingSetext"),p=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return p(),h(),g+` +`+(r===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` +`))+1))}const a="#".repeat(r),u=n.enter("headingAtx"),d=n.enter("phrasing");o.move(a+" ");let m=n.containerPhrasing(e,{before:"# ",after:` +`,...o.current()});return/^[\t ]/.test(m)&&(m=Tu(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),u(),m}AI.peek=O7;function AI(e){return e.value||""}function O7(){return"<"}MI.peek=L7;function MI(e,t,n,i){const r=$0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("image");let u=n.enter("label");const d=n.createTracker(i);let m=d.move("![");return m+=d.move(n.safe(e.alt,{before:m,after:"]",...d.current()})),m+=d.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(u=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":")",...d.current()}))),u(),e.title&&(u=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),u()),m+=d.move(")"),a(),m}function L7(){return"!"}DI.peek=z7;function DI(e,t,n,i){const r=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(i);let d=u.move("![");const m=n.safe(e.alt,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=u.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function z7(){return"!"}OI.peek=P7;function OI(e,t,n){let i=e.value||"",r="`",o=-1;for(;new RegExp("(^|[^`])"+r+"([^`]|$)").test(i);)r+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++o\u007F]/.test(e.url))}zI.peek=B7;function zI(e,t,n,i){const r=$0(n),o=r==='"'?"Quote":"Apostrophe",a=n.createTracker(i);let u,d;if(LI(e,n)){const h=n.stack;n.stack=[],u=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),u(),n.stack=h,p}u=n.enter("link"),d=n.enter("label");let m=a.move("[");return m+=a.move(n.containerPhrasing(e,{before:m,after:"](",...a.current()})),m+=a.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),m+=a.move("<"),m+=a.move(n.safe(e.url,{before:m,after:">",...a.current()})),m+=a.move(">")):(d=n.enter("destinationRaw"),m+=a.move(n.safe(e.url,{before:m,after:e.title?" ":")",...a.current()}))),d(),e.title&&(d=n.enter(`title${o}`),m+=a.move(" "+r),m+=a.move(n.safe(e.title,{before:m,after:r,...a.current()})),m+=a.move(r),d()),m+=a.move(")"),u(),m}function B7(e,t,n){return LI(e,n)?"<":"["}PI.peek=$7;function PI(e,t,n,i){const r=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(i);let d=u.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=u.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function $7(){return"["}function H0(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 H7(e){const t=H0(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 F7(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 BI(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 V7(e,t,n,i){const r=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?F7(n):H0(n);const u=e.ordered?a==="."?")":".":H7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const h=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&h&&(!h.children||!h.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),BI(n)===a&&h){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(r==="tab"||r==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const u=n.createTracker(i);u.move(o+" ".repeat(a-o.length)),u.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,u.current()),h);return d(),m;function h(p,g,x){return g?(x?"":" ".repeat(a))+p:(x?o:o+" ".repeat(a-o.length))+p}}function G7(e,t,n,i){const r=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,i);return o(),r(),a}const W7=tp(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Y7(e,t,n,i){return(e.children.some(function(a){return W7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function X7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}$I.peek=K7;function $I(e,t,n,i){const r=X7(n),o=n.enter("strong"),a=n.createTracker(i),u=a.move(r+r);let d=a.move(n.containerPhrasing(e,{after:r,before:u,...a.current()}));const m=d.charCodeAt(0),h=ym(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Tu(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=ym(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Tu(p));const x=a.move(r+r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},u+d+x}function K7(e,t,n){return n.options.strong||"*"}function Z7(e,t,n,i){return n.safe(e.value,i)}function Q7(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 J7(e,t,n){const i=(BI(n)+(n.options.ruleSpaces?" ":"")).repeat(Q7(n));return n.options.ruleSpaces?i.slice(0,-1):i}const HI={blockquote:k7,break:sC,code:N7,definition:T7,emphasis:RI,hardBreak:sC,heading:D7,html:AI,image:MI,imageReference:DI,inlineCode:OI,link:zI,linkReference:PI,list:V7,listItem:q7,paragraph:G7,root:Y7,strong:$I,text:Z7,thematicBreak:J7};function eH(){return{enter:{table:tH,tableData:oC,tableHeader:oC,tableRow:iH},exit:{codeText:rH,table:nH,tableData:my,tableHeader:my,tableRow:my}}}function tH(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 nH(e){this.exit(e),this.data.inTable=void 0}function iH(e){this.enter({type:"tableRow",children:[]},e)}function my(e){this.exit(e)}function oC(e){this.enter({type:"tableCell",children:[]},e)}function rH(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,sH));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function sH(e,t){return t==="|"?t:e}function oH(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,r=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:a,tableCell:d,tableRow:u}};function a(x,v,b,S){return m(h(x,b,S),x.align)}function u(x,v,b,S){const w=p(x,b,S),k=m([w]);return k.slice(0,k.indexOf(` +`))}function d(x,v,b,S){const w=b.enter("tableCell"),k=b.enter("phrasing"),j=b.containerPhrasing(x,{...S,before:o,after:o});return k(),w(),j}function m(x,v){return b7(x,{align:v,alignDelimiters:i,padding:n,stringLength:r})}function h(x,v,b){const S=x.children;let w=-1;const k=[],j=v.enter("table");for(;++w0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const wH={tokenize:AH,partial:!0};function CH(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:IH,continuation:{tokenize:TH},exit:RH}},text:{91:{name:"gfmFootnoteCall",tokenize:NH},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:jH,resolveTo:EH}}}}function jH(e,t,n){const i=this;let r=i.events.length;const o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let a;for(;r--;){const d=i.events[r][1];if(d.type==="labelImage"){a=d;break}if(d.type==="gfmFootnoteCall"||d.type==="labelLink"||d.type==="label"||d.type==="image"||d.type==="link")break}return u;function u(d){if(!a||!a._balanced)return n(d);const m=Wr(i.sliceSerialize({start:a.end,end:i.now()}));return m.codePointAt(0)!==94||!o.includes(m.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function EH(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 i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},u=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",r,t],["exit",r,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...u),e}function NH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o=0,a;return u;function u(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",m)}function m(p){if(o>999||p===93&&!a||p===null||p===91||Mn(p))return n(p);if(p===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return r.includes(Wr(i.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return Mn(p)||(a=!0),o++,e.consume(p),p===92?h:m}function h(p){return p===91||p===92||p===93?(e.consume(p),o++,m):m(p)}}function IH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,a=0,u;return d;function d(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",h):n(v)}function h(v){if(a>999||v===93&&!u||v===null||v===91||Mn(v))return n(v);if(v===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return o=Wr(i.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return Mn(v)||(u=!0),a++,e.consume(v),v===92?p:h}function p(v){return v===91||v===92||v===93?(e.consume(v),a++,h):h(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),r.includes(o)||r.push(o),rn(e,x,"gfmFootnoteDefinitionWhitespace")):n(v)}function x(v){return t(v)}}function TH(e,t,n){return e.check(qu,t,e.attempt(wH,t,n))}function RH(e){e.exit("gfmFootnoteDefinition")}function AH(e,t,n){const i=this;return rn(e,r,"gfmFootnoteDefinitionIndent",5);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function MH(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:o,resolveAll:r};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function r(a,u){let d=-1;for(;++d1?d(v):(a.consume(v),p++,x);if(p<2&&!n)return d(v);const S=a.exit("strikethroughSequenceTemporary"),w=Rl(v);return S._open=!w||w===2&&!!b,S._close=!b||b===2&&!!w,u(v)}}}class DH{constructor(){this.map=[]}add(t,n,i){OH(this,t,n,i)}consume(t){if(this.map.sort(function(o,a){return o[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let r=i.pop();for(;r;){for(const o of r)t.push(o);r=i.pop()}this.map.length=0}}function OH(e,t,n,i){let r=0;if(!(n===0&&i.length===0)){for(;r-1;){const P=i.events[T][1].type;if(P==="lineEnding"||P==="linePrefix")T--;else break}const $=T>-1?i.events[T][1].type:null,G=$==="tableHead"||$==="tableRow"?I:d;return G===I&&i.parser.lazy[i.now().line]?n(O):G(O)}function d(O){return e.enter("tableHead"),e.enter("tableRow"),m(O)}function m(O){return O===124||(a=!0,o+=1),h(O)}function h(O){return O===null?n(O):mt(O)?o>1?(o=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),x):n(O):Yt(O)?rn(e,h,"whitespace")(O):(o+=1,a&&(a=!1,r+=1),O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),a=!0,h):(e.enter("data"),p(O)))}function p(O){return O===null||O===124||Mn(O)?(e.exit("data"),h(O)):(e.consume(O),O===92?g:p)}function g(O){return O===92||O===124?(e.consume(O),p):p(O)}function x(O){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(O):(e.enter("tableDelimiterRow"),a=!1,Yt(O)?rn(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):v(O))}function v(O){return O===45||O===58?S(O):O===124?(a=!0,e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),b):z(O)}function b(O){return Yt(O)?rn(e,S,"whitespace")(O):S(O)}function S(O){return O===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),w):O===45?(o+=1,w(O)):O===null||mt(O)?N(O):z(O)}function w(O){return O===45?(e.enter("tableDelimiterFiller"),k(O)):z(O)}function k(O){return O===45?(e.consume(O),k):O===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),j):(e.exit("tableDelimiterFiller"),j(O))}function j(O){return Yt(O)?rn(e,N,"whitespace")(O):N(O)}function N(O){return O===124?v(O):O===null||mt(O)?!a||r!==o?z(O):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(O)):z(O)}function z(O){return n(O)}function I(O){return e.enter("tableRow"),A(O)}function A(O){return O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),A):O===null||mt(O)?(e.exit("tableRow"),t(O)):Yt(O)?rn(e,A,"whitespace")(O):(e.enter("data"),L(O))}function L(O){return O===null||O===124||Mn(O)?(e.exit("data"),A(O)):(e.consume(O),O===92?M:L)}function M(O){return O===92||O===124?(e.consume(O),L):L(O)}}function BH(e,t){let n=-1,i=!0,r=0,o=[0,0,0,0],a=[0,0,0,0],u=!1,d=0,m,h,p;const g=new DH;for(;++nn[2]+1){const v=n[2]+1,b=n[3]-n[2]-1;e.add(v,b,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return r!==void 0&&(o.end=Object.assign({},ll(t.events,r)),e.add(r,0,[["exit",o,t]]),o=void 0),o}function lC(e,t,n,i,r){const o=[],a=ll(t.events,n);r&&(r.end=Object.assign({},a),o.push(["exit",r,t])),i.end=Object.assign({},a),o.push(["exit",i,t]),e.add(n+1,0,o)}function ll(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const $H={name:"tasklistCheck",tokenize:FH};function HH(){return{text:{91:$H}}}function FH(e,t,n){const i=this;return r;function r(d){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return Mn(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),a):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),a):n(d)}function a(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),u):n(d)}function u(d){return mt(d)?t(d):Yt(d)?e.check({tokenize:VH},t,n)(d):n(d)}}function VH(e,t,n){return rn(e,i,"whitespace");function i(r){return r===null?n(r):t(r)}}function UH(e){return oI([hH(),CH(),MH(e),zH(),HH()])}const qH={};function GH(e){const t=this,n=e||qH,i=t.data(),r=i.micromarkExtensions||(i.micromarkExtensions=[]),o=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),a=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);r.push(UH(n)),o.push(dH()),a.push(fH(n))}function WH(e){let t=String(e??"").replace(/\r\n/g,` +`).trim();if(!t)return"";const n=/[^\n][ \t]*#{2,6}[ \t]*\S/.test(t),i=/^#{1,6}[ \t]*[^*|\n]{1,119}\S(?=(?:\*\*[^*\n]{1,80}\*\*[::]|\|[^|\n]{1,80}\|))/m.test(t),r=t.match(new RegExp("(?=2&&(t=t.replace(/([^\n])[ \t]*(\d{1,2}\.)[ \t]+(?=(?:\*\*|[A-Za-z\u4e00-\u9fff]))/g,`$1 +$2 `)),o.length>=2&&(t=t.replace(new RegExp("(?/\|\|[ \t]*:?-{3,}/.test(a)?a.replace(/\|\|/g,`| +|`):a),t=t.replace(new RegExp("(?<=[`。!?;:))])---(?=\\S)","g"),` + +--- + +`),t.trim())}const YH=30,py=10;function XH({className:e,children:t,forceExpanded:n=!1}){const[i,r]=C.useState(!1),[o,a]=C.useState(!1),u=String(t).replace(/\n$/,""),d=e?.replace("language-","")||"",m=u.split(` +`),h=m.length>YH,p=h?m.length-py*2:0,g=C.useCallback(()=>{navigator.clipboard.writeText(u),r(!0),setTimeout(()=>r(!1),1500)},[u]);return c.jsxs("div",{className:"code-block-wrap",children:[c.jsxs("div",{className:"code-block-header",children:[c.jsxs("span",{className:"code-block-lang",children:[d||"code",h?` (${m.length} lines)`:""]}),c.jsx("button",{className:"code-block-copy",onClick:g,children:i?c.jsxs(c.Fragment,{children:[c.jsx(Vl,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(zm,{})," ",c.jsx("span",{children:"Copy"})]})})]}),c.jsx("pre",{children:c.jsx("code",{className:e,children:h&&!n&&!o?c.jsxs(c.Fragment,{children:[m.slice(0,py).join(` +`)+` +`,c.jsxs("span",{className:"code-block-omitted",onClick:()=>a(!0),children:["... +",p," lines (click to expand)"]}),` +`+m.slice(-py).join(` +`)]}):u})}),h&&!n&&o&&c.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>a(!1),children:["Collapse (",m.length," lines)"]})]})}const KH=3e3,ZH=60,hy=800;function cC(e){if(e.length>KH)return!0;let t=0;for(let n=0;n=ZH)return!0;return!1}function QH(e){const t=e.lastIndexOf(` +`,hy);return e.slice(0,t>hy/2?t:hy)}const ki=At.memo(function({content:t,className:n="msg-content-agent",collapseMode:i="auto"}){const r=WH(t),o=i!=="never"&&cC(r),[a,u]=C.useState(o);C.useEffect(()=>{u(i!=="never"&&cC(r))},[i,r]);const d=a?QH(r):r,m=r.split(` +`).length,h=r.length,p={code({className:g,children:x,...v}){return g?.startsWith("language-")?c.jsx(XH,{className:g,forceExpanded:i==="never",children:x}):c.jsx("code",{className:g,...v,children:x})}};return c.jsxs("div",{className:n,children:[c.jsx(M$,{remarkPlugins:[GH],components:p,children:d}),o&&a&&c.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>u(!1),children:["Show more (",m," lines, ",(h/1e3).toFixed(1),"k chars)"]}),o&&!a&&c.jsx("button",{className:"msg-collapse-toggle",onClick:()=>u(!0),children:"Show less"})]})}),_v="codex",gy="native";function KI(e){if(!e)return{kind:"fallback"};if(e.kind==="employee"){const t=String(e.id??e.employee_id??"").trim();return t?{kind:"employee",id:t}:{kind:"fallback"}}if(e.kind==="template"){const t=String(e.id??e.template_id??"").trim();return t?{kind:"template",id:t}:{kind:"fallback"}}return{kind:"fallback"}}function ZI(e){const t=KI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function JH(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(h=>String(h??"").trim()).filter(Boolean)),u=h=>{const p=`${h.template_id??""} ${h.template_name??""} ${h.category??""} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),g=String(h.category??"").toLowerCase();let x=0;for(const v of o.split(/[^a-z0-9]+/).filter(b=>b.length>=3))(p.includes(v)||g&&v.includes(g))&&(x+=1);return(p.includes(i.replace(/_/g,"-"))||p.includes(i.replace(/_/g," ")))&&(x+=2),x},d=t.map(h=>{const p=String(h.employee_id??"").trim(),g=String(h.employee_name??p).trim()||p,x=String(h.role_id??"").trim(),v=String(h.category??"").trim(),b=[x,v].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:g,subtitle:b,category:v,searchText:`${p} ${g} ${x} ${v} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||x===i?0:2}}).filter(h=>h.id).sort((h,p)=>h.rank-p.rank||h.name.localeCompare(p.name)),m=n.map(h=>{const p=String(h.template_id??"").trim(),g=String(h.template_name??p).trim()||p,x=String(h.category??"").trim(),v=[x,p].filter(Boolean).join(" · ")||p;return{kind:"template",id:p,name:g,subtitle:v,category:x,searchText:`${p} ${g} ${x} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:u(h)}}).filter(h=>h.id).sort((h,p)=>p.rank-h.rank||h.name.localeCompare(p.name));return[...d,...m,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function eF(e,t){const n=ZI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function tF(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function uC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=KI(i[o]??r.default_selection))}return n}function dC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??_v)}return i}function QI(e,t){const n=new Map(e.map(d=>[String(d.role_id??"").trim(),String(d.reports_to??"").trim()])),i=new Set(e.map(d=>String(d.role_id??"").trim()).filter(d=>d&&t[d]==="jiuwenswarm")),r=d=>{const m=new Set;let h=n.get(d)??"";for(;h&&h!=="owner"&&!m.has(h);){if(i.has(h))return!0;m.add(h),h=n.get(h)??""}return!1},o=new Set([...i].filter(d=>!r(d))),a=new Map,u=new Map;for(const d of e){const m=String(d.role_id??"").trim();if(!m)continue;let h=m;const p=new Set;let g="";for(;h&&h!=="owner"&&!p.has(h);){if(o.has(h)){g=h;break}p.add(h),h=n.get(h)??""}g&&(a.set(m,g),u.set(g,[...u.get(g)??[],m]))}return{boundaryByRole:a,coveredRoleIdsByBoundary:u}}function nF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const iF=At.memo(function({meta:t,onReply:n,responded:i}){const r=C.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],u=C.useMemo(()=>{const I={};for(const A of r){const L=String(A.role_id??"").trim();L&&(I[L]=JH(A,o,a))}return I},[o,r,a]),[d,m]=C.useState({}),[h,p]=C.useState(()=>uC(t,r)),[g,x]=C.useState(()=>dC(t,r)),[v,b]=C.useState(t.recruitment_agent??gy),S=i,w=t.recommended_action==="auto_recruit"&&a.length>0,k=C.useMemo(()=>QI(r,g),[g,r]);C.useEffect(()=>{!S||!nF(t)||(p(uC(t,r)),x(dC(t,r)),b(t.recruitment_agent??gy))},[S,t,r]),C.useEffect(()=>{b(t.recruitment_agent??gy)},[t.recruitment_agent]);const j=C.useCallback(I=>{const A=String(t.checkpoint_id??"").trim();if(!A)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:A,response_to_checkpoint_type:"company_staffing_selection",staffing_action:I,staffing_selections:h,recruitment_agent:v,recruitment_role_agents:r.reduce((L,M)=>{const O=String(M.role_id??"").trim();return O&&(L[O]=g[O]??M.selected_agent??M.default_agent??_v),L},{})}},[t.checkpoint_id,v,g,r,h]),N=C.useCallback(()=>{S||n("approve",j("manual_approve"))},[j,S,n]),z=C.useCallback(()=>{S||n("auto recruit",j("auto_recruit"))},[j,S,n]);return c.jsxs("div",{className:"ckpt-panel ckpt-staffing",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-staffing",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),c.jsx("path",{d:"M1.5 14c.6-2.5 2.2-4 4.5-4s3.9 1.5 4.5 4"}),c.jsx("path",{d:"M12.5 3.5v5M10 6h5"})]})}),c.jsx("div",{className:"ckpt-title",children:"Manual Staffing"}),c.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),w&&!S&&c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"Recruit recommended"}),S&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&c.jsx("div",{className:"ckpt-summary",children:t.summary}),c.jsxs("div",{className:"ckpt-recruiter-agent",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),c.jsx("select",{id:`staffing-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:v,onChange:I=>b(I.target.value),disabled:S,children:VN.map(I=>c.jsx("option",{value:I,children:Ps[I]},I))})]}),c.jsx("div",{className:"ckpt-staffing-grid",children:r.map(I=>{const A=String(I.role_id??"").trim(),L=I.staffing_locked&&I.staffing_mode==="opaque_external_team",M=k.boundaryByRole.get(A)??"",O=M===A,T=!!M,$=L||T,G=L?I.covered_role_ids??[A]:k.coveredRoleIdsByBoundary.get(M)??[A],P=u[A]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],F=eF(P,h[A]),V=d[A]??"",Y=P.filter(U=>tF(U,V)).slice(0,8);return c.jsxs("div",{className:"ckpt-staffing-card",children:[c.jsxs("div",{className:"ckpt-proposal-header",children:[c.jsx("span",{className:"ckpt-role-name",children:A}),c.jsx("span",{className:`ckpt-badge ckpt-badge-${$?"external-team":F.kind}`,children:$?"JiuwenSwarm Team":F.kind})]}),I.role_label&&I.role_label!==A&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:I.role_label})}),$?c.jsxs("div",{className:"ckpt-external-team-staffing",children:[c.jsx("b",{children:T&&!O?`Covered by Team at ${M}`:"Internally staffed external team"}),c.jsxs("span",{children:["One opaque Team covers: ",G.join(", ")]}),c.jsx("span",{children:"No OPC employees are recruited for these covered roles."})]}):c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:F.name}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:F.category}),c.jsx("span",{className:"ckpt-domain-tag",children:F.subtitle})]})]}),!$&&c.jsx("input",{className:"ckpt-staffing-search",value:V,onChange:U=>m(Q=>({...Q,[A]:U.target.value})),placeholder:"Search employees or templates...",disabled:S}),!$&&c.jsx("div",{className:"ckpt-staffing-options",children:Y.map(U=>{const Q=`${U.kind}:${U.id}`===ZI(h[A]);return c.jsxs("button",{className:`ckpt-staffing-option${Q?" active":""}`,onClick:()=>p(W=>({...W,[A]:{kind:U.kind,id:U.id}})),disabled:S,title:U.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:U.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:U.name})]},`${U.kind}:${U.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${A}`,children:"Execution Agent"}),c.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${A}`,className:"ckpt-agent-select",value:T&&!O?"jiuwenswarm":g[A]??I.selected_agent??I.default_agent??_v,onChange:U=>x(Q=>({...Q,[A]:U.target.value})),disabled:S||!!L||T&&!O,children:Zm.map(U=>c.jsx("option",{value:U,children:Ps[U]},U))})]})]},A)})}),!S&&c.jsx("div",{className:"ckpt-actions",children:w?c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:z,children:"Auto Recruit"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Approve Selections"})]}):c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Approve Selections"}),a.length>0&&c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:z,children:"Auto Recruit"})]})})]})}),Ru="codex",yy="native";function JI(e){if(!e)return{kind:"fallback"};if(e.kind==="employee"){const t=String(e.id??e.employee_id??"").trim();return t?{kind:"employee",id:t}:{kind:"fallback"}}if(e.kind==="template"){const t=String(e.id??e.template_id??"").trim();return t?{kind:"template",id:t}:{kind:"fallback"}}return{kind:"fallback"}}function eT(e){const t=JI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function rF(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),u=t.map(m=>{const h=String(m.employee_id??"").trim(),p=String(m.employee_name??h).trim()||h,g=String(m.role_id??"").trim(),x=String(m.category??"").trim(),v=[g,x].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:p,subtitle:v,category:x,searchText:`${h} ${p} ${g} ${x} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||g===i?0:2}}).filter(m=>m.id).sort((m,h)=>m.rank-h.rank||m.name.localeCompare(h.name)),d=n.map(m=>{const h=String(m.template_id??"").trim(),p=String(m.template_name??h).trim()||h,g=String(m.category??"").trim(),x=[g,h].filter(Boolean).join(" · ")||h,v=`${h} ${p} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),b=o.split(/[^a-z0-9]+/).filter(S=>S.length>=3).reduce((S,w)=>S+(v.includes(w)?1:0),0);return{kind:"template",id:h,name:p,subtitle:x,category:g,searchText:v,rank:b}}).filter(m=>m.id).sort((m,h)=>h.rank-m.rank||m.name.localeCompare(h.name));return[...u,...d,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function sF(e,t){const n=eT(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function oF(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function aF(e){return e.map(t=>{const n=String(t.role_id??"").trim(),i=String(t.existing_employee?.employee_id??"").trim(),r=String(t.candidate?.template_id??"").trim(),o=i?{kind:"employee",id:i}:r?{kind:"template",id:r}:{kind:"fallback"};return{role_id:n,role_label:t.role_labels?.[0]??n,role_responsibility:"",default_selection:o,same_role_employee_ids:t.existing_employee_ids??[],fallback_available:!0,default_agent:t.default_agent??Ru,selected_agent:t.selected_agent??t.default_agent??Ru,default_source:"recruitment"}}).filter(t=>t.role_id)}function lF(e,t){return t.kind==="template"&&e?.candidate?.template_id===t.id?e.candidate.proposed_name||e.candidate.template_name||t.name:t.kind==="employee"&&e?.existing_employee?.employee_id===t.id&&e.existing_employee.employee_name||t.name}function fC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=JI(i[o]??r.default_selection))}return n}function mC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??Ru)}return i}function cF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const uF=At.memo(function({meta:t,onReply:n,responded:i}){const r=t.proposals??[],o=C.useMemo(()=>{const O={};for(const T of r){const $=String(T.role_id??"").trim();$&&(O[$]=T)}return O},[r]),a=C.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:aF(r),[t.staffing_roles,r]),u=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],h=C.useMemo(()=>{const O={};for(const T of a){const $=String(T.role_id??"").trim();$&&(O[$]=rF(T,u,d))}return O},[u,a,d]),[p,g]=C.useState({}),[x,v]=C.useState(""),[b,S]=C.useState(()=>fC(t,a)),[w,k]=C.useState(()=>mC(t,a)),[j,N]=C.useState(t.recruitment_agent??yy),z=i,I=C.useMemo(()=>QI(a,w),[w,a]);C.useEffect(()=>{!z||!cF(t)||(S(fC(t,a)),k(mC(t,a)),N(t.recruitment_agent??yy))},[z,t,a]),C.useEffect(()=>{N(t.recruitment_agent??yy)},[t.recruitment_agent]);const A=C.useCallback(O=>{const T=String(t.checkpoint_id??"").trim();if(!T)throw new Error("Recruitment checkpoint reply requires checkpoint_id metadata.");const $=String(t.checkpoint_type??"").trim();return{response_to_checkpoint_id:T,response_to_checkpoint_type:$||"company_recruitment_confirmation",checkpoint_reply_kind:O,staffing_selections:b,recruitment_agent:j,recruitment_role_agents:a.reduce((G,P)=>{const F=String(P.role_id??"").trim();return F&&(G[F]=w[F]??P.selected_agent??P.default_agent??Ru),G},{})}},[t.checkpoint_id,t.checkpoint_type,j,w,a,b]),L=C.useCallback(()=>{z||n("approve",A("approve"))},[A,z,n]),M=C.useCallback(async()=>{if(z||!x.trim())return;await n(x.trim(),A("feedback"))&&v("")},[A,z,x,n]);return c.jsxs("div",{className:"ckpt-panel ckpt-recruitment",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-recruit",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"6",cy:"5",r:"3"}),c.jsx("path",{d:"M2 14c0-2.2 1.8-4 4-4s4 1.8 4 4"}),c.jsx("path",{d:"M12 5v4M10 7h4"})]})}),c.jsx("div",{className:"ckpt-title",children:"Recruitment Review"}),c.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),z&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&c.jsx("div",{className:"ckpt-summary",children:t.summary}),c.jsxs("div",{className:"ckpt-recruiter-agent",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruitment-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),c.jsx("select",{id:`recruitment-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:j,onChange:O=>N(O.target.value),disabled:z,children:VN.map(O=>c.jsx("option",{value:O,children:Ps[O]},O))})]}),m.length>0&&c.jsx("div",{className:"ckpt-recruitment-reasons",children:m.map(O=>c.jsxs("div",{className:"ckpt-recruitment-reason",children:[c.jsxs("div",{className:"ckpt-proposal-header",children:[c.jsx("span",{className:"ckpt-role-name",children:O.role_id}),O.role_label&&O.role_label!==O.role_id&&c.jsx("span",{className:"ckpt-field-tag",children:O.role_label}),O.selection_label&&c.jsx("span",{className:"ckpt-badge ckpt-badge-template",children:O.selection_label})]}),O.rationale&&c.jsx("div",{className:"ckpt-rationale",children:O.rationale})]},O.role_id))}),c.jsx("div",{className:"ckpt-staffing-grid",children:a.map(O=>{const T=String(O.role_id??"").trim(),$=O.staffing_locked&&O.staffing_mode==="opaque_external_team",G=I.boundaryByRole.get(T)??"",P=G===T,F=!!G,V=$||F,Y=$?O.covered_role_ids??[T]:I.coveredRoleIdsByBoundary.get(G)??[T],U=h[T]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],Q=sF(U,b[T]),W=o[T],q=p[T]??"",J=U.filter(D=>oF(D,q)).slice(0,8);return c.jsxs("div",{className:"ckpt-staffing-card",children:[c.jsxs("div",{className:"ckpt-proposal-header",children:[c.jsx("span",{className:"ckpt-role-name",children:T}),c.jsx("span",{className:`ckpt-badge ckpt-badge-${V?"external-team":Q.kind}`,children:V?"JiuwenSwarm Team":Q.kind})]}),O.role_label&&O.role_label!==T&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:O.role_label})}),V?c.jsxs("div",{className:"ckpt-external-team-staffing",children:[c.jsx("b",{children:F&&!P?`Covered by Team at ${G}`:"Internally staffed external team"}),c.jsxs("span",{children:["One opaque Team covers: ",Y.join(", ")]}),c.jsx("span",{children:"No OPC employees are recruited for these covered roles."})]}):c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:lF(W,Q)}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:Q.category}),c.jsx("span",{className:"ckpt-domain-tag",children:Q.subtitle})]})]}),!V&&c.jsx("input",{className:"ckpt-staffing-search",value:q,onChange:D=>g(Z=>({...Z,[T]:D.target.value})),placeholder:"Search employees or templates...",disabled:z}),!V&&c.jsx("div",{className:"ckpt-staffing-options",children:J.map(D=>{const Z=`${D.kind}:${D.id}`===eT(b[T]);return c.jsxs("button",{className:`ckpt-staffing-option${Z?" active":""}`,onClick:()=>S(ie=>({...ie,[T]:{kind:D.kind,id:D.id}})),disabled:z,title:D.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:D.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:D.name})]},`${D.kind}:${D.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${T}`,children:"Execution Agent"}),c.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${T}`,className:"ckpt-agent-select",value:F&&!P?"jiuwenswarm":w[T]??O.selected_agent??O.default_agent??Ru,onChange:D=>k(Z=>({...Z,[T]:D.target.value})),disabled:z||!!$||F&&!P,children:Zm.map(D=>c.jsx("option",{value:D,children:Ps[D]},D))})]})]},T)})}),!z&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:L,children:"Approve"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:x,onChange:O=>v(O.target.value),rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:M,disabled:!x.trim(),children:"Send Feedback"})]})]})}),dF={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},pC={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},fF=At.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=C.useCallback(()=>{r||n("approve")},[r,n]),a=C.useCallback(()=>{r||n("deny")},[r,n]),u=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",h=t.risk_level||"medium",p=t.impact_summary||{};return c.jsxs("div",{className:"ckpt-panel ckpt-reorg",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-reorg",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1"}),c.jsx("rect",{x:"10",y:"1",width:"5",height:"5",rx:"1"}),c.jsx("rect",{x:"5.5",y:"10",width:"5",height:"5",rx:"1"}),c.jsx("path",{d:"M3.5 6v2.5a1 1 0 001 1h7a1 1 0 001-1V6"}),c.jsx("path",{d:"M8 9.5V10"})]})}),c.jsx("div",{className:"ckpt-title",children:t.title||"Company Reorg"}),r&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),c.jsxs("div",{className:"ckpt-reorg-badges",children:[c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:dF[m]||m}),c.jsxs("span",{className:"ckpt-badge",style:{color:pC[h]||"var(--text-secondary)",borderColor:pC[h]||"var(--border)"},children:["Risk: ",h.charAt(0).toUpperCase()+h.slice(1)]})]}),t.summary&&c.jsx("div",{className:"ckpt-summary",children:t.summary}),t.rationale&&c.jsx("div",{className:"ckpt-rationale",children:t.rationale}),u.length>0&&c.jsxs("div",{className:"ckpt-changes-section",children:[c.jsx("div",{className:"ckpt-changes-title",children:"Role Changes"}),u.map((g,x)=>c.jsxs("div",{className:"ckpt-change-row",children:[c.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),c.jsx("span",{className:"ckpt-change-id",children:g.role_id}),g.replacement_role_id&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"ckpt-change-arrow",children:"→"}),c.jsx("span",{className:"ckpt-change-id",children:g.replacement_role_id})]}),g.reason&&c.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),d.length>0&&c.jsxs("div",{className:"ckpt-changes-section",children:[c.jsx("div",{className:"ckpt-changes-title",children:"Work Item Projection Changes"}),d.map((g,x)=>c.jsxs("div",{className:"ckpt-change-row",children:[c.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),c.jsx("span",{className:"ckpt-change-id",children:g.work_item_projection_id}),g.replacement_work_item_projection_id&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"ckpt-change-arrow",children:"→"}),c.jsx("span",{className:"ckpt-change-id",children:g.replacement_work_item_projection_id})]}),g.reason&&c.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),Object.keys(p).length>0&&c.jsxs("div",{className:"ckpt-impact",children:[p.affected_tasks!=null&&c.jsxs("span",{children:["Tasks affected: ",p.affected_tasks]}),p.affected_roles!=null&&c.jsxs("span",{children:["Roles affected: ",p.affected_roles]}),p.migration_count!=null&&c.jsxs("span",{children:["Migrations: ",p.migration_count]})]}),!r&&c.jsxs("div",{className:"ckpt-actions",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:o,children:"Approve Reorg"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-deny",onClick:a,children:"Deny"})]})]})});function mF(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function pF(e){switch(e){case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"cancelled":case"canceled":return"Cancelled";case"failed":return"Failed";case"outcome_unknown":return"Outcome unknown";case"resolved":return"Resolved";default:return"Responded"}}const hC=At.memo(function({meta:t,onReply:n,responded:i,submitting:r=!1}){const o=i,a=String(t.checkpoint_status??"").trim().toLowerCase(),u=pF(a),d=String(t.prompt??t.summary??""),m=C.useMemo(()=>d.split(` +`).map(I=>I.trim()).filter(Boolean),[d]),h=mF(d).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",p=["tool_permission","action_permission"].includes(String(t.checkpoint_type??"")),g=t.checkpoint_type==="tool_permission"?"Tool Authorization":t.checkpoint_type==="action_permission"?"Action Authorization":h,x=p?String(t.checkpoint_type).replace(/_/g," "):String(t.escalation_type??"decision_needed").replace(/_/g," "),v=p?d:m.slice(1).join(` +`).trim(),b=String(t.summary??"").trim(),S=(t.options??[]).filter(I=>!!I?.id),w=C.useMemo(()=>(t.active_subagents??[]).filter(I=>!!I&&typeof I=="object"),[t.active_subagents]),k=C.useMemo(()=>(t.permission_requests??[]).filter(I=>!!I&&typeof I=="object"),[t.permission_requests]),j=String(t.worktree_path??"").trim(),N=w.length>0||k.length>0||!!j,z=C.useCallback(I=>{o||r||n(I.label||I.id,{interaction_option_id:I.id,interaction_option_label:I.label||I.id,checkpoint_reply_kind:I.id.includes("deny")?"deny":"approve"})},[o,n,r]);return c.jsxs("div",{className:"ckpt-panel ckpt-escalation",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-escalation",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z"}),c.jsx("path",{d:"M8 5.5V9"}),c.jsx("circle",{cx:"8",cy:"11.5",r:"0.75",fill:"currentColor",stroke:"none"})]})}),c.jsx("div",{className:"ckpt-title",children:g}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:x}),o&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:u})]}),b&&b!==h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ki,{content:b,className:"ckpt-markdown",collapseMode:p?"never":"auto"})]}),v&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),p?c.jsx("pre",{className:"ckpt-permission-verbatim",children:c.jsx("code",{children:v})}):c.jsx(ki,{content:v,className:"ckpt-markdown"})]}),N&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[j&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:j})]}),w.length>0&&c.jsxs("div",{children:["Active subagents: ",w.length]}),k.length>0&&c.jsxs("div",{children:["Pending permission records: ",k.length]})]})]}),!o&&S.length>0&&c.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:S.map(I=>c.jsx("button",{className:`ckpt-btn ${I.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}${r?" ckpt-btn-submitting":""}`,onClick:()=>z(I),disabled:r,children:I.label||I.id},I.id))}),!o&&t.default_action&&c.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",c.jsx("code",{children:t.default_action})]})]})});function hF(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function gF(e){switch(e){case"ignored":return"Ignored";case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"superseded":return"Superseded";case"cancelled":case"canceled":return"Cancelled";case"resolved":return"Resolved";default:return"Responded"}}const yF=At.memo(function({meta:t,onReply:n,responded:i,submitting:r=!1}){const o=i,[a,u]=C.useState(""),d=String(t.checkpoint_status??"").trim().toLowerCase(),m=gF(d),h=String(t.prompt??t.summary??"").trim(),g=`${String(t.work_item_projection_title??hF(h)??"Human Review").trim()||"Human Review"} (for self-evolution)`,x=String(t.summary??"").trim(),v=C.useMemo(()=>(t.active_subagents??[]).filter(A=>!!A&&typeof A=="object"),[t.active_subagents]),b=C.useMemo(()=>(t.permission_requests??[]).filter(A=>!!A&&typeof A=="object"),[t.permission_requests]),S=String(t.worktree_path??"").trim(),w=v.length>0||b.length>0||!!S,k=o||r,j=C.useCallback((A,L="")=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Delivery self-evolution reply requires checkpoint_id metadata.");const O={response_to_checkpoint_id:M,response_to_checkpoint_type:"company_delivery_feedback",checkpoint_reply_kind:A};return(A==="approve"||A==="feedback")&&(O.self_evolution_trigger=!0,O.human_feedback_text=L),O},[t.checkpoint_id]),N=C.useCallback(async()=>{if(k)return;const A=j("approve");await n("I fully agree with this delivery.",A)},[k,j,n]),z=C.useCallback(async()=>{const A=a.trim();if(k||!A)return;const L=j("feedback",A);await n(A,L)&&u("")},[k,j,a,n]),I=C.useCallback(async()=>{if(k)return;const A=j("ignore");await n("Ignore this self-evolution review.",A)},[k,j,n]);return c.jsxs("div",{className:"ckpt-panel ckpt-delivery-feedback",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M8 1.5L14 5v4.5c0 2.25-1.8 4.25-6 5-4.2-.75-6-2.75-6-5V5L8 1.5Z"}),c.jsx("path",{d:"M5.5 8.25L7.25 10l3.25-4"})]})}),c.jsx("div",{className:"ckpt-title",children:g}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),o&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:m})]}),x&&x!==g&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ki,{content:x,className:"ckpt-markdown"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),c.jsx(ki,{content:h,className:"ckpt-markdown"})]}),w&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[S&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:S})]}),v.length>0&&c.jsxs("div",{children:["Active subagents: ",v.length]}),b.length>0&&c.jsxs("div",{children:["Pending permission records: ",b.length]})]})]}),!o&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,disabled:k,children:"Fully Agree"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:I,disabled:k,children:"Ignore"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:a,onChange:A=>u(A.target.value),disabled:k,rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:z,disabled:k||!a.trim(),children:"Send Feedback"})]})]})}),xf="__other__",xF=["A","B","C"];function as(e){return String(e??"").trim()}function vF(e,t){const n=as(e.question),i=as(e.header);if(!n&&!i)return null;const r=(e.options??[]).slice(0,3).map((o,a)=>({id:as(o.id)||String.fromCharCode(97+a),label:as(o.label),description:as(o.description)})).filter(o=>o.label);return{id:as(e.id)||`question_${t+1}`,header:i,question:n||i,options:r,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const bF=At.memo(function({meta:t,onReply:n,responded:i}){const[r,o]=C.useState(""),[a,u]=C.useState({}),d=i,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",h=String(t.summary??"").trim(),p=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),x=String(t.resume_hint??"").trim(),v=C.useMemo(()=>(t.questions??[]).map(Y=>String(Y).trim()).filter(Boolean),[t.questions]),b=C.useMemo(()=>(t.input_questions??[]).map((Y,U)=>vF(Y,U)).filter(Y=>Y!==null),[t.input_questions]),S=b.some(Y=>(Y.options??[]).length>0),w=C.useMemo(()=>(t.required_fields??[]).map(Y=>String(Y).trim()).filter(Boolean),[t.required_fields]),k=C.useMemo(()=>(t.active_subagents??[]).filter(Y=>!!Y&&typeof Y=="object"),[t.active_subagents]),j=C.useMemo(()=>(t.permission_requests??[]).filter(Y=>!!Y&&typeof Y=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),z=String(t.requesting_role_id??"").trim(),I=String(t.requesting_task_id??"").trim(),A=String(t.requesting_work_item_id??"").trim(),L=String(t.seat_id??"").trim(),O=!!z||!!I||!!A||!!L||k.length>0||j.length>0||!!N,T=C.useCallback((Y,U)=>{u(Q=>({...Q,[Y]:{freeformText:Q[Y]?.freeformText??"",selectedOptionId:U}}))},[]),$=C.useCallback((Y,U)=>{u(Q=>({...Q,[Y]:{selectedOptionId:Q[Y]?.selectedOptionId,freeformText:U}}))},[]),G=C.useCallback(Y=>{if(Y.required===!1)return!0;const U=a[Y.id],Q=U?.selectedOptionId;return!!(Q&&Q!==xf||Y.allow_freeform!==!1&&as(U?.freeformText))},[a]),P=S&&b.every(G),F=C.useCallback(()=>{const Y=r.trim();d||!Y||n(Y)},[d,n,r]),V=C.useCallback(()=>{if(d||!P)return;const Y={},U=[];b.forEach(Q=>{const W=a[Q.id]??{freeformText:""},q=(Q.options??[]).find(ee=>ee.id===W.selectedOptionId),J=as(W.freeformText),Z=[q?.label??"",J].filter(Boolean).join("; ");Y[Q.id]={question_id:Q.id,question:Q.question,...q?{selected_option_id:q.id,selected_label:q.label}:{},...J?{freeform_text:J}:{},answer_text:Z};const ie=as(Q.header)||as(Q.question)||Q.id;U.push(`- ${ie}: ${Z||"(no answer)"}`)}),n(U.join(` +`),{user_input_answers:Y})},[a,P,b,d,n]);return c.jsxs("div",{className:"ckpt-panel ckpt-user-input",children:[c.jsxs("div",{className:"ckpt-header",children:[c.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M3 3.5h10v6H6.5L3 13V3.5Z"}),c.jsx("path",{d:"M5.5 6h5"}),c.jsx("path",{d:"M5.5 8h3.5"})]})}),c.jsx("div",{className:"ckpt-title",children:m}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"awaiting input"}),d&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ki,{content:h,className:"ckpt-markdown"})]}),p&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),c.jsx(ki,{content:p,className:"ckpt-markdown"})]}),S?c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Questions"}),c.jsx("div",{className:"ckpt-choice-list",children:b.map(Y=>{const U=a[Y.id]??{freeformText:""},Q=Y.options??[],W=Y.allow_freeform!==!1,q=W&&(Q.length===0||U.selectedOptionId===xf);return c.jsxs("div",{className:"ckpt-choice-question",children:[Y.header&&c.jsx("div",{className:"ckpt-question-header",children:Y.header}),c.jsx(ki,{content:Y.question,className:"ckpt-markdown"}),Q.length>0&&c.jsxs("div",{className:"ckpt-choice-grid",children:[Q.map((J,D)=>{const Z=U.selectedOptionId===J.id;return c.jsxs("button",{className:`ckpt-choice-option${Z?" is-selected":""}`,onClick:()=>T(Y.id,J.id),children:[c.jsx("span",{className:"ckpt-choice-letter",children:xF[D]??"?"}),c.jsxs("span",{className:"ckpt-choice-copy",children:[c.jsx("span",{className:"ckpt-choice-label",children:J.label}),J.description&&c.jsx("span",{className:"ckpt-choice-desc",children:J.description})]})]},J.id)}),W&&c.jsxs("button",{className:`ckpt-choice-option${U.selectedOptionId===xf?" is-selected":""}`,onClick:()=>T(Y.id,xf),children:[c.jsx("span",{className:"ckpt-choice-letter",children:"D"}),c.jsxs("span",{className:"ckpt-choice-copy",children:[c.jsx("span",{className:"ckpt-choice-label",children:"Other"}),c.jsx("span",{className:"ckpt-choice-desc",children:"Enter a custom answer"})]})]})]}),q&&c.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:U.freeformText,onChange:J=>$(Y.id,J.target.value),rows:3})]},Y.id)})})]}):v.length>0&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Questions"}),c.jsx("ul",{className:"ckpt-task-list",children:v.map(Y=>c.jsx("li",{children:Y},Y))})]}),w.length>0&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Required Fields"}),c.jsx("div",{className:"ckpt-task-tags",children:w.map(Y=>c.jsx("span",{className:"ckpt-field-tag",children:Y},Y))})]}),g&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Context"}),c.jsx(ki,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),x&&c.jsx("div",{className:"ckpt-escalation-hint",children:x}),O&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[z&&c.jsxs("div",{children:["Requester: ",c.jsx("code",{children:z})]}),A&&c.jsxs("div",{children:["Work item: ",c.jsx("code",{children:A})]}),I&&c.jsxs("div",{children:["Task: ",c.jsx("code",{children:I})]}),L&&c.jsxs("div",{children:["Seat: ",c.jsx("code",{children:L})]}),N&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:N})]}),k.length>0&&c.jsxs("div",{children:["Active subagents: ",k.length]}),j.length>0&&c.jsxs("div",{children:["Pending permission records: ",j.length]})]})]}),!d&&c.jsxs("div",{className:"ckpt-feedback-area",children:[S?null:c.jsx("textarea",{className:"ckpt-feedback-input",placeholder:"Reply with the missing input to continue...",value:r,onChange:Y=>o(Y.target.value),rows:3}),c.jsx("div",{className:"ckpt-feedback-btns",children:c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:S?V:F,disabled:S?!P:!r.trim(),children:"Send Reply"})})]})]})}),kv={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function xy(e,t){if(t&&t in kv)return t;switch(e){case"active":return"in_progress";case"waiting":return"in_review";case"done":return"done";case"failed":return"done";case"pending":return"todo";default:return"todo"}}function vf(e){return kv[e]??kv.todo}const gC={active:0,waiting:1,failed:2,done:3,pending:4};function _F(e){if(e.length===0)return"pending";let t=e[0],n=gC[t]??99;for(const i of e){const r=gC[i]??99;r12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function yl(e){return typeof e=="string"?e.trim():""}function vy(...e){for(const t of e){const n=yl(t);if(n)return n}return""}function xC(e){const t=yl(e);return t?da(t)||w0(t):""}function kF(e){return e==="done"?c.jsx("span",{className:"wi-projection-icon",children:"✓"}):e==="active"?c.jsx("span",{className:"wi-projection-icon wi-projection-pulse",children:"●"}):e==="failed"?c.jsx("span",{className:"wi-projection-icon",children:"✗"}):e==="waiting"?c.jsx("span",{className:"wi-projection-icon",children:"●"}):null}const SF={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function wF(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function CF(e){switch(e){case"running":case"waiting_for_peer":case"waiting_for_children":case"paused":case"needs_attention":return"active";case"awaiting_manager_review":case"awaiting_human":case"queued":case"ready":case"ready_for_rework":case"waiting_dependencies":return"waiting";case"approved":return"done";case"failed":case"cancelled":return"failed";default:return"pending"}}function jF(e){const t=yl(e.status).toLowerCase();return t==="done"||t==="delivered"?"done":t==="failed"||t==="cancelled"?"failed":t==="awaiting_peer"||t==="awaiting_manager_review"||t==="awaiting_human"||t==="awaiting_review"||t==="blocked"||t==="paused"||t==="awaiting_owner"?"waiting":t==="running"||t==="deliverable"||t==="active"||t==="ready"?"active":"pending"}function tT({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:i,isCompanyRuntime:r=!1,onWorkItemClick:o}){const a=C.useMemo(()=>{const b=new Map;for(const S of i??[]){b.set(S.taskId,S);const w=ko(S);w&&b.set(w,S)}return b},[i]),u=C.useMemo(()=>{const b=new Map,S=[];for(const w of e){const k=ko(w),j=w.workItemProjectionId??k??"";if(!j)continue;if(!b.has(j)){S.push(j);const z=w.workItemProjectionTitle??j,I=w.roleName||(yC(z)?"Agent":z);b.set(j,{projectionId:j,title:I,roleName:w.roleName,status:"pending",executionTurnId:k})}const N=b.get(j);switch(w.roleName?(N.roleName=w.roleName,N.title=w.roleName):w.workItemProjectionTitle&&!yC(w.workItemProjectionTitle)&&(N.title=w.workItemProjectionTitle),k&&(N.executionTurnId=k),w.type){case"work_item_started":N.status="active";break;case"gate_approved":N.status="done";break;case"gate_rejected":N.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":N.status="waiting";break;case"work_item_failed":case"deadlock":N.status="failed";break}}for(const w of b.values()){if(!w.executionTurnId)continue;const k=a.get(w.executionTurnId);if(!k)continue;const j=Wg(k);j&&(w.title=j),k.workItemRoleName&&(w.roleName=k.workItemRoleName),k.status==="done"?w.status="done":k.status==="failed"&&(w.status="failed")}return S.map(w=>b.get(w))},[e,a]),d=C.useMemo(()=>{const b=new Map;for(const S of e){const w=ko(S);w&&!b.has(w)&&b.set(w,b.size)}return b},[e]),m=n??t,h=C.useMemo(()=>{if(!m)return[];const b=[];for(const S of Object.values(m)){if(!S||!Array.isArray(S.workItems)||S.workItems.length===0)continue;const w=[...S.workItems].sort((L,M)=>L.createdAt-M.createdAt),k=w.map(L=>{const M=wF(L.kanbanColumn),O=CF(L.phase);return{executionTurnId:L.executionTurnId??"",title:yl(L.title)||yl(L.executorRoleName)||yl(L.executorRoleId)||"Work item",status:O,statusLabel:vf(M),columnId:M,updatedAt:L.updatedAt,workItemId:L.workItemId,progressLog:L.progressLog,activitySections:L.activitySections??[],isReviewTarget:L.isReviewTarget}}),j=SF[S.aggregatedStatus]??"pending",N=xy(j),z=k[k.length-1],I=w.find(L=>L.executionUnitKind==="opaque_external_team"),A=[...k].reverse().find(L=>!!L.executionTurnId)?.executionTurnId??"";b.push({roleKey:S.roleKey,executionTurnId:z.executionTurnId||A,title:I?`${S.roleName||S.roleId} · JiuwenSwarm Team`:S.roleName||S.roleId,status:j,statusLabel:vf(N),roleName:S.roleName,updatedAt:k.reduce((L,M)=>Math.max(L,M.updatedAt),0),turns:k,runtimeStatus:S.runtimeStatus,executionAgent:xC(I?.selectedExecutionAgent)})}return b.sort((S,w)=>{const k=S.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,j=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return k-j}),b},[m]),p=C.useMemo(()=>{const b=[...i??[]];if(b.length===0)return[];const S=new Map,w=[];for(const j of b){const N=vy(j.workItemRoleId,j.assigneeIds[0],j.taskId);S.has(N)||(S.set(N,[]),w.push(N)),S.get(N).push(j)}w.sort((j,N)=>{const z=S.get(j)??[],I=S.get(N)??[],A=Math.min(...z.map(T=>d.get(ko(T)||T.taskId)??Number.POSITIVE_INFINITY)),L=Math.min(...I.map(T=>d.get(ko(T)||T.taskId)??Number.POSITIVE_INFINITY));if(A!==L)return A-L;const M=Math.min(...z.map(T=>T.updatedAt)),O=Math.min(...I.map(T=>T.updatedAt));return M-O});const k=[];for(const j of w){const N=S.get(j)??[];if(N.length===0)continue;const z=N.slice().sort((T,$)=>T.updatedAt-$.updatedAt).map(T=>{const $=jF(T),G=ko(T),P=xy($,String(T.columnId??"").trim()||void 0);return{executionTurnId:G||T.taskId,title:vy(Wg(T),T.title,T.workItemRoleName,T.workItemRoleId,"Turn"),status:$,statusLabel:vf(P),columnId:P,updatedAt:T.updatedAt}}),I=z[z.length-1],A=_F(z.map(T=>T.status)),L=xy(A),M=N[0],O=vy(M.workItemRoleName,M.workItemRoleId,M.assigneeIds[0],Wg(M),M.title,"Agent");k.push({roleKey:j,executionTurnId:I.executionTurnId,title:O,status:A,statusLabel:vf(L),executionAgent:xC(M.selectedExecutionAgent??M.preferredAgent),roleName:M.workItemRoleName,updatedAt:Math.max(...N.map(T=>T.updatedAt)),turns:z})}return k},[i,d]),g=C.useMemo(()=>h.length>0?h:r?[]:p,[r,h,p]),x=C.useMemo(()=>g.length>0?g.map(b=>({projectionId:b.roleKey,title:b.title,roleName:b.roleName,status:b.status,executionTurnId:b.executionTurnId,executionAgent:b.executionAgent})):r?[]:u,[r,g,u]),v=r&&g.length===0;return!r&&e.length===0&&x.length===0&&g.length===0?null:c.jsxs("div",{className:"wi-progress-card",children:[c.jsxs("div",{className:"wi-progress-header",children:[c.jsx(Pm,{}),c.jsx("span",{children:"Execution Progress"})]}),x.length>0&&c.jsx("div",{className:"wi-progress-pipeline",children:x.map((b,S)=>c.jsxs("div",{className:"wi-projection-group",children:[c.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${b.status}`,onClick:()=>o?.(b.executionTurnId||""),title:`Open Runtime Session${b.roleName?`: ${b.title} (${b.roleName})`:`: ${b.title}`}`,children:[c.jsx("span",{className:"wi-projection-label",children:b.title}),b.executionAgent&&c.jsx("span",{className:"wi-projection-agent",children:b.executionAgent}),kF(b.status)]}),Sa;if(TF(d)||h){n.add(u.id);continue}t.add(u.id)}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:i}}function MF({refs:e,onImageClick:t}){if(!e||e.length===0)return null;const n=e.filter(u=>u.mime_type?.startsWith("image/")),i=e.filter(u=>u.mime_type?.startsWith("video/")),r=e.filter(u=>!u.mime_type?.startsWith("image/")&&!u.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=i.length===1?"":(i.length<=3," cols-2");return c.jsxs("div",{className:"msg-attachments",children:[n.length>0&&c.jsx("div",{className:`msg-attachment-grid${o}`,children:n.map(u=>{const d=`/api/attachments/${u.attachment_id}/${u.filename}`;return c.jsx("img",{className:"msg-attachment-image",src:d,alt:u.filename,loading:"lazy",onClick:()=>t?.(d)},u.attachment_id)})}),i.length>0&&c.jsx("div",{className:`msg-attachment-grid${a}`,children:i.map(u=>{const d=`/api/attachments/${u.attachment_id}/${u.filename}`;return c.jsx("video",{className:"msg-attachment-video",src:d,controls:!0,preload:"metadata",playsInline:!0},u.attachment_id)})}),r.length>0&&c.jsx("div",{className:"msg-attachment-files",children:r.map(u=>c.jsxs("a",{className:"msg-attachment-file-chip",href:`/api/attachments/${u.attachment_id}/${u.filename}`,download:!0,title:u.filename,children:["📎 ",u.filename,c.jsx("span",{className:"msg-attachment-file-size",children:u.size_bytes<1024?`${u.size_bytes}B`:u.size_bytes<1048576?`${(u.size_bytes/1024).toFixed(0)}KB`:`${(u.size_bytes/1048576).toFixed(1)}MB`})]},u.attachment_id))})]})}const vC=new WeakMap;function by(e){if(!e||typeof e!="object")return"";const t=vC.get(e);if(t!==void 0)return t;const n=JSON.stringify(e)??"";return vC.set(e,n),n}function DF(e){if(e.kind==="message"){const{msg:n}=e;return[e.kind,e.id,e.timestamp,n.sender,n.senderName,n.senderDeleted,n.content,n.replyToId,by(n.mentions),by(n.metadata)]}if(e.kind==="progress"){const{entry:n}=e;return[e.kind,e.id,e.timestamp,n.type,n.summary,n.detail,n.turnId,n.itemId,n.streamId,n.toolCallId,n.permissionGroupKey,n.seq,n.executionMode]}if(e.kind==="draft")return[e.kind,e.id,e.timestamp,e.text,e.iteration];const t=[e.kind,e.id,e.timestamp];for(const{msg:n,classification:i}of e.events)t.push(n.id,n.timestamp,n.content,by(n.metadata),i.kind,i.label,i.summary,i.tone);return t}function OF(e,t){return!e||e.length!==t.length?!1:t.every((n,i)=>{const r=e[i];return r.length===n.length&&n.every((o,a)=>o===r[a])})}const bC=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],_C=new Map;function nT(e){const t=_C.get(e);if(t)return t;let n=0;for(let r=0;rd.toUpperCase());let a="●",u="active";return r.includes("gate passed")||r.includes("approved")||r.includes("completed")?(a="✓",u="passed"):r.includes("rejected")||r.includes("reworking")?(a="↻",u="rejected"):r.includes("failed")||r.includes("timed out")?(a="✗",u="failed"):r.includes("awaiting")&&(a="⏳",u="waiting"),{projectionId:n,workItemName:o,action:i,icon:a,statusClass:u}}const PF={session:{icon:c.jsx(Y4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:c.jsx(wE,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:c.jsx(bu,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},BF=5*6e4,$F=200,_y=200,HF=2;function ea(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=HF}function kC(e){return!String(e.id??"").startsWith("msg-")}function oa(e){return Jv(e)}function To(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function $s(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}async function FF(e){if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>"u"||!document.body)return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}function VF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function ky(e){return e.replace(/\s+/g," ").trim()}function SC(e){const t=String(e||"").trim();if(!t)return null;try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function UF(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const u=SC(t);return u?{obj:u}:null}const n=t.indexOf("{"),i=t.lastIndexOf("}");if(n<=0||i<=n)return null;const o=t.slice(0,n).trim().replace(/\*/g,"").replace(/:\s*$/,"").trim();if(!/\b(report|review)\b/i.test(o))return null;const a=SC(t.slice(n,i+1));return a?{obj:a,title:o||void 0}:null}function xl(e){return typeof e=="string"?e.trim():""}function wC(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const i of e){const r=typeof i=="string"?i.trim():i&&typeof i=="object"&&"summary"in i?xl(i.summary):"";if(r&&n.push(r),n.length>=t)break}return n}function qF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const i=n,r=xl(i.path),o=xl(i.name)||r.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:r,status:xl(i.status)||void 0})}return t}function GF(e){if(!Array.isArray(e))return;const t=e.filter(i=>i&&typeof i=="object").length;return t?`${e.filter(i=>i.met===!0).length}/${t} acceptance checks met`:void 0}function WF(e){const t=UF(e);if(!t)return null;const{obj:n,title:i}=t,r=xl(n.summary),o=xl(n.review_verdict),a=qF(n.deliverables),u=wC(n.risks),d=wC(n.next_actions),m=GF(n.acceptance_status);return!r&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:i,summary:r,verdict:o||void 0,deliverables:a,risks:u,nextActions:d,acceptanceSummary:m}}const YF=At.memo(function({entry:t,showDate:n,dateStr:i,compact:r=!1}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("div",{className:`msg-row agent msg-row-inline-progress${r?" compact":""}`,children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(kl,{})}),c.jsx("div",{className:"msg-body msg-inline-progress-body",children:c.jsx("div",{className:"msg-inline-progress-shell",children:c.jsx(qN,{entry:t})})})]})]})}),XF=At.memo(function({msg:t,showDate:n,dateStr:i}){const r=zF(t.content);return r?c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("div",{className:`work-item-divider work-item-divider-${r.statusClass}`,children:[c.jsx("div",{className:"work-item-divider-line"}),c.jsxs("span",{className:"work-item-divider-label",children:[c.jsx("span",{className:"work-item-divider-icon",children:r.icon}),r.workItemName,c.jsx("span",{className:"work-item-divider-action",children:r.action})]}),c.jsx("div",{className:"work-item-divider-line"})]})]}):null}),KF=At.memo(function({msg:t,showDate:n,dateStr:i}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsx("div",{className:"msg-system",children:c.jsx("span",{children:t.content})})]})}),ZF=At.memo(function({msg:t,showDate:n,dateStr:i}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("div",{className:"msg-row agent msg-row-context",children:[c.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-context",children:c.jsx(bu,{})}),c.jsx("div",{className:"msg-body",children:c.jsxs("div",{className:"msg-content-agent-card msg-context-card",children:[c.jsx("div",{className:"msg-context-label",children:"Execution Context"}),c.jsx(ki,{content:t.content})]})})]})]})}),QF=At.memo(function({text:t,timestamp:n,iteration:i,showDate:r,dateStr:o}){return c.jsxs("div",{children:[r&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:o})}),c.jsxs("div",{className:"msg-row agent msg-row-draft",children:[c.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-draft",children:c.jsx(kl,{})}),c.jsxs("div",{className:"msg-body",children:[c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:"msg-sender",children:"Live Reply"}),c.jsx("span",{className:"msg-time",title:$s(n),children:To(n)})]}),c.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[i?c.jsxs("div",{className:"msg-draft-label",children:["Turn ",i]}):null,c.jsx(ki,{content:t,collapseMode:"never"})]})]})]})]})}),JF=At.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,onCopy:a,onImageClick:u,renderUserMarkdown:d}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsx("div",{className:`msg-row user${r?" grouped":""}`,children:c.jsxs("div",{className:"msg-body msg-body-user",children:[c.jsx("div",{className:"msg-content-user",children:d?c.jsx(ki,{content:t.content,className:"msg-content-user-markdown"}):t.content}),c.jsx(MF,{refs:t.metadata?.attachment_refs,onImageClick:u}),c.jsxs("div",{className:"msg-meta-user",children:[c.jsx("span",{className:"msg-time",title:$s(t.timestamp),children:To(t.timestamp)}),c.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?c.jsx(Vl,{}):c.jsx(zm,{})})]})]})})]})});function iT(e){const t=String(e||"").trim();if(!t)return null;const n=t.match(/^\[Delegating to ([^\]]+)\]/);if(n){const d=n[1].trim(),m=t.match(/task=([^|]+?)(?:\||$)/),h=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:h,tone:"info"}}if(/^\[External resume\]/i.test(t)){const d=t.match(/codex:[a-z0-9-]+:([a-f0-9-]+)/i);return{kind:"external_resume",label:"External resume",summary:d?`Restored session ${d[1].slice(0,8)}…`:"Resumed prior session",tone:"info"}}const i=t.match(/^\[External inbox\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External inbox",summary:ky(i[1]),tone:"info"};const r=t.match(/^\[External status\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External status",summary:r[1].split(/\(|;/)[0].trim()||r[1].trim(),tone:"info"};if(/^\[External error\]/i.test(t)||/^\[External failure\]/i.test(t))return{kind:"external_error",label:"External error",summary:t.replace(/^\[[^\]]+\]\s*/,"").split(` +`)[0].slice(0,140),tone:"danger"};const o=t.match(/^\[Company:([^\]]+)\]\s*(.+)$/);if(o){const d=o[1].split("::"),m=d[0]||"company",h=o[2].trim(),p=h.toLowerCase(),g=p.includes("completed")||p.includes("done")?"success":p.includes("blocked")||p.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:h,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,h=>h.toUpperCase()),m=ky(a[2]);return{kind:"company_event",label:d,summary:m,tone:/^Blocked$/i.test(a[1])?"warning":"info"}}const u=t.match(/^NO_DELEGATION_JUSTIFICATION:\s*(.+)$/i);return u?{kind:"company_event",label:"Delegation check",summary:ky(u[1]).slice(0,180),tone:"info"}:null}function eV(e,t){const{isCompanyRuntime:n,detailMode:i}=t;if(!n||i==="full"||Au(e.metadata))return null;const r=iT(e.content);if(!r)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=r.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:r}}function tV(e,t={}){const{isCompanyRuntime:n=!1,detailMode:i="summary"}=t,r=[];let o=[],a=0;const u=()=>{if(o.length===0)return;const d=o[0].msg;r.push({kind:"ops-bundle",id:`ops:${oa(d)}`,timestamp:d.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((d,m)=>{const h=m*2+1,p=eV(d,{isCompanyRuntime:n,detailMode:i});if(p){o.length===0&&(a=h),o.push(p);return}u(),r.push({kind:"message",id:oa(d),timestamp:d.timestamp,msg:d,sortOrder:h})}),u(),r}const nV=At.memo(function({msg:t,showDate:n,dateStr:i,classification:r}){const[o,a]=C.useState(!1),u=t.content.trim()!==`[${r.label}] ${r.summary}`.trim()&&t.content.trim().length>r.summary.length+4;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("div",{className:`msg-ops-row msg-ops-tone-${r.tone}${o?" expanded":""}`,onClick:u?()=>a(d=>!d):void 0,role:u?"button":void 0,tabIndex:u?0:-1,children:[c.jsx("span",{className:"msg-ops-dot","aria-hidden":"true"}),c.jsx("span",{className:"msg-ops-label",children:r.label}),r.summary&&c.jsx("span",{className:"msg-ops-summary",title:r.summary,children:r.summary}),c.jsx("span",{className:"msg-ops-time",title:$s(t.timestamp),children:To(t.timestamp)}),u&&c.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:c.jsx(ds,{down:o})})]}),u&&o&&c.jsx("div",{className:"msg-ops-details",children:c.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),iV=At.memo(function({events:t,showDate:n,dateStr:i}){const[r,o]=C.useState(!1);if(t.length===0)return null;const a=t[0].msg,u=t[t.length-1].msg,d=t.reduce((p,g)=>{const x=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return p[x]=(p[x]??0)+1,p},{}),m=Object.entries(d).map(([p,g])=>`${g} ${p}`).join(" · "),h=`${t.length} technical event${t.length===1?"":"s"} hidden`;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("button",{type:"button",className:`msg-ops-bundle${r?" expanded":""}`,onClick:()=>o(p=>!p),title:`${$s(a.timestamp)} - ${$s(u.timestamp)}`,children:[c.jsx("span",{className:"msg-ops-bundle-dot"}),c.jsx("span",{className:"msg-ops-bundle-title",children:h}),c.jsx("span",{className:"msg-ops-bundle-summary",children:m}),c.jsx("span",{className:"msg-ops-bundle-time",children:To(a.timestamp)}),c.jsx("span",{className:"msg-ops-bundle-chevron",children:c.jsx(ds,{down:r})})]}),r&&c.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:p,classification:g})=>c.jsxs("div",{className:`msg-ops-bundle-event msg-ops-tone-${g.tone}`,children:[c.jsx("span",{className:"msg-ops-dot"}),c.jsx("span",{className:"msg-ops-label",children:g.label}),c.jsx("span",{className:"msg-ops-summary",children:g.summary}),c.jsx("span",{className:"msg-ops-time",title:$s(p.timestamp),children:To(p.timestamp)})]},p.id))})]})});function rV(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const sV=At.memo(function({msg:t,payload:n,showDate:i,dateStr:r,isCopied:o,onCopy:a}){const u=nT(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=rV(n),h=n.summary||n.acceptanceSummary||m;return c.jsxs("div",{children:[i&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:"msg-row agent msg-row-project-update",children:[c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:u},children:d.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:"msg-sender",style:{color:u},children:d}),c.jsx("span",{className:"msg-time",title:$s(t.timestamp),children:To(t.timestamp)})]}),c.jsxs("div",{className:`msg-project-update-card msg-project-update-${n.kind}`,children:[c.jsxs("div",{className:"msg-project-update-head",children:[c.jsx("span",{className:"msg-project-update-label",children:m}),n.acceptanceSummary&&c.jsx("span",{className:"msg-project-update-chip",children:n.acceptanceSummary})]}),n.title&&c.jsx("div",{className:"msg-project-update-title",children:n.title}),c.jsx(ki,{content:h,className:"msg-project-update-summary"}),n.deliverables.length>0&&c.jsxs("div",{className:"msg-project-update-section",children:[c.jsx("div",{className:"msg-project-update-section-label",children:"Outputs"}),c.jsx("div",{className:"msg-project-update-artifacts",children:n.deliverables.slice(0,6).map((p,g)=>c.jsxs("div",{className:"msg-project-update-artifact",children:[c.jsx("span",{className:"msg-project-update-artifact-name",children:p.name}),p.status&&c.jsx("span",{className:"msg-project-update-artifact-status",children:p.status}),p.path&&c.jsx("code",{className:"msg-project-update-artifact-path",children:p.path})]},`${p.path||p.name}-${g}`))})]}),(n.risks.length>0||n.nextActions.length>0)&&c.jsxs("div",{className:"msg-project-update-grid",children:[n.risks.length>0&&c.jsxs("div",{className:"msg-project-update-section",children:[c.jsx("div",{className:"msg-project-update-section-label",children:"Caveats"}),c.jsx("ul",{className:"msg-project-update-list",children:n.risks.map((p,g)=>c.jsx("li",{children:p},`risk-${g}`))})]}),n.nextActions.length>0&&c.jsxs("div",{className:"msg-project-update-section",children:[c.jsx("div",{className:"msg-project-update-section-label",children:"Next"}),c.jsx("ul",{className:"msg-project-update-list",children:n.nextActions.map((p,g)=>c.jsx("li",{children:p},`next-${g}`))})]})]}),c.jsx("div",{className:"msg-card-actions",children:c.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy raw update",children:o?c.jsxs(c.Fragment,{children:[c.jsx(Vl,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(zm,{})," ",c.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),oV=At.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:u,keepExpanded:d,onCopy:m,onInteractionReply:h}){const p=!!t.senderDeleted,g=p?"[Deleted]":t.senderName,x=nT(t.sender==="system"?t.senderName||"OPC":t.sender),v=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,b=String(t.metadata?.checkpoint_type??"").trim(),S=RF(t.metadata),w=Au(t.metadata)&&!u,[k,j]=C.useState(!1),[N,z]=C.useState(!1),[I,A]=C.useState(""),L=C.useRef("");if(!L.current){const T=globalThis.crypto;L.current=T&&typeof T.randomUUID=="function"?`interaction-ui-${T.randomUUID()}`:`interaction-ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}const M=a||k,O=C.useCallback(async(T,$)=>{if(!h||N||M)return!1;z(!0),A("");try{const G=await h(T,v,{...S,...$,ui_message_id:L.current});return G.ok&&G.accepted?(j(!0),!0):(A(G.reason||G.error||"Decision was not accepted."),!1)}catch(G){return A(G instanceof Error?G.message:"Decision was not accepted."),!1}finally{z(!1)}},[S,M,N,h,v]);return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),c.jsxs("div",{className:`msg-row agent${r?" grouped":""}${p?" deleted-sender":""}`,children:[r?c.jsx("div",{className:"msg-avatar-spacer"}):c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:x},children:g.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[!r&&c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:x},children:g}),c.jsx("span",{className:"msg-time",title:$s(t.timestamp),children:To(t.timestamp)})]}),t.replyToId&&c.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),w?c.jsxs(c.Fragment,{children:[b==="company_recruitment_confirmation"&&c.jsx(uF,{meta:t.metadata,onReply:(T,$)=>O(T,$),responded:M}),b==="company_staffing_selection"&&c.jsx(iF,{meta:t.metadata,onReply:(T,$)=>{O(T,$)},responded:M}),b==="company_work_item_gate"&&c.jsx(hC,{meta:t.metadata,onReply:(T,$)=>{O(T,$)},responded:M,submitting:N}),b==="company_delivery_feedback"&&c.jsx(yF,{meta:t.metadata,onReply:(T,$)=>O(T,$),responded:M,submitting:N}),b==="company_reorg_pending"&&c.jsx(fF,{meta:t.metadata,onReply:T=>{O(T)},responded:M}),["tool_permission","action_permission"].includes(b)&&c.jsx(hC,{meta:t.metadata,onReply:(T,$)=>{O(T,$)},responded:M,submitting:N}),["task_user_input","route_clarification","company_runtime_selection","company_run_failure_review"].includes(b)&&c.jsx(bF,{meta:t.metadata,onReply:(T,$)=>{O(T,$)},responded:M}),N&&c.jsx("div",{className:"ckpt-escalation-hint",children:"Saving decision…"}),I&&c.jsx("div",{className:"ckpt-escalation-hint",role:"alert",children:I})]}):c.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:x},children:[c.jsx(ki,{content:t.content,collapseMode:d?"never":"auto"}),c.jsxs("div",{className:"msg-card-actions",children:[c.jsx("button",{className:"msg-action-btn",onClick:()=>m(t.id,t.content),title:"Copy message",children:o?c.jsxs(c.Fragment,{children:[c.jsx(Vl,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(zm,{})," ",c.jsx("span",{children:"Copy"})]})}),r&&c.jsx("span",{className:"msg-time msg-time-inline",title:$s(t.timestamp),children:To(t.timestamp)})]})]})]})]})]})}),cl=At.memo(function({messages:t,channelName:n,viewKind:i="session",detailMode:r="summary",agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,progressLog:m,draftAssistantText:h,draftUpdatedAt:p,draftIteration:g,draftTurnId:x,isCompanyRuntime:v,workItemLog:b,childSessions:S,roleWorkItems:w,executorRoleWorkItems:k,onInteractionReply:j,onWorkItemClick:N,onMarkRead:z,hasOlderHistory:I=!1,totalMessageCount:A,onLoadOlderHistory:L,loadingOlderHistory:M=!1,scrollPolicy:O="follow",scrollScope:T,showWorkItemRuntimeCard:$=!0,showRuntimeProgress:G=!0,renderUserMarkdown:P=!1}){const F=T??`${i}:${r}:${n}`,V=C.useRef(null),Y=C.useRef(null),[U,Q]=C.useState(null),[W,q]=C.useState(null),J=O==="follow"?"following":"browsing",[D,Z]=C.useState(J),[ie,ee]=C.useState(0),[te,oe]=C.useState(!1),le=C.useRef(J),he=C.useRef(O),Ie=C.useRef(O!=="manual"),xe=C.useRef(!1),je=C.useRef(null),Ve=C.useRef(0),We=C.useRef(!1),Pe=C.useRef("none"),ct=C.useRef(null),It=C.useRef(0),ut=C.useRef(new Set),Bt=C.useRef(null),ge=C.useRef(null),me=C.useRef(z),qe=C.useRef(0),Ge=C.useRef(0),ht=C.useRef(null),ce=C.useRef({active:!1,revision:0}),we=C.useRef(!1),Oe=C.useRef(null),Ue=C.useRef(!1),Xe=C.useRef(null),bt=C.useRef(null),St=C.useRef([]),dt=C.useRef({scope:F,assignments:new Map}),ke=C.useRef({scope:F,owners:new Map}),Je=C.useRef({scope:F,keys:new Set});me.current=z;const it=(b?.length??0)+(S?.length??0),He=C.useMemo(()=>{const pe=t.filter(Ce=>e0(Ce,r));return v?pe.filter(Ce=>!(Ce.metadata?.type==="system"&&Ce.content.startsWith("[Company:")||!G&&Ce.content.startsWith("[Company:"))):pe},[r,v,t,G]),yn=C.useMemo(()=>AF(He),[He]),on=C.useMemo(()=>i==="session"&&j?He.filter(pe=>yn.pendingMessageIds.has(pe.id)):[],[yn.pendingMessageIds,He,j,i]),jt=He,Mt=C.useMemo(()=>{const pe=new Set;for(const Ce of m??[]){if(Ce.type!=="thinking")continue;const De=String(Ce.turnId??"").trim();De&&pe.add(De)}return pe},[m]),an=C.useMemo(()=>{const pe=[];for(const Ce of jt){const De=String(Ce.metadata?.runtime_thinking??"").trim();if(!De)continue;const Be=Hm(Ce.metadata);Be&&Mt.has(Be)||pe.push({type:"thinking",summary:"Thinking",detail:De,timestamp:Math.max(0,Ce.timestamp-1),turnId:Be||void 0,itemId:Be?`${Be}:thinking`:`thinking:${Ce.id}`,streamId:Be?`${Be}:thinking`:`thinking:${Ce.id}`,executionMode:String(Ce.metadata?.execution_mode??"").trim()||void 0})}return pe},[Mt,jt]),Tt=C.useMemo(()=>G?[...(m??[]).filter(pe=>vw.has(pe.type)),...an].sort((pe,Ce)=>pe.timestamp-Ce.timestamp):[],[m,G,an]),$t=C.useMemo(()=>G?(m??[]).filter(pe=>!vw.has(pe.type)):[],[m,G]),ii=C.useMemo(()=>G?r==="full"?m??[]:Tt:[],[r,Tt,m,G]),Et=$t,Xn=C.useMemo(()=>{const pe=new Set;for(const Ce of jt){const De=Qf(Ce);De&&pe.add(De)}return pe},[jt]),dn=C.useMemo(()=>{const pe=String(h??"").trim(),Ce=String(x??"").trim();return!pe||Ce&&Xn.has(Ce)?null:{kind:"draft",id:Ce?`turn:assistant:${Ce}`:"draft:active",timestamp:p??jt[jt.length-1]?.timestamp??0,text:pe,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}},[Xn,h,g,x,p,jt]);C.useLayoutEffect(()=>{Je.current.scope!==F&&(Je.current={scope:F,keys:new Set}),dn&&Je.current.keys.add(dn.id)},[dn,F]);const tt=!!o&&o!=="idle",ln=Et.length>0,Rn=G&&r!=="full"&&(tt||ln),Dn=C.useMemo(()=>{const pe=[...tV(jt,{isCompanyRuntime:v,detailMode:r}),...ii.map((Ye,Ft)=>({kind:"progress",id:`progress:${UN(Ye)}`,timestamp:Ye.timestamp,entry:Ye,sortOrder:Ft*2}))].sort((Ye,Ft)=>Ye.timestamp-Ft.timestamp||Ye.sortOrder-Ft.sortOrder),Ce=ke.current.scope===F?ke.current.owners:new Map,De=new Map;pe.forEach((Ye,Ft)=>{if(Ye.kind!=="message")return;const Kt=NE(Ye.msg);if(!Kt)return;const Pn=Ce.get(Kt)??Ye.id;De.set(Kt,Pn),Pn!==Ye.id&&(pe[Ft]={...Ye,id:Pn})});const Be=new Map;pe.forEach((Ye,Ft)=>{if(Ye.kind!=="message")return;const Kt=`${Ye.msg.channelId}\0${Ye.msg.id}`,Pn=Be.get(Ye.id)??[];Pn.push({index:Ft,identity:Kt}),Be.set(Ye.id,Pn)});const _t=dt.current.scope===F?dt.current.assignments:new Map,Ze=new Map;for(const[Ye,Ft]of Be){const Kt=_t.get(Ye),Pn=new Map,Vt=new Set;for(const Jt of Ft){const _n=Kt?.get(Jt.identity);!_n||Vt.has(_n)||(Pn.set(Jt.identity,_n),Vt.add(_n))}for(const Jt of Ft){if(Pn.has(Jt.identity))continue;const _n=Vt.has(Ye)?`${Ye}:message:${encodeURIComponent(Jt.identity)}`:Ye;Pn.set(Jt.identity,_n),Vt.add(_n)}Ze.set(Ye,Pn);for(const Jt of Ft){const _n=Pn.get(Jt.identity);if(!_n||_n===Ye)continue;const Fi=pe[Jt.index];Fi.kind==="message"&&(pe[Jt.index]={...Fi,id:_n})}}return dn&&pe.push(dn),{items:pe,messageKeyAssignments:Ze,resultKeyOwners:De}},[r,dn,v,F,jt,ii]),Ut=Dn.items,cn=C.useMemo(()=>Ut.map(DF),[Ut]);C.useLayoutEffect(()=>{dt.current={scope:F,assignments:Dn.messageKeyAssignments},ke.current={scope:F,owners:Dn.resultKeyOwners}},[F,Dn.messageKeyAssignments,Dn.resultKeyOwners]);const xn=C.useRef(jt);xn.current=jt,qe.current=jt.reduce((pe,Ce)=>Math.max(pe,Ce.timestamp),0);const[vt,vn]=C.useState({scope:F,startKey:null}),Dt=vt.scope===F?vt.startKey:null,un=Math.max(0,Ut.length-$F),Hn=Dt?Ut.findIndex(pe=>pe.id===Dt):-1;let Ne=-1;if(Dt&&Hn<0){const pe=St.current,Ce=pe.indexOf(Dt),De=new Map(Ut.map((Be,_t)=>[Be.id,_t]));for(let Be=Math.max(0,Ce);Be=0;Be-=1){const _t=De.get(pe[Be]);if(_t!==void 0){Ne=_t;break}}}const wt=Hn>=0?Hn:Ne>=0?Ne:un,Sn=C.useMemo(()=>Ut.slice(wt),[Ut,wt]),Ci=wt,pn=C.useRef(Ut);pn.current=Ut,C.useLayoutEffect(()=>{const pe=Ut[wt]?.id??null;vt.scope===F&&vt.startKey===pe||(vt.scope===F&&vt.startKey&&(Ue.current=!0),vn({scope:F,startKey:pe}))},[F,Ut,wt,vt.scope,vt.startKey]),C.useLayoutEffect(()=>{const pe=Oe.current;if(!pe||pe.scope!==F)return;const Ce=Ut.findIndex(Be=>Be.id===pe.startKey);if(Ce<=pe.beforeIndex)return;const De=Math.max(0,Ce-_y);Oe.current=null,Ue.current=!0,vn({scope:F,startKey:Ut[De]?.id??null})},[F,Ut]),C.useLayoutEffect(()=>{St.current=Ut.map(pe=>pe.id)},[Ut]);const kt=C.useMemo(()=>{let pe="";return Sn.map((Ce,De)=>{const Be=new Date(Ce.timestamp).toLocaleDateString(),_t=Be!==pe;_t&&(pe=Be);const Ze=De>0?Sn[De-1]:null,Ye=Ce.kind==="message"&&Ze?.kind==="message"&&!_t&&Ze.msg.sender===Ce.msg.sender&&Ze.msg.senderName===Ce.msg.senderName&&Ce.msg.metadata?.type!=="system"&&Ze.msg.metadata?.type!=="system"&&!Ce.msg.metadata?.is_work_item_event&&!Ze.msg.metadata?.is_work_item_event&&Ce.msg.timestamp-Ze.msg.timestamp0),zn=Ut.length>0||ri||Rn;we.current=zn;const si=C.useCallback(pe=>{const Ce=Y.current?.querySelectorAll("[data-timeline-key]");if(!Ce)return null;for(const De of Ce)if(De.dataset.timelineKey===pe)return De;return null},[]),hn=C.useCallback(pe=>{xe.current=pe,oe(Ce=>Ce===pe?Ce:pe)},[]),qt=C.useCallback(()=>{const pe=ge.current,Ce=me.current;!pe||!Ce||Bt.current===pe||(Bt.current=pe,Ce())},[]),Ht=C.useCallback(()=>{const pe=V.current,Ce=Y.current;if(!pe||!Ce)return;const De=pe.getBoundingClientRect(),Be=Ce.querySelectorAll("[data-timeline-key]");for(const _t of Be){const Ze=_t.getBoundingClientRect();if(!(Ze.bottom<=De.top+.5)){je.current={key:_t.dataset.timelineKey??"",viewportOffset:Ze.top-De.top};return}}je.current=null},[]),Xt=C.useCallback(()=>{const pe=V.current,Ce=je.current;if(!pe||!Ce?.key)return;const De=si(Ce.key);if(!De){Ht();return}const Be=De.getBoundingClientRect().top-pe.getBoundingClientRect().top-Ce.viewportOffset;Math.abs(Be)>.5&&(pe.scrollTop+=Be),Ce.viewportOffset=De.getBoundingClientRect().top-pe.getBoundingClientRect().top,Ve.current=pe.scrollTop,hn(ea(pe))},[Ht,si,hn]),Kn=C.useCallback(pe=>{le.current=pe,Z(Ce=>Ce===pe?Ce:pe)},[]),Fn=C.useCallback(()=>{ce.current.active=!1,le.current!=="browsing"&&(It.current=qe.current,ee(0),Kn("browsing")),Ht()},[Ht,Kn]),Yn=C.useCallback(()=>{const pe=V.current;if(!pe)return;const Ce=Math.max(0,pe.scrollHeight-pe.clientHeight);Math.abs(pe.scrollTop-Ce)>.5&&(pe.scrollTop=Ce),Ve.current=pe.scrollTop,hn(ea(pe))},[hn]),vi=C.useCallback(()=>{he.current==="follow"&&(Kn("following"),ee(0),je.current=null,Yn(),qt())},[qt,Kn,Yn]),bn=C.useCallback(()=>{if(he.current==="follow"){vi();return}ce.current.active=!1,Yn(),Ht(),ee(0),qt()},[Ht,qt,vi,Yn]),Vn=C.useCallback(()=>{const pe=V.current;if(!pe||!we.current)return;if(hn(ea(pe)),Ie.current){Ie.current=!1,he.current==="initial-bottom"&&(ce.current={active:!0,revision:Ge.current}),Yn(),he.current!=="follow"&&Kn("browsing");return}const Ce=ce.current;if(he.current==="initial-bottom"&&Ce.active&&Ce.revision===Ge.current){Yn();return}if(he.current==="follow"&&le.current==="following"){Yn();return}Ue.current&&(Ue.current=!1,Xt())},[Xt,Kn,hn,Yn]);C.useLayoutEffect(()=>{he.current=O;const pe=O==="follow"?"following":"browsing";le.current=pe,Z(pe),Ie.current=O!=="manual",hn(!1),je.current=null,Oe.current=null,Ue.current=!1,Xe.current=null,bt.current=null,ce.current={active:!1,revision:Ge.current},ut.current=new Set(xn.current.filter(kC).map(oa)),It.current=qe.current,Bt.current=null,ee(0)},[O,F,hn]),C.useLayoutEffect(()=>{const pe=ht.current;if(OF(pe,cn))return;ht.current=cn,Ge.current+=1;const De=ce.current;!De.active||De.revision===Ge.current||(De.active=!1,Ht())},[Ht,cn]),C.useLayoutEffect(()=>{const pe=V.current,Ce=Y.current;if(!pe||!Ce||(bt.current={width:pe.clientWidth,height:pe.clientHeight},Vn(),typeof ResizeObserver>"u"))return;const De=new ResizeObserver(Be=>{if(Be.find(Ze=>Ze.target===pe)){const Ze=bt.current,Ye={width:pe.clientWidth,height:pe.clientHeight};Ze&&(Ze.width!==Ye.width||Ze.height!==Ye.height)&&(Ue.current=le.current==="browsing"),bt.current=Ye}Vn()});return De.observe(pe),De.observe(Ce),()=>De.disconnect()},[Vn,O,F]),C.useEffect(()=>{const pe=V.current;if(!pe)return;Ve.current=pe.scrollTop;const Ce=Vt=>{Pe.current=Vt.deltaY<0?"up":Vt.deltaY>0?"down":"none",Vt.deltaY<0&&pe.scrollTop>0&&Fn(),Vt.deltaY>0&&ea(pe)&&vi()},De=()=>{We.current=!0},Be=()=>{We.current=!1,Pe.current="none",le.current==="browsing"&&Ht()},_t=Vt=>{ct.current=Vt.touches[0]?.clientY??null,We.current=!0},Ze=Vt=>{const Jt=Vt.touches[0]?.clientY,_n=ct.current;Jt===void 0||_n===null||(Jt>_n+1?(Pe.current="up",Fn()):Jt<_n-1&&(Pe.current="down"),ct.current=Jt)},Ye=()=>{ct.current=null,Be()},Ft=Vt=>{const Jt=Vt.target;Jt&&Jt!==pe&&(Jt.isContentEditable||["INPUT","TEXTAREA","SELECT","BUTTON"].includes(Jt.tagName))||(["ArrowUp","PageUp","Home"].includes(Vt.key)||Vt.key===" "&&Vt.shiftKey?(Pe.current="up",Fn()):(["ArrowDown","PageDown","End"].includes(Vt.key)||Vt.key===" ")&&(Pe.current="down",Vt.key==="End"&&bn()))},Kt=()=>{Pe.current="none"},Pn=()=>{const Vt=Ve.current,Jt=pe.scrollTop,_n=ea(pe),Fi=xe.current,Vi=We.current||Pe.current!=="none";JtVt+.5||Pe.current==="down")&&vi(),le.current==="browsing"&&Ht(),We.current||(Pe.current="none")):Jt>Vt+.5&&_n?vi():le.current==="browsing"&&Math.abs(Jt-Vt)>.5&&Ht(),Ve.current=Jt,hn(_n),!Fi&&_n&&(Vi||Jt>Vt+.5)&&qt()};return pe.addEventListener("wheel",Ce,{passive:!0}),pe.addEventListener("pointerdown",De),window.addEventListener("pointerup",Be),window.addEventListener("pointercancel",Be),window.addEventListener("blur",Be),pe.addEventListener("touchstart",_t,{passive:!0}),pe.addEventListener("touchmove",Ze,{passive:!0}),pe.addEventListener("touchend",Ye,{passive:!0}),pe.addEventListener("touchcancel",Ye,{passive:!0}),pe.addEventListener("keydown",Ft),pe.addEventListener("keyup",Kt),pe.addEventListener("scroll",Pn,{passive:!0}),()=>{pe.removeEventListener("wheel",Ce),pe.removeEventListener("pointerdown",De),window.removeEventListener("pointerup",Be),window.removeEventListener("pointercancel",Be),window.removeEventListener("blur",Be),pe.removeEventListener("touchstart",_t),pe.removeEventListener("touchmove",Ze),pe.removeEventListener("touchend",Ye),pe.removeEventListener("touchcancel",Ye),pe.removeEventListener("keydown",Ft),pe.removeEventListener("keyup",Kt),pe.removeEventListener("scroll",Pn)}},[Ht,Fn,qt,bn,vi,hn]);const En=C.useMemo(()=>jt.filter(kC),[jt]),zi=C.useMemo(()=>En.map(oa),[En]);C.useEffect(()=>{const pe=new Set(zi);if(ut.current.size===0){ut.current=pe;return}if(le.current==="browsing"){let Ce=0;for(const De of En){const Be=oa(De);!ut.current.has(Be)&&De.timestamp>=It.current&&(Ce+=1)}Ce>0&&ee(De=>De+Ce)}else ee(0);ut.current=pe},[En,zi]);const On=En.reduce((pe,Ce)=>!pe||Ce.timestamp>pe.timestamp?Ce:pe,void 0),wn=On?`${oa(On)}:${On.timestamp}`:null;ge.current=wn,C.useEffect(()=>{if(!wn)return;const pe=V.current,Ce=!!pe&&ea(pe);hn(Ce),!(le.current!=="following"&&!Ce)&&qt()},[wn,qt,hn,D]);const nt=C.useCallback((pe,Ce)=>{FF(Ce).then(De=>{De&&(Q(pe),setTimeout(()=>Q(null),1500))})},[]),Mr=C.useCallback(async()=>{if(Ht(),Ue.current=!0,wt>0){const pe=Math.max(0,wt-_y);vn({scope:F,startKey:Ut[pe]?.id??null});return}!I||M||!L||(Oe.current=Dt?{scope:F,startKey:Dt,beforeIndex:wt}:null,await L(He[0]))},[Ht,Dt,He,I,M,L,F,Ut,wt]),ue=bn,be=C.useCallback(pe=>{const Ce=V.current,De=si(pe);if(!Ce||!De)return!1;const Be=Ce.getBoundingClientRect(),_t=De.getBoundingClientRect();return Ce.scrollTop+=_t.top-Be.top-Math.max(0,(Ce.clientHeight-_t.height)/2),Ve.current=Ce.scrollTop,hn(ea(Ce)),Ht(),!0},[Ht,si,hn]);C.useLayoutEffect(()=>{const pe=Xe.current;!pe||!be(pe)||(Xe.current=null)},[be,Sn]);const Me=C.useCallback(()=>{const pe=on[0];if(!pe)return;Fn(),Ue.current=!1;const Ce=oa(pe);if(be(Ce))return;const De=Ut.findIndex(_t=>_t.id===Ce);if(De<0)return;Xe.current=Ce;const Be=Math.max(0,De-2);vn({scope:F,startKey:Ut[Be]?.id??Ce})},[be,Fn,on,F,Ut]),ft=C.useCallback(pe=>{const{item:Ce,showDate:De,dateStr:Be,isGrouped:_t}=pe;if(Ce.kind==="progress")return c.jsx(YF,{entry:Ce.entry,showDate:De,dateStr:Be,compact:r!=="full"});if(Ce.kind==="draft")return c.jsx(QF,{text:Ce.text,timestamp:Ce.timestamp,iteration:Ce.iteration,showDate:De,dateStr:Be});if(Ce.kind==="ops-bundle")return c.jsx(iV,{events:Ce.events,showDate:De,dateStr:Be});const{msg:Ze}=Ce,Ye=Je.current.scope===F&&Je.current.keys.has(Ce.id),Ft=Ze.metadata?.type==="system",Kt=VF(Ze),Pn=!Ye&&(!!Ze.metadata?.is_work_item_event||Ze.content.startsWith("[Company:")),Vt=Au(Ze.metadata),Jt=Ze.sender==="user",_n=!Ye&&!Jt&&!Vt?WF(Ze.content):null;if(Pn&&!Vt)return c.jsx(XF,{msg:Ze,showDate:De,dateStr:Be});if(_n)return c.jsx(sV,{msg:Ze,payload:_n,showDate:De,dateStr:Be,isCopied:U===Ze.id,onCopy:nt});if(Kt&&!Vt)return c.jsx(ZF,{msg:Ze,showDate:De,dateStr:Be});if(Ft&&!Vt)return c.jsx(KF,{msg:Ze,showDate:De,dateStr:Be});if(Jt)return c.jsx(JF,{msg:Ze,showDate:De,dateStr:Be,isGrouped:_t,isCopied:U===Ze.id,onCopy:nt,onImageClick:q,renderUserMarkdown:P});if(Ze.sender==="system"&&!Au(Ze.metadata)){const Fi=iT(Ze.content);if(Fi)return c.jsx(nV,{msg:Ze,showDate:De,dateStr:Be,isGrouped:_t,classification:Fi})}return c.jsx(oV,{msg:Ze,showDate:De,dateStr:Be,isGrouped:_t,isCopied:U===Ze.id,isCheckpointResponded:yn.respondedMessageIds.has(Ze.id),suppressCheckpointPanel:yn.duplicateMessageIds.has(Ze.id),keepExpanded:Ye,onCopy:nt,onInteractionReply:j})},[yn,U,nt,r,j,P,F]),Ot=PF[i];return c.jsxs("div",{className:`msg-list-shell msg-list-shell-${D}`,children:[c.jsx("div",{className:`msg-list msg-list-${D}`,ref:V,tabIndex:0,"data-scroll-policy":O,"data-viewport-mode":D,children:c.jsxs("div",{className:"msg-list-content",ref:Y,children:[!zn&&c.jsxs("div",{className:"msg-welcome",children:[c.jsx("div",{className:"msg-welcome-icon",children:Ot.icon}),c.jsx("div",{className:"msg-welcome-title",children:n||Ot.title}),c.jsx("div",{className:"msg-welcome-hint",children:Ot.hint})]}),(Ci>0||I)&&c.jsxs("div",{className:"msg-history-hint",children:[c.jsx("button",{className:"msg-history-load-btn",onClick:()=>{Mr()},disabled:M,children:M?"Loading older messages...":Ci>0?`Load ${Math.min(_y,Ci)} older messages`:"Load older messages"}),c.jsxs("span",{className:"msg-history-meta",children:["Showing ",Sn.length," of ",A??Ut.length]})]}),kt.map(pe=>c.jsx("div",{className:"msg-timeline-row","data-timeline-key":pe.item.id,children:ft(pe)},pe.item.id)),ri&&c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(kl,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(tT,{workItemLog:b??[],roleWorkItems:w,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]}),Rn&&c.jsxs("div",{className:"msg-row agent agent-working-row",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(kl,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Tl,{entries:Et,agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,expandedByDefault:!0})})]}),c.jsx("div",{className:"msg-end-anchor"})]})}),(on.length>0||D==="browsing"&&!te)&&c.jsxs("div",{className:"msg-list-floating-actions",children:[on.length>0&&c.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-pending-btn",onClick:Me,children:["Pending actions · ",on.length]}),D==="browsing"&&!te&&c.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-latest-btn",onClick:ue,children:[ie>0?`${ie} new · `:"","Back to latest"]})]}),W&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>q(null),children:c.jsx("img",{className:"lightbox-img",src:W,alt:"Preview"})})]})}),aV=10*1024*1024,lV=20*1024*1024,cV="image/*,video/mp4,video/mpeg,video/quicktime,video/webm,.mp4,.mpeg,.mpg,.mov,.webm,.txt,.md,.pdf,.csv,.json,.yaml,.yml,.py,.js,.ts,.tsx,.jsx,.html,.css,.java,.c,.cpp,.go,.rs,.rb,.sh,.xml,.toml,.docx,.xlsx,.pptx";function uV(e,t){return new Promise((n,i)=>{const r=new FileReader;r.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},r.onload=()=>{const o=r.result;t?.(100),n(o.split(",")[1]||"")},r.onerror=i,r.readAsDataURL(e)})}function CC(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function rT(e,t){const n=t.includes(".")?t.split(".").pop()?.toUpperCase()??"":"";return e.startsWith("image/")?"IMG":e.startsWith("video/")?"VID":e==="application/pdf"?"PDF":e.includes("wordprocessingml")?"DOC":e.includes("spreadsheetml")||n==="CSV"?"XLS":e.includes("presentationml")?"PPT":e.includes("json")?"JSON":e.includes("yaml")||n==="YML"||n==="YAML"?"YAML":e.startsWith("text/")?"TXT":["PY","TS","TSX","JS","JSX","GO","RS","RB","JAVA","C","CPP","HTML","CSS","SH"].includes(n)?n:n||"FILE"}function dV(e,t){const n=rT(e,t);return n==="IMG"?"image":n==="VID"?"video":n==="PDF"?"pdf":n==="DOC"||n==="XLS"||n==="PPT"?"office":n==="JSON"||n==="YAML"?"data":n==="TXT"?"text":["PY","TS","TSX","JS","JSX","GO","RS","RB","JAVA","C","CPP","HTML","CSS","SH"].includes(n)?"code":"generic"}function fV({progress:e,state:t,error:n}){const r=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=r*(1-o/100);return c.jsxs("span",{className:`attachment-progress-ring${n?" error":t==="ready"?" ready":""}`,"aria-label":n?"Attachment preparation failed":t==="ready"?"Attachment ready to send":`Preparing attachment ${o}%`,role:"img",children:[c.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[c.jsx("circle",{className:"attachment-progress-track",cx:"14",cy:"14",r:11}),c.jsx("circle",{className:"attachment-progress-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),c.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?c.jsx(Vl,{}):o})]})}function mV({usedPct:e,usedTokens:t,windowTokens:n}){const r=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=r*(1-o/100),u=o>=80,d=o>=90,m=typeof t=="number"&&typeof n=="number"?`${o}% used (${t.toLocaleString()}/${n.toLocaleString()})`:`${o}% used`;return c.jsxs("span",{className:`composer-context-ring${u?" low":""}${d?" critical":""}`,title:`Context window: ${m}`,"aria-label":`Context window ${m}`,role:"img",children:[c.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[c.jsx("circle",{className:"composer-context-ring-track",cx:"14",cy:"14",r:11}),c.jsx("circle",{className:"composer-context-ring-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),c.jsx("span",{className:"composer-context-ring-label",children:o})]})}const bf=new Map;function Sy(e){return e.organization_name?.trim()||e.name}function wy({disabled:e,placeholder:t,channelId:n,execMode:i,companyProfile:r,taskPreferredAgent:o="native",agentStatus:a,currentTool:u,displayTool:d,activeAgentCount:m,runtimeControlState:h,canStop:p,autoFocus:g=!0,contextTokens:x,contextWindow:v,contextRemainingPct:b,savedOrgs:S,activeSavedOrg:w,selectedOrgId:k,lockedMode:j=!1,onSend:N,onModeChange:z,onTaskAgentChange:I,onSavedOrgsRefresh:A,onSavedOrgLoad:L,onStop:M,onContinueInNewChat:O}){const[T,$]=C.useState(()=>n&&bf.get(n)||""),[G,P]=C.useState(!1),[F,V]=C.useState([]),Y=C.useCallback(ke=>{$(ke),n&&(ke?bf.set(n,ke):bf.delete(n))},[n]),[U,Q]=C.useState(null),W=C.useRef(null),q=C.useRef(null),J=h==="suspending",D=h==="running"||h==="suspending"||h==="resuming",Z=h==="suspended",ie=h!=null,ee=D||!ie&&a!=null&&a!=="idle",te=(p??!0)&&!J&&!Z,oe=C.useMemo(()=>jE({contextTokens:x,contextWindow:v,contextRemainingPct:b}),[b,x,v]);C.useEffect(()=>{const ke=W.current;ke&&(ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,200)}px`)},[T]),C.useEffect(()=>{$(n?bf.get(n)??"":""),V(ke=>(ke.forEach(Je=>{Je.preview_url&&URL.revokeObjectURL(Je.preview_url)}),[])),!e&&g&&setTimeout(()=>W.current?.focus(),50)},[n,e,g]);const le=C.useCallback((ke,Je)=>{V(Ke=>Ke.map(it=>it.id===ke?Je(it):it))},[]),he=C.useCallback(async(ke,Je)=>{try{const Ke=await uV(Je,it=>{le(ke,He=>({...He,progress_percent:it,transfer_state:"reading"}))});le(ke,it=>({...it,base64_data:Ke,progress_percent:100,transfer_state:"ready"}))}catch{le(ke,Ke=>({...Ke,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[le]),Ie=C.useCallback(ke=>{const Je=Array.from(ke);let Ke=F.reduce((He,yn)=>He+yn.size_bytes,0);const it=Je.map(He=>{let yn;return He.size>aV?yn=`Too large (${CC(He.size)})`:Ke+He.size>lV?yn="Total size exceeds 20MB":Ke+=He.size,{id:crypto.randomUUID(),file:He,filename:He.name||"upload",mime_type:He.type||"application/octet-stream",size_bytes:He.size,preview_url:He.type.startsWith("image/")?URL.createObjectURL(He):"",progress_percent:0,transfer_state:yn?"error":"reading",error:yn}});V(He=>[...He,...it]),it.filter(He=>!He.error).forEach(He=>{he(He.id,He.file)})},[F,he]),xe=C.useCallback(ke=>{V(Je=>{const Ke=Je.find(it=>it.id===ke);return Ke?.preview_url&&URL.revokeObjectURL(Ke.preview_url),Je.filter(it=>it.id!==ke)})},[]),je=C.useCallback(()=>{if(e||ee)return;const ke=T.trim(),Je=F.filter(He=>!He.error&&He.transfer_state==="reading"),Ke=F.filter(He=>!He.error&&!!He.base64_data);if(Je.length>0||!ke&&Ke.length===0)return;const it=Ke.map(He=>({filename:He.filename,data:He.base64_data,mime_type:He.mime_type}));N(ke||"Sent with attachments",it.length?it:void 0),Y(""),F.forEach(He=>{He.preview_url&&URL.revokeObjectURL(He.preview_url)}),V([])},[e,ee,T,F,N,Y]),Ve=C.useCallback(ke=>{const Je=ke.clipboardData?.files;Je&&Je.length>0&&(ke.preventDefault(),Ie(Je))},[Ie]),We=String(r??"").trim().toLowerCase(),Pe=i==="company"?"company":i==="org"||i==="custom"||We==="custom"?"org":"task",ct=C.useMemo(()=>(S??[]).filter(ke=>!!ke.name&&ke.name!=="corporate"),[S]),It=w?ct.find(ke=>ke.name===w):void 0,ut=k?ct.find(ke=>ke.name===k):void 0,Bt=It?Sy(It):w||"",ge=ut?Sy(ut):k||Bt,me=ut?.name||k||It?.name||"",qe=Pe==="task"?"task":"company",Ge=Pe==="org"?me?`org:${me}`:"":"corporate",ht=Pe==="org"?ge?`Company / ${ge}`:"Company / Saved org":"Company / Corporate",ce=qe==="task"?"Task":ht,we=!!i&&!!z,Oe=Pe==="task"&&!!I,Ue=C.useMemo(()=>{const ke=Pe==="task"?"task":Pe==="org"?`org:${me||"selected"}`:"company:corporate",Je=me||It?.name||"",Ke=ge||Bt||Je,it=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:c.jsx(nD,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:c.jsx(iD,{})}];return Je&&it.push({key:`org:${Je}`,mode:"org",profile:"custom",orgId:Je,label:`Company / ${Ke}`,description:"A saved company architecture collaborates",icon:c.jsx(rD,{})}),it.filter(He=>He.key!==ke)},[Bt,It?.name,Pe,ge,me]),Xe=F.filter(ke=>!ke.error&&ke.transfer_state==="reading").length,bt=F.filter(ke=>!ke.error&&ke.transfer_state==="ready").length,St=d||u,dt=ee?J?"Stopping...":m&&m>1?`${m} agents working`:St?`Running ${St}`:a==="reflecting"?"Thinking...":"Working...":null;return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:`msg-composer${G?" focused":""}${ee?" working":""}`,children:[ee&&dt&&c.jsxs("div",{className:"composer-status",children:[c.jsx("div",{className:"composer-status-indicator"}),c.jsx("span",{className:"composer-status-text",children:dt}),c.jsxs("button",{className:"composer-stop-btn",onClick:M,title:"Stop",disabled:!te||!M,children:[c.jsx(SE,{}),c.jsx("span",{children:J?"Stopping...":"Stop"})]})]}),F.length>0&&c.jsx("div",{className:"composer-attachments",children:F.map(ke=>c.jsxs("div",{className:`attachment-chip${ke.error?" error":""}`,children:[ke.preview_url?c.jsx("img",{className:"attachment-thumb",src:ke.preview_url,alt:ke.filename,onClick:()=>Q(ke.preview_url)}):c.jsx("span",{className:`attachment-file-icon tone-${dV(ke.mime_type,ke.filename)}`,children:rT(ke.mime_type,ke.filename)}),c.jsxs("span",{className:"attachment-chip-info",children:[c.jsx("span",{className:"attachment-chip-name",children:ke.filename}),c.jsx("span",{className:"attachment-chip-size",children:ke.error?ke.error:ke.transfer_state==="reading"?`Preparing ${ke.progress_percent}%`:`${CC(ke.size_bytes)} - Ready`})]}),c.jsx(fV,{progress:ke.progress_percent,state:ke.transfer_state,error:ke.error}),c.jsx("button",{className:"attachment-chip-remove",onClick:()=>xe(ke.id),title:"Remove",children:c.jsx(Bm,{})})]},ke.id))}),c.jsxs("div",{className:"composer-input-area",children:[c.jsx("textarea",{ref:W,value:T,onChange:ke=>Y(ke.target.value),onFocus:()=>P(!0),onBlur:()=>P(!1),onPaste:Ve,onKeyDown:ke=>{ke.key==="Enter"&&!ke.shiftKey&&(ke.preventDefault(),je())},placeholder:t??"Message...",rows:1,disabled:e}),c.jsxs("div",{className:"composer-bottom",children:[c.jsx("button",{className:"composer-attach-btn",onClick:()=>q.current?.click(),title:"Attach files",disabled:e,children:c.jsx(X4,{})}),c.jsx("input",{ref:q,type:"file",multiple:!0,accept:cV,style:{display:"none"},onChange:ke=>{ke.target.files&&Ie(ke.target.files),ke.target.value=""}}),(we||i)&&c.jsxs("div",{className:"composer-config-group","data-locked":j?"true":void 0,children:[we&&!j?c.jsxs("label",{className:"composer-mode-inline","data-kind":"mode",title:"Execution mode for this chat and new work started from it",children:[c.jsx("span",{className:"composer-mode-inline-label",children:"Mode"}),c.jsx("span",{className:"composer-mode-select-wrap",children:c.jsxs("select",{className:"composer-mode-select",value:qe,onChange:ke=>{if(ke.target.value==="task"){z?.("task");return}z?.("company","corporate")},onFocus:()=>A?.(),onPointerDown:()=>A?.(),disabled:e,"aria-label":"Execution mode",children:[c.jsx("option",{value:"task",children:"Task"}),c.jsx("option",{value:"company",children:"Company"})]})})]}):we&&j?c.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${ce}.${O?" Use the menu to start a new chat in a different mode.":" Start a new chat to use a different mode."}`,children:[c.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:c.jsx(bS,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:ce}),c.jsxs("div",{className:"composer-mode-chip-popover",role:"dialog","aria-label":"Mode info",children:[c.jsx("div",{className:"composer-mode-chip-popover-title",children:"Mode is fixed for this chat"}),c.jsxs("div",{className:"composer-mode-chip-popover-body",children:["Once the first message is sent, this chat is committed to"," ",c.jsx("strong",{children:ce}),"."]}),O&&Ue.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"composer-mode-chip-popover-divider","aria-hidden":"true"}),c.jsx("div",{className:"composer-mode-chip-popover-action-title",children:"Continue in a new chat"}),c.jsx("div",{className:"composer-mode-chip-popover-actions",children:Ue.map(ke=>c.jsxs("button",{type:"button",className:"composer-mode-chip-popover-action",onClick:()=>O(ke.mode,ke.profile,ke.orgId),"aria-label":`Start a new chat in ${ke.label}`,children:[c.jsx("span",{className:"composer-mode-chip-popover-action-icon","aria-hidden":"true",children:ke.icon}),c.jsxs("span",{className:"composer-mode-chip-popover-action-text",children:[c.jsx("span",{className:"composer-mode-chip-popover-action-label",children:ke.label}),c.jsx("span",{className:"composer-mode-chip-popover-action-desc",children:ke.description})]}),c.jsx("span",{className:"composer-mode-chip-popover-action-arrow","aria-hidden":"true",children:c.jsx(CE,{})})]},ke.key))})]})]})]}):c.jsx("span",{className:"composer-mode","data-kind":"mode",children:ce}),qe==="company"&&we&&!j&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),c.jsxs("label",{className:"composer-mode-inline","data-kind":"org",title:"Company architecture for this chat",children:[c.jsx("span",{className:"composer-mode-inline-label",children:"Company"}),c.jsx("span",{className:"composer-mode-select-wrap",children:c.jsxs("select",{className:"composer-mode-select",value:Ge,onChange:ke=>{const Je=ke.target.value;if(Je==="corporate"){z?.("company","corporate");return}if(Je.startsWith("org:")){const Ke=Je.slice(4);Ke&&z?.("org","custom",Ke)}},onFocus:()=>A?.(),onPointerDown:()=>A?.(),disabled:e,"aria-label":"Company architecture",children:[c.jsx("option",{value:"corporate",children:"Corporate"}),!Ge&&c.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),Ge&&Ge!=="corporate"&&!ct.some(ke=>`org:${ke.name}`===Ge)&&c.jsx("option",{value:Ge,children:ge||me}),ct.length===0?c.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):ct.map(ke=>c.jsx("option",{value:`org:${ke.name}`,children:Sy(ke)},ke.name))]})})]})]}),Pe==="task"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),Oe&&!j?c.jsxs("label",{className:"composer-mode-inline","data-kind":"agent",title:"Execution agent for this task-mode chat",children:[c.jsx("span",{className:"composer-mode-inline-label",children:"Agent"}),c.jsx("span",{className:"composer-mode-select-wrap",children:c.jsx("select",{className:"composer-mode-select",value:o,onChange:ke=>I?.(ke.target.value),disabled:e,"aria-label":"Task mode agent",children:Object.entries(Ps).map(([ke,Je])=>c.jsx("option",{value:ke,children:Je},ke))})})]}):Oe&&j?c.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${Ps[o]}. Start a new chat to use a different agent.`,children:[c.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:c.jsx(bS,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:Ps[o]}),c.jsxs("span",{className:"composer-mode-chip-popover",role:"tooltip",children:[c.jsx("span",{className:"composer-mode-chip-popover-title",children:"Agent is fixed for this chat"}),c.jsx("span",{className:"composer-mode-chip-popover-body",children:"The execution agent is committed once the chat starts. Start a new chat to switch agents."})]})]}):c.jsx("span",{className:"composer-mode","data-kind":"agent",children:Ps[o]})]})]}),c.jsx("span",{className:"composer-hint",children:Xe>0?`Preparing ${Xe} attachment${Xe>1?"s":""}`:bt>0?`${bt} attachment${bt>1?"s":""} ready`:"Shift+Enter for new line"}),typeof oe.usedPct=="number"&&c.jsx(mV,{usedPct:oe.usedPct,usedTokens:oe.usedTokens,windowTokens:oe.windowTokens}),c.jsx("button",{className:"composer-send-btn",onClick:je,disabled:e||Xe>0||!T.trim()&&bt===0||ee,children:c.jsx(W4,{})})]})]})]}),U&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>Q(null),children:c.jsx("img",{className:"lightbox-img",src:U,alt:"Preview"})})]})}function V0(e){return $m(e)}function jC(e){const t=V0(e);return t==="tool_active"?0:t==="reflecting"?1:e.status==="running"?2:e.status==="pending"?3:e.status==="done"?5:e.status==="failed"?6:4}function U0(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s`;const n=Math.floor(t/60);return n<60?`${n}m`:`${Math.floor(n/60)}h`}function pV(e){return e.length===0?"—":U0(e[e.length-1].timestamp)}function hV(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=V0(e);if(t==="tool_active"&&e.currentTool)return e.currentTool;if(t==="reflecting")return"Thinking…";if(e.status==="pending")return"Pending";const n=e.progressLog;if(n.length>0){const i=n[n.length-1];return i.type==="work_item_started"?`Work item: ${i.summary}`:i.type==="tool_call"?i.summary:i.detail?i.detail.replace(/\s+/g," ").trim():i.summary}return"Idle"}function EC(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function NC(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const Cy={done:{cls:"awp-result-done",text:"Work item completed successfully"},failed:{cls:"awp-result-failed",text:"Work item failed"},cancelled:{cls:"awp-result-cancelled",text:"Work item cancelled"}},Sv={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},IC={active:0,waiting:1,pending:2,done:3,failed:4};function gV(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=Sv[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function yV(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,i)=>Math.max(n,i.updatedAt),0);return t?U0(t):"—"}function xV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function vV({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?c.jsx("div",{className:"wf-role-turn-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],u=`${r.runtimeTaskId||r.kind}:${o}`;return c.jsxs("section",{className:"wf-role-turn-activity-section",children:[c.jsxs("div",{className:"wf-role-turn-activity-section-head",children:[c.jsx("span",{className:"wf-role-turn-activity-section-title",children:r.title}),r.roleName&&c.jsx("span",{className:"wf-role-turn-activity-section-role",children:r.roleName}),a.length>0&&c.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?c.jsx(Tl,{entries:a,sessionStatus:n,expandedByDefault:!0}):c.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"})]},u)})}):!t||t.length===0?c.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"}):c.jsx(Tl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function bV({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[i,r]=C.useState(null),[o,a]=C.useState(null),[u,d]=C.useState("all"),[m,h]=C.useState(""),[p,g]=C.useState(!1),x=C.useMemo(()=>Object.values(e),[e]),v=C.useMemo(()=>{let k=x.slice();if(u==="active"?k=k.filter(j=>j.aggregatedStatus==="active"):u==="idle"?k=k.filter(j=>j.aggregatedStatus==="done"||j.aggregatedStatus==="failed"):u==="pending"&&(k=k.filter(j=>j.aggregatedStatus==="pending"||j.aggregatedStatus==="waiting")),m.trim()){const j=m.toLowerCase();k=k.filter(N=>N.roleName.toLowerCase().includes(j)||N.roleId.toLowerCase().includes(j)||N.workItems.some(z=>z.title.toLowerCase().includes(j)))}return k.sort((j,N)=>{const z=IC[j.aggregatedStatus]??99,I=IC[N.aggregatedStatus]??99;return z!==I?z-I:j.roleName.localeCompare(N.roleName)}),k},[x,u,m]);C.useEffect(()=>{i&&!x.some(k=>k.roleKey===i)&&(r(null),a(null))},[x,i]);const b=x.filter(k=>k.aggregatedStatus==="active").length,S=i?e[i]??null:null,w=S&&o?S.workItems.find(k=>k.workItemId===o)??null:null;return x.length===0?null:c.jsxs("div",{className:"awp",children:[c.jsxs("div",{className:"awp-header",children:[c.jsxs("span",{className:"awp-title",children:["Agents",c.jsx("span",{className:"awp-count",children:b>0?`${b}/${x.length} active`:`${x.length}`})]}),c.jsxs("div",{className:"awp-controls",children:[c.jsxs("select",{className:"awp-filter",value:u,onChange:k=>d(k.target.value),children:[c.jsx("option",{value:"all",children:"All"}),c.jsx("option",{value:"active",children:"Active"}),c.jsx("option",{value:"idle",children:"Idle / Done"}),c.jsx("option",{value:"pending",children:"Pending"})]}),c.jsx("button",{className:`awp-search-toggle${p?" active":""}`,onClick:()=>g(k=>!k),title:"Search agents",children:c.jsx(Qv,{})})]})]}),p&&c.jsx("div",{className:"awp-search-bar",children:c.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents or work items...",value:m,onChange:k=>h(k.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[v.map(k=>{const j=i===k.roleKey,N=k.aggregatedStatus==="active",z=k.runtimeStatus==="reflecting"||k.runtimeStatus==="tool_active",I=k.aggregatedStatus==="done"||k.aggregatedStatus==="failed";return c.jsxs("button",{className:`awp-row${j?" awp-row-selected":""}${N?" awp-row-active":""}${I?` awp-row-terminal awp-terminal-${k.aggregatedStatus}`:""}`,onClick:()=>{r(A=>A===k.roleKey?null:k.roleKey),a(null)},title:`${k.roleName} — ${Sv[k.aggregatedStatus]}`,children:[c.jsx("span",{className:`awp-dot${z?" awp-dot-active":""} awp-dot-${k.aggregatedStatus}`}),c.jsxs("div",{className:"awp-row-info",children:[c.jsx("span",{className:"awp-row-name",children:k.roleName}),c.jsxs("span",{className:"awp-row-projection",children:[k.workItems.length," work item",k.workItems.length===1?"":"s"]})]}),c.jsx("span",{className:"awp-row-activity",children:gV(k)}),c.jsx("span",{className:"awp-row-time",children:yV(k)})]},k.roleKey)}),v.length===0&&c.jsx("div",{className:"awp-empty",children:m?"No matching agents":"No agents in this filter"})]}),S&&c.jsxs("div",{className:"awp-detail",children:[c.jsxs("div",{className:"awp-detail-header",children:[c.jsxs("div",{className:"awp-detail-identity",children:[c.jsx("div",{className:"awp-detail-avatar",children:S.roleName.charAt(0).toUpperCase()}),c.jsxs("div",{className:"awp-detail-meta",children:[c.jsx("span",{className:"awp-detail-name",children:S.roleName}),c.jsx("span",{className:"awp-detail-role",children:Sv[S.aggregatedStatus]})]})]}),c.jsx("div",{className:"awp-detail-actions",children:c.jsx("button",{className:"awp-detail-close",onClick:()=>{r(null),a(null)},title:"Close detail",children:c.jsx(Bm,{})})})]}),c.jsxs("div",{className:"awp-detail-body",children:[c.jsxs("div",{className:"awp-detail-section",children:[c.jsxs("div",{className:"awp-detail-section-label",children:[c.jsx(Sl,{}),c.jsx("span",{children:"Work items"})]}),c.jsx("ul",{className:"wf-role-turns",children:S.workItems.map(k=>{const j=o===k.workItemId,N=k.kanbanColumn==="in-progress"?"in_progress":k.kanbanColumn==="in-review"?"in_review":k.kanbanColumn;return c.jsxs("li",{className:`wf-role-turn${j?" wf-role-turn-expanded":""}`,children:[c.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(z=>z===k.workItemId?null:k.workItemId),children:[c.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:k.kanbanColumn.replace("-"," ").replace(/^./,z=>z.toUpperCase())}),c.jsxs("span",{className:"wf-role-turn-title",children:[k.isReviewTarget&&c.jsx("span",{className:"wf-role-turn-tag",children:"Review"}),k.title]}),c.jsx("span",{className:"wf-role-turn-time",children:U0(k.updatedAt)}),c.jsx("span",{className:"wf-role-turn-chevron",children:c.jsx(ds,{down:j})})]}),j&&c.jsxs("div",{className:"wf-role-turn-activity",children:[c.jsx(vV,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:xV(k)}),k.executionTurnId&&c.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:z=>{z.stopPropagation(),k.executionTurnId&&(n??t)?.(k.executionTurnId)},children:"Open runtime session"})]})]},k.workItemId)})})]}),w===null&&S.workItems.length===0&&c.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function _V({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:i}){const[r,o]=C.useState(null),[a,u]=C.useState("all"),[d,m]=C.useState(""),[h,p]=C.useState(!1);C.useEffect(()=>{r&&!e.some(w=>w.taskId===r)&&o(null)},[e,r]);const g=C.useMemo(()=>{let w=[...e];if(a==="active"?w=w.filter(fs):a==="idle"?w=w.filter(k=>al.has(k.status)||V0(k)==="idle"&&k.status!=="pending"):a==="pending"&&(w=w.filter(k=>k.status==="pending")),d.trim()){const k=d.toLowerCase();w=w.filter(j=>(j.assigneeIds[0]??j.title).toLowerCase().includes(k)||j.title.toLowerCase().includes(k))}return w.sort((k,j)=>jC(k)-jC(j)),w},[e,a,d]),x=e.filter(fs).length,v=C.useMemo(()=>r?e.find(w=>w.taskId===r)??null:null,[e,r]),b=C.useMemo(()=>{if(!v)return;const w=v.assigneeIds[0];return w?t.find(k=>k.agent_id===w):void 0},[v,t]),S=C.useCallback(w=>{o(k=>k===w?(n?.(w),k):w)},[n]);return e.length===0?null:c.jsxs("div",{className:"awp",children:[c.jsxs("div",{className:"awp-header",children:[c.jsxs("span",{className:"awp-title",children:["Agents",c.jsx("span",{className:"awp-count",children:x>0?`${x}/${e.length} active`:`${e.length}`})]}),c.jsxs("div",{className:"awp-controls",children:[c.jsxs("select",{className:"awp-filter",value:a,onChange:w=>u(w.target.value),children:[c.jsx("option",{value:"all",children:"All"}),c.jsx("option",{value:"active",children:"Active"}),c.jsx("option",{value:"idle",children:"Idle / Done"}),c.jsx("option",{value:"pending",children:"Pending"})]}),c.jsx("button",{className:`awp-search-toggle${h?" active":""}`,onClick:()=>p(w=>!w),title:"Search agents",children:c.jsx(Qv,{})})]})]}),h&&c.jsx("div",{className:"awp-search-bar",children:c.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:w=>m(w.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[g.map(w=>{const k=fs(w),j=al.has(w.status),N=r===w.taskId,z=w.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,M=>M.toUpperCase())??w.title,I=w.workItemProjectionId?.replace(/_/g," ")??"",A=EC(w.status),L=NC(w.status);return c.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${k?" awp-row-active":""}${j?` awp-row-terminal ${L}`:""}`,onClick:()=>S(w.taskId),onDoubleClick:()=>n?.(w.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[A?c.jsx("span",{className:`awp-terminal-icon ${L}`,children:A}):c.jsx("span",{className:`awp-dot${k?" awp-dot-active":""}`}),c.jsxs("div",{className:"awp-row-info",children:[c.jsx("span",{className:"awp-row-name",children:z}),I&&c.jsx("span",{className:"awp-row-projection",children:I})]}),c.jsx("span",{className:"awp-row-activity",children:hV(w)}),c.jsx("span",{className:"awp-row-time",children:pV(w.progressLog)})]},w.taskId)}),g.length===0&&c.jsx("div",{className:"awp-empty",children:d?"No matching agents":"No agents in this filter"})]}),v&&c.jsxs("div",{className:"awp-detail",children:[c.jsxs("div",{className:"awp-detail-header",children:[c.jsxs("div",{className:"awp-detail-identity",children:[c.jsx("div",{className:`awp-detail-avatar${al.has(v.status)?` ${NC(v.status)}`:""}`,children:(b?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),c.jsxs("div",{className:"awp-detail-meta",children:[c.jsx("span",{className:"awp-detail-name",children:b?.name??v.assigneeIds[0]??v.title}),Nl(v)&&c.jsx("span",{className:"awp-detail-role",children:Nl(v)}),v.employeeAssignment?.name&&c.jsx("span",{className:"awp-detail-employee",children:v.employeeAssignment.name}),v.selectedExecutionAgent&&c.jsxs("span",{className:"awp-detail-employee",children:["Agent: ",da(v.selectedExecutionAgent)]}),v.workItemProjectionId&&c.jsx("span",{className:"awp-detail-projection",children:v.workItemProjectionId.replace(/_/g," ")})]})]}),c.jsxs("div",{className:"awp-detail-actions",children:[n&&c.jsx("button",{className:"awp-detail-expand",onClick:()=>n(v.taskId),title:"Open full context",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[c.jsx("path",{d:"M2.5 3.25h9a1 1 0 011 1v5.5a1 1 0 01-1 1h-4l-2.75 2v-2h-2.25a1 1 0 01-1-1v-5.5a1 1 0 011-1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),c.jsx("path",{d:"M4.5 5.5h5M4.5 7.5h3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}),i&&c.jsx("button",{className:"awp-detail-expand",onClick:()=>i(v.taskId),title:"Open execution panel",children:c.jsx(Sl,{})}),c.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:c.jsx(Bm,{})})]})]}),c.jsxs("div",{className:"awp-detail-body",children:[v.handoffContext&&c.jsxs("div",{className:"awp-detail-section",children:[c.jsxs("div",{className:"awp-detail-section-label",children:[c.jsx(Zf,{}),c.jsx("span",{children:"Handoff"})]}),c.jsx("div",{className:"msg-content-agent-card",children:c.jsx(ki,{content:v.handoffContext,className:"awp-detail-handoff awp-detail-handoff-markdown"})})]}),c.jsxs("div",{className:"awp-detail-section",children:[c.jsxs("div",{className:"awp-detail-section-label",children:[c.jsx(Sl,{}),c.jsx("span",{children:"Activity"})]}),c.jsx(Tl,{entries:v.progressLog,agentStatus:v.agentStatus,currentTool:v.currentTool,toolElapsedMs:v.toolElapsedMs,lastToolSummary:v.lastToolSummary,sessionStatus:v.status,expandedByDefault:!0}),v.progressLog.length===0&&!v.agentStatus&&!al.has(v.status)&&c.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),al.has(v.status)&&Cy[v.status]&&c.jsxs("div",{className:`awp-result-banner ${Cy[v.status].cls}`,children:[c.jsx("span",{className:"awp-result-icon",children:EC(v.status)}),c.jsx("span",{children:Cy[v.status].text})]})]})]})]})}function kV({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?c.jsx(bV,{roleWorkItems:t,onOpenChildDetail:r,onOpenExecutionPanel:o}):n?null:c.jsx(_V,{sessions:e,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o})}function sT(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function jy(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function TC(e){return e?Object.entries(e).filter(([,t])=>t!=null&&t!==""&&t!==!1).map(([t,n])=>Array.isArray(n)?[t,n.join(", ")]:typeof n=="object"?[t,sT(n)]:[t,String(n)]):[]}function SV({task:e,linkedSession:t,linkedSessionMessages:n,agents:i,onBack:r,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const u=C.useMemo(()=>e.assigneeIds.map(I=>i.find(A=>A.agent_id===I)).filter(Boolean),[i,e.assigneeIds]),d=e.priority?fm[e.priority]:null,m=e.residentAssignment??{},h=e.memberSessionState??{},p=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),x=jy(e.deliverables),v=jy(e.acceptanceCriteria),b=jy(e.dependencies),S=TC({role_id:m.role_id,employee_id:m.employee_id,manager_role_id:m.manager_role_id,team_id:m.team_id,seat_id:m.seat_id,work_item_turn_type:m.work_item_turn_type,resident_status:m.resident_status}),w=TC({status:h.status,current_turn_mode:h.current_turn_mode,manager_role_id:h.manager_role_id,actionable_inbox_count:h.actionable_inbox_count,protocol_backlog_count:h.protocol_backlog_count,notification_backlog_count:h.notification_backlog_count}),k=String(e.employeeAssignment?.promptContext??"").trim(),j=String(e.employeeAssignment?.deltaContext??"").trim(),N=Xm(e),z=!!(e.workItemId||e.workItemProjectionId||N);return c.jsxs("div",{className:"ctx-child-detail",children:[c.jsxs("div",{className:"ctx-child-topbar",children:[c.jsxs("button",{className:"ctx-back-btn",onClick:r,children:["←"," Back to board"]}),N&&(o||a)&&c.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>{if(o){o(N);return}a?.(N)},children:"Open Runtime Session"})]}),c.jsxs("div",{className:"ctx-child-header",children:[c.jsx("div",{className:"ctx-child-avatar",children:(e.workItemRoleName??e.title).charAt(0).toUpperCase()}),c.jsxs("div",{className:"ctx-child-meta",children:[c.jsx("span",{className:"ctx-child-name",children:e.title}),c.jsx("span",{className:"ctx-child-work-item",children:[e.workItemRoleName,e.phase].filter(Boolean).join(" · ")})]})]}),g&&c.jsxs("div",{className:`task-detail-runtime status-${e.agentStatus}`,children:[c.jsx("span",{className:"kanban-runtime-dot"}),c.jsx("span",{children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:S0[e.agentStatus]??e.agentStatus}),u.length>0&&c.jsx("span",{className:"task-detail-runtime-agent",children:u.map(I=>I.name).join(", ")})]}),c.jsxs("div",{className:"task-detail-body",children:[c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:z?"Work Item":"Task"}),c.jsxs("div",{className:"ctx-task-chip-row",children:[c.jsx("span",{className:"task-detail-dep-id",children:e.displayId}),d&&c.jsx("span",{className:"kanban-tag",children:d.label}),e.workItemRoleName&&c.jsx("span",{className:"kanban-tag",children:e.workItemRoleName}),e.managerRoleId&&c.jsxs("span",{className:"kanban-tag",children:["Manager: ",e.managerRoleId]}),e.scopeKey&&c.jsx("span",{className:"kanban-tag",children:e.scopeKey})]}),e.description&&c.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:c.jsx(ki,{content:e.description})})]}),e.originalMessage&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Session Goal"}),c.jsx("pre",{className:"task-detail-handoff",children:e.originalMessage})]}),e.planningContext&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Planning Context"}),c.jsx("pre",{className:"task-detail-handoff",children:e.planningContext})]}),x.length>0&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Deliverables"}),c.jsx("ul",{className:"task-detail-dep-list",children:x.map(I=>c.jsx("li",{className:"task-detail-dep-item",children:I},I))})]}),v.length>0&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Acceptance Criteria"}),c.jsx("ul",{className:"task-detail-dep-list",children:v.map(I=>c.jsx("li",{className:"task-detail-dep-item",children:I},I))})]}),(e.delegationRationale||e.nonOverlapGuard||e.coordinationNotes)&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Delegation Notes"}),e.delegationRationale&&c.jsx("pre",{className:"task-detail-handoff",children:e.delegationRationale}),e.nonOverlapGuard&&c.jsx("pre",{className:"task-detail-handoff",children:e.nonOverlapGuard}),e.coordinationNotes&&c.jsx("pre",{className:"task-detail-handoff",children:e.coordinationNotes})]}),b.length>0&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Dependencies"}),c.jsx("ul",{className:"task-detail-dep-list",children:b.map(I=>c.jsx("li",{className:"task-detail-dep-item",children:c.jsx("span",{className:"task-detail-dep-id",children:I})},I))})]}),(S.length>0||w.length>0||t)&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Role Runtime Context"}),t&&c.jsxs("div",{className:"ctx-task-chip-row",children:[c.jsxs("span",{className:"kanban-tag",children:["Runtime Session: ",t.title]}),c.jsxs("span",{className:"kanban-tag",children:["Status: ",t.status]})]}),S.length>0&&c.jsx("div",{className:"ctx-task-kv-grid",children:S.map(([I,A])=>c.jsxs("div",{className:"ctx-task-kv-item",children:[c.jsx("span",{className:"ctx-task-kv-label",children:I}),c.jsx("span",{className:"ctx-task-kv-value",children:A})]},I))}),w.length>0&&c.jsx("div",{className:"ctx-task-kv-grid",children:w.map(([I,A])=>c.jsxs("div",{className:"ctx-task-kv-item",children:[c.jsx("span",{className:"ctx-task-kv-label",children:I}),c.jsx("span",{className:"ctx-task-kv-value",children:A})]},I))})]}),e.handoffContext&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Handoff Context"}),c.jsx("pre",{className:"task-detail-handoff",children:e.handoffContext})]}),k&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Role Prompt Context"}),c.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:c.jsx(ki,{content:k})})]}),j&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Role Delta Context"}),c.jsx("pre",{className:"task-detail-handoff",children:j})]}),Object.keys(p).length>0&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Ownership Contract"}),c.jsx("pre",{className:"task-detail-handoff",children:sT(p)})]}),e.progressLog&&e.progressLog.length>0&&c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Activity"}),c.jsx("ul",{className:"task-detail-progress",children:e.progressLog.map((I,A)=>c.jsxs("li",{className:`progress-entry type-${I.type}`,children:[c.jsx("span",{className:"progress-time",children:new Date(I.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),c.jsx("span",{className:"progress-summary",children:I.summary})]},`${I.timestamp}-${A}`))})]}),c.jsxs("div",{className:"task-detail-section",children:[c.jsx("h4",{className:"task-detail-section-title",children:"Runtime Session Activity"}),t&&n&&n.length>0?c.jsx("div",{className:"task-detail-linked-messages",children:c.jsx(cl,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary",scrollScope:t.channelId},t.channelId)}):t?c.jsx("p",{className:"task-detail-empty-hint",children:"Runtime session has no visible messages yet."}):c.jsx("p",{className:"task-detail-empty-hint",children:"No Runtime Session linked yet."})]})]})]})}function wV(e){const t=Date.now()-e;return t<6e4?"just now":t<36e5?`${Math.floor(t/6e4)}m`:t<864e5?`${Math.floor(t/36e5)}h`:`${Math.floor(t/864e5)}d`}function CV(e,t){if(t>1)return`${t} agents working`;const n=e.displayTool||e.currentTool;return n?`Running ${n}`:e.agentStatus==="reflecting"?"Thinking...":e.status==="running"?"Running":null}function jV(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function EV(e){return new Set(e.filter(fs).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function RC(e,t){const n=jV(e);return n!==void 0?n||void 0:EV(t)||void 0}function NV(e){const t=wv(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function oT(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function aT(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function AC(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||aT(e)||n==="company"||n==="org"||n==="custom"}function ru(e,t){const n=t==="full"?e.fullHasMore:e.summaryHasMore;if(n!==void 0)return n;if(e.summaryHasMore===void 0&&e.fullHasMore===void 0)return e.hasMore}function Ey(e,t,n,i=!0){const r=e.map(o=>ru(o,n));return r.some(o=>o===!0)?!0:e.length!==1||r[0]===!1?!1:i&&e[0].messageCount>t}function IV(e){const t=String(e.execMode??"").trim().toLowerCase(),n=oT(e.execMode),i=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:i==="custom"||!!e.orgId}function Ny(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const i=String(e.status??"").trim().toLowerCase();return!!(i&&i!=="pending"||e.parentSessionId||e.workItemProjectionId||e.workItemRoleId||e.workItemTurnType||e.pendingRuntimeCheckpointId||e.runtimeControlState&&e.runtimeControlState!=="idle"||(e.progressLog?.length??0)>0||(e.workItemLog?.length??0)>0||e.roleWorkItems&&Object.keys(e.roleWorkItems).length>0||e.executorRoleWorkItems&&Object.keys(e.executorRoleWorkItems).length>0)}function wv(e,t){const i=String(e.execMode??"").trim().toLowerCase().length>0,r=oT(e.execMode);return IV(e)?"org":!i&&r==="task"&&aT(e)?"company":e.execMode??t??"task"}function MC(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function Zc(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const TV=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function DC(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!TV.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function RV({task:e,agents:t,roleLabel:n}){const[i,r]=C.useState(!1),o=e.priority,a=o&&e.priority in fm?fm[o]:null,u=e.assigneeIds.map(p=>t.find(g=>g.agent_id===p)?.name??p).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,h=({label:p,value:g})=>c.jsxs("div",{className:"ctx-info-fact",children:[c.jsx("span",{className:"ctx-info-fact-label",children:p}),c.jsx("span",{className:"ctx-info-fact-value",children:g})]});return c.jsxs("div",{className:"ctx-info-v2",children:[c.jsxs("section",{className:"ctx-info-section",children:[c.jsx("h4",{className:"ctx-info-section-title",children:"Status"}),c.jsxs("div",{className:"ctx-info-card",children:[c.jsxs("div",{className:"ctx-info-status-row",children:[c.jsxs("span",{className:`ctx-info-status-pill status-${e.status}`,children:[c.jsx("span",{className:"ctx-info-status-dot"}),e.status]}),a&&c.jsxs("span",{className:"ctx-info-priority-pill",style:{color:a.color},children:[c.jsx("span",{"aria-hidden":"true",children:a.symbol}),a.label]})]}),e.tags&&e.tags.length>0&&c.jsx("div",{className:"ctx-info-chips",children:e.tags.map(p=>c.jsx("span",{className:"ctx-info-chip",children:p},p))})]})]}),c.jsxs("section",{className:"ctx-info-section",children:[c.jsx("h4",{className:"ctx-info-section-title",children:"People & agent"}),c.jsxs("div",{className:"ctx-info-card",children:[u.length>0&&c.jsx(h,{label:"Assignees",value:c.jsx("div",{className:"ctx-info-chips",children:u.map(p=>c.jsx("span",{className:"ctx-info-chip",children:p},p))})}),n&&c.jsx(h,{label:"Role",value:n}),m&&c.jsx(h,{label:"Employee",value:m}),e.selectedExecutionAgent&&c.jsx(h,{label:"Execution agent",value:c.jsx("span",{className:"ctx-info-mono",children:e.selectedExecutionAgent})})]})]}),c.jsxs("section",{className:"ctx-info-section",children:[c.jsx("h4",{className:"ctx-info-section-title",children:"Timing"}),c.jsx("div",{className:"ctx-info-card",children:c.jsx(h,{label:"Created",value:c.jsx("span",{children:d.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})})]}),c.jsxs("section",{className:"ctx-info-section ctx-info-dev-section",children:[c.jsxs("button",{className:`ctx-info-dev-toggle${i?" expanded":""}`,type:"button",onClick:()=>r(p=>!p),"aria-expanded":i,children:[c.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:c.jsx("path",{d:i?"M3 6l5 5 5-5":"M6 3l5 5-5 5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),c.jsx("span",{children:"Developer details"})]}),i&&c.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&c.jsx(h,{label:"Projection",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),c.jsx(h,{label:"Task ID",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),c.jsx(h,{label:"Channel",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&c.jsx(h,{label:"Session",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function AV({panelState:e,width:t,onResizeMouseDown:n,isResizing:i,activeView:r,activeSession:o,activeTask:a,linkedTaskSession:u,linkedTaskSessionMessages:d,childDetailSession:m,messages:h,childDetailMessages:p,allSessions:g,openSessions:x,openSessionMessages:v,openSessionChildren:b,agents:S,childSessions:w,execMode:k,taskPreferredAgent:j,savedOrgsList:N,activeSavedOrg:z,onSavedOrgsList:I,onSavedOrgLoad:A,canShowAgentsTab:L=!1,channelId:M,channelName:O,secretaryChannelId:T,unreadCounts:$,multiSessionView:G=!1,panelTab:P,onPanelTabChange:F,commsState:V,commsMessage:Y,onCommsRefresh:U,onCommsReadMessage:Q,orgInfoData:W,canShowTeamTab:q=!1,onTeamStopRun:J,onTitleChange:D,onSessionConfigChange:Z,onSessionTaskAgentChange:ie,onContinueInNewChat:ee,onStop:te,onComplete:oe,onResume:le,onResumeTask:he,onStopTask:Ie,onCompleteTask:xe,onLocateOnBoard:je,onBackToParent:Ve,onCloseTaskDetail:We,onOpenChildDetail:Pe,onOpenExecutionPanel:ct,onSelectSessionTab:It,onCloseSessionTab:ut,onToggleMultiSessionView:Bt,onCollapse:ge,onExpand:me,onMaximize:qe,onComposerSend:Ge,onInteractionReply:ht,onSessionSend:ce,onWorkItemClick:we,onWorkItemOpenSession:Oe,onMarkRead:Ue,onSessionMarkRead:Xe,onLoadSessionHistory:bt,isSessionHistoryLoading:St}){const dt=r.kind==="secretary",ke=r.kind==="activity",Je=r.kind==="child-detail",Ke=r.kind==="task-detail",it=AC(o,w.length),He=r.kind==="session"&&o,yn=dt?!0:!!o,on=!Je&&x.length>0,jt=x.length>1,Mt=!!(G&&r.kind==="session"&&o&&jt&&P==="chat"),an=C.useRef(null),Tt=C.useMemo(()=>{const Ne=em(o,g);return tm(o,[...Ne,...w])},[o,w,g]),$t=Tt.displaySession??o,ii=Zc($t),Et=C.useMemo(()=>NS(o,Tt.runtimeSession,Tt.timelineSessions),[o,Tt.runtimeSession,Tt.timelineSessions]),Xn=C.useMemo(()=>_D(o,Tt.runtimeSession,Tt.timelineSessions),[o,Tt.runtimeSession,Tt.timelineSessions]),dn=C.useMemo(()=>TS(Tt.timelineSessions),[Tt.timelineSessions]),tt=C.useMemo(()=>Et?.workItemLog??o?.workItemLog??[],[Et?.workItemLog,o?.workItemLog]),ln=C.useMemo(()=>CS(Et??o,g),[Et,o,g]),Rn=C.useMemo(()=>Et?.roleWorkItems??o?.roleWorkItems,[Et?.roleWorkItems,o?.roleWorkItems]),Dn=C.useMemo(()=>Et?.executorRoleWorkItems??o?.executorRoleWorkItems,[Et?.executorRoleWorkItems,o?.executorRoleWorkItems]),Ut=!!(Rn&&Object.keys(Rn).length>0||Dn&&Object.keys(Dn).length>0),cn=ln.length>0?ln:w,xn=C.useMemo(()=>nm(Tt.timelineSessions),[Tt.timelineSessions]),vt=C.useMemo(()=>Tt.timelineSessions.some(Ne=>St?.(Ne.taskId)??!1),[Tt.timelineSessions,St]),vn=C.useCallback(Ne=>{if(Ne){const Sn=Tt.timelineSessions.find(Ci=>Ci.channelId===Ne.channelId);if(Sn&&ru(Sn,ii)!==!1)return Sn}const wt=Tt.timelineSessions.find(Sn=>ru(Sn,ii)===!0);return wt||($t??o)},[Tt.timelineSessions,ii,$t,o]),Dt=C.useMemo(()=>{if(!m)return;const Ne=m.assigneeIds[0];return Ne?S.find(wt=>wt.agent_id===Ne):void 0},[m,S]),un=u??(()=>{const Ne=Xm(a);return Ne?g.find(wt=>wt.taskId===Ne||wt.runtimeTaskId===Ne||wt.executionTurnId===Ne)??null:null})();C.useEffect(()=>{!Je||!m||an.current?.scrollTo({top:0,behavior:"auto"})},[Je,m?.taskId]);const Hn=o;return e==="collapsed"?c.jsx("div",{className:"ctx-collapse-strip",onClick:()=>me(),title:"Open panel",children:"◀"}):c.jsxs(c.Fragment,{children:[c.jsx("div",{className:`ctx-resize-handle${i?" active":""}`,onMouseDown:n}),c.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:Ke&&a?c.jsx(SV,{task:a,linkedSession:un,linkedSessionMessages:d,agents:S,onBack:We??ge,onOpenLinkedSession:It,onOpenExecutionPanel:ct}):Je&&m?c.jsxs("div",{className:"ctx-child-detail",ref:an,children:[c.jsxs("div",{className:"ctx-child-topbar",children:[c.jsx("button",{className:"ctx-back-btn",onClick:Ve,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&Ie&&c.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>Ie(m.taskId),title:"Stop this agent",children:"Stop"}),m.runtimeControlState==="suspending"&&c.jsx("button",{className:"ctx-child-stop-btn",disabled:!0,title:"Stopping this agent",children:"Stopping..."}),DC(m)&&he&&c.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>he(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),c.jsxs("div",{className:"ctx-child-header",children:[Dt&&c.jsx("div",{className:"ctx-child-avatar",children:Dt.name.charAt(0).toUpperCase()}),c.jsxs("div",{className:"ctx-child-meta",children:[c.jsx("span",{className:"ctx-child-name",children:Dt?.name??m.title}),m.workItemRoleName&&c.jsx("span",{className:"ctx-child-work-item",children:m.workItemRoleName}),!m.workItemRoleName&&m.workItemProjectionId&&c.jsx("span",{className:"ctx-child-work-item",children:m.workItemProjectionId.replace(/_/g," ")})]})]}),m.handoffContext&&c.jsxs("div",{className:"exec-section ctx-child-markdown-section",children:[c.jsxs("div",{className:"exec-section-header",children:[c.jsx(Zf,{}),c.jsx("span",{children:"Received From"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(ki,{content:m.handoffContext})})]}),c.jsxs("div",{className:"ctx-child-transcript",children:[c.jsxs("div",{className:"ctx-child-transcript-header",children:[c.jsx(Sl,{}),c.jsx("span",{children:"Transcript"})]}),c.jsx(cl,{messages:p,channelName:m.title,viewKind:"session",detailMode:"full",agentStatus:m.agentStatus,currentTool:m.currentTool,toolElapsedMs:m.toolElapsedMs,lastToolSummary:m.lastToolSummary,progressLog:m.progressLog,draftAssistantText:m.draftAssistantText,draftUpdatedAt:m.draftUpdatedAt,draftIteration:m.draftIteration,draftTurnId:m.draftTurnId,onMarkRead:Ue,hasOlderHistory:Ey([m],p.length,"full",!fs(m)),totalMessageCount:m.messageCount,onLoadOlderHistory:Ne=>bt?.(m.taskId,Ne,"full"),loadingOlderHistory:St?.(m.taskId)??!1,scrollPolicy:"initial-bottom",scrollScope:m.channelId,showRuntimeProgress:!0,renderUserMarkdown:!0},m.channelId)]}),m.artifacts&&m.artifacts.length>0&&c.jsxs("div",{className:"ctx-child-artifacts",children:[c.jsxs("div",{className:"ctx-child-section-header",children:[c.jsx(Lm,{}),c.jsx("span",{children:"Artifacts"})]}),c.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Ne,wt)=>c.jsx("li",{children:Ne},wt))})]}),m.handoffTo&&c.jsxs("div",{className:"ctx-child-markdown-section ctx-child-passed-to",children:[c.jsxs("div",{className:"ctx-child-section-header",children:[c.jsx(Zf,{}),c.jsx("span",{children:"Passed To"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(ki,{content:m.handoffTo})})]})]}):c.jsxs(c.Fragment,{children:[on&&c.jsxs("div",{className:"ctx-session-strip",children:[c.jsx("div",{className:"ctx-session-strip-scroll",children:x.map(Ne=>{const wt=$?.[Ne.channelId]??0,Sn=o?.taskId===Ne.taskId;return c.jsxs("div",{className:`ctx-session-chip${Sn?" active":""}`,children:[c.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>It?.(Ne.taskId),title:Ne.title,children:[c.jsx("span",{className:`ctx-session-chip-status status-${Ne.status}`}),c.jsx("span",{className:"ctx-session-chip-title",children:Ne.title}),wt>0&&c.jsx("span",{className:"ctx-session-chip-unread",children:wt>99?"99+":wt})]}),c.jsx("button",{className:"ctx-session-chip-close",onClick:()=>ut?.(Ne.taskId),title:"Close tab",children:"×"})]},Ne.taskId)})}),jt&&c.jsx("button",{className:`ctx-session-view-btn${G?" active":""}`,onClick:Bt,children:G?"Single View":"Multi View"})]}),c.jsxs("div",{className:"ctx-header",children:[Mt?c.jsx("span",{className:"ctx-header-title",children:it?"Open Runtime Sessions":"Open Sessions"}):He?c.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[c.jsx("button",{role:"tab","aria-selected":P==="chat",className:`ctx-tab${P==="chat"?" active":""}`,onClick:()=>F("chat"),children:"Chat"}),L&&c.jsx("button",{role:"tab","aria-selected":P==="agents",className:`ctx-tab${P==="agents"?" active":""}`,onClick:()=>F("agents"),children:"Agents"}),c.jsx("button",{role:"tab","aria-selected":P==="info",className:`ctx-tab${P==="info"?" active":""}`,onClick:()=>F("info"),children:"Info"}),U&&c.jsx("button",{role:"tab","aria-selected":P==="comms",className:`ctx-tab${P==="comms"?" active":""}`,onClick:()=>F("comms"),children:"Comms"}),q&&c.jsx("button",{role:"tab","aria-selected":P==="team",className:`ctx-tab${P==="team"?" active":""}`,onClick:()=>F("team"),children:"Team"})]}):dt?c.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Secretary"}):c.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Activity"}),c.jsxs("div",{className:"ctx-header-actions",children:[e==="open"&&c.jsx("button",{onClick:qe,title:"Maximize",children:c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:c.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"})})}),e==="maximized"&&c.jsx("button",{onClick:me,title:"Restore",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[c.jsx("rect",{x:"1",y:"3",width:"8",height:"8",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),c.jsx("path",{d:"M5 3V1.5A.5.5 0 015.5 1H12.5a.5.5 0 01.5.5V8.5a.5.5 0 01-.5.5H11",stroke:"currentColor",strokeWidth:"1.3"})]})}),c.jsx("button",{onClick:ge,title:"Close panel",children:c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:c.jsx("path",{d:"M3 3l8 8M11 3l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})})]})]}),c.jsxs("div",{className:"ctx-body",children:[!o&&!dt&&!ke&&c.jsxs("div",{className:"ctx-empty",children:[c.jsx("span",{className:"ctx-empty-icon",children:"📋"}),c.jsx("span",{children:it?"Select a Work Item to see details":"Select a task to see details"})]}),Mt&&c.jsx("div",{className:"ctx-multi-grid",children:x.map(Ne=>{const wt=v[Ne.taskId]??[],Sn=b[Ne.taskId]??[],Ci=em(Ne,g),pn=tm(Ne,[...Ci,...Sn]),kt=NS(Ne,pn.runtimeSession,pn.timelineSessions),ri=CS(kt??Ne,g),zn=kt?.roleWorkItems??Ne.roleWorkItems,si=RC(zn,Sn)??0,hn=Ne.assigneeIds.map(bn=>S.find(Vn=>Vn.agent_id===bn)?.name??bn).filter(Boolean),qt=CV(kt??Ne,si),Ht=AC(Ne,Sn.length),Xt=pn.displaySession??Ne,Kn=TS(pn.timelineSessions),Fn=nm(pn.timelineSessions),Yn=Ny(kt??Xt,Math.max(Fn,wt.length)),vi=pn.timelineSessions.some(bn=>St?.(bn.taskId)??!1);return c.jsxs("section",{className:`ctx-multi-card${o?.taskId===Ne.taskId?" focused":""}`,children:[c.jsxs("div",{className:"ctx-multi-card-header",children:[c.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>It?.(Ne.taskId),title:"Focus session",children:[c.jsx("span",{className:`ctx-multi-card-status status-${Ne.status}`}),c.jsx("span",{className:"ctx-multi-card-title",children:Ne.title})]}),c.jsxs("div",{className:"ctx-multi-card-actions",children:[((kt??Ne).canStop??(kt??Ne).status==="running")&&(kt??Ne).runtimeControlState!=="suspending"&&Ie&&c.jsx("button",{onClick:()=>Ie(pn.runtimeSession?.taskId??Ne.taskId),children:"Stop"}),(kt??Ne).runtimeControlState==="suspending"&&c.jsx("button",{disabled:!0,children:"Stopping..."}),DC(kt??Ne)&&he&&c.jsx("button",{onClick:()=>he(Ne.taskId),children:"Continue"}),(kt??Ne).status!=="done"&&(kt??Ne).status!=="cancelled"&&xe&&c.jsx("button",{onClick:()=>xe(Ne.taskId),children:"Done"}),c.jsx("button",{onClick:()=>It?.(Ne.taskId),children:"Focus"}),c.jsx("button",{onClick:()=>ut?.(Ne.taskId),title:"Close tab",children:"×"})]})]}),c.jsxs("div",{className:"ctx-multi-card-meta",children:[c.jsx("span",{children:NV(Ne)}),c.jsx("span",{children:Ne.status}),qt&&c.jsx("span",{children:qt}),hn.length>0&&c.jsx("span",{children:hn.join(", ")}),c.jsx("span",{children:wV(Ne.updatedAt)})]}),c.jsx("div",{className:"ctx-multi-card-body",children:c.jsx(cl,{messages:wt,channelName:Xt?.title??Ne.title,viewKind:"session",detailMode:Zc(Xt),agentStatus:Ht?void 0:kt?.agentStatus??Xt?.agentStatus,currentTool:Ht?void 0:kt?.currentTool??Xt?.currentTool,toolElapsedMs:Ht?void 0:kt?.toolElapsedMs??Xt?.toolElapsedMs,lastToolSummary:Ht?void 0:kt?.lastToolSummary??Xt?.lastToolSummary,progressLog:Ht?void 0:Kn,draftAssistantText:Ht?void 0:kt?.draftAssistantText??Xt?.draftAssistantText,draftUpdatedAt:Ht?void 0:kt?.draftUpdatedAt??Xt?.draftUpdatedAt,draftIteration:Ht?void 0:kt?.draftIteration??Xt?.draftIteration,draftTurnId:Ht?void 0:kt?.draftTurnId??Xt?.draftTurnId,isCompanyRuntime:Ht,workItemLog:kt?.workItemLog??Ne.workItemLog,childSessions:ri,showWorkItemRuntimeCard:!Ht,onInteractionReply:(bn,Vn,En)=>ht(bn,Ne.taskId,En),onWorkItemClick:we,onWorkItemOpenSession:Oe,onMarkRead:()=>Xe?.(Ne.taskId),scrollScope:Ne.channelId,hasOlderHistory:Ey(pn.timelineSessions,wt.length,Zc(Xt??Ne),!pn.timelineSessions.some(fs)),totalMessageCount:Fn,onLoadOlderHistory:bn=>{const Vn=Zc(Xt??Ne),En=pn.timelineSessions.find(On=>On.channelId===bn?.channelId),zi=(En&&ru(En,Vn)!==!1?En:void 0)??pn.timelineSessions.find(On=>ru(On,Vn)===!0)??Xt??Ne;return bt?.(zi.taskId,bn,Vn)},loadingOlderHistory:vi,showRuntimeProgress:Zc(Xt)==="full"},Xt?.channelId??Ne.channelId)}),c.jsx(wy,{disabled:!1,channelId:kt?.channelId??Ne.channelId,execMode:wv(Ne,k),companyProfile:Ne.companyProfile,taskPreferredAgent:MC(Ne,Yn,j),agentStatus:kt?.agentStatus??Xt?.agentStatus,currentTool:kt?.currentTool??Xt?.currentTool,displayTool:kt?.displayTool??Xt?.displayTool,activeAgentCount:si||void 0,runtimeControlState:(kt??Xt)?.runtimeControlState,canStop:(kt??Xt)?.canStop,savedOrgs:N??null,activeSavedOrg:z??null,selectedOrgId:Ne.orgId??z??null,lockedMode:Yn,autoFocus:!1,contextTokens:kt?.contextTokens??Xt?.contextTokens,contextWindow:kt?.contextWindow??Xt?.contextWindow,contextRemainingPct:kt?.contextRemainingPct??Xt?.contextRemainingPct??100,onSend:(bn,Vn)=>ce?.(Ne.taskId,bn,Vn),onModeChange:(bn,Vn,En)=>Z?.(Ne.taskId,bn,Vn,En),onTaskAgentChange:bn=>ie?.(Ne.taskId,bn),onContinueInNewChat:ee,onSavedOrgsRefresh:I,onSavedOrgLoad:A,onStop:()=>Ie?.(pn.runtimeSession?.taskId??Ne.taskId)},kt?.channelId??Ne.channelId)]},Ne.taskId)})}),ke&&c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{padding:"8px 12px",fontSize:12,color:"var(--text-secondary)",borderBottom:"1px solid var(--border)"},children:"Recent activity across all sessions"}),c.jsx(cl,{messages:h,channelName:"Activity",viewKind:"activity",detailMode:"summary",onInteractionReply:ht,onMarkRead:Ue,scrollScope:M},M)]}),dt&&c.jsxs(c.Fragment,{children:[c.jsx(cl,{messages:h,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onInteractionReply:ht,onMarkRead:Ue,scrollScope:T},T),c.jsx(wy,{disabled:!1,channelId:T,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:Ge},T)]}),o&&!dt&&!ke&&!Mt&&P==="chat"&&c.jsxs(c.Fragment,{children:[c.jsx(b8,{session:Xn??o,agents:S,onTitleChange:D,onViewOnBoard:je?()=>je(o.taskId):void 0,onStop:te,onComplete:(Xn??o).status!=="done"&&(Xn??o).status!=="cancelled"?oe:void 0,onResume:le}),it&&c.jsx("div",{className:"ctx-work-item-progress",children:c.jsx(tT,{workItemLog:tt,roleWorkItems:Rn,executorRoleWorkItems:Dn,childSessions:ln,isCompanyRuntime:it,onWorkItemClick:we})}),c.jsx(cl,{messages:h,channelName:O,viewKind:"session",detailMode:ii,agentStatus:it?void 0:Et?.agentStatus??$t?.agentStatus,currentTool:it?void 0:Et?.currentTool??$t?.currentTool,toolElapsedMs:it?void 0:Et?.toolElapsedMs??$t?.toolElapsedMs,lastToolSummary:it?void 0:Et?.lastToolSummary??$t?.lastToolSummary,progressLog:it?void 0:dn,draftAssistantText:it?void 0:Et?.draftAssistantText??$t?.draftAssistantText,draftUpdatedAt:it?void 0:Et?.draftUpdatedAt??$t?.draftUpdatedAt,draftIteration:it?void 0:Et?.draftIteration??$t?.draftIteration,draftTurnId:it?void 0:Et?.draftTurnId??$t?.draftTurnId,isCompanyRuntime:it,workItemLog:tt,roleWorkItems:Rn,executorRoleWorkItems:Dn,childSessions:ln,onInteractionReply:ht,onWorkItemClick:we,onWorkItemOpenSession:Oe,onMarkRead:Ue,scrollScope:M,hasOlderHistory:Ey(Tt.timelineSessions,h.length,ii,!Tt.timelineSessions.some(fs)),totalMessageCount:xn,onLoadOlderHistory:Ne=>{const wt=vn(Ne);if(wt)return bt?.(wt.taskId,Ne,ii)},loadingOlderHistory:vt,showWorkItemRuntimeCard:!1,showRuntimeProgress:ii==="full"},M),c.jsx(wy,{disabled:!yn,channelId:Et?.channelId??M,execMode:wv(o,k),companyProfile:o.companyProfile,taskPreferredAgent:MC(o,Ny(Et??$t??o,Math.max(xn,h.length)),j),agentStatus:Et?.agentStatus??$t?.agentStatus,currentTool:Et?.currentTool??$t?.currentTool,displayTool:Et?.displayTool??$t?.displayTool,runtimeControlState:(Et??$t)?.runtimeControlState,canStop:(Et??$t)?.canStop,savedOrgs:N??null,activeSavedOrg:z??null,selectedOrgId:o.orgId??z??null,lockedMode:Ny(Et??$t??o,Math.max(xn,h.length)),activeAgentCount:RC(Rn,cn),contextTokens:Et?.contextTokens??$t?.contextTokens,contextWindow:Et?.contextWindow??$t?.contextWindow,contextRemainingPct:Et?.contextRemainingPct??$t?.contextRemainingPct??100,onSend:Ge,onModeChange:(Ne,wt,Sn)=>Z?.(o.taskId,Ne,wt,Sn),onTaskAgentChange:Ne=>ie?.(o.taskId,Ne),onContinueInNewChat:ee,onSavedOrgsRefresh:I,onSavedOrgLoad:A,onStop:te},Et?.channelId??M)]}),o&&!dt&&!Mt&&P==="agents"&&L&&(cn.length>0||Ut?c.jsx(kV,{sessions:cn,roleWorkItems:Rn,isCompanyRuntime:it,agents:S,onOpenChildDetail:Pe,onOpenExecutionPanel:ct}):c.jsxs("div",{className:"ctx-empty",children:[c.jsx("span",{className:"ctx-empty-icon",children:"🧠"}),c.jsx("span",{children:"No child agents have started for this session yet"})]})),o&&!dt&&!Mt&&P==="info"&&Hn&&c.jsx(RV,{task:Hn,agents:S,roleLabel:Nl(Hn)}),P==="comms"&&U&&Q&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(f8,{state:V??null,message:Y??null,onRefresh:U,onReadMessage:Q,embedded:!0})}),P==="team"&&q&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(y8,{orgInfoData:W??null,commsState:V??null,onStopRun:J,embedded:!0})})]})]})})]})}function MV({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:i}){const[r,o]=C.useState(e),[a,u]=C.useState(!1),d=C.useRef(0),m=C.useRef(0),h=C.useRef(e);h.current=r;const p=C.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=h.current,u(!0)},[]);return C.useEffect(()=>{if(!a)return;const g=v=>{const b=d.current-v.clientX,S=m.current+b;if(S{u(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",x),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",x)}},[a,t,n,i]),{width:r,isResizing:a,handleMouseDown:p}}const DV=200;function Iy(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function OV(e,t,n,i){const r=i??((b,S)=>({"workspace.confirmNoRoles":`Your org has no roles defined. + +Set up at least one role before running a task. + +Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. + +Choose one final decider in the Org tab before running a task. + +Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: + +{warnings} + +Run anyway?`}[b]??b).replace(/\{(\w+)\}/g,(j,N)=>String(S?.[N]??`{${N}}`)));if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:o,employees:a}=t,u=Km(t),d=t.top_level_role_ids??[],m=t.final_decider_role_id??"";if(o.length===0)return confirm(r("workspace.confirmNoRoles"))&&n?.(),!1;if(d.length>1&&!m)return confirm(r("workspace.confirmNoDecider"))&&n?.(),!1;const h=[],p=new Set(o.map(b=>b.role_id));u.runtimeTeams.filter(b=>b.member_role_ids.some(S=>p.has(S))||b.manager_role_id&&p.has(b.manager_role_id)).length===0&&h.push(r("workspace.warningNoTeams"));const x=new Set(a.map(b=>b.role_id)),v=o.filter(b=>!x.has(b.role_id));if(v.length>0){const b=v.map(S=>S.name).join(", ");h.push(r("workspace.warningVacantRoles",{count:v.length,names:b}))}return h.length>0?confirm(r("workspace.confirmWarnings",{warnings:h.map(b=>"• "+b).join(` +`)})):!0}function LV(e){if(!e)return!1;const t=Km(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function zV(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function Ty(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems||n==="company"||n==="org"||n==="custom"}function OC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function PV({boardColor:e,title:t,onCommit:n}){const{t:i}=Kr(),[r,o]=C.useState(!1),[a,u]=C.useState(t),d=C.useRef(null);C.useEffect(()=>{r||u(t)},[t,r]);const m=C.useCallback(()=>{const p=a.trim();p&&p!==t?n(p):u(t),o(!1)},[a,t,n]),h=C.useCallback(()=>{u(t),o(!0),setTimeout(()=>d.current?.select(),0)},[t]);return c.jsx("div",{className:"board-selector",children:c.jsx("div",{className:"board-tabs",children:c.jsxs("span",{className:"board-tab active board-tab-editable",style:{"--board-color":e},children:[c.jsx("span",{className:"board-tab-dot",style:{background:e}}),r?c.jsx("input",{ref:d,className:"board-tab-title-input",value:a,onChange:p=>u(p.target.value),onBlur:m,onKeyDown:p=>{p.key==="Enter"&&m(),p.key==="Escape"&&(u(t),o(!1))}}):c.jsx("span",{className:"board-tab-title",onClick:h,title:i("workspace.clickEditTitle"),children:t})]})})})}function BV({boardStore:e,agents:t,officeMap:n,execMode:i,companyProfile:r,taskPreferredAgent:o,chatStore:a,sessionStore:u,projectId:d,onRunTask:m,onCreateTask:h,onMoveTask:p,onCreateSession:g,onSessionSend:x,onInteractionReply:v,onSecretarySend:b,onDeleteSession:S,onTitleChange:w,onSessionConfigChange:k,onSessionTaskAgentChange:j,onContinueInNewChat:N,onSessionStop:z,onSessionResume:I,onSessionComplete:A,onLoadSessionDetail:L,onOpenExecutionPanel:M,onCollabSync:O,orgInfoData:T,onNavigateToOrg:$,commsState:G,commsMessage:P,onCommsRefresh:F,onCommsReadMessage:V,savedOrgsList:Y,activeSavedOrg:U,onSavedOrgsList:Q,onSavedOrgLoad:W}){const{t:q}=Kr(),{sessions:J,activeSessionId:D,activeSession:Z}=u,{markRead:ie}=a,[ee,te]=C.useState("collapsed"),{width:oe,isResizing:le,handleMouseDown:he}=MV({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>te("collapsed")}),[Ie,xe]=C.useState("chat"),[je,Ve]=C.useState(null),[We,Pe]=C.useState({kind:"activity"}),[ct,It]=C.useState([]),[ut,Bt]=C.useState(!1),[ge,me]=C.useState({}),qe=C.useRef(L),Ge=C.useRef(J),ht=C.useRef(a.getChannelMessages),ce=C.useRef({scope:null,active:new Set,child:null}),we=C.useRef(new Set),Oe=C.useRef(0);Ge.current=J,ht.current=a.getChannelMessages;const Ue=i==="company"||i==="org"||i==="custom",Xe=`secretary:${d}`,bt=`activity:${d}`,St=C.useMemo(()=>je?J.find(ue=>ue.taskId===je)??null:null,[J,je]),dt=C.useMemo(()=>We.kind!=="task-detail"?null:e.tasks.find(ue=>ue.id===We.taskId)??null,[We,e.tasks]),ke=C.useMemo(()=>{const ue=Xm(dt);return ue?J.find(be=>be.taskId===ue||be.runtimeTaskId===ue||be.executionTurnId===ue)??null:null},[J,dt]),Je=C.useMemo(()=>ke?a.getChannelMessages(ke.channelId):[],[a.messages,a.getChannelMessages,ke]),Ke=C.useMemo(()=>Bf(Z,J),[J,Z]),it=C.useMemo(()=>em(Z,J),[J,Z]),He=C.useMemo(()=>tm(Z,[...it,...Ke]),[Z,Ke,it]);C.useEffect(()=>{qe.current=L},[L]);const yn=C.useCallback((ue,be,Me="summary")=>{const ft=qe.current;if(!ft||!ue)return;const Ot=Oe.current,Ce=Ge.current.find(Ze=>Ze.taskId===ue)?.channelId,De=be&&Ce&&be.channelId!==Ce?ht.current(Ce).find(Ze=>e0(Ze,Me)):be,Be=[Ot,ue,Me,De?.timestamp??"latest",De?.id??""].join("|");if(we.current.has(Be))return;we.current.add(Be),me(Ze=>Ze[ue]?Ze:{...Ze,[ue]:!0});let _t;try{_t=ft(ue,{limit:DV,beforeCreatedAt:De?.timestamp,beforeMessageId:De?.id,detailLevel:Me})}catch{we.current.delete(Be),Oe.current===Ot&&(me(Ye=>Ye[ue]?{...Ye,[ue]:!1}:Ye),ce.current.active.delete(`${ue}:${Me}`),ce.current.child===ue&&(ce.current.child=null));return}return Promise.resolve(_t).catch(()=>{Oe.current===Ot&&(ce.current.active.delete(`${ue}:${Me}`),ce.current.child===ue&&(ce.current.child=null))}).finally(()=>{if(we.current.delete(Be),Oe.current!==Ot)return;const Ze=`${Ot}|${ue}|`;[...we.current.keys()].some(Ft=>Ft.startsWith(Ze))||me(Ft=>Ft[ue]?{...Ft,[ue]:!1}:Ft)})},[]),on=C.useCallback(ue=>!!ge[ue],[ge]);C.useLayoutEffect(()=>{Oe.current+=1,we.current.clear(),ce.current={scope:null,active:new Set,child:null},me({})},[d]),C.useEffect(()=>()=>{Oe.current+=1,we.current.clear()},[]),C.useEffect(()=>{je&&!St&&Ve(null)},[je,St]),C.useEffect(()=>{We.kind==="task-detail"&&!dt&&Pe({kind:"activity"})},[We,dt]);const jt=C.useRef(null);C.useEffect(()=>{if(!ke){jt.current=null;return}jt.current!==ke.taskId&&(jt.current=ke.taskId,yn(ke.taskId,void 0,"full"))},[ke,yn]),C.useEffect(()=>{if(!je){ce.current.child=null;return}ce.current.child!==je&&(ce.current.child=je,yn(je,void 0,"full"))},[je,yn]),C.useEffect(()=>{if(!D){ce.current.scope=null,ce.current.active.clear();return}ce.current.scope!==D&&(ce.current.scope=D,ce.current.active.clear());const ue=He.timelineSessions.length>0?He.timelineSessions:J.find(be=>be.taskId===D)?[J.find(be=>be.taskId===D)]:[];if(ue.length===0){ce.current.active.clear();return}for(const be of ue){const Me=Ty(Z,Ke.length)?"summary":zV(be),ft=`${be.taskId}:${Me}`;ce.current.active.has(ft)||(ce.current.active.add(ft),yn(be.taskId,void 0,Me))}},[He.timelineSessions,Z,D,Ke.length,yn,J]);const Mt=C.useMemo(()=>je?{kind:"child-detail"}:We.kind==="task-detail"||We.kind==="secretary"?We:D?{kind:"session",taskId:D}:{kind:"activity"},[We,D,je]),an=C.useMemo(()=>Mt.kind==="secretary"?Xe:Mt.kind==="child-detail"&&St?St.channelId:Mt.kind==="session"&&He.displaySession?He.displaySession.channelId:Mt.kind==="session"&&Z?Z.channelId:bt,[Mt,He.displaySession,Z,St,Xe,bt]),Tt=C.useMemo(()=>{if(Mt.kind==="activity")return[bt];if(Mt.kind==="secretary")return[Xe];if(Mt.kind==="child-detail"&&St)return[St.channelId];if(Mt.kind==="session"){const ue=He.timelineSessions.map(be=>be.channelId).filter((be,Me,ft)=>!!be&&ft.indexOf(be)===Me);if(ue.length>0)return ue}return an?[an]:[]},[Mt.kind,He.timelineSessions,St,bt,Xe,an]),$t=C.useMemo(()=>{const ue=new Set;for(const be of J)be.status!=="cancelled"&&ue.add(be.channelId);return ue.add(bt),ue.add(Xe),ue},[J,bt,Xe]),ii=C.useMemo(()=>{if(Mt.kind==="activity")return a.messages.filter(ue=>ue.sender!=="user"&&$t.has(ue.channelId)).sort((ue,be)=>be.timestamp-ue.timestamp).slice(0,50).reverse();if(Mt.kind==="session"&&Tt.length>1){const ue=Tt.map(be=>a.getChannelMessages(be));return Ty(Z,Ke.length)&&Z?IS(ue.flat(),Z.channelId):tv(ue)}return a.getChannelMessages(an)},[a.messages,a.getChannelMessages,an,Mt.kind,$t,Z,Ke.length,Tt]),Et=C.useMemo(()=>St?a.getChannelMessages(St.channelId):[],[a.messages,a.getChannelMessages,St]),Xn=C.useMemo(()=>[...Ue?J.filter(be=>be.mode!=="child"):J].sort((be,Me)=>Me.updatedAt-be.updatedAt),[J,Ue]),dn=C.useMemo(()=>{if(!Ue)return null;const ue=new Set;for(const be of J)be.mode==="child"&&ue.add(be.taskId);return ue.size>0?ue:null},[J,Ue]),tt=C.useMemo(()=>{if(!dn)return e.tasksByColumn;const ue={};for(const[be,Me]of Object.entries(e.tasksByColumn))ue[be]=Me.filter(ft=>!dn.has(ft.id));return ue},[e.tasksByColumn,dn]),ln=!!(Z&&(Z.isCompanyRuntime||Ke.length>0)),Rn=!!(Z&&(Ue||ln)),Dn=!!(Z&&Ue&&LV(T));C.useEffect(()=>{Ie==="agents"&&!Rn&&xe("chat"),Ie==="comms"&&!F&&xe("chat"),Ie==="team"&&!Dn&&xe("chat")},[Ie,Rn,Dn,F]);const Ut=C.useMemo(()=>{const ue={};for(const be of J)ue[be.channelId]=a.getUnreadCount(be.channelId);return ue[Xe]=a.getUnreadCount(Xe),ue},[J,a.getUnreadCount,Xe]),cn=C.useMemo(()=>ct.map(ue=>J.find(be=>be.taskId===ue)).filter(ue=>!!ue&&ue.mode!=="child"),[ct,J]),xn=C.useMemo(()=>{const ue={};for(const be of cn){const Me=Bf(be,J),ft=em(be,J),pe=tm(be,[...ft,...Me]).timelineSessions.map(Ce=>a.getChannelMessages(Ce.channelId));ue[be.taskId]=Ty(be,Me.length)?IS(pe.flat(),be.channelId):tv(pe)}return ue},[cn,J,a.getChannelMessages]),vt=C.useMemo(()=>{const ue={};for(const be of cn)ue[be.taskId]=Bf(be,J);return ue},[cn,J]),vn=C.useCallback(ue=>{It(be=>be.includes(ue)?be:[...be,ue])},[]),Dt=C.useRef(null);C.useEffect(()=>{D&&!Dt.current&&ee==="collapsed"&&(te("open"),xe("chat")),Dt.current=D},[D,ee]),C.useEffect(()=>{D&&vn(D)},[D,vn]),C.useEffect(()=>{const ue=new Set(J.map(be=>be.taskId));It(be=>be.filter(Me=>ue.has(Me))),me(be=>Object.fromEntries(Object.entries(be).filter(([Me])=>ue.has(Me))))},[J]),C.useEffect(()=>{ut&&cn.length<2&&Bt(!1)},[ut,cn.length]),C.useEffect(()=>{const ue=be=>{if(be.key==="Escape"&&ee!=="collapsed"){const Me=be.target?.tagName;if(Me==="INPUT"||Me==="TEXTAREA"||Me==="SELECT")return;te("collapsed")}};return document.addEventListener("keydown",ue),()=>document.removeEventListener("keydown",ue)},[ee]);const un=C.useCallback(()=>{for(const ue of Tt)ie(ue)},[Tt,ie]),Hn=C.useCallback(ue=>{const be=J.find(Me=>Me.taskId===ue);be&&ie(be.channelId)},[J,ie]),Ne=C.useCallback(ue=>{J.find(Me=>Me.taskId===ue)&&(vn(ue),u.setActiveSession(ue),Pe({kind:"session",taskId:ue}),te("open"),xe("chat"),Ve(null))},[J,vn,u]),wt=C.useCallback(ue=>{const be=ct.filter(ft=>ft!==ue);if(It(be),je===ue&&Ve(null),D!==ue)return;const Me=be[be.length-1]??null;if(u.setActiveSession(Me),Me){Pe({kind:"session",taskId:Me}),xe("chat");return}Pe({kind:"activity"})},[ct,je,D,u]),Sn=C.useCallback(ue=>{if(!ue){Pe({kind:"activity"}),u.setActiveSession(null),Ve(null);return}const be=J.find(Me=>Me.taskId===ue);if(Ue&&be?.mode==="child"){Ve(ue),te("open");return}Ne(ue)},[J,u,Ue,Ne]),Ci=C.useCallback(()=>{Pe({kind:"secretary"}),u.setActiveSession(null),Ve(null),te("open")},[u]),pn=C.useCallback(ue=>{const be=e.tasks.find(ft=>ft.id===ue.id);if(Ue&&be){Ve(null),Pe({kind:"task-detail",taskId:be.id}),te("open"),xe("info");return}J.find(ft=>ft.taskId===ue.id)?Ne(ue.id):be&&be.phase!=="cancelled"&&(u.createSession({projectId:d,taskId:be.id,channelId:`session:${be.id}`,sessionId:be.sessionId,title:be.title,status:"pending",columnId:be.columnId,execMode:i,companyProfile:r,assigneeIds:be.assigneeIds,priority:be.priority,tags:be.tags,selectedExecutionAgent:be.selectedExecutionAgent,createdAt:be.createdAt,updatedAt:be.updatedAt,messageCount:0,progressLog:[]}),vn(ue.id),u.setActiveSession(ue.id),Pe({kind:"session",taskId:ue.id}),te("open"),xe("chat"),O?.())},[J,e.tasks,u,Ne,vn,O,Ue]),kt=C.useCallback(ue=>{if(!e.activeBoardId)return;const be=e.activeBoardColumns.find(ft=>ft.name==="Todo");if(!be)return;const Me=e.createTask({boardId:e.activeBoardId,columnId:be.id,title:ue});h(ue,e.activeBoardId,be.id,Me.id)},[e,h]),ri=C.useCallback(ue=>{e.setActiveBoard(ue);const be=J.find(Me=>Me.mode!=="child"&&OC(Me)===ue);if(be){Ne(be.taskId);return}Ve(null),Pe({kind:"activity"}),u.setActiveSession(null)},[e,J,Ne,u]),zn=C.useMemo(()=>new Set(e.boards.map(ue=>ue.id)),[e.boards]);C.useEffect(()=>{if(Ue){const ue=dt?.boardId??OC(Z)??null;if(!ue||!zn.has(ue)){e.activeBoardId!==null&&e.setActiveBoard(null);return}e.activeBoardId!==ue&&e.setActiveBoard(ue);return}e.boards.length>0&&!e.activeBoardId&&e.setActiveBoard(e.boards[0].id)},[Ue,dt?.boardId,Z,zn,e.activeBoardId,e.boards,e.setActiveBoard]);const si=C.useCallback(ue=>{const be=e.tasks.find(De=>De.id===ue);if(!be)return;const Me=J.find(De=>De.taskId===ue),ft=Me?.execMode??i,Ot=Me?.companyProfile??r,pe=ft==="org"||ft==="custom"?"custom":ft==="company"?Ot:void 0;if(!OV(ft,T,$,q))return;m(ue,be.title,be.description??"",ft,pe);const Ce=e.activeBoardColumns.find(De=>De.name==="In Progress");Ce&&e.moveTask(ue,Ce.id,0)},[e,m,J,i,r,T,$,q]),hn=C.useCallback((ue,be,Me,ft)=>{k?.(ue,be,Me,ft)},[k]),qt=C.useCallback(ue=>{ee==="maximized"&&te("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${ue}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[ee]),Ht=C.useCallback(()=>{const be=(He.runtimeSession??He.displaySession??Z)?.taskId??D;be&&z?.(be)},[He.runtimeSession,He.displaySession,Z,D,z]),Xt=C.useCallback(()=>{je||D&&A?.(D)},[D,je,A]),Kn=C.useCallback(ue=>{z?.(ue)},[z]),Fn=C.useCallback(()=>{const ue=He.runtimeSession??He.displaySession??Z,be=D??ue?.taskId,Me=ue?.resumeParentSessionId??ue?.parentSessionId??ue?.sessionId;be&&I?.(be,Me,ue?.pendingRuntimeCheckpointId)},[He.runtimeSession,He.displaySession,Z,D,I]),Yn=C.useCallback(ue=>{const be=J.find(ft=>ft.taskId===ue),Me=be?.resumeParentSessionId??be?.parentSessionId??be?.sessionId;I?.(ue,Me,be?.pendingRuntimeCheckpointId)},[J,I]),vi=C.useCallback(ue=>{A?.(ue)},[A]),bn=C.useCallback(()=>{if(!ut&&Mt.kind!=="session"){const ue=D??cn[cn.length-1]?.taskId??null;ue&&Ne(ue)}Bt(ue=>!ue)},[ut,Mt.kind,D,cn,Ne]),Vn=C.useCallback((ue,be,Me,ft)=>{const Ot=ft?.ui_message_id?ft:{...ft??{},ui_message_id:Iy()};x(ue,be,Me,Ot)},[x]),En=C.useCallback((ue,be)=>{if(Mt.kind==="secretary"){b?.(ue);return}const Me=D;if(!Me)return;const ft=Iy(),Ot={ui_message_id:ft},pe=He.displaySession??Z;a.sendMessage({channelId:pe?.channelId??`session:${Me}`,sender:"user",senderName:"You",content:ue,metadata:{ui_message_id:ft}}),Vn(Me,ue,be,Ot)},[Mt.kind,D,He.displaySession,Z,a,Vn,b]),zi=C.useCallback(async(ue,be,Me)=>{const ft=String(Me?.response_to_checkpoint_id??"").trim(),Ot=String(Me?.response_to_checkpoint_type??"").trim(),pe=String(Me?.interaction_requester_session_id??"").trim(),Ce=String(Me?.interaction_requester_task_id??"").trim(),De=pe?Ce||void 0:Ce||be||D||void 0,Be=J.find(Ft=>Ft.taskId===De),_t=pe||Be?.sessionId,Ze=Me?.ui_message_id||Iy();if(!ft||!Ot||!De&&!_t)return{ok:!1,accepted:!1,error:"invalid_interaction_reply",checkpoint_id:ft,checkpoint_type:Ot,client_request_id:Ze};const Ye={text:ue,...Me?.interaction_option_id?{option_id:Me.interaction_option_id}:{},...Me?.interaction_option_label?{option_label:Me.interaction_option_label}:{},...Me?.checkpoint_reply_kind?{checkpoint_reply_kind:Me.checkpoint_reply_kind}:{},...Me?.self_evolution_trigger!==void 0?{self_evolution_trigger:Me.self_evolution_trigger}:{},...Me?.human_feedback_text!==void 0?{human_feedback_text:Me.human_feedback_text}:{},...Me?.recruitment_role_agents?{recruitment_role_agents:Me.recruitment_role_agents}:{},...Me?.recruitment_agent?{recruitment_agent:Me.recruitment_agent}:{},...Me?.staffing_action?{staffing_action:Me.staffing_action}:{},...Me?.staffing_selections?{staffing_selections:Me.staffing_selections}:{},...Me?.user_input_answers?{user_input_answers:Me.user_input_answers}:{}};return v({checkpointId:ft,checkpointType:Ot,clientRequestId:Ze,requesterTaskId:De,requesterSessionId:_t,decision:Ye})},[D,v,J]),On=C.useCallback(ue=>{const be=J.find(Me=>Me.taskId===ue||Me.runtimeTaskId===ue||Me.executionTurnId===ue);be&&(Ve(be.taskId),te("open"),xe("chat"))},[J]),wn=C.useCallback(ue=>{if(M){M(ue);return}On(ue)},[On,M]),nt=Mt.kind==="secretary",Mr=nt?q("workspace.channel.secretary"):Z?Z.title:q("workspace.channel.activity");return c.jsxs("div",{className:`workspace-page${ee==="maximized"?" panel-maximized":""}`,children:[c.jsx(AD,{sessions:Xn,activeSessionId:nt?null:D,activeChannel:nt?Xe:null,secretaryChannelId:Xe,unreadCounts:Ut,onSelect:Sn,onCreateSession:g,onDeleteSession:S,onSelectSecretary:b?Ci:void 0}),ee!=="maximized"&&c.jsxs("div",{className:"workspace-board",children:[t.length>0&&c.jsx(n8,{agents:t,tasks:e.tasks}),Ue?e.activeBoard&&Z&&c.jsx(PV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:ue=>w(Z.taskId,ue)},Z.taskId):e.boards.length>1&&c.jsx(i8,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:ri}),Ue&&!e.activeBoard?c.jsx("div",{className:"kanban-empty-state",children:c.jsx("p",{children:q("workspace.selectRuntimeSession")})}):c.jsxs(c.Fragment,{children:[c.jsx(t8,{columns:e.activeBoardColumns,tasksByColumn:tt,agents:t,officeMap:n,store:e,companyMode:Ue,selectedTaskId:Mt.kind==="task-detail"?Mt.taskId:D,onCardClick:pn,onStartTask:si,onQuickCreate:kt,onMoveTask:p}),Ue&&e.activeBoard&&e.tasks.filter(ue=>ue.boardId===e.activeBoardId).length===0&&c.jsx("div",{className:"kanban-empty-state kanban-empty-state-inline",children:c.jsx("p",{children:q("workspace.noWorkItems")})})]})]}),c.jsx(AV,{panelState:ee,width:oe,onResizeMouseDown:he,isResizing:le,activeView:Mt,activeSession:Z,activeTask:dt,linkedTaskSession:ke,linkedTaskSessionMessages:Je,childDetailSession:St,messages:ii,childDetailMessages:Et,allSessions:J,openSessions:cn,openSessionMessages:xn,openSessionChildren:vt,agents:t,childSessions:Ke,execMode:i,taskPreferredAgent:o,savedOrgsList:Y??null,activeSavedOrg:U??null,onSavedOrgsList:Q,onSavedOrgLoad:W,canShowAgentsTab:Rn,channelId:an,channelName:Mr,secretaryChannelId:Xe,unreadCounts:Ut,multiSessionView:ut,panelTab:Ie,onPanelTabChange:xe,commsState:G??null,commsMessage:P??null,onCommsRefresh:F?()=>F({session_id:Z?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:V,orgInfoData:T??null,canShowTeamTab:Dn,onTeamStopRun:D?()=>z?.(D):void 0,onTitleChange:w,onSessionConfigChange:hn,onSessionTaskAgentChange:j,onContinueInNewChat:N,onStop:Ht,onComplete:Xt,onResume:Fn,onResumeTask:Yn,onStopTask:Kn,onCompleteTask:vi,onLocateOnBoard:qt,onBackToParent:()=>Ve(null),onCloseTaskDetail:()=>Pe({kind:"activity"}),onOpenChildDetail:On,onOpenExecutionPanel:M,onSelectSessionTab:Ne,onCloseSessionTab:wt,onToggleMultiSessionView:bn,onCollapse:()=>te("collapsed"),onExpand:()=>te("open"),onMaximize:()=>te(ue=>ue==="maximized"?"open":"maximized"),onComposerSend:En,onInteractionReply:zi,onSessionSend:Vn,onWorkItemClick:wn,onWorkItemOpenSession:On,onMarkRead:un,onSessionMarkRead:Hn,onLoadSessionHistory:yn,isSessionHistoryLoading:on})]})}function $V(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const q0=2e3,LC={child_task_result:80,child_task_result_retry:79,company_role_result:75,company_role_result_retry:74,child_result:70,runtime_v2_assistant:60,runtime_v2_company_assistant:20,top_level_reply:40,worker_notification:10};function Fr(e){return e.metadata??{}}function Cv(e){return String(e??"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(t=>t.trimEnd()).join(` +`).replace(/\n{3,}/g,` + +`).trim()}function zC(e){const t=Cv(e),n=HV(t),i=n.split(/\n{2,}/).map(r=>r.trim()).filter(Boolean);return i.length>1&&/^Verification:\s/i.test(i[i.length-1])?i.slice(0,-1).join(` + +`).trim():n}function HV(e){let t=String(e||"").trim();for(;;){const n=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!n)return t;const i=n[2].trim();if(i.length<80||i===t)return t;t=i}}function FV(e,t,n,i){if(!i)return n.content;const r=Cv(e.content),o=Cv(t.content);return!r||!o||r===o?n.content:r.endsWith(o)?e.content:o.endsWith(r)?t.content:n.content}function Al(e){const t=Fr(e),n=new Set,i=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",r=typeof t.checkpoint_id=="string"?t.checkpoint_id.trim():"";for(const o of[e.id,typeof t.ui_message_id=="string"?t.ui_message_id:"",typeof t.result_delivery_id=="string"&&t.result_delivery_id.trim()?`delivery:${t.result_delivery_id.trim()}`:"",i&&r?`checkpoint:${i}:${r}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function dl(e){return new Set([...Al(e)].map(t=>`${e.channelId}\0${t}`))}function VV(e){return e.startsWith("checkpoint:")||e.startsWith("delivery:")}function fi(e){return typeof e.timestamp=="number"?e.timestamp:0}function jv(e){return String(e.id??"").startsWith("msg-")}function lT(e){return!jv(e)}function PC(e){const t={};for(const n of e){if(!lT(n))continue;const i=fi(n);i>(t[n.channelId]??0)&&(t[n.channelId]=i)}return t}function UV(e,t,n){return n<=(e[t]??0)?e:{...e,[t]:n}}function qV(e,t){const n={};for(const i of e){if(!lT(i)||i.sender==="user")continue;const r=t[i.channelId]??0;fi(i)<=r||(n[i.channelId]=(n[i.channelId]??0)+1)}return n}function BC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Fr(e),i=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||i==="user"?"user":"assistant"}function $C(e){const t=Fr(e),n=String(e.sender??"").trim().toLowerCase();let i=0;const r=cT(e);return r&&(i+=1e3+r),t.source==="engine"&&(i+=100),n&&n!=="system"&&(i+=20),n&&!["assistant","system","user"].includes(n)&&(i+=5),e.replyToId&&(i+=2),i+=Math.min(Object.keys(t).length,10),i}function HC(e){return String(Fr(e).source??"").trim().toLowerCase()==="engine"}function cT(e){const t=Fr(e),n=String(t.transcript_kind??"").trim();if(n)return LC[n]??0;const i=String(t.kind??"").trim();return LC[i]??0}function Ml(e){return cT(e)>0}function uT(e,t){if(e.channelId!==t.channelId)return!1;const n=Al(e),i=Al(t);for(const r of n)if(i.has(r))return!0;return!1}function xm(e,t){if(uT(e,t))return!0;if(e.channelId!==t.channelId||BC(e)!==BC(t)||zC(e.content)!==zC(t.content))return!1;const n=Ml(e)&&Ml(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(HC(e)||HC(t)))return!1;const i=fi(e),r=fi(t);return!(!n&&i&&r&&Math.abs(i-r)>q0)}function vm(e,t,n=!1){let i=e,r=t;const o=jv(e),a=jv(t);o!==a?(i=o?t:e,r=o?e:t):(n||$C(t)>$C(e))&&(i=t,r=e);const u=[];for(const j of[r.mentions,i.mentions])for(const N of j??[])u.includes(N)||u.push(N);const d=Al(e),m=Al(t);let h=!1,p="";for(const j of d)m.has(j)&&(VV(j)||(h=!0,p||(p=j)));const g=FV(e,t,i,h),x=String(Fr(e).checkpoint_id??"").trim(),v=String(Fr(t).checkpoint_id??"").trim(),b=!!x&&x===v,S=Ml(e)&&Ml(t),w=S?String(Fr(e).ui_timeline_id??Fr(t).ui_timeline_id??Jv(e)).trim():"",k={...Fr(r),...Fr(i)};return w&&(k.ui_timeline_id=w),{...r,...i,...p?{id:p}:{},content:g,metadata:k,mentions:u,timestamp:b||S?fi(e)||fi(t):fi(i)||fi(r)}}function FC(e){const t=[],n=new Map;for(const i of[...e].sort((r,o)=>fi(r)-fi(o))){const r=dl(i);let o=-1,a=!1;for(const d of r){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===i.id;break}}if(o===-1){const d=fi(i),m=Ml(i);for(let h=t.length-1;h>=0;h--){const p=fi(t[h]);if(!m&&d>0&&p>0&&d-p>q0)break;if(xm(t[h],i)){o=h;break}}}const u=o===-1?t.length:o;o===-1?t.push(i):t[o]=vm(t[o],i,a);for(const d of dl(t[u]))n.has(d)||n.set(d,u)}return t}function GV(e,t){const n=[...e],i=new Map;n.forEach((r,o)=>{for(const a of dl(r))i.set(a,o)});for(const r of[...t].sort((o,a)=>fi(o)-fi(a))){let o=-1;for(const a of dl(r)){const u=i.get(a);if(u!==void 0){o=u;break}}if(o<0){for(let a=n.length-1;a>=0;a-=1)if(xm(n[a],r)){o=a;break}}if(o<0)o=n.length,n.push(r);else{const a=n[o];n[o]=vm(a,r,a.id===r.id)}for(const a of dl(r))i.set(a,o);for(const a of dl(n[o]))i.set(a,o)}return n.sort((r,o)=>fi(r)===fi(o)?r.id.localeCompare(o.id):fi(r)-fi(o))}function WV(e,t){switch(t.type){case"SET":return t.channels;case"CLEAR":return[];case"ADD":return e.some(n=>n.id===t.channel.id)?e:[...e,t.channel];case"REMOVE":return e.filter(n=>n.id!==t.channelId);case"REMOVE_PARTICIPANT":return e.map(n=>({...n,participants:n.participants.filter(i=>i!==t.agentId)}));default:return e}}function YV(e,t){switch(t.type){case"SET":{const n=FC(t.messages);if(e.length===0)return n;const i=e.filter(r=>typeof r.id=="string"&&r.id.startsWith("msg-")&&!n.some(o=>xm(r,o)));return i.length===0?n:FC([...n,...i])}case"CLEAR":return[];case"ADD":{const n=fi(t.message);Al(t.message);let i=!1;for(let r=e.length-1;r>=0;r--){const o=fi(e[r]);if(!i&&n>0&&o>0&&n-o>q0&&(i=!0),uT(e[r],t.message)){const a=[...e];return a[r]=vm(e[r],t.message,e[r].id===t.message.id),a}if((Ml(t.message)||!i)&&xm(e[r],t.message)){const a=[...e];return a[r]=vm(e[r],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:GV(e,t.messages);case"MARK_SENDER_DELETED":return e.map(n=>n.sender===t.senderId?{...n,senderDeleted:!0,senderName:"[已删除的 Agent]"}:n);case"REMOVE_BY_CHANNEL":return e.filter(n=>n.channelId!==t.channelId);case"REMOVE_BY_TASK_ID":return e.filter(n=>n.channelId!==`session:${t.taskId}`&&n.metadata?.task_id!==t.taskId);default:return e}}function XV(){const[e,t]=C.useReducer(WV,[]),[n,i]=C.useReducer(YV,[]),[r,o]=C.useState({}),[a,u]=C.useState("default"),d=C.useRef(null),m=C.useMemo(()=>PC(n),[n]),h=C.useRef(m);h.current=m;const p=C.useMemo(()=>{const M={};for(const O of n)M[O.channelId]||(M[O.channelId]=[]),M[O.channelId].push(O);return M},[n]),g=C.useMemo(()=>qV(n,r),[n,r]),x=C.useCallback(M=>{const O={id:`msg-${$V()}`,channelId:M.channelId,sender:M.sender,senderName:M.senderName,content:M.content,timestamp:Date.now(),replyToId:M.replyToId,mentions:[],metadata:M.metadata};return i({type:"ADD",message:O}),O},[]),v=C.useCallback(M=>p[M]??[],[p]),b=C.useCallback(M=>g[M]??0,[g]),S=C.useCallback(M=>{const O=h.current[M]??0;O<=0||o(T=>UV(T,M,O))},[]),w=C.useCallback(M=>{i({type:"MARK_SENDER_DELETED",senderId:M})},[]),k=C.useCallback(M=>{t({type:"REMOVE_PARTICIPANT",agentId:M})},[]),j=C.useCallback(M=>{t({type:"REMOVE",channelId:`session:${M}`}),i({type:"REMOVE_BY_TASK_ID",taskId:M})},[]),N=C.useCallback(()=>{t({type:"CLEAR"}),i({type:"CLEAR"}),d.current=null,o({})},[]),z=C.useCallback((M,O,T)=>{const $=M||"default",G=$!==a,P=d.current!==$;d.current=$,u($),t({type:"SET",channels:O}),i(G?{type:"SET",messages:T}:{type:"MERGE",messages:T}),P&&o(PC(T))},[a]),I=C.useCallback(M=>{i({type:"ADD",message:M})},[]),A=C.useCallback(M=>{i({type:"MERGE",messages:M})},[]),L=C.useCallback(M=>{t({type:"ADD",channel:M})},[]);return C.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:x,getChannelMessages:v,getUnreadCount:b,markRead:S,markSenderDeleted:w,removeParticipant:k,removeSessionData:j,clear:N,initFromBackend:z,addMessageFromBackend:I,mergeMessagesFromBackend:A,addChannelFromBackend:L}),[a,e,n,x,v,b,S,w,k,j,N,z,I,A,L])}const ip=4e3;function vl(e,t){return e.length>t?e.slice(-t):e}function Ev(e,t,n){if(!e)return t;if(!t||e===t)return e;if(t.startsWith(e))return t;if(e.startsWith(t)||e.endsWith(t))return e;if(t.endsWith(e))return t;const i=Math.min(e.length,t.length);for(let r=i;r>0;r-=1)if(e.slice(-r)===t.slice(0,r))return`${e}${t.slice(r)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} +${t}`:`${e}${t}`}function KV(e,t){const n=e.trim().replace(/\s+/g," ");return n?n.length>120?`${n.slice(0,120).trimEnd()}...`:n:t||"Thinking"}function ZV(e){return{timestamp:Number.isFinite(e.timestamp)?e.timestamp:Date.now(),type:e.type,summary:typeof e.summary=="string"?e.summary:"",detail:typeof e.detail=="string"&&e.detail?e.detail:void 0,turnId:typeof e.turnId=="string"&&e.turnId?e.turnId:void 0,itemId:typeof e.itemId=="string"&&e.itemId?e.itemId:void 0,streamId:typeof e.streamId=="string"&&e.streamId?e.streamId:void 0,toolCallId:typeof e.toolCallId=="string"&&e.toolCallId?e.toolCallId:void 0,permissionGroupKey:typeof e.permissionGroupKey=="string"&&e.permissionGroupKey?e.permissionGroupKey:void 0,seq:typeof e.seq=="number"&&Number.isFinite(e.seq)?e.seq:void 0,executionMode:typeof e.executionMode=="string"&&e.executionMode?e.executionMode:void 0}}function bm(e){const t=e.itemId||e.streamId;return t?`${e.type}:${e.turnId??""}:${t}`:e.toolCallId&&(e.type==="tool_call"||e.type==="autonomy")?`${e.type}:${e.turnId??""}:${e.toolCallId}`:e.permissionGroupKey&&e.type==="autonomy"?`${e.type}:${e.turnId??""}:${e.permissionGroupKey}`:""}function QV(e,t){const n=bm(e),i=bm(t);return n&&i?n===i:t.timestamp-e.timestamp>ip||e.type!==t.type?!1:e.type==="thinking"||e.type==="assistant"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function JV(e,t){return t.timestamp-e.timestamp<=ip&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function eU(e,t){if(e.type==="thinking"||e.type==="assistant"){const n=Ev(e.detail??"",t.detail??"","thinking");return{timestamp:e.timestamp,type:e.type,summary:KV(n,t.summary||e.summary),detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}if(e.type==="tool_call"){const n=Ev(e.detail??"",t.detail??"","tool_call");return{timestamp:e.timestamp,type:"tool_call",summary:t.summary||e.summary,detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}return t}function dT(e,t,n=100){const i=ZV(t),r=bm(i),o=r?[...e].reverse().findIndex(d=>bm(d)===r):-1,a=o>=0?e.length-1-o:e.length-1,u=e[a];return u?r&&o>=0&&typeof u.seq=="number"&&typeof i.seq=="number"&&i.seq<=u.seq?e:JV(u,i)?vl([...e.slice(0,a),u,...e.slice(a+1)],n):QV(u,i)?vl([...e.slice(0,a),eU(u,i),...e.slice(a+1)],n):vl([...e,i],n):[i]}function fT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>dT(n,i,t),[])}function tU(e){return{timestamp:Number.isFinite(e.timestamp)?e.timestamp:Date.now(),type:e.type,workItemProjectionId:typeof e.workItemProjectionId=="string"&&e.workItemProjectionId?e.workItemProjectionId:void 0,workItemTurnType:typeof e.workItemTurnType=="string"&&e.workItemTurnType?e.workItemTurnType:void 0,workItemProjectionTitle:typeof e.workItemProjectionTitle=="string"&&e.workItemProjectionTitle?e.workItemProjectionTitle:void 0,runtimeTaskId:typeof e.runtimeTaskId=="string"&&e.runtimeTaskId?e.runtimeTaskId:void 0,executionTurnId:typeof e.executionTurnId=="string"&&e.executionTurnId?e.executionTurnId:void 0,roleName:typeof e.roleName=="string"&&e.roleName?e.roleName:void 0,detail:typeof e.detail=="string"&&e.detail?e.detail:void 0}}function mT(e,t){return e.type===t.type&&(e.workItemProjectionId??"")===(t.workItemProjectionId??"")&&(e.workItemTurnType??"")===(t.workItemTurnType??"")&&(e.workItemProjectionTitle??"")===(t.workItemProjectionTitle??"")&&(e.executionTurnId??e.runtimeTaskId??"")===(t.executionTurnId??t.runtimeTaskId??"")&&(e.roleName??"")===(t.roleName??"")}function nU(e,t){return t.timestamp-e.timestamp<=ip&&mT(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function iU(e,t){return mT(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=ip}function rU(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:Ev(e.detail??"",t.detail??"",n)||void 0}}function pT(e,t,n=100){const i=tU(t),r=e[e.length-1];return r?iU(r,i)?vl([...e.slice(0,-1),{...r,timestamp:i.timestamp}],n):nU(r,i)?vl([...e.slice(0,-1),rU(r,i)],n):vl([...e,i],n):[i]}function hT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>pT(n,i,t),[])}function Nv(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function sU(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function gT(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),i=String(e.orgId??"").trim(),o=t.length>0?Nv(t):n==="custom"||i?"org":Nv(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:i||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const _f=100,oU=new Set(["done","failed","cancelled"]);function aU(e,t,n){const i=n,r=new Map(t.filter(u=>u.projectId===i).map(u=>[u.taskId,u])),o=new Set,a=[];for(const u of e){if(u.projectId!==i)continue;const d=r.get(u.taskId);d?(a.push(d),o.add(u.taskId)):a.push(u)}for(const u of t)u.projectId!==i||o.has(u.taskId)||(a.push(u),o.add(u.taskId));return a}function lU(e,t){const n=g=>gT({...g,progressLog:fT(g.progressLog??[],_f),workItemLog:hT(g.workItemLog??[],_f)}),i=g=>{const x=String(g.execMode??"").trim().toLowerCase();return x==="company"||x==="org"||x==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},r=g=>{const x=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),b=String(g.orgId??"").trim();return x==="task"&&(!v||v==="corporate")&&!b&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,x)=>{const v=g.execMode,b=x.execMode;return!v||v==="task"&&b&&b!=="task"&&!r(g)&&(i(g)||i(x))?b:v},a=(g,x,v)=>{const b=g[v],S=x[v];return!b||b==="native"&&S&&S!=="native"?S:b},u=(g,x)=>Object.prototype.hasOwnProperty.call(g,x),d=(g,x,v)=>u(g,v)?g[v]:x[v],m=(g,x)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,b=typeof x.updatedAt=="number"&&Number.isFinite(x.updatedAt)?x.updatedAt:void 0;return v===void 0?b??Date.now():b===void 0?v:Math.max(b,v)},h=(g,x)=>g.runtimeControlState==="suspending"&&x.runtimeControlState==="running"?{...x,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??x.stopIntentId}:x,p=(g,x,v)=>{const b=g[v];if(b!=null)return b;if(!(oU.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return x[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const x=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const b=x.get(v.taskId);if(!b)return n(v);const S=h(b,v);return n({...v,updatedAt:m(v,b),execMode:o(v,b),preferredAgent:a(v,b,"preferredAgent"),draftAssistantText:b.draftAssistantText??v.draftAssistantText,draftUpdatedAt:b.draftUpdatedAt??v.draftUpdatedAt,draftIteration:b.draftIteration??v.draftIteration,draftTurnId:b.draftTurnId??v.draftTurnId,agentStatus:p(v,b,"agentStatus"),currentTool:p(v,b,"currentTool"),displayTool:p(v,b,"displayTool"),toolElapsedMs:p(v,b,"toolElapsedMs"),lastToolSummary:p(v,b,"lastToolSummary"),contextTokens:b.contextTokens??v.contextTokens,contextWindow:b.contextWindow??v.contextWindow,contextRemainingPct:b.contextRemainingPct??v.contextRemainingPct,inputTokens:b.inputTokens??v.inputTokens,outputTokens:b.outputTokens??v.outputTokens,totalTokens:b.totalTokens??v.totalTokens,turnCostUsd:b.turnCostUsd??v.turnCostUsd,sessionCostUsd:b.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:b.pendingPermissionCount??v.pendingPermissionCount,drainMode:b.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??b.workItemProjectionId,workItemTurnType:v.workItemTurnType??b.workItemTurnType,companyProfile:d(v,b,"companyProfile"),orgId:d(v,b,"orgId"),workItemRoleId:v.workItemRoleId??b.workItemRoleId,workItemRoleName:v.workItemRoleName??b.workItemRoleName,workItemGate:v.workItemGate??b.workItemGate,roleWorkItems:v.roleWorkItems??b.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??b.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??b.employeeAssignment,selectedExecutionAgent:a(v,b,"selectedExecutionAgent"),runtimeControlState:S.runtimeControlState??b.runtimeControlState,canStop:S.canStop??b.canStop,canResume:S.canResume??b.canResume,resumeParentSessionId:v.resumeParentSessionId??b.resumeParentSessionId,pendingRuntimeCheckpointId:S.pendingRuntimeCheckpointId??b.pendingRuntimeCheckpointId,stopIntentId:S.stopIntentId??b.stopIntentId,residentStatus:b.residentStatus??v.residentStatus,actionableInboxCount:b.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:b.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:b.notificationBacklogCount??v.notificationBacklogCount,latestNotification:b.latestNotification??v.latestNotification,latestPreview:v.latestPreview??b.latestPreview,latestSender:v.latestSender??b.latestSender,latestMessageId:v.latestMessageId??b.latestMessageId,indexLoaded:v.indexLoaded??b.indexLoaded,detailLoaded:b.detailLoaded??v.detailLoaded,fullLoaded:b.fullLoaded??v.fullLoaded,hasMore:v.hasMore??b.hasMore,summaryHasMore:v.summaryHasMore??b.summaryHasMore,fullHasMore:v.fullHasMore??b.fullHasMore,detailLoading:v.detailLoading??b.detailLoading,detailError:v.detailError??b.detailError,viewGeneration:v.viewGeneration??b.viewGeneration,progressLog:b.progressLog&&b.progressLog.length>0?b.progressLog:v.progressLog,workItemLog:b.workItemLog&&b.workItemLog.length>0?b.workItemLog:v.workItemLog,lastRuntimeEventType:b.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:b.activeSubagents??v.activeSubagents,permissionRequests:b.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??b.handoffContext,handoffTo:v.handoffTo??b.handoffTo})})}case"ADD":const g=n(t.session);return e.some(x=>x.taskId===t.session.taskId)?e.map(x=>x.taskId===t.session.taskId?n({...x,...g,progressLog:g.progressLog.length>0?g.progressLog:x.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:x.workItemLog,messageCount:Math.max(x.messageCount??0,g.messageCount??0),updatedAt:Math.max(x.updatedAt??0,g.updatedAt??0),execMode:o(g,x),preferredAgent:a(g,x,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??x.workItemProjectionId,workItemTurnType:g.workItemTurnType??x.workItemTurnType,companyProfile:d(g,x,"companyProfile"),orgId:d(g,x,"orgId"),workItemRoleId:g.workItemRoleId??x.workItemRoleId,workItemRoleName:g.workItemRoleName??x.workItemRoleName,workItemGate:g.workItemGate??x.workItemGate,roleWorkItems:g.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??x.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:a(g,x,"selectedExecutionAgent"),handoffContext:g.handoffContext??x.handoffContext,handoffTo:g.handoffTo??x.handoffTo,latestPreview:g.latestPreview??x.latestPreview,latestSender:g.latestSender??x.latestSender,latestMessageId:g.latestMessageId??x.latestMessageId,indexLoaded:g.indexLoaded??x.indexLoaded,detailLoaded:g.detailLoaded??x.detailLoaded,fullLoaded:g.fullLoaded??x.fullLoaded,hasMore:g.hasMore??x.hasMore,summaryHasMore:g.summaryHasMore??x.summaryHasMore,fullHasMore:g.fullHasMore??x.fullHasMore,detailLoading:g.detailLoading??x.detailLoading,detailError:g.detailError??x.detailError,viewGeneration:g.viewGeneration??x.viewGeneration}):x):[g,...e];case"UPDATE":return e.map(x=>x.taskId===t.taskId?(()=>{const v=h(x,t.partial);return n({...x,...v,updatedAt:m(v,x),runtimeControlState:v.runtimeControlState??x.runtimeControlState,canStop:v.canStop??x.canStop,canResume:v.canResume??x.canResume,resumeParentSessionId:v.resumeParentSessionId??x.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??x.stopIntentId,roleWorkItems:v.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??x.executorRoleWorkItems,execMode:d(v,x,"execMode"),companyProfile:d(v,x,"companyProfile"),orgId:d(v,x,"orgId"),isCompanyRuntime:v.isCompanyRuntime??x.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??x.workItemProjectionId,workItemTurnType:v.workItemTurnType??x.workItemTurnType,workItemRoleId:v.workItemRoleId??x.workItemRoleId,workItemRoleName:v.workItemRoleName??x.workItemRoleName,workItemGate:v.workItemGate??x.workItemGate,employeeAssignment:v.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??x.selectedExecutionAgent,activeSubagents:v.activeSubagents??x.activeSubagents,permissionRequests:v.permissionRequests??x.permissionRequests,contextTokens:v.contextTokens??x.contextTokens,contextWindow:v.contextWindow??x.contextWindow,contextRemainingPct:v.contextRemainingPct??x.contextRemainingPct,inputTokens:v.inputTokens??x.inputTokens,outputTokens:v.outputTokens??x.outputTokens,totalTokens:v.totalTokens??x.totalTokens,turnCostUsd:v.turnCostUsd??x.turnCostUsd,sessionCostUsd:v.sessionCostUsd??x.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():x);case"DELETE":return e.filter(x=>x.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,progressLog:dT(x.progressLog,t.entry,_f),updatedAt:Math.max(x.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(x=>{if(x.taskId!==t.taskId)return x;const v=t.turnId??x.draftTurnId,b=!!t.turnId&&!!x.draftTurnId&&t.turnId!==x.draftTurnId;return{...x,draftAssistantText:`${b?"":x.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??x.draftIteration,draftTurnId:v,updatedAt:Math.max(x.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(x=>x.taskId===t.taskId?{...x,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:x);case"CLEAR_PROGRESS":return e.map(x=>x.taskId===t.taskId?{...x,progressLog:[]}:x);case"APPEND_WORK_ITEM_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,workItemLog:pT(x.workItemLog??[],t.entry,_f)});case"SET_COMPANY_RUNTIME":return e.map(x=>x.taskId===t.taskId?{...x,isCompanyRuntime:t.isCompanyRuntime}:x);default:return e}}function cU(){const[e,t]=C.useReducer(lU,[]),[n,i]=C.useState(null),[r,o]=C.useState("default"),a=C.useMemo(()=>e.find(k=>k.taskId===n)??null,[e,n]),u=C.useCallback(k=>{k.projectId===r&&t({type:"ADD",session:k})},[r]),d=C.useCallback(k=>{t({type:"DELETE",taskId:k})},[]),m=C.useCallback(k=>{i(k)},[]),h=C.useCallback((k,j)=>{t({type:"UPDATE",taskId:k,partial:j})},[]),p=C.useCallback((k,j)=>{t({type:"APPEND_PROGRESS",taskId:k,entry:j})},[]),g=C.useCallback((k,j,N,z)=>{t({type:"APPEND_DRAFT",taskId:k,text:j,iteration:N,turnId:z,timestamp:Date.now()})},[]),x=C.useCallback(k=>{t({type:"CLEAR_DRAFT",taskId:k})},[]),v=C.useCallback(k=>{t({type:"CLEAR_PROGRESS",taskId:k})},[]),b=C.useCallback((k,j)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:k,entry:j})},[]),S=C.useCallback((k,j)=>{t({type:"SET_COMPANY_RUNTIME",taskId:k,isCompanyRuntime:j})},[]),w=C.useCallback((k,j,N)=>{const z=k||"default",I=z!==r,A=N?.preserveExistingWhenIncomingPartial&&!I?aU(e,j,z):j.filter(L=>L.projectId===z);o(z),t({type:"SET",sessions:A,reset:I}),i(L=>!I&&L&&(A.some(M=>M.taskId===L)||N?.preserveActiveWhenMissing)?L:null)},[r,e]);return C.useMemo(()=>({scopeProjectId:r,sessions:e,activeSessionId:n,activeSession:a,createSession:u,deleteSession:d,setActiveSession:m,updateSession:h,appendProgress:p,appendDraft:g,clearDraft:x,clearProgress:v,appendWorkItemProgress:b,setCompanyRuntime:S,initFromBackend:w}),[r,e,n,a,u,d,m,h,p,g,x,v,b,S,w])}function VC(e){return e.trim()||"default"}function uU(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:VC(t.activeId)};case"ADD":return e.projects.some(n=>n.id===t.project.id)?e:{...e,projects:[...e.projects,t.project]};case"REMOVE":{const n=e.projects.filter(r=>r.id!==t.id),i=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:i}}case"SET_ACTIVE":return{...e,activeProjectId:VC(t.id)};default:return e}}function dU(){const[e,t]=C.useReducer(uU,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=C.useCallback((a,u)=>{t({type:"SET",projects:a,activeId:u})},[]),i=C.useCallback(a=>{t({type:"ADD",project:a})},[]),r=C.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=C.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return C.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:i,removeProject:r,setActiveProject:o}),[e,n,i,r,o])}const UC={active:{label:"Working",cls:"exec-badge-running"},waiting:{label:"Waiting",cls:"exec-badge-idle"},pending:{label:"Pending",cls:"exec-badge-pending"},done:{label:"Done",cls:"exec-badge-done"},failed:{label:"Failed",cls:"exec-badge-failed"}},kf={todo:{label:"To do",cls:"exec-badge-pending"},"in-progress":{label:"In progress",cls:"exec-badge-running"},"in-review":{label:"In review",cls:"exec-badge-idle"},done:{label:"Done",cls:"exec-badge-done"},failed:{label:"Failed",cls:"exec-badge-failed"},cancelled:{label:"Cancelled",cls:"exec-badge-cancelled"}};function fU(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);if(n<60)return`${n}m ago`;const i=Math.floor(n/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function Ry(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function mU(e){return e.phase==="failed"?kf.failed:e.phase==="cancelled"?kf.cancelled:kf[e.kanbanColumn]??kf.todo}function pU(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function hU(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,i)=>n+(i.entries?.length??0),0):e.progressLog.length}function gU({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?c.jsx("div",{className:"exec-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],u=`${r.runtimeTaskId||r.kind}:${o}`;return c.jsxs("section",{className:"exec-activity-section",children:[c.jsxs("div",{className:"exec-activity-section-head",children:[c.jsx("span",{className:"exec-activity-section-title",children:r.title}),r.roleName&&c.jsx("span",{className:"exec-activity-section-role",children:r.roleName}),a.length>0&&c.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?c.jsx(Tl,{entries:a,sessionStatus:n,expandedByDefault:!0}):c.jsx("div",{className:"exec-section-empty",children:"No runtime activity yet"})]},u)})}):!t||t.length===0?c.jsx("div",{className:"exec-section-empty",children:"No activity recorded yet"}):c.jsx(Tl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function qC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:i,onClose:r}){const o=C.useMemo(()=>e.workItems.slice().sort((k,j)=>k.createdAt-j.createdAt),[e.workItems]),u=C.useMemo(()=>o.find(k=>!!t&&k.workItemId===t||!!n&&k.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=C.useState(()=>{const k=new Set;return u&&k.add(u),k}),h=C.useRef(new Set);C.useEffect(()=>{!u||h.current.has(u)||(h.current.add(u),m(k=>{if(k.has(u))return k;const j=new Set(k);return j.add(u),j}))},[u]);const p=C.useCallback(k=>{m(j=>{const N=new Set(j);return N.has(k)?N.delete(k):N.add(k),N})},[]),g=C.useRef(null),x=C.useRef(null);C.useEffect(()=>{!u||x.current===u||(x.current=u,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[u]);const v=C.useCallback(k=>{k.key==="Escape"&&r()},[r]);C.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const b=i.find(k=>k.agent_id===e.roleId),S=e.roleName||b?.name||Ry(e.roleId)||"Role",w=UC[e.aggregatedStatus]??UC.pending;return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"exec-panel-backdrop",onClick:r}),c.jsxs("div",{className:"exec-panel",children:[c.jsxs("div",{className:"exec-panel-header",children:[c.jsxs("div",{className:"exec-panel-title-row",children:[c.jsx(Sl,{}),c.jsx("h3",{className:"exec-panel-title",children:S}),c.jsx("span",{className:`exec-badge ${w.cls}`,children:w.label}),c.jsxs("span",{className:"exec-panel-task-count",children:[o.length," Work Item",o.length===1?"":"s"]})]}),c.jsx("button",{className:"exec-panel-close",onClick:r,title:"Close (Esc)",children:c.jsx(Bm,{})})]}),c.jsxs("div",{className:"exec-panel-identity",children:[c.jsx("div",{className:"exec-panel-avatar",children:S.charAt(0).toUpperCase()}),c.jsxs("div",{className:"exec-panel-agent-info",children:[c.jsx("span",{className:"exec-panel-agent-name",children:S}),c.jsx("span",{className:"exec-panel-agent-role",children:Ry(e.roleId)}),e.roleSessionId&&c.jsx("span",{className:"exec-panel-employee",children:e.roleSessionId})]})]}),c.jsxs("div",{className:"exec-panel-body",children:[o.length===0&&c.jsx("div",{className:"exec-section-empty",children:"No work items yet"}),o.map((k,j)=>{const N=k.workItemId===u,z=d.has(k.workItemId),I=mU(k),A=hU(k);return c.jsxs("div",{ref:N?g:null,className:`exec-task-card${N?" exec-task-card-focused":""}`,children:[c.jsxs("button",{type:"button",className:"exec-task-card-header",onClick:()=>p(k.workItemId),title:z?"Collapse":"Expand",children:[c.jsxs("span",{className:"exec-task-card-index",children:["Work item #",j+1]}),c.jsx("span",{className:"exec-task-card-title",children:k.title||k.workItemId}),c.jsx("span",{className:`exec-badge ${I.cls}`,children:I.label}),c.jsx("span",{className:"exec-task-card-time",children:fU(k.updatedAt)}),c.jsx("span",{className:`exec-task-card-chevron${z?" open":""}`,"aria-hidden":"true",children:"▸"})]}),z&&c.jsxs("div",{className:"exec-task-card-body",children:[c.jsxs("div",{className:"exec-task-card-projection",children:[c.jsx(Pm,{}),c.jsx("span",{children:Ry(k.kind)||"Work item"}),k.workItemProjectionId&&c.jsx("code",{children:k.workItemProjectionId}),k.executionTurnId&&c.jsx("span",{className:"exec-inline-tag",children:"Execution Turn"}),k.isReviewTarget&&c.jsx("span",{className:"exec-inline-tag",children:"Review target"}),k.executorRoleName&&c.jsx("span",{children:k.executorRoleName})]}),c.jsxs("div",{className:"exec-section",children:[c.jsxs("div",{className:"exec-section-header",children:[c.jsx(Sl,{}),c.jsx("span",{children:"Activity"}),c.jsx("span",{className:"exec-section-count",children:A})]}),c.jsx("div",{className:"exec-section-content exec-activity-scroll",children:c.jsx(gU,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:pU(k)})})]})]})]},k.workItemId)})]})]})]})}const GC=1;function yU(e){if(!e||typeof e!="object")return null;const t=e;if(t.version!==GC||typeof t.pattern!="string"||!t.pattern)return null;try{const n=new RegExp(`^(?:${t.pattern})$`);return Object.freeze({version:GC,pattern:t.pattern,matches(i){const r=n.exec(i);return r!==null&&r[0]===i}})}catch{return null}}function xU(e){return e.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"")}function vU({projects:e,activeId:t,projectIdPolicy:n,onSelect:i,onCreate:r,onDelete:o}){const{t:a}=Kr(),u=C.useId(),[d,m]=C.useState(!1),[h,p]=C.useState(""),[g,x]=C.useState(null),v=C.useMemo(()=>xU(h),[h]),b=h.trim().length>0,S=n?.matches(v)??!1,w=b&&n!==null&&!S,k=b&&!S?a(n?"project.nameInvalid":"project.policyUnavailable"):null,j=C.useCallback(()=>{S&&(r(v),p(""),m(!1))},[v,r,S]),N=C.useCallback(()=>{!g||!o||(o(g),x(null))},[g,o]);return c.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[c.jsx("select",{className:"theme-select",value:t,onChange:z=>i(z.target.value),title:a("project.switch"),"aria-label":a("project.switch"),children:e.map(z=>c.jsx("option",{value:z.id,children:z.name},z.id))}),d?c.jsxs("form",{onSubmit:z=>{z.preventDefault(),j()},style:{display:"flex",gap:4},children:[c.jsxs("span",{style:{position:"relative",display:"inline-flex"},children:[c.jsx("input",{autoFocus:!0,className:"theme-select",value:h,placeholder:a("project.placeholder"),onChange:z=>p(z.target.value),onKeyDown:z=>{z.key==="Escape"&&m(!1)},"aria-invalid":w||void 0,"aria-describedby":k?u:void 0,title:k??void 0,style:{width:120}}),k&&c.jsx("span",{id:u,className:"project-name-validation",role:"status","aria-live":"polite",children:k})]}),c.jsx("button",{type:"submit",className:"pill-btn",disabled:!S,"aria-label":a("project.create"),title:a("project.create"),style:{fontSize:11,padding:"2px 8px",opacity:S?1:.5},children:"+"})]}):c.jsx("button",{className:"pill-btn",onClick:()=>m(!0),title:a("project.new"),"aria-label":a("project.new"),style:{fontSize:11,padding:"2px 8px"},children:"+"}),o&&t!=="default"&&!g&&c.jsx("button",{className:"pill-btn",onClick:()=>x(t),title:a("project.delete"),style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:a("project.deleteButton")}),g&&c.jsx("div",{className:"project-delete-confirm",style:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},children:c.jsxs("div",{style:{background:"var(--bg-elevated)",borderRadius:12,padding:"24px 32px",border:"1px solid var(--border)",color:"var(--text)",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[c.jsx("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15,color:"var(--text)"},children:a("project.confirmTitle",{name:g})}),c.jsx("p",{style:{margin:"0 0 20px",fontSize:13,color:"var(--text-secondary)"},children:a("project.confirmBody")}),c.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[c.jsx("button",{className:"pill-btn",onClick:()=>x(null),style:{padding:"6px 18px",fontSize:13},children:a("common.cancel")}),c.jsx("button",{className:"pill-btn",onClick:N,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:a("common.delete")})]})]})})]})}const WC=[{value:"ollama",label:"Ollama (Local Node)",defaultBase:"http://localhost:11434",defaultModel:"ollama/llama3.3",isLocal:!0},{value:"vllm",label:"vLLM Engine (Local)",defaultBase:"http://localhost:8000/v1",defaultModel:"vllm/meta-llama-3.1-8b-instruct",isLocal:!0},{value:"lmstudio",label:"LM Studio (Local Server)",defaultBase:"http://localhost:1234/v1",defaultModel:"openai/deepseek-r1-distill-qwen-14b",isLocal:!0},{value:"localai",label:"LocalAI / Llama.cpp (Local)",defaultBase:"http://localhost:8080/v1",defaultModel:"openai/starcoder2-15b",isLocal:!0},{value:"openai",label:"OpenAI (Cloud)",defaultBase:"",defaultModel:"openai/gpt-4o",isLocal:!1},{value:"anthropic",label:"Anthropic Claude (Cloud)",defaultBase:"",defaultModel:"anthropic/claude-sonnet-4-20250514",isLocal:!1},{value:"openrouter",label:"OpenRouter AI (Cloud)",defaultBase:"",defaultModel:"openrouter/auto",isLocal:!1},{value:"custom",label:"Custom Self-Hosted / Proxy",defaultBase:"http://localhost:8000/v1",defaultModel:"openai/custom-model",isLocal:!0}],Ay={ollama:["ollama/llama3.3","ollama/qwen2.5-coder","ollama/deepseek-r1:14b","ollama/mistral-nemo"],vllm:["vllm/meta-llama-3.1-8b-instruct","vllm/qwen2.5-72b-instruct","vllm/mistral-7b-instruct-v0.3"],lmstudio:["openai/deepseek-r1-distill-qwen-14b","openai/llama-3.3-70b-instruct"],localai:["openai/starcoder2-15b","openai/llama-3-8b-instruct"],openai:["openai/gpt-4o","openai/gpt-4o-mini","openai/o3-mini"],anthropic:["anthropic/claude-sonnet-4-20250514","anthropic/claude-3-5-haiku-20241022"],openrouter:["openrouter/auto","openrouter/anthropic/claude-3.5-sonnet"],custom:[]};function bU({isOpen:e,initialConfig:t,onClose:n,onSave:i}){const[r,o]=C.useState("ollama"),[a,u]=C.useState("ollama/llama3.3"),[d,m]=C.useState("http://localhost:11434"),[h,p]=C.useState(""),[g,x]=C.useState(!0),[v,b]=C.useState(0),[S,w]=C.useState(null),[k,j]=C.useState(!1);if(C.useEffect(()=>{e&&(t?(o(t.provider||"ollama"),u(t.default_model||"ollama/llama3.3"),m(t.api_base||""),p(t.api_key||""),x(t.is_local??!0),b(t.context_window||0)):(o("ollama"),u("ollama/llama3.3"),m("http://localhost:11434"),p(""),x(!0),b(0)),w(null),j(!1))},[e,t]),!e)return null;const N=I=>{o(I);const A=WC.find(L=>L.value===I);A&&(x(A.isLocal),m(A.defaultBase||""),A.defaultModel&&u(A.defaultModel))},z=async()=>{if(!a.trim()){w({text:"Model identifier is required.",isError:!0});return}j(!0),w(null);const I={provider:r,default_model:a.trim(),api_base:d.trim(),api_key:h.trim(),is_local:g,context_window:Number(v)||0};try{i?await i(I)!==!1?(w({text:"✓ LLM Settings Saved & Applied to Backend!",isError:!1}),setTimeout(()=>{n()},800)):w({text:"Failed to update backend configuration.",isError:!0}):w({text:"No save handler registered.",isError:!0})}catch(A){w({text:A?.message||"Error saving settings.",isError:!0})}finally{j(!1)}};return c.jsxs("div",{className:"dev-overlay",style:{maxWidth:"540px",width:"92vw",zIndex:9999},children:[c.jsxs("div",{className:"dev-header",children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx("span",{style:{fontSize:"16px"},children:"🤖"}),c.jsx("span",{className:"dev-title",children:"LLM Model & Provider Settings"})]}),c.jsx("button",{className:"icon-btn",onClick:n,"aria-label":"Close settings",children:"✕"})]}),c.jsxs("div",{style:{padding:"16px 20px",display:"flex",flexDirection:"column",gap:"16px"},children:[c.jsxs("div",{className:"dev-group",children:[c.jsx("label",{className:"dev-label",style:{marginBottom:"6px"},children:"LLM Provider / Execution Mode"}),c.jsx("select",{className:"inline-select",style:{width:"100%",padding:"8px 12px",fontSize:"13px",borderRadius:"var(--radius-sm)"},value:r,onChange:I=>N(I.target.value),children:WC.map(I=>c.jsx("option",{value:I.value,children:I.label},I.value))})]}),g?c.jsxs("div",{style:{padding:"10px 14px",borderRadius:"var(--radius-sm)",background:"rgba(52, 211, 153, 0.12)",border:"1px solid rgba(52, 211, 153, 0.3)",color:"var(--green)",fontSize:"12px",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx("span",{style:{fontSize:"14px"},children:"🟢"}),c.jsxs("div",{children:[c.jsx("strong",{children:"Keyless Local Model Active"}),c.jsx("div",{style:{fontSize:"11px",opacity:.9},children:"No remote API key required. Requests connect directly to your local endpoint. Note: Model must support tool/function calling."})]})]}):c.jsxs("div",{style:{padding:"10px 14px",borderRadius:"var(--radius-sm)",background:"rgba(99, 102, 241, 0.12)",border:"1px solid rgba(99, 102, 241, 0.3)",color:"var(--accent)",fontSize:"12px",display:"flex",alignItems:"center",gap:"8px"},children:[c.jsx("span",{style:{fontSize:"14px"},children:"☁️"}),c.jsxs("div",{children:[c.jsx("strong",{children:"Cloud Provider Active"}),c.jsx("div",{style:{fontSize:"11px",opacity:.9},children:"Requires an API key configured below or in your system environment."})]})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("label",{className:"dev-label",style:{marginBottom:"6px"},children:"Model Identifier (`default_model`)"}),c.jsx("input",{style:{width:"100%",padding:"8px 12px",fontSize:"13px",borderRadius:"var(--radius-sm)",background:"var(--surface)",border:"1px solid var(--border)",color:"var(--text)",outline:"none"},value:a,onChange:I=>u(I.target.value),placeholder:"e.g. ollama/llama3.3 or openai/gpt-4o"}),Ay[r]&&Ay[r].length>0&&c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:Ay[r].map(I=>c.jsx("button",{type:"button",className:`pill-btn ${a===I?"active":""}`,onClick:()=>u(I),style:{fontSize:"11px",padding:"3px 9px"},children:I.replace(/^[^/]+\//,"")},I))})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("label",{className:"dev-label",style:{marginBottom:"6px"},children:"API Base / Local Host URL (`api_base`)"}),c.jsx("input",{style:{width:"100%",padding:"8px 12px",fontSize:"13px",borderRadius:"var(--radius-sm)",background:"var(--surface)",border:"1px solid var(--border)",color:"var(--text)",outline:"none"},value:d,onChange:I=>m(I.target.value),placeholder:g?"e.g. http://localhost:11434 or http://localhost:8000/v1":"Leave empty for standard cloud endpoint"})]}),c.jsxs("div",{className:"dev-group",children:[c.jsxs("label",{className:"dev-label",style:{marginBottom:"6px"},children:["API Key ",g?"(Optional for Local Nodes)":"(Required for Cloud Models)"]}),c.jsx("input",{type:"password",style:{width:"100%",padding:"8px 12px",fontSize:"13px",borderRadius:"var(--radius-sm)",background:"var(--surface)",border:"1px solid var(--border)",color:"var(--text)",outline:"none"},value:h,onChange:I=>p(I.target.value),placeholder:g?"Not required for local nodes (leave blank)":"sk-..."})]}),c.jsxs("div",{className:"dev-group",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px"},children:[c.jsxs("div",{children:[c.jsx("label",{className:"dev-label",style:{marginBottom:"6px"},children:"Explicit `is_local` Flag"}),c.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer",fontSize:"13px",marginTop:"6px"},children:[c.jsx("input",{type:"checkbox",checked:g,onChange:I=>x(I.target.checked)}),"Force Local Execution"]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"dev-label",style:{marginBottom:"6px"},children:"Context Window Override (Tokens)"}),c.jsx("input",{type:"number",style:{width:"100%",padding:"6px 10px",fontSize:"13px",borderRadius:"var(--radius-sm)",background:"var(--surface)",border:"1px solid var(--border)",color:"var(--text)",outline:"none"},value:v||"",onChange:I=>b(Number(I.target.value)),placeholder:"0 (Auto-detect)"})]})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginTop:"12px"},children:[S?c.jsx("span",{style:{color:S.isError?"var(--red, #ef4444)":"var(--green, #10b981)",fontSize:"13px",fontWeight:600},children:S.text}):c.jsx("span",{style:{fontSize:"11px",color:"var(--text-secondary)"},children:"Config will be persisted atomically to backend `.opc/config/llm_config.yaml`."}),c.jsxs("div",{style:{display:"flex",gap:"8px"},children:[c.jsx("button",{type:"button",className:"pill-btn",onClick:n,disabled:k,style:{padding:"6px 14px",fontSize:"13px"},children:"Cancel"}),c.jsx("button",{type:"button",className:"pill-btn active",onClick:z,disabled:k,style:{padding:"6px 16px",fontSize:"13px",fontWeight:600},children:k?"Saving...":"Save & Apply Settings"})]})]})]})]})}const _U=80;function kU(e){const t=Date.now()/1e3,n=Math.max(0,t-e);if(n<60)return"just now";if(n<3600)return`${Math.floor(n/60)}m ago`;if(n<86400)return`${Math.floor(n/3600)}h ago`;if(n<604800)return`${Math.floor(n/86400)}d ago`;try{return new Date(e*1e3).toLocaleDateString()}catch{return""}}function YC(e){return(e.organization_name||e.name).trim()||e.name}function SU(e){const t=e.trim();return t.length>0&&t.length<=_U&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function wU(e){return e.normalize("NFKD").replace(/[^\x00-\x7F]/g,"").toLowerCase().trim().replace(/\s+/g,"_").replace(/[^a-z0-9_-]+/g,"_").replace(/_+/g,"_").replace(/^[_-]+|[_-]+$/g,"").slice(0,64)||"org"}function CU({className:e}){return c.jsxs("svg",{className:e,width:"12",height:"12",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[c.jsx("path",{d:"M8 1.5L1.5 4.5L8 7.5L14.5 4.5L8 1.5Z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),c.jsx("path",{d:"M2 8L8 10.8L14 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.6"}),c.jsx("path",{d:"M2 11.5L8 14.2L14 11.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.35"})]})}function jU({className:e}){return c.jsx("svg",{className:e,width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:c.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function EU({className:e}){return c.jsxs("svg",{className:e,width:"11",height:"11",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:[c.jsx("circle",{cx:"5",cy:"5",r:"3.2",stroke:"currentColor",strokeWidth:"1.3"}),c.jsx("path",{d:"M7.5 7.5L10 10",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function NU({savedOrgs:e,activeName:t,isDirty:n,onRefresh:i,onSaveAs:r,onLoad:o,onDelete:a}){const[u,d]=C.useState(!1),[m,h]=C.useState(""),[p,g]=C.useState(0),[x,v]=C.useState(!1),[b,S]=C.useState(""),[w,k]=C.useState(null),[j,N]=C.useState(null),z=C.useRef(null),I=C.useRef(null);C.useEffect(()=>{N(null)},[t,e]);const A=(e??[]).filter(U=>!m.trim()||U.name.toLowerCase().includes(m.trim().toLowerCase())),L=C.useRef(!1);C.useEffect(()=>{u&&!L.current&&(L.current=!0,i())},[u,i]),C.useEffect(()=>{x&&I.current?.focus()},[x]),C.useEffect(()=>{g(U=>Math.min(U,Math.max(0,A.length-1)))},[A.length]),C.useEffect(()=>{if(!u)return;const U=Q=>{z.current&&!z.current.contains(Q.target)&&M()};return document.addEventListener("mousedown",U),()=>document.removeEventListener("mousedown",U)},[u]);const M=C.useCallback(()=>{d(!1),h(""),g(0),v(!1),S(""),k(null)},[]),O=C.useCallback(U=>{if(U===t){M();return}N(U),o(U),M()},[o,M,t]),T=C.useCallback(U=>{a(U),k(null)},[a]),$=b.trim(),G=SU($),P=wU($),F=(e??[]).some(U=>U.name===P||YC(U).toLowerCase()===$.toLowerCase()),V=C.useCallback(()=>{G&&(r($,F),v(!1),S(""),M())},[G,$,F,r,M]),Y=U=>{if(U.key==="Escape"){U.preventDefault(),M();return}if(x){U.key==="Enter"&&(U.preventDefault(),V());return}if(U.key==="ArrowDown")U.preventDefault(),g(Q=>Math.min(Q+1,Math.max(0,A.length-1)));else if(U.key==="ArrowUp")U.preventDefault(),g(Q=>Math.max(0,Q-1));else if(U.key==="Enter"){const Q=A[p];Q&&O(Q.name)}else if((U.key==="Backspace"||U.key==="Delete")&&(U.metaKey||U.ctrlKey)){const Q=A[p];Q&&(U.preventDefault(),k(Q.name))}};return c.jsxs("div",{className:"sos-wrap",ref:z,children:[c.jsxs("button",{type:"button",className:"sos-pill","data-open":u?"true":"false",onClick:()=>d(U=>!U),"aria-haspopup":"listbox","aria-expanded":u,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[c.jsx(CU,{className:"sos-pill-glyph"}),t?c.jsx("span",{className:"sos-pill-name",children:t}):c.jsx("span",{className:"sos-pill-name sos-pill-name--placeholder",children:"draft"}),n&&c.jsx("span",{className:"sos-pill-dirty","aria-label":"Modified since opened"}),c.jsx(jU,{className:"sos-pill-caret"})]}),u&&c.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:Y,tabIndex:-1,children:[c.jsxs("div",{className:"sos-search-row",children:[c.jsx(EU,{className:"sos-search-glyph"}),c.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:U=>{h(U.target.value),g(0)},autoFocus:!0,onKeyDown:Y}),c.jsx("kbd",{className:"sos-search-hint",children:"↑↓ ↵"})]}),c.jsx("div",{className:"sos-list",children:e===null?c.jsx("div",{className:"sos-empty",children:"Loading…"}):A.length===0?c.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):A.map((U,Q)=>{const W=t===U.name,q=p===Q,J=YC(U);return c.jsxs("div",{className:`sos-row${W?" sos-row--active":""}`,"data-highlighted":q?"true":"false",onMouseEnter:()=>g(Q),onClick:()=>O(U.name),role:"option","aria-selected":W,children:[c.jsxs("div",{className:"sos-row-meta",children:[c.jsx("span",{className:"sos-row-name",children:J}),c.jsxs("span",{className:"sos-row-stats",children:[J!==U.name&&`${U.name} · `,U.roles_count," ",U.roles_count===1?"role":"roles"," · ",U.employees_count," ",U.employees_count===1?"employee":"employees"," · ",kU(U.saved_at)]})]}),j===U.name?c.jsx("span",{className:"sos-row-loading",children:"loading…"}):W?c.jsx("span",{className:"sos-row-active-chip",children:"active"}):w===U.name?c.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:D=>{D.stopPropagation(),T(U.name)},children:"confirm"}):c.jsx("button",{type:"button",className:"sos-row-delete",onClick:D=>{D.stopPropagation(),k(U.name)},title:"Delete",children:"delete"})]},U.name)})}),c.jsxs("div",{className:"sos-save-as",children:[x?c.jsxs("div",{className:"sos-save-as-form",children:[c.jsx("input",{ref:I,type:"text",className:"sos-save-as-input",placeholder:"Organization name",value:b,onChange:U=>S(U.target.value),onKeyDown:Y}),c.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:V,disabled:!G,children:F?"Overwrite copy":"Save as copy"}),c.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>{v(!1),S("")},children:"Cancel"})]}):c.jsx("button",{type:"button",className:"sos-save-as-trigger",onClick:()=>v(!0),children:"+ Save as copy..."}),x&&b&&!G&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),x&&G&&F&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const IU=["leader","strategy","target","code","terminal","database","settings","bug","design","pen","layout","marketing","analytics","writing","clipboard","security","support","idea","person","team","camera","calendar","group","ai","generic"],gu={leader:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M5 16L3 5l5.5 5L12 4l3.5 6L21 5l-2 11H5zm0 2h14v2H5v-2z'/%3E%3C/svg%3E",strategy:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 22H5v-2h14v2zM17.16 8.26C18.22 9.63 19 10.85 19 12c0 2.21-3.13 4-7 4s-7-1.79-7-4c0-1.15.78-2.37 1.84-3.74C7.83 7.03 9 5.67 9 4.5a2.5 2.5 0 0 1 5 0c0 1.17 1.17 2.53 2.16 3.76zM12 6a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1z'/%3E%3C/svg%3E",target:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-14c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E",code:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0L19.2 12l-4.6-4.6L16 6l6 6-6 6-1.4-1.4z'/%3E%3C/svg%3E",terminal:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8h16v10zM13 14h4v2h-4zm-3.41-.82l-2.59 2.59L8.41 17 12 13.41 8.41 9.82 7 11.24l2.59 2.59z'/%3E%3C/svg%3E",database:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.48 2 2 3.79 2 6v12c0 2.21 4.48 4 10 4s10-1.79 10-4V6c0-2.21-4.48-4-10-4zm0 18c-4.42 0-8-1.34-8-3v-2.5c1.74 1.5 4.71 2.5 8 2.5s6.26-1 8-2.5V17c0 1.66-3.58 3-8 3zm0-5c-4.42 0-8-1.34-8-3v-2.5c1.74 1.5 4.71 2.5 8 2.5s6.26-1 8-2.5V12c0 1.66-3.58 3-8 3zm0-5c-4.42 0-8-1.34-8-3s3.58-3 8-3 8 1.34 8 3-3.58 3-8 3z'/%3E%3C/svg%3E",settings:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z'/%3E%3C/svg%3E",bug:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5s-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z'/%3E%3C/svg%3E",design:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10c1.38 0 2.5-1.12 2.5-2.5 0-.61-.23-1.2-.64-1.67-.08-.1-.13-.21-.13-.33 0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zm-5 0C8.67 9 8 8.33 8 7.5S8.67 6 9.5 6s1.5.67 1.5 1.5S10.33 9 9.5 9zm-3 4c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'/%3E%3C/svg%3E",pen:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E",layout:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",marketing:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z'/%3E%3C/svg%3E",analytics:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99l1.5 1.5z'/%3E%3C/svg%3E",writing:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E",clipboard:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",security:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11V11.99z'/%3E%3C/svg%3E",support:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z'/%3E%3C/svg%3E",idea:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7z'/%3E%3C/svg%3E",person:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",camera:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 15.2c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2 3.2 1.43 3.2 3.2-1.43 3.2-3.2 3.2zM9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E",calendar:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z'/%3E%3C/svg%3E",group:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73L18 18H6l.01-1.62c0-1.17.68-2.25 1.76-2.73 1.17-.51 2.6-.9 4.23-.9zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58C.48 14.9 0 15.62 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85-.85-.37-1.79-.58-2.78-.58-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z'/%3E%3C/svg%3E",ai:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z'/%3E%3C/svg%3E",generic:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function Wu(e){return e?e.startsWith("data:")?e:gu[e]??gu.generic:gu.generic}const Qc=["file_read","file_write","file_edit","file_search","list_dir","shell_exec","web_search","web_fetch","todo_read","todo_write","browser_navigate","browser_navigate_back","browser_snapshot","browser_wait_for","browser_scroll","browser_click","browser_type","browser_select_option","browser_take_screenshot","browser_evaluate","browser_close"],TU=[{label:"Files",prefix:"file_",tools:Qc.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Qc.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Qc.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Qc.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Qc.filter(e=>e.startsWith("browser_"))}],RU=Zm.filter(e=>e!=="native"&&e!=="jiuwenswarm"),AU=[{value:"auto",label:"Auto",hint:"System picks native or external based on role config"},{value:"native",label:"Native",hint:"Run directly in-process via LLM"},{value:"external",label:"External",hint:"Delegate to an external agent (codex, cursor, etc.)"}];function MU({role:e,allRoles:t,employees:n,readOnly:i,teamBindingEditable:r=!0,organizationId:o,onUpdateRole:a,onBindExternalTeam:u,onUnbindExternalTeam:d,onDeleteRole:m,onClose:h}){const[p,g]=C.useState(e.name),[x,v]=C.useState(e.responsibility),[b,S]=C.useState(e.reports_to),[w,k]=C.useState(e.icon??null),[j,N]=C.useState(()=>new Set(e.can_spawn)),[z,I]=C.useState(()=>new Set(e.tools)),[A,L]=C.useState(e.runtime_policy?.execution_strategy??"auto"),[M,O]=C.useState(e.preferred_external_agent??null),[T,$]=C.useState((e.prompt_refs??[]).join(` +`)),[G,P]=C.useState(!1),[F,V]=C.useState(!1),Y=C.useRef(e.role_id);C.useEffect(()=>{Y.current!==e.role_id&&(Y.current=e.role_id,g(e.name),v(e.responsibility),S(e.reports_to),k(e.icon??null),N(new Set(e.can_spawn)),I(new Set(e.tools)),L(e.runtime_policy?.execution_strategy??"auto"),O(e.preferred_external_agent??null),$((e.prompt_refs??[]).join(` +`)),P(!1))},[e]),C.useEffect(()=>{O(e.preferred_external_agent??null),V(!1)},[e.preferred_external_agent,e.external_team_binding_id]),C.useEffect(()=>{if(!F)return;const me=setTimeout(()=>V(!1),12e3);return()=>clearTimeout(me)},[F]);const U=C.useRef({}),Q=C.useRef(null),W=C.useRef(e.role_id);C.useEffect(()=>{W.current=e.role_id},[e.role_id]);const q=C.useCallback(()=>{Q.current&&(clearTimeout(Q.current),Q.current=null);const me=U.current;U.current={},Object.keys(me).length!==0&&a(W.current,me)},[a]),J=C.useCallback(me=>{i||(U.current={...U.current,...me},Q.current&&clearTimeout(Q.current),Q.current=setTimeout(q,500))},[q,i]);C.useEffect(()=>()=>{Q.current&&(clearTimeout(Q.current),Q.current=null);const me=U.current;Object.keys(me).length>0&&(U.current={},a(W.current,me))},[a]);const D=me=>{g(me),J({name:me})},Z=me=>{v(me),J({responsibility:me})},ie=me=>{S(me),J({reports_to:me})},ee=me=>{k(me),J({icon:me})},te=me=>{L(me),J({execution_strategy:me})},oe=me=>{O(me),J({preferred_external_agent:me})},le=me=>{$(me);const qe=me.split(` +`).map(Ge=>Ge.trim()).filter(Boolean);J({prompt_refs:qe})},he=me=>{const qe=new Set(j);qe.has(me)?qe.delete(me):qe.add(me),N(qe),J({can_spawn:Array.from(qe)})},Ie=me=>{const qe=new Set(z);qe.has(me)?qe.delete(me):qe.add(me),I(qe),J({tools:Array.from(qe)})},xe=C.useMemo(()=>t.filter(me=>me.role_id!==e.role_id),[t,e.role_id]),je=C.useMemo(()=>n.filter(me=>(me.role_ids?.length?me.role_ids:[me.role_id]).includes(e.role_id)).length,[n,e.role_id]),Ve=C.useMemo(()=>T.split(` +`).filter(me=>me.trim()).length,[T]),We=!!e.external_team_boundary,Pe=!!e.covered_by_external_team,ct=Pe&&!We,It=C.useMemo(()=>{const me=e.external_team_capability_manifest?.covered_roles??[];if(me.length>0)return me.map(ce=>({role_id:ce.role_id,name:ce.name||ce.role_id,responsibility:ce.responsibility||""}));const qe=[],Ge=new Set,ht=ce=>{if(Ge.has(ce))return;Ge.add(ce);const we=t.find(Oe=>Oe.role_id===ce);we&&qe.push(we),t.filter(Oe=>Oe.reports_to===ce).forEach(Oe=>ht(Oe.role_id))};return ht(e.role_id),qe},[t,e.external_team_capability_manifest,e.role_id]),ut=e.external_team_capability_manifest,Bt=me=>{if(!(!r||F)&&!(me==="subtree"&&!u)&&!(me==="role"&&!d)){if(q(),V(!0),me==="subtree"){u?.({boundary_role_id:e.role_id,organization_id:o,scope:"subtree"});return}d?.({binding_id:e.external_team_binding_id??void 0,boundary_role_id:e.external_team_boundary_role_id??e.role_id,organization_id:o})}},ge=()=>{if(!G){P(!0);return}q(),m(e.role_id)};return c.jsxs("aside",{className:"ri-panel","aria-label":`Inspector for role ${e.name}`,children:[c.jsxs("header",{className:"ri-panel-header",children:[c.jsx("img",{src:Wu(w),alt:"",className:"ri-panel-icon"}),c.jsxs("div",{className:"ri-panel-title-wrap",children:[c.jsx("h3",{className:"ri-panel-title",children:p||"(unnamed)"}),c.jsx("code",{className:"ri-panel-id",children:e.role_id})]}),c.jsx("button",{className:"btn btn-ghost btn-sm ri-panel-close",onClick:h,title:"Close (Esc)",children:"✕"})]}),c.jsxs("div",{className:"ri-panel-body",children:[c.jsxs(rl,{title:"Identity",defaultExpanded:!0,children:[c.jsx(cr,{label:"Name",children:c.jsx("input",{className:"ri-text-input",value:p,onChange:me=>D(me.target.value),disabled:i})}),c.jsx(cr,{label:"Responsibility",children:c.jsx("textarea",{className:"ri-textarea",rows:3,value:x,onChange:me=>Z(me.target.value),disabled:i})}),c.jsx(cr,{label:"Icon",children:c.jsx(DU,{value:w,onChange:ee,readOnly:i})})]}),c.jsxs(rl,{title:"Hierarchy",defaultExpanded:!0,children:[c.jsx(cr,{label:"Reports to",children:c.jsxs("select",{className:"ri-select",value:b,onChange:me=>ie(me.target.value),disabled:i,children:[c.jsx("option",{value:"owner",children:"You (Owner)"}),xe.map(me=>c.jsx("option",{value:me.role_id,children:me.name},me.role_id))]})}),c.jsx(cr,{label:"Can delegate to",children:c.jsx(OU,{allIds:xe.map(me=>me.role_id),labelFor:me=>xe.find(qe=>qe.role_id===me)?.name??me,selected:j,onToggle:he,readOnly:i})}),c.jsx(cr,{label:"Employees assigned",children:c.jsx("span",{className:"ri-meta-value",children:je})})]}),c.jsx(rl,{title:`Tools (${z.size})`,children:c.jsx(LU,{tools:z,onToggle:Ie,readOnly:i})}),c.jsx(rl,{title:`Prompts (${Ve})`,children:c.jsx(cr,{label:"Prompt refs / inline",children:c.jsx("textarea",{className:"ri-textarea ri-textarea-mono",rows:5,placeholder:"One prompt ref or inline instruction per line",value:T,onChange:me=>le(me.target.value),disabled:i})})}),c.jsxs(rl,{title:"Runtime policy",defaultExpanded:!0,children:[c.jsx(cr,{label:"Execution scope",children:c.jsxs("div",{className:"ri-scope-options",children:[c.jsxs("label",{className:"ri-scope-option",children:[c.jsx("input",{type:"radio",name:`execution-scope-${e.role_id}`,checked:!Pe,onChange:()=>Bt("role"),disabled:!r||F||ct}),c.jsxs("span",{children:[c.jsx("b",{children:"This role only"}),c.jsx("small",{children:"Choose one executor for this organizational seat."})]})]}),c.jsxs("label",{className:"ri-scope-option",children:[c.jsx("input",{type:"radio",name:`execution-scope-${e.role_id}`,checked:We,onChange:()=>Bt("subtree"),disabled:!r||F||ct}),c.jsxs("span",{children:[c.jsx("b",{children:"This role and descendants"}),c.jsx("small",{children:"One opaque JiuwenSwarm Team; no covered roles are recruited separately."})]})]})]})}),ct&&c.jsxs("div",{className:"ri-team-notice",children:["This role is covered by the JiuwenSwarm Team at ",c.jsx("code",{children:e.external_team_boundary_role_id}),". Its staffing and executor are inherited from that boundary."]}),We&&c.jsxs("div",{className:"ri-team-card",children:[c.jsxs("div",{className:"ri-team-card-title",children:[c.jsx("span",{children:"JiuwenSwarm Team"}),c.jsx("code",{children:e.external_team_binding_id})]}),c.jsxs("div",{className:"ri-team-card-copy",children:["OPC dispatches to ",c.jsx("code",{children:e.role_id}),"; Jiuwen manages its internal leader and members."]}),c.jsx("div",{className:"ri-team-covered-list",children:It.map(me=>c.jsxs("div",{className:"ri-team-covered-role",title:me.responsibility,children:[c.jsx("span",{children:me.name}),c.jsx("code",{children:me.role_id})]},me.role_id))}),ut&&c.jsxs("div",{className:"ri-team-capabilities",children:[c.jsx("b",{children:"Compiled capability contract"}),c.jsx("span",{children:ut.capabilities.length>0?ut.capabilities.join(" · "):"Derived from the covered role responsibilities shown above."}),ut.deliverables.length>0&&c.jsxs("span",{children:["Deliverables: ",ut.deliverables.join(" · ")]}),c.jsxs("code",{title:ut.manifest_hash,children:["manifest ",ut.manifest_hash.slice(0,12)]})]})]}),!Pe&&c.jsx(cr,{label:"Execution strategy",children:c.jsx("div",{className:"ri-radio-group",children:AU.map(me=>c.jsxs("label",{className:"ri-radio",title:me.hint,children:[c.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:me.value,checked:A===me.value,onChange:()=>te(me.value),disabled:i}),me.label]},me.value))})}),!Pe&&A==="external"&&c.jsxs(cr,{label:"Preferred external agent",children:[c.jsxs("select",{className:"ri-select",value:M??"",onChange:me=>oe(me.target.value||null),disabled:i,children:[c.jsx("option",{value:"",children:"(any)"}),M==="jiuwenswarm"&&c.jsx("option",{value:"jiuwenswarm",children:"JiuwenSwarm Team (select Team scope above)"}),RU.map(me=>c.jsx("option",{value:me,children:da(me)},me))]}),M==="jiuwenswarm"&&c.jsx("span",{className:"ri-field-hint",children:"This legacy role-only value is ambiguous. Select “This role and descendants” above to create the Team binding."})]}),!We&&i&&!ct&&c.jsx("div",{className:"ri-team-notice",children:"Corporate role structure is fixed. Choose its single-role executor in the Company staffing step, or bind this entire subtree to JiuwenSwarm here."})]}),c.jsxs(rl,{title:"Advanced",children:[c.jsx(cr,{label:"Role type",children:c.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),c.jsx(cr,{label:"Skills",children:c.jsx("span",{className:"ri-meta-value",children:e.skill_refs&&e.skill_refs.length>0?e.skill_refs.join(", "):"(none)"})}),c.jsx(cr,{label:"Artifact contract",children:c.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!i&&c.jsx("footer",{className:"ri-panel-footer",children:c.jsx("button",{className:`btn btn-sm ${G?"btn-danger":"btn-ghost"}`,onClick:ge,onBlur:()=>P(!1),children:G?"Confirm delete?":"Delete role"})})]})}function rl({title:e,defaultExpanded:t=!1,children:n}){const[i,r]=C.useState(t);return c.jsxs("section",{className:`ri-group${i?" is-expanded":""}`,children:[c.jsxs("button",{className:"ri-group-header",onClick:()=>r(o=>!o),children:[c.jsx("span",{className:"ri-group-caret",children:i?"▾":"▸"}),c.jsx("span",{className:"ri-group-title",children:e})]}),i&&c.jsx("div",{className:"ri-group-body",children:n})]})}function cr({label:e,children:t}){return c.jsxs("div",{className:"ri-field",children:[c.jsx("label",{className:"ri-field-label",children:e}),c.jsx("div",{className:"ri-field-control",children:t})]})}function DU({value:e,onChange:t,readOnly:n}){const[i,r]=C.useState(!1);return c.jsxs("div",{className:"ri-icon-picker",children:[c.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&r(o=>!o),disabled:n,children:[c.jsx("img",{src:Wu(e),alt:"",className:"ri-icon-picker-current"}),c.jsx("span",{className:"ri-icon-picker-label",children:e??"generic"})]}),i&&c.jsxs("div",{className:"ri-icon-picker-popover",children:[c.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),r(!1)},title:"Default icon",children:c.jsx("img",{src:gu.generic,alt:""})}),IU.filter(o=>o!=="generic").map(o=>c.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),r(!1)},title:o,children:c.jsx("img",{src:gu[o],alt:o})},o))]})]})}function OU({allIds:e,labelFor:t,selected:n,onToggle:i,readOnly:r}){const[o,a]=C.useState(!1),u=e.filter(d=>!n.has(d));return c.jsxs("div",{className:"ri-multiselect",children:[c.jsxs("div",{className:"ri-chips",children:[Array.from(n).map(d=>c.jsxs("span",{className:"ri-chip",children:[t(d),!r&&c.jsx("button",{className:"ri-chip-x",onClick:()=>i(d),title:"Remove",children:"×"})]},d)),!r&&u.length>0&&c.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&r&&c.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!r&&c.jsx("div",{className:"ri-multiselect-popover",children:u.map(d=>c.jsx("button",{className:"ri-multiselect-option",onClick:()=>{i(d),a(!1)},children:t(d)},d))})]})}function LU({tools:e,onToggle:t,readOnly:n}){return c.jsx("div",{className:"ri-toolcheck",children:TU.map(i=>c.jsxs("fieldset",{className:"ri-toolcheck-group",children:[c.jsx("legend",{className:"ri-toolcheck-legend",children:i.label}),c.jsx("div",{className:"ri-toolcheck-items",children:i.tools.map(r=>c.jsxs("label",{className:"ri-toolcheck-item",children:[c.jsx("input",{type:"checkbox",checked:e.has(r),onChange:()=>t(r),disabled:n}),c.jsx("span",{className:"ri-toolcheck-name",children:r.replace(i.prefix,"")||r})]},r))})]},i.prefix))})}function wo(e,t){return typeof e=="function"?e(t):e}function yr(e,t){return n=>{t.setState(i=>({...i,[e]:wo(n,i[e])}))}}function rp(e){return e instanceof Function}function zU(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function PU(e,t){const n=[],i=r=>{r.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&i(a)})};return i(e),n}function yt(e,t,n){let i=[],r;return o=>{let a;n.key&&n.debug&&(a=Date.now());const u=e(o);if(!(u.length!==i.length||u.some((h,p)=>i[p]!==h)))return r;i=u;let m;if(n.key&&n.debug&&(m=Date.now()),r=t(...u),n==null||n.onChange==null||n.onChange(r),n.key&&n.debug&&n!=null&&n.debug()){const h=Math.round((Date.now()-a)*100)/100,p=Math.round((Date.now()-m)*100)/100,g=p/16,x=(v,b)=>{for(v=String(v);v.length{var r;return(r=e?.debugAll)!=null?r:e[t]},key:!1,onChange:i}}function BU(e,t,n,i){const r=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(i),renderValue:r,getContext:yt(()=>[e,n,t,o],(a,u,d,m)=>({table:a,column:u,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),xt(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function $U(e,t,n,i){var r,o;const u={...e._getDefaultColumnDef(),...t},d=u.accessorKey;let m=(r=(o=u.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?r:typeof u.header=="string"?u.header:void 0,h;if(u.accessorFn?h=u.accessorFn:d&&(d.includes(".")?h=g=>{let x=g;for(const b of d.split(".")){var v;x=(v=x)==null?void 0:v[b]}return x}:h=g=>g[u.accessorKey]),!m)throw new Error;let p={id:`${String(m)}`,accessorFn:h,parent:i,depth:n,columnDef:u,columns:[],getFlatColumns:yt(()=>[!0],()=>{var g;return[p,...(g=p.columns)==null?void 0:g.flatMap(x=>x.getFlatColumns())]},xt(e.options,"debugColumns")),getLeafColumns:yt(()=>[e._getOrderColumnsFn()],g=>{var x;if((x=p.columns)!=null&&x.length){let v=p.columns.flatMap(b=>b.getLeafColumns());return g(v)}return[p]},xt(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(p,e);return p}const Di="debugHeaders";function XC(e,t,n){var i;let o={id:(i=n.id)!=null?i:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],u=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(u),a.push(d)};return u(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const HU={createTable:e=>{e.getHeaderGroups=yt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>{var o,a;const u=(o=i?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?o:[],d=(a=r?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?a:[],m=n.filter(p=>!(i!=null&&i.includes(p.id))&&!(r!=null&&r.includes(p.id)));return Sf(t,[...u,...m,...d],e)},xt(e.options,Di)),e.getCenterHeaderGroups=yt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>(n=n.filter(o=>!(i!=null&&i.includes(o.id))&&!(r!=null&&r.includes(o.id))),Sf(t,n,e,"center")),xt(e.options,Di)),e.getLeftHeaderGroups=yt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?r:[];return Sf(t,o,e,"left")},xt(e.options,Di)),e.getRightHeaderGroups=yt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?r:[];return Sf(t,o,e,"right")},xt(e.options,Di)),e.getFooterGroups=yt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),xt(e.options,Di)),e.getLeftFooterGroups=yt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),xt(e.options,Di)),e.getCenterFooterGroups=yt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),xt(e.options,Di)),e.getRightFooterGroups=yt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),xt(e.options,Di)),e.getFlatHeaders=yt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,Di)),e.getLeftFlatHeaders=yt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,Di)),e.getCenterFlatHeaders=yt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,Di)),e.getRightFlatHeaders=yt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,Di)),e.getCenterLeafHeaders=yt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),xt(e.options,Di)),e.getLeftLeafHeaders=yt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),xt(e.options,Di)),e.getRightLeafHeaders=yt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),xt(e.options,Di)),e.getLeafHeaders=yt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,i)=>{var r,o,a,u,d,m;return[...(r=(o=t[0])==null?void 0:o.headers)!=null?r:[],...(a=(u=n[0])==null?void 0:u.headers)!=null?a:[],...(d=(m=i[0])==null?void 0:m.headers)!=null?d:[]].map(h=>h.getLeafHeaders()).flat()},xt(e.options,Di))}};function Sf(e,t,n,i){var r,o;let a=0;const u=function(g,x){x===void 0&&(x=1),a=Math.max(a,x),g.filter(v=>v.getIsVisible()).forEach(v=>{var b;(b=v.columns)!=null&&b.length&&u(v.columns,x+1)},0)};u(e);let d=[];const m=(g,x)=>{const v={depth:x,id:[i,`${x}`].filter(Boolean).join("_"),headers:[]},b=[];g.forEach(S=>{const w=[...b].reverse()[0],k=S.column.depth===v.depth;let j,N=!1;if(k&&S.column.parent?j=S.column.parent:(j=S.column,N=!0),w&&w?.column===j)w.subHeaders.push(S);else{const z=XC(n,j,{id:[i,x,j.id,S?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${b.filter(I=>I.column===j).length}`:void 0,depth:x,index:b.length});z.subHeaders.push(S),b.push(z)}v.headers.push(S),S.headerGroup=v}),d.push(v),x>0&&m(b,x-1)},h=t.map((g,x)=>XC(n,g,{depth:a,index:x}));m(h,a-1),d.reverse();const p=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let b=0,S=0,w=[0];v.subHeaders&&v.subHeaders.length?(w=[],p(v.subHeaders).forEach(j=>{let{colSpan:N,rowSpan:z}=j;b+=N,w.push(z)})):b=1;const k=Math.min(...w);return S=S+k,v.colSpan=b,v.rowSpan=S,{colSpan:b,rowSpan:S}});return p((r=(o=d[0])==null?void 0:o.headers)!=null?r:[]),d}const FU=(e,t,n,i,r,o,a)=>{let u={id:t,index:i,original:n,depth:r,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:d=>{if(u._valuesCache.hasOwnProperty(d))return u._valuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return u._valuesCache[d]=m.accessorFn(u.original,i),u._valuesCache[d]},getUniqueValues:d=>{if(u._uniqueValuesCache.hasOwnProperty(d))return u._uniqueValuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return m.columnDef.getUniqueValues?(u._uniqueValuesCache[d]=m.columnDef.getUniqueValues(u.original,i),u._uniqueValuesCache[d]):(u._uniqueValuesCache[d]=[u.getValue(d)],u._uniqueValuesCache[d])},renderValue:d=>{var m;return(m=u.getValue(d))!=null?m:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>PU(u.subRows,d=>d.subRows),getParentRow:()=>u.parentId?e.getRow(u.parentId,!0):void 0,getParentRows:()=>{let d=[],m=u;for(;;){const h=m.getParentRow();if(!h)break;d.push(h),m=h}return d.reverse()},getAllCells:yt(()=>[e.getAllLeafColumns()],d=>d.map(m=>BU(e,u,m,m.id)),xt(e.options,"debugRows")),_getAllCellsByColumnId:yt(()=>[u.getAllCells()],d=>d.reduce((m,h)=>(m[h.column.id]=h,m),{}),xt(e.options,"debugRows"))};for(let d=0;d{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},yT=(e,t,n)=>{var i,r;const o=n==null||(i=n.toString())==null?void 0:i.toLowerCase();return!!(!((r=e.getValue(t))==null||(r=r.toString())==null||(r=r.toLowerCase())==null)&&r.includes(o))};yT.autoRemove=e=>Yr(e);const xT=(e,t,n)=>{var i;return!!(!((i=e.getValue(t))==null||(i=i.toString())==null)&&i.includes(n))};xT.autoRemove=e=>Yr(e);const vT=(e,t,n)=>{var i;return((i=e.getValue(t))==null||(i=i.toString())==null?void 0:i.toLowerCase())===n?.toLowerCase()};vT.autoRemove=e=>Yr(e);const bT=(e,t,n)=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(n)};bT.autoRemove=e=>Yr(e);const _T=(e,t,n)=>!n.some(i=>{var r;return!((r=e.getValue(t))!=null&&r.includes(i))});_T.autoRemove=e=>Yr(e)||!(e!=null&&e.length);const kT=(e,t,n)=>n.some(i=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(i)});kT.autoRemove=e=>Yr(e)||!(e!=null&&e.length);const ST=(e,t,n)=>e.getValue(t)===n;ST.autoRemove=e=>Yr(e);const wT=(e,t,n)=>e.getValue(t)==n;wT.autoRemove=e=>Yr(e);const G0=(e,t,n)=>{let[i,r]=n;const o=e.getValue(t);return o>=i&&o<=r};G0.resolveFilterValue=e=>{let[t,n]=e,i=typeof t!="number"?parseFloat(t):t,r=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(i)?-1/0:i,a=n===null||Number.isNaN(r)?1/0:r;if(o>a){const u=o;o=a,a=u}return[o,a]};G0.autoRemove=e=>Yr(e)||Yr(e[0])&&Yr(e[1]);const Ls={includesString:yT,includesStringSensitive:xT,equalsString:vT,arrIncludes:bT,arrIncludesAll:_T,arrIncludesSome:kT,equals:ST,weakEquals:wT,inNumberRange:G0};function Yr(e){return e==null||e===""}const UU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:yr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);return typeof i=="string"?Ls.includesString:typeof i=="number"?Ls.inNumberRange:typeof i=="boolean"||i!==null&&typeof i=="object"?Ls.equals:Array.isArray(i)?Ls.arrIncludes:Ls.weakEquals},e.getFilterFn=()=>{var n,i;return rp(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(i=t.options.filterFns)==null?void 0:i[e.columnDef.filterFn])!=null?n:Ls[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,i,r;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((i=t.options.enableColumnFilters)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(i=>i.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,i;return(n=(i=t.getState().columnFilters)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(i=>{const r=e.getFilterFn(),o=i?.find(h=>h.id===e.id),a=wo(n,o?o.value:void 0);if(KC(r,a,e)){var u;return(u=i?.filter(h=>h.id!==e.id))!=null?u:[]}const d={id:e.id,value:a};if(o){var m;return(m=i?.map(h=>h.id===e.id?d:h))!=null?m:[]}return i!=null&&i.length?[...i,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),i=r=>{var o;return(o=wo(t,r))==null?void 0:o.filter(a=>{const u=n.find(d=>d.id===a.id);if(u){const d=u.getFilterFn();if(KC(d,a.value,u))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(i)},e.resetColumnFilters=t=>{var n,i;e.setColumnFilters(t?[]:(n=(i=e.initialState)==null?void 0:i.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function KC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const qU=(e,t,n)=>n.reduce((i,r)=>{const o=r.getValue(e);return i+(typeof o=="number"?o:0)},0),GU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i>o||i===void 0&&o>=o)&&(i=o)}),i},WU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i=o)&&(i=o)}),i},YU=(e,t,n)=>{let i,r;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(i===void 0?a>=a&&(i=r=a):(i>a&&(i=a),r{let n=0,i=0;if(t.forEach(r=>{let o=r.getValue(e);o!=null&&(o=+o)>=o&&(++n,i+=o)}),n)return i/n},KU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!zU(n))return;if(n.length===1)return n[0];const i=Math.floor(n.length/2),r=n.sort((o,a)=>o-a);return n.length%2!==0?r[i]:(r[i-1]+r[i])/2},ZU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),QU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,JU=(e,t)=>t.length,My={sum:qU,min:GU,max:WU,extent:YU,mean:XU,median:KU,unique:ZU,uniqueCount:QU,count:JU},eq={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:yr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(i=>i!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,i;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((i=t.options.enableGrouping)!=null?i:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);if(typeof i=="number")return My.sum;if(Object.prototype.toString.call(i)==="[object Date]")return My.extent},e.getAggregationFn=()=>{var n,i;if(!e)throw new Error;return rp(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(i=t.options.aggregationFns)==null?void 0:i[e.columnDef.aggregationFn])!=null?n:My[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,i;e.setGrouping(t?[]:(n=(i=e.initialState)==null?void 0:i.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const i=t.getColumn(n);return i!=null&&i.columnDef.getGroupingValue?(e._groupingValuesCache[n]=i.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,i)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var r;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((r=n.subRows)!=null&&r.length)}}};function tq(e,t,n){if(!(t!=null&&t.length)||!n)return e;const i=e.filter(o=>!t.includes(o.id));return n==="remove"?i:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...i]}const nq={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:yr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=yt(n=>[yu(t,n)],n=>n.findIndex(i=>i.id===e.id),xt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var i;return((i=yu(t,n)[0])==null?void 0:i.id)===e.id},e.getIsLastColumn=n=>{var i;const r=yu(t,n);return((i=r[r.length-1])==null?void 0:i.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=yt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,i)=>r=>{let o=[];if(!(t!=null&&t.length))o=r;else{const a=[...t],u=[...r];for(;u.length&&a.length;){const d=a.shift(),m=u.findIndex(h=>h.id===d);m>-1&&o.push(u.splice(m,1)[0])}o=[...o,...u]}return tq(o,n,i)},xt(e.options,"debugTable"))}},Dy=()=>({left:[],right:[]}),iq={getInitialState:e=>({columnPinning:Dy(),...e}),getDefaultOptions:e=>({onColumnPinningChange:yr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const i=e.getLeafColumns().map(r=>r.id).filter(Boolean);t.setColumnPinning(r=>{var o,a;if(n==="right"){var u,d;return{left:((u=r?.left)!=null?u:[]).filter(p=>!(i!=null&&i.includes(p))),right:[...((d=r?.right)!=null?d:[]).filter(p=>!(i!=null&&i.includes(p))),...i]}}if(n==="left"){var m,h;return{left:[...((m=r?.left)!=null?m:[]).filter(p=>!(i!=null&&i.includes(p))),...i],right:((h=r?.right)!=null?h:[]).filter(p=>!(i!=null&&i.includes(p)))}}return{left:((o=r?.left)!=null?o:[]).filter(p=>!(i!=null&&i.includes(p))),right:((a=r?.right)!=null?a:[]).filter(p=>!(i!=null&&i.includes(p)))}})},e.getCanPin=()=>e.getLeafColumns().some(i=>{var r,o,a;return((r=i.columnDef.enablePinning)!=null?r:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(u=>u.id),{left:i,right:r}=t.getState().columnPinning,o=n.some(u=>i?.includes(u)),a=n.some(u=>r?.includes(u));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();return r?(n=(i=t.getState().columnPinning)==null||(i=i[r])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=yt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,i,r)=>{const o=[...i??[],...r??[]];return n.filter(a=>!o.includes(a.column.id))},xt(t.options,"debugRows")),e.getLeftVisibleCells=yt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),xt(t.options,"debugRows")),e.getRightVisibleCells=yt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),xt(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,i;return e.setColumnPinning(t?Dy():(n=(i=e.initialState)==null?void 0:i.columnPinning)!=null?n:Dy())},e.getIsSomeColumnsPinned=t=>{var n;const i=e.getState().columnPinning;if(!t){var r,o;return!!((r=i.left)!=null&&r.length||(o=i.right)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e.getLeftLeafColumns=yt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),xt(e.options,"debugColumns")),e.getRightLeafColumns=yt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),xt(e.options,"debugColumns")),e.getCenterLeafColumns=yt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i)=>{const r=[...n??[],...i??[]];return t.filter(o=>!r.includes(o.id))},xt(e.options,"debugColumns"))}};function rq(e){return e||(typeof document<"u"?document:null)}const wf={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Oy=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),sq={getDefaultColumnDef:()=>wf,getInitialState:e=>({columnSizing:{},columnSizingInfo:Oy(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:yr("columnSizing",e),onColumnSizingInfoChange:yr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,i,r;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:wf.minSize,(i=o??e.columnDef.size)!=null?i:wf.size),(r=e.columnDef.maxSize)!=null?r:wf.maxSize)},e.getStart=yt(n=>[n,yu(t,n),t.getState().columnSizing],(n,i)=>i.slice(0,e.getIndex(n)).reduce((r,o)=>r+o.getSize(),0),xt(t.options,"debugColumns")),e.getAfter=yt(n=>[n,yu(t,n),t.getState().columnSizing],(n,i)=>i.slice(e.getIndex(n)+1).reduce((r,o)=>r+o.getSize(),0),xt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:i,...r}=n;return r})},e.getCanResize=()=>{var n,i;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((i=t.options.enableColumnResizing)!=null?i:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const i=r=>{if(r.subHeaders.length)r.subHeaders.forEach(i);else{var o;n+=(o=r.column.getSize())!=null?o:0}};return i(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const i=t.getColumn(e.column.id),r=i?.getCanResize();return o=>{if(!i||!r||(o.persist==null||o.persist(),Ly(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),u=e?e.getLeafHeaders().map(w=>[w.column.id,w.column.getSize()]):[[i.id,i.getSize()]],d=Ly(o)?Math.round(o.touches[0].clientX):o.clientX,m={},h=(w,k)=>{typeof k=="number"&&(t.setColumnSizingInfo(j=>{var N,z;const I=t.options.columnResizeDirection==="rtl"?-1:1,A=(k-((N=j?.startOffset)!=null?N:0))*I,L=Math.max(A/((z=j?.startSize)!=null?z:0),-.999999);return j.columnSizingStart.forEach(M=>{let[O,T]=M;m[O]=Math.round(Math.max(T+T*L,0)*100)/100}),{...j,deltaOffset:A,deltaPercentage:L}}),(t.options.columnResizeMode==="onChange"||w==="end")&&t.setColumnSizing(j=>({...j,...m})))},p=w=>h("move",w),g=w=>{h("end",w),t.setColumnSizingInfo(k=>({...k,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},x=rq(n),v={moveHandler:w=>p(w.clientX),upHandler:w=>{x?.removeEventListener("mousemove",v.moveHandler),x?.removeEventListener("mouseup",v.upHandler),g(w.clientX)}},b={moveHandler:w=>(w.cancelable&&(w.preventDefault(),w.stopPropagation()),p(w.touches[0].clientX),!1),upHandler:w=>{var k;x?.removeEventListener("touchmove",b.moveHandler),x?.removeEventListener("touchend",b.upHandler),w.cancelable&&(w.preventDefault(),w.stopPropagation()),g((k=w.touches[0])==null?void 0:k.clientX)}},S=oq()?{passive:!1}:!1;Ly(o)?(x?.addEventListener("touchmove",b.moveHandler,S),x?.addEventListener("touchend",b.upHandler,S)):(x?.addEventListener("mousemove",v.moveHandler,S),x?.addEventListener("mouseup",v.upHandler,S)),t.setColumnSizingInfo(w=>({...w,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:u,isResizingColumn:i.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Oy():(n=e.initialState.columnSizingInfo)!=null?n:Oy())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0}}};let Cf=null;function oq(){if(typeof Cf=="boolean")return Cf;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return Cf=e,Cf}function Ly(e){return e.type==="touchstart"}const aq={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:yr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(i=>({...i,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,i;const r=e.columns;return(n=r.length?r.some(o=>o.getIsVisible()):(i=t.getState().columnVisibility)==null?void 0:i[e.id])!=null?n:!0},e.getCanHide=()=>{var n,i;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((i=t.options.enableHiding)!=null?i:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=yt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(i=>i.column.getIsVisible()),xt(t.options,"debugRows")),e.getVisibleCells=yt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,i,r)=>[...n,...i,...r],xt(t.options,"debugRows"))},createTable:e=>{const t=(n,i)=>yt(()=>[i(),i().filter(r=>r.getIsVisible()).map(r=>r.id).join("_")],r=>r.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),xt(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var i;e.setColumnVisibility(n?{}:(i=e.initialState.columnVisibility)!=null?i:{})},e.toggleAllColumnsVisible=n=>{var i;n=(i=n)!=null?i:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((r,o)=>({...r,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var i;e.toggleAllColumnsVisible((i=n.target)==null?void 0:i.checked)}}};function yu(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const lq={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},cq={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:yr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const i=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,i,r,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((i=t.options.enableGlobalFilter)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Ls.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:i}=e.options;return rp(i)?i:i==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[i])!=null?t:Ls[i]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},uq={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:yr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetExpanded)!=null?i:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=i=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(i),e.toggleAllRowsExpanded=i=>{i??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=i=>{var r,o;e.setExpanded(i?{}:(r=(o=e.initialState)==null?void 0:o.expanded)!=null?r:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(i=>i.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>i=>{i.persist==null||i.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const i=e.getState().expanded;return i===!0||Object.values(i).some(Boolean)},e.getIsAllRowsExpanded=()=>{const i=e.getState().expanded;return typeof i=="boolean"?i===!0:!(!Object.keys(i).length||e.getRowModel().flatRows.some(r=>!r.getIsExpanded()))},e.getExpandedDepth=()=>{let i=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");i=Math.max(i,a.length)}),i},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(i=>{var r;const o=i===!0?!0:!!(i!=null&&i[e.id]);let a={};if(i===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{a[u]=!0}):a=i,n=(r=n)!=null?r:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:u,...d}=a;return d}return i})},e.getIsExpanded=()=>{var n;const i=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:i===!0||i?.[e.id])},e.getCanExpand=()=>{var n,i,r;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((i=t.options.enableExpanding)!=null?i:!0)&&!!((r=e.subRows)!=null&&r.length)},e.getIsAllParentsExpanded=()=>{let n=!0,i=e;for(;n&&i.parentId;)i=t.getRow(i.parentId,!0),n=i.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Iv=0,Tv=10,zy=()=>({pageIndex:Iv,pageSize:Tv}),dq={getInitialState:e=>({...e,pagination:{...zy(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:yr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetPageIndex)!=null?i:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=i=>{const r=o=>wo(i,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(r)},e.resetPagination=i=>{var r;e.setPagination(i?zy():(r=e.initialState.pagination)!=null?r:zy())},e.setPageIndex=i=>{e.setPagination(r=>{let o=wo(i,r.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...r,pageIndex:o}})},e.resetPageIndex=i=>{var r,o;e.setPageIndex(i?Iv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?r:Iv)},e.resetPageSize=i=>{var r,o;e.setPageSize(i?Tv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?r:Tv)},e.setPageSize=i=>{e.setPagination(r=>{const o=Math.max(1,wo(i,r.pageSize)),a=r.pageSize*r.pageIndex,u=Math.floor(a/o);return{...r,pageIndex:u,pageSize:o}})},e.setPageCount=i=>e.setPagination(r=>{var o;let a=wo(i,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...r,pageCount:a}}),e.getPageOptions=yt(()=>[e.getPageCount()],i=>{let r=[];return i&&i>0&&(r=[...new Array(i)].fill(null).map((o,a)=>a)),r},xt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:i}=e.getState().pagination,r=e.getPageCount();return r===-1?!0:r===0?!1:ie.setPageIndex(i=>i-1),e.nextPage=()=>e.setPageIndex(i=>i+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var i;return(i=e.options.pageCount)!=null?i:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var i;return(i=e.options.rowCount)!=null?i:e.getPrePaginationRowModel().rows.length}}},Py=()=>({top:[],bottom:[]}),fq={getInitialState:e=>({rowPinning:Py(),...e}),getDefaultOptions:e=>({onRowPinningChange:yr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,i,r)=>{const o=i?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=r?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],u=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,h;if(n==="bottom"){var p,g;return{top:((p=d?.top)!=null?p:[]).filter(b=>!(u!=null&&u.has(b))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(b=>!(u!=null&&u.has(b))),...Array.from(u)]}}if(n==="top"){var x,v;return{top:[...((x=d?.top)!=null?x:[]).filter(b=>!(u!=null&&u.has(b))),...Array.from(u)],bottom:((v=d?.bottom)!=null?v:[]).filter(b=>!(u!=null&&u.has(b)))}}return{top:((m=d?.top)!=null?m:[]).filter(b=>!(u!=null&&u.has(b))),bottom:((h=d?.bottom)!=null?h:[]).filter(b=>!(u!=null&&u.has(b)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:i,enablePinning:r}=t.options;return typeof i=="function"?i(e):(n=i??r)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:i,bottom:r}=t.getState().rowPinning,o=n.some(u=>i?.includes(u)),a=n.some(u=>r?.includes(u));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();if(!r)return-1;const o=(n=r==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:u}=a;return u});return(i=o?.indexOf(e.id))!=null?i:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,i;return e.setRowPinning(t?Py():(n=(i=e.initialState)==null?void 0:i.rowPinning)!=null?n:Py())},e.getIsSomeRowsPinned=t=>{var n;const i=e.getState().rowPinning;if(!t){var r,o;return!!((r=i.top)!=null&&r.length||(o=i.bottom)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e._getPinnedRows=(t,n,i)=>{var r;return((r=e.options.keepPinnedRows)==null||r?(n??[]).map(a=>{const u=e.getRow(a,!0);return u.getIsAllParentsExpanded()?u:null}):(n??[]).map(a=>t.find(u=>u.id===a))).filter(Boolean).map(a=>({...a,position:i}))},e.getTopRows=yt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),xt(e.options,"debugRows")),e.getBottomRows=yt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),xt(e.options,"debugRows")),e.getCenterRows=yt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,i)=>{const r=new Set([...n??[],...i??[]]);return t.filter(o=>!r.has(o.id))},xt(e.options,"debugRows"))}},mq={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:yr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const i={...n},r=e.getPreGroupedRowModel().flatRows;return t?r.forEach(o=>{o.getCanSelect()&&(i[o.id]=!0)}):r.forEach(o=>{delete i[o.id]}),i})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const i=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),r={...n};return e.getRowModel().rows.forEach(o=>{Rv(r,o.id,i,!0,e)}),r}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=yt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?By(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getFilteredSelectedRowModel=yt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?By(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getGroupedSelectedRowModel=yt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?By(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let i=!!(t.length&&Object.keys(n).length);return i&&t.some(r=>r.getCanSelect()&&!n[r.id])&&(i=!1),i},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(r=>r.getCanSelect()),{rowSelection:n}=e.getState();let i=!!t.length;return i&&t.some(r=>!n[r.id])&&(i=!1),i},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,i)=>{const r=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!r,e.getCanSelect()&&r===n)return o;const u={...o};return Rv(u,e.id,n,(a=i?.selectChildren)!=null?a:!0,t),u})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return W0(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Av(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Av(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return i=>{var r;n&&e.toggleSelected((r=i.target)==null?void 0:r.checked)}}}},Rv=(e,t,n,i,r)=>{var o;const a=r.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(u=>delete e[u]),a.getCanSelect()&&(e[t]=!0)):delete e[t],i&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(u=>Rv(e,u.id,n,i,r))};function By(e,t){const n=e.getState().rowSelection,i=[],r={},o=function(a,u){return a.map(d=>{var m;const h=W0(d,n);if(h&&(i.push(d),r[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),h)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:i,rowsById:r}}function W0(e,t){var n;return(n=t[e.id])!=null?n:!1}function Av(e,t,n){var i;if(!((i=e.subRows)!=null&&i.length))return!1;let r=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!r)&&(a.getCanSelect()&&(W0(a,t)?o=!0:r=!1),a.subRows&&a.subRows.length)){const u=Av(a,t);u==="all"?o=!0:(u==="some"&&(o=!0),r=!1)}}),r?"all":o?"some":!1}const Mv=/([0-9]+)/gm,pq=(e,t,n)=>CT(Ro(e.getValue(n)).toLowerCase(),Ro(t.getValue(n)).toLowerCase()),hq=(e,t,n)=>CT(Ro(e.getValue(n)),Ro(t.getValue(n))),gq=(e,t,n)=>Y0(Ro(e.getValue(n)).toLowerCase(),Ro(t.getValue(n)).toLowerCase()),yq=(e,t,n)=>Y0(Ro(e.getValue(n)),Ro(t.getValue(n))),xq=(e,t,n)=>{const i=e.getValue(n),r=t.getValue(n);return i>r?1:iY0(e.getValue(n),t.getValue(n));function Y0(e,t){return e===t?0:e>t?1:-1}function Ro(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function CT(e,t){const n=e.split(Mv).filter(Boolean),i=t.split(Mv).filter(Boolean);for(;n.length&&i.length;){const r=n.shift(),o=i.shift(),a=parseInt(r,10),u=parseInt(o,10),d=[a,u].sort();if(isNaN(d[0])){if(r>o)return 1;if(o>r)return-1;continue}if(isNaN(d[1]))return isNaN(a)?-1:1;if(a>u)return 1;if(u>a)return-1}return n.length-i.length}const Jc={alphanumeric:pq,alphanumericCaseSensitive:hq,text:gq,textCaseSensitive:yq,datetime:xq,basic:vq},bq={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:yr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let i=!1;for(const r of n){const o=r?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Jc.datetime;if(typeof o=="string"&&(i=!0,o.split(Mv).length>1))return Jc.alphanumeric}return i?Jc.text:Jc.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,i;if(!e)throw new Error;return rp(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(i=t.options.sortingFns)==null?void 0:i[e.columnDef.sortingFn])!=null?n:Jc[e.columnDef.sortingFn]},e.toggleSorting=(n,i)=>{const r=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const u=a?.find(x=>x.id===e.id),d=a?.findIndex(x=>x.id===e.id);let m=[],h,p=o?n:r==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&i?u?h="toggle":h="add":a!=null&&a.length&&d!==a.length-1?h="replace":u?h="toggle":h="replace",h==="toggle"&&(o||r||(h="remove")),h==="add"){var g;m=[...a,{id:e.id,desc:p}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else h==="toggle"?m=a.map(x=>x.id===e.id?{...x,desc:p}:x):h==="remove"?m=a.filter(x=>x.id!==e.id):m=[{id:e.id,desc:p}];return m})},e.getFirstSortDir=()=>{var n,i;return((n=(i=e.columnDef.sortDescFirst)!=null?i:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var i,r;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((i=t.options.enableSortingRemoval)==null||i)&&(!(n&&(r=t.options.enableMultiRemove)!=null)||r)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,i;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((i=t.options.enableSorting)!=null?i:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,i;return(n=(i=e.columnDef.enableMultiSort)!=null?i:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const i=(n=t.getState().sorting)==null?void 0:n.find(r=>r.id===e.id);return i?i.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,i;return(n=(i=t.getState().sorting)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(i=>i.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return i=>{n&&(i.persist==null||i.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(i):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,i;e.setSorting(t?[]:(n=(i=e.initialState)==null?void 0:i.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},_q=[HU,aq,nq,iq,VU,UU,lq,cq,bq,eq,uq,dq,fq,mq,sq];function kq(e){var t,n;const i=[..._q,...(t=e._features)!=null?t:[]];let r={_features:i};const o=r._features.reduce((g,x)=>Object.assign(g,x.getDefaultOptions==null?void 0:x.getDefaultOptions(r)),{}),a=g=>r.options.mergeOptions?r.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};r._features.forEach(g=>{var x;d=(x=g.getInitialState==null?void 0:g.getInitialState(d))!=null?x:d});const m=[];let h=!1;const p={_features:i,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),h||(h=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();h=!1}).catch(x=>setTimeout(()=>{throw x})))},reset:()=>{r.setState(r.initialState)},setOptions:g=>{const x=wo(g,r.options);r.options=a(x)},getState:()=>r.options.state,setState:g=>{r.options.onStateChange==null||r.options.onStateChange(g)},_getRowId:(g,x,v)=>{var b;return(b=r.options.getRowId==null?void 0:r.options.getRowId(g,x,v))!=null?b:`${v?[v.id,x].join("."):x}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(g,x)=>{let v=(x?r.getPrePaginationRowModel():r.getRowModel()).rowsById[g];if(!v&&(v=r.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:yt(()=>[r.options.defaultColumn],g=>{var x;return g=(x=g)!=null?x:{},{header:v=>{const b=v.header.column.columnDef;return b.accessorKey?b.accessorKey:b.accessorFn?b.id:null},cell:v=>{var b,S;return(b=(S=v.renderValue())==null||S.toString==null?void 0:S.toString())!=null?b:null},...r._features.reduce((v,b)=>Object.assign(v,b.getDefaultColumnDef==null?void 0:b.getDefaultColumnDef()),{}),...g}},xt(e,"debugColumns")),_getColumnDefs:()=>r.options.columns,getAllColumns:yt(()=>[r._getColumnDefs()],g=>{const x=function(v,b,S){return S===void 0&&(S=0),v.map(w=>{const k=$U(r,w,S,b),j=w;return k.columns=j.columns?x(j.columns,k,S+1):[],k})};return x(g)},xt(e,"debugColumns")),getAllFlatColumns:yt(()=>[r.getAllColumns()],g=>g.flatMap(x=>x.getFlatColumns()),xt(e,"debugColumns")),_getAllFlatColumnsById:yt(()=>[r.getAllFlatColumns()],g=>g.reduce((x,v)=>(x[v.id]=v,x),{}),xt(e,"debugColumns")),getAllLeafColumns:yt(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(g,x)=>{let v=g.flatMap(b=>b.getLeafColumns());return x(v)},xt(e,"debugColumns")),getColumn:g=>r._getAllFlatColumnsById()[g]};Object.assign(r,p);for(let g=0;gyt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},i=function(r,o,a){o===void 0&&(o=0);const u=[];for(let m=0;me._autoResetPageIndex()))}function wq(){return e=>yt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const i=e.getState().sorting,r=[],o=i.filter(d=>{var m;return(m=e.getColumn(d.id))==null?void 0:m.getCanSort()}),a={};o.forEach(d=>{const m=e.getColumn(d.id);m&&(a[d.id]={sortUndefined:m.columnDef.sortUndefined,invertSorting:m.columnDef.invertSorting,sortingFn:m.getSortingFn()})});const u=d=>{const m=d.map(h=>({...h}));return m.sort((h,p)=>{for(let x=0;x{var p;r.push(h),(p=h.subRows)!=null&&p.length&&(h.subRows=u(h.subRows))}),m};return{rows:u(n.rows),flatRows:r,rowsById:n.rowsById}},xt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function ZC(e,t){return e?Cq(e)?C.createElement(e,t):e:null}function Cq(e){return jq(e)||typeof e=="function"||Eq(e)}function jq(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Eq(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function Nq(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=C.useState(()=>({current:kq(t)})),[i,r]=C.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...i,...e.state},onStateChange:a=>{r(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const QC=Zm.filter(e=>e!=="native");function Iq({roles:e,employees:t,selectedIds:n,onSelectRow:i,onUpdateRole:r,onDeleteRole:o,readOnly:a}){const[u,d]=C.useState([]),[m,h]=C.useState({}),[p,g]=C.useState(null),[x,v]=C.useState(""),b=C.useMemo(()=>{const L=new Map;for(const M of t){const O=M.role_ids?.length?M.role_ids:[M.role_id];for(const T of O)T&&L.set(T,(L.get(T)??0)+1)}return e.map(M=>({role_id:M.role_id,name:M.name,icon:M.icon??null,reports_to:M.reports_to,toolCount:M.tools?.length??0,agent:M.preferred_external_agent??null,employeeCount:L.get(M.role_id)??0,coveredByExternalTeam:!!M.covered_by_external_team,externalTeamBoundary:!!M.external_team_boundary,externalTeamBoundaryRoleId:M.external_team_boundary_role_id??null}))},[e,t]),S=C.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(L=>({id:L.role_id,name:L.name}))],[e]),w=L=>{const M=x.trim();M&&M!==e.find(O=>O.role_id===L)?.name&&r(L,{name:M}),g(null),v("")},k=C.useMemo(()=>[{id:"select",header:({table:L})=>c.jsx("input",{type:"checkbox",checked:L.getIsAllRowsSelected(),ref:M=>{M&&(M.indeterminate=L.getIsSomeRowsSelected()&&!L.getIsAllRowsSelected())},onChange:L.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:L})=>c.jsx("input",{type:"checkbox",checked:L.getIsSelected(),onChange:L.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${L.original.role_id}`,onClick:M=>M.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:L})=>c.jsx("img",{src:Wu(L.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:L})=>{const M=L.original;return p?.rowId===M.role_id&&p.col==="name"?c.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:x,onChange:T=>v(T.target.value),onBlur:()=>w(M.role_id),onKeyDown:T=>{T.key==="Enter"?w(M.role_id):T.key==="Escape"&&(g(null),v(""))},onClick:T=>T.stopPropagation()}):c.jsx("span",{className:"rt-cell-name",onDoubleClick:T=>{a||(T.stopPropagation(),v(M.name),g({rowId:M.role_id,col:"name"}))},title:"Double-click to edit",children:M.name})}},{id:"role_id",header:"ID",accessorKey:"role_id",cell:({row:L})=>c.jsx("code",{className:"rt-cell-id",children:L.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:L})=>{const M=L.original;return M.coveredByExternalTeam?c.jsx("span",{className:"rt-team-agent",title:M.externalTeamBoundary?"This role and its descendants execute as one opaque team.":`Covered by the team at ${M.externalTeamBoundaryRoleId??"the boundary role"}`,children:M.externalTeamBoundary?"JiuwenSwarm Team":`Covered by ${M.externalTeamBoundaryRoleId??"team"}`}):c.jsx("select",{className:"rt-cell-select",value:M.reports_to,onChange:O=>r(M.role_id,{reports_to:O.target.value}),disabled:a,onClick:O=>O.stopPropagation(),children:S.filter(O=>O.id!==M.role_id).map(O=>c.jsx("option",{value:O.id,children:O.name},O.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:L})=>c.jsx("span",{className:"rt-cell-count",children:L.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:L})=>{const M=L.original;return c.jsxs("select",{className:"rt-cell-select",value:M.agent??"",onChange:O=>r(M.role_id,{preferred_external_agent:O.target.value||null}),disabled:a,onClick:O=>O.stopPropagation(),children:[c.jsx("option",{value:"",children:"(auto)"}),QC.map(O=>c.jsx("option",{value:O,children:da(O)},O))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:L})=>c.jsx("span",{className:"rt-cell-count",children:L.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:L})=>c.jsx("button",{className:"rt-cell-action",onClick:M=>{M.stopPropagation(),!a&&confirm(`Delete role "${L.original.name}"?`)&&o(L.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[p,x,a,S,r,o]),j=Nq({data:b,columns:k,state:{sorting:u,rowSelection:m},onSortingChange:d,onRowSelectionChange:h,enableRowSelection:!0,getRowId:L=>L.role_id,getCoreRowModel:Sq(),getSortedRowModel:wq()}),N=Object.values(m).filter(Boolean).length,z=Object.keys(m).filter(L=>m[L]),I=L=>{a||(z.forEach(M=>r(M,{preferred_external_agent:L})),h({}))},A=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(z.forEach(L=>o(L)),h({}))};return c.jsxs("div",{className:"rt-container",children:[N>0&&!a&&c.jsxs("div",{className:"rt-bulk-bar",children:[c.jsxs("span",{className:"rt-bulk-count",children:[N," selected"]}),c.jsxs("select",{className:"rt-bulk-select",defaultValue:"",onChange:L=>{const M=L.target.value;M&&I(M==="__auto__"?null:M)},children:[c.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),c.jsx("option",{value:"__auto__",children:"(auto)"}),QC.map(L=>c.jsx("option",{value:L,children:da(L)},L))]}),c.jsx("button",{className:"btn btn-danger btn-sm",onClick:A,children:"Delete selected"}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>h({}),children:"Clear"})]}),c.jsx("div",{className:"rt-table-wrap",children:c.jsxs("table",{className:"rt-table",children:[c.jsx("thead",{children:j.getHeaderGroups().map(L=>c.jsx("tr",{children:L.headers.map(M=>c.jsxs("th",{style:{width:M.getSize()},className:M.column.getCanSort()?"rt-th-sortable":"",onClick:M.column.getToggleSortingHandler(),children:[ZC(M.column.columnDef.header,M.getContext()),M.column.getIsSorted()==="asc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▲"}),M.column.getIsSorted()==="desc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},M.id))},L.id))}),c.jsxs("tbody",{children:[j.getRowModel().rows.length===0&&c.jsx("tr",{children:c.jsx("td",{colSpan:9,className:"rt-empty",children:'No roles. Add one via the "+ Add role" button.'})}),j.getRowModel().rows.map(L=>{const M=n.includes(L.original.role_id);return c.jsx("tr",{className:`rt-row${L.getIsSelected()?" rt-row-checked":""}${M?" rt-row-active":""}`,onClick:()=>i(L.original.role_id),children:L.getVisibleCells().map(O=>c.jsx("td",{style:{width:O.column.getSize()},children:ZC(O.column.columnDef.cell,O.getContext())},O.id))},L.id)})]})]})})]})}function pi(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,i;n{}};function sp(){for(var e=0,t=arguments.length,n={},i;e=0&&(i=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Uf.prototype=sp.prototype={constructor:Uf,on:function(e,t){var n=this._,i=Rq(e+"",n),r,o=-1,a=i.length;if(arguments.length<2){for(;++o0)for(var n=new Array(r),i=0,r,o;i=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),ej.hasOwnProperty(t)?{space:ej[t],local:e}:e}function Mq(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Dv&&t.documentElement.namespaceURI===Dv?t.createElement(e):t.createElementNS(n,e)}}function Dq(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function jT(e){var t=op(e);return(t.local?Dq:Mq)(t)}function Oq(){}function X0(e){return e==null?Oq:function(){return this.querySelector(e)}}function Lq(e){typeof e!="function"&&(e=X0(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r=j&&(j=k+1);!(z=S[j])&&++j=0;)(a=i[r])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function aG(e){e||(e=lG);function t(p,g){return p&&g?e(p.__data__,g.__data__):!p-!g}for(var n=this._groups,i=n.length,r=new Array(i),o=0;ot?1:e>=t?0:NaN}function cG(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function uG(){return Array.from(this)}function dG(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?kG:typeof t=="function"?wG:SG)(e,t,n??"")):Dl(this.node(),e)}function Dl(e,t){return e.style.getPropertyValue(t)||RT(e).getComputedStyle(e,null).getPropertyValue(t)}function jG(e){return function(){delete this[e]}}function EG(e,t){return function(){this[e]=t}}function NG(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function IG(e,t){return arguments.length>1?this.each((t==null?jG:typeof t=="function"?NG:EG)(e,t)):this.node()[e]}function AT(e){return e.trim().split(/^|\s+/)}function K0(e){return e.classList||new MT(e)}function MT(e){this._node=e,this._names=AT(e.getAttribute("class")||"")}MT.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 DT(e,t){for(var n=K0(e),i=-1,r=t.length;++i=0&&(n=t.slice(i+1),t=t.slice(0,i)),{type:t,name:n}})}function iW(e){return function(){var t=this.__on;if(t){for(var n=0,i=-1,r=t.length,o;n()=>e;function Ov(e,{sourceEvent:t,subject:n,target:i,identifier:r,active:o,x:a,y:u,dx:d,dy:m,dispatch:h}){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:i,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:h}})}Ov.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function mW(e){return!e.ctrlKey&&!e.button}function pW(){return this.parentNode}function hW(e,t){return t??{x:e.x,y:e.y}}function gW(){return navigator.maxTouchPoints||"ontouchstart"in this}function $T(){var e=mW,t=pW,n=hW,i=gW,r={},o=sp("start","drag","end"),a=0,u,d,m,h,p=0;function g(N){N.on("mousedown.drag",x).filter(i).on("touchstart.drag",S).on("touchmove.drag",w,fW).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(N,z){if(!(h||!e.call(this,N,z))){var I=j(this,t.call(this,N,z),N,z,"mouse");I&&(dr(N.view).on("mousemove.drag",v,Mu).on("mouseup.drag",b,Mu),PT(N.view),$y(N),m=!1,u=N.clientX,d=N.clientY,I("start",N))}}function v(N){if(bl(N),!m){var z=N.clientX-u,I=N.clientY-d;m=z*z+I*I>p}r.mouse("drag",N)}function b(N){dr(N.view).on("mousemove.drag mouseup.drag",null),BT(N.view,m),bl(N),r.mouse("end",N)}function S(N,z){if(e.call(this,N,z)){var I=N.changedTouches,A=t.call(this,N,z),L=I.length,M,O;for(M=0;M>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ef(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ef(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=xW.exec(e))?new Qi(t[1],t[2],t[3],1):(t=vW.exec(e))?new Qi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bW.exec(e))?Ef(t[1],t[2],t[3],t[4]):(t=_W.exec(e))?Ef(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=kW.exec(e))?aj(t[1],t[2]/100,t[3]/100,1):(t=SW.exec(e))?aj(t[1],t[2]/100,t[3]/100,t[4]):tj.hasOwnProperty(e)?rj(tj[e]):e==="transparent"?new Qi(NaN,NaN,NaN,0):null}function rj(e){return new Qi(e>>16&255,e>>8&255,e&255,1)}function Ef(e,t,n,i){return i<=0&&(e=t=n=NaN),new Qi(e,t,n,i)}function jW(e){return e instanceof Xu||(e=ma(e)),e?(e=e.rgb(),new Qi(e.r,e.g,e.b,e.opacity)):new Qi}function Lv(e,t,n,i){return arguments.length===1?jW(e):new Qi(e,t,n,i??1)}function Qi(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}Z0(Qi,Lv,HT(Xu,{brighter(e){return e=e==null?km:Math.pow(km,e),new Qi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Du:Math.pow(Du,e),new Qi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qi(la(this.r),la(this.g),la(this.b),Sm(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:sj,formatHex:sj,formatHex8:EW,formatRgb:oj,toString:oj}));function sj(){return`#${aa(this.r)}${aa(this.g)}${aa(this.b)}`}function EW(){return`#${aa(this.r)}${aa(this.g)}${aa(this.b)}${aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function oj(){const e=Sm(this.opacity);return`${e===1?"rgb(":"rgba("}${la(this.r)}, ${la(this.g)}, ${la(this.b)}${e===1?")":`, ${e})`}`}function Sm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function la(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function aa(e){return e=la(e),(e<16?"0":"")+e.toString(16)}function aj(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Vr(e,t,n,i)}function FT(e){if(e instanceof Vr)return new Vr(e.h,e.s,e.l,e.opacity);if(e instanceof Xu||(e=ma(e)),!e)return new Vr;if(e instanceof Vr)return e;e=e.rgb();var t=e.r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,u=o-r,d=(o+r)/2;return u?(t===o?a=(n-i)/u+(n0&&d<1?0:a,new Vr(a,u,d,e.opacity)}function NW(e,t,n,i){return arguments.length===1?FT(e):new Vr(e,t,n,i??1)}function Vr(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}Z0(Vr,NW,HT(Xu,{brighter(e){return e=e==null?km:Math.pow(km,e),new Vr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Du:Math.pow(Du,e),new Vr(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,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new Qi(Hy(e>=240?e-240:e+120,r,i),Hy(e,r,i),Hy(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new Vr(lj(this.h),Nf(this.s),Nf(this.l),Sm(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=Sm(this.opacity);return`${e===1?"hsl(":"hsla("}${lj(this.h)}, ${Nf(this.s)*100}%, ${Nf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function lj(e){return e=(e||0)%360,e<0?e+360:e}function Nf(e){return Math.max(0,Math.min(1,e||0))}function Hy(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 Q0=e=>()=>e;function IW(e,t){return function(n){return e+n*t}}function TW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}function RW(e){return(e=+e)==1?VT:function(t,n){return n-t?TW(t,n,e):Q0(isNaN(t)?n:t)}}function VT(e,t){var n=t-e;return n?IW(e,n):Q0(isNaN(e)?t:e)}const wm=(function e(t){var n=RW(t);function i(r,o){var a=n((r=Lv(r)).r,(o=Lv(o)).r),u=n(r.g,o.g),d=n(r.b,o.b),m=VT(r.opacity,o.opacity);return function(h){return r.r=a(h),r.g=u(h),r.b=d(h),r.opacity=m(h),r+""}}return i.gamma=e,i})(1);function AW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,i=t.slice(),r;return function(o){for(r=0;rn&&(o=t.slice(n,o),u[a]?u[a]+=o:u[++a]=o),(i=i[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,d.push({i:a,x:ls(i,r)})),n=Fy.lastIndex;return n180?h+=360:h-m>180&&(m+=360),g.push({i:p.push(r(p)+"rotate(",null,i)-2,x:ls(m,h)})):h&&p.push(r(p)+"rotate("+h+i)}function u(m,h,p,g){m!==h?g.push({i:p.push(r(p)+"skewX(",null,i)-2,x:ls(m,h)}):h&&p.push(r(p)+"skewX("+h+i)}function d(m,h,p,g,x,v){if(m!==p||h!==g){var b=x.push(r(x)+"scale(",null,",",null,")");v.push({i:b-4,x:ls(m,p)},{i:b-2,x:ls(h,g)})}else(p!==1||g!==1)&&x.push(r(x)+"scale("+p+","+g+")")}return function(m,h){var p=[],g=[];return m=e(m),h=e(h),o(m.translateX,m.translateY,h.translateX,h.translateY,p,g),a(m.rotate,h.rotate,p,g),u(m.skewX,h.skewX,p,g),d(m.scaleX,m.scaleY,h.scaleX,h.scaleY,p,g),m=h=null,function(x){for(var v=-1,b=g.length,S;++v=0&&e._call.call(void 0,t),e=e._next;--Ol}function dj(){pa=(jm=Lu.now())+ap,Ol=su=0;try{WW()}finally{Ol=0,XW(),pa=0}}function YW(){var e=Lu.now(),t=e-jm;t>WT&&(ap-=t,jm=e)}function XW(){for(var e,t=Cm,n,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Cm=n);ou=e,Bv(i)}function Bv(e){if(!Ol){su&&(su=clearTimeout(su));var t=e-pa;t>24?(e<1/0&&(su=setTimeout(dj,e-Lu.now()-ap)),eu&&(eu=clearInterval(eu))):(eu||(jm=Lu.now(),eu=setInterval(YW,WT)),Ol=1,YT(dj))}}function fj(e,t,n){var i=new Em;return t=t==null?0:+t,i.restart(r=>{i.stop(),e(r+t)},t,n),i}var KW=sp("start","end","cancel","interrupt"),ZW=[],KT=0,mj=1,$v=2,Gf=3,pj=4,Hv=5,Wf=6;function lp(e,t,n,i,r,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;QW(e,n,{name:t,index:i,group:r,on:KW,tween:ZW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:KT})}function eb(e,t){var n=Zr(e,t);if(n.state>KT)throw new Error("too late; already scheduled");return n}function gs(e,t){var n=Zr(e,t);if(n.state>Gf)throw new Error("too late; already running");return n}function Zr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function QW(e,t,n){var i=e.__transition,r;i[t]=n,n.timer=XT(o,0,n.time);function o(m){n.state=mj,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var h,p,g,x;if(n.state!==mj)return d();for(h in i)if(x=i[h],x.name===n.name){if(x.state===Gf)return fj(a);x.state===pj?(x.state=Wf,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete i[h]):+h$v&&i.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function NY(e,t,n){var i,r,o=EY(t)?eb:gs;return function(){var a=o(this,e),u=a.on;u!==i&&(r=(i=u).copy()).on(t,n),a.on=r}}function IY(e,t){var n=this._id;return arguments.length<2?Zr(this.node(),n).on.on(e):this.each(NY(n,e,t))}function TY(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function RY(){return this.on("end.remove",TY(this._id))}function AY(e){var t=this._name,n=this._id;typeof e!="function"&&(e=X0(e));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a()=>e;function iX(e,{sourceEvent:t,target:n,transform:i,dispatch:r}){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:i,enumerable:!0,configurable:!0},_:{value:r}})}function Bs(e,t,n){this.k=e,this.x=t,this.y=n}Bs.prototype={constructor:Bs,scale:function(e){return e===1?this:new Bs(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Bs(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 cp=new Bs(1,0,0);eR.prototype=Bs.prototype;function eR(e){for(;!e.__zoom;)if(!(e=e.parentNode))return cp;return e.__zoom}function Vy(e){e.stopImmediatePropagation()}function tu(e){e.preventDefault(),e.stopImmediatePropagation()}function rX(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function sX(){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 hj(){return this.__zoom||cp}function oX(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function aX(){return navigator.maxTouchPoints||"ontouchstart"in this}function lX(e,t,n){var i=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function tR(){var e=rX,t=sX,n=lX,i=oX,r=aX,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],u=250,d=qf,m=sp("start","zoom","end"),h,p,g,x=500,v=150,b=0,S=10;function w(P){P.property("__zoom",hj).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",O).filter(r).on("touchstart.zoom",T).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(P,F,V,Y){var U=P.selection?P.selection():P;U.property("__zoom",hj),P!==U?z(P,F,V,Y):U.interrupt().each(function(){I(this,arguments).event(Y).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},w.scaleBy=function(P,F,V,Y){w.scaleTo(P,function(){var U=this.__zoom.k,Q=typeof F=="function"?F.apply(this,arguments):F;return U*Q},V,Y)},w.scaleTo=function(P,F,V,Y){w.transform(P,function(){var U=t.apply(this,arguments),Q=this.__zoom,W=V==null?N(U):typeof V=="function"?V.apply(this,arguments):V,q=Q.invert(W),J=typeof F=="function"?F.apply(this,arguments):F;return n(j(k(Q,J),W,q),U,a)},V,Y)},w.translateBy=function(P,F,V,Y){w.transform(P,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),a)},null,Y)},w.translateTo=function(P,F,V,Y,U){w.transform(P,function(){var Q=t.apply(this,arguments),W=this.__zoom,q=Y==null?N(Q):typeof Y=="function"?Y.apply(this,arguments):Y;return n(cp.translate(q[0],q[1]).scale(W.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof V=="function"?-V.apply(this,arguments):-V),Q,a)},Y,U)};function k(P,F){return F=Math.max(o[0],Math.min(o[1],F)),F===P.k?P:new Bs(F,P.x,P.y)}function j(P,F,V){var Y=F[0]-V[0]*P.k,U=F[1]-V[1]*P.k;return Y===P.x&&U===P.y?P:new Bs(P.k,Y,U)}function N(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function z(P,F,V,Y){P.on("start.zoom",function(){I(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){I(this,arguments).event(Y).end()}).tween("zoom",function(){var U=this,Q=arguments,W=I(U,Q).event(Y),q=t.apply(U,Q),J=V==null?N(q):typeof V=="function"?V.apply(U,Q):V,D=Math.max(q[1][0]-q[0][0],q[1][1]-q[0][1]),Z=U.__zoom,ie=typeof F=="function"?F.apply(U,Q):F,ee=d(Z.invert(J).concat(D/Z.k),ie.invert(J).concat(D/ie.k));return function(te){if(te===1)te=ie;else{var oe=ee(te),le=D/oe[2];te=new Bs(le,J[0]-oe[0]*le,J[1]-oe[1]*le)}W.zoom(null,te)}})}function I(P,F,V){return!V&&P.__zooming||new A(P,F)}function A(P,F){this.that=P,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(P,F),this.taps=0}A.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,F){return this.mouse&&P!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&P!=="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(P){var F=dr(this.that).datum();m.call(P,this.that,new iX(P,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:m}),F)}};function L(P,...F){if(!e.apply(this,arguments))return;var V=I(this,F).event(P),Y=this.__zoom,U=Math.max(o[0],Math.min(o[1],Y.k*Math.pow(2,i.apply(this,arguments)))),Q=Hr(P);if(V.wheel)(V.mouse[0][0]!==Q[0]||V.mouse[0][1]!==Q[1])&&(V.mouse[1]=Y.invert(V.mouse[0]=Q)),clearTimeout(V.wheel);else{if(Y.k===U)return;V.mouse=[Q,Y.invert(Q)],Yf(this),V.start()}tu(P),V.wheel=setTimeout(W,v),V.zoom("mouse",n(j(k(Y,U),V.mouse[0],V.mouse[1]),V.extent,a));function W(){V.wheel=null,V.end()}}function M(P,...F){if(g||!e.apply(this,arguments))return;var V=P.currentTarget,Y=I(this,F,!0).event(P),U=dr(P.view).on("mousemove.zoom",J,!0).on("mouseup.zoom",D,!0),Q=Hr(P,V),W=P.clientX,q=P.clientY;PT(P.view),Vy(P),Y.mouse=[Q,this.__zoom.invert(Q)],Yf(this),Y.start();function J(Z){if(tu(Z),!Y.moved){var ie=Z.clientX-W,ee=Z.clientY-q;Y.moved=ie*ie+ee*ee>b}Y.event(Z).zoom("mouse",n(j(Y.that.__zoom,Y.mouse[0]=Hr(Z,V),Y.mouse[1]),Y.extent,a))}function D(Z){U.on("mousemove.zoom mouseup.zoom",null),BT(Z.view,Y.moved),tu(Z),Y.event(Z).end()}}function O(P,...F){if(e.apply(this,arguments)){var V=this.__zoom,Y=Hr(P.changedTouches?P.changedTouches[0]:P,this),U=V.invert(Y),Q=V.k*(P.shiftKey?.5:2),W=n(j(k(V,Q),Y,U),t.apply(this,F),a);tu(P),u>0?dr(this).transition().duration(u).call(z,W,Y,P):dr(this).call(w.transform,W,Y,P)}}function T(P,...F){if(e.apply(this,arguments)){var V=P.touches,Y=V.length,U=I(this,F,P.changedTouches.length===Y).event(P),Q,W,q,J;for(Vy(P),W=0;W"[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:i})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:i}", 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."},zu=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nR=["Enter"," ","Escape"],iR={"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 Ll;(function(e){e.Strict="strict",e.Loose="loose"})(Ll||(Ll={}));var ca;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ca||(ca={}));var Pu;(function(e){e.Partial="partial",e.Full="full"})(Pu||(Pu={}));const rR={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var So;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(So||(So={}));var Nm;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Nm||(Nm={}));var at;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(at||(at={}));const gj={[at.Left]:at.Right,[at.Right]:at.Left,[at.Top]:at.Bottom,[at.Bottom]:at.Top};function sR(e){return e===null?null:e?"valid":"invalid"}const oR=e=>"id"in e&&"source"in e&&"target"in e,cX=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),nb=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Ku=(e,t=[0,0])=>{const{width:n,height:i}=Vs(e),r=e.origin??t,o=n*r[0],a=i*r[1];return{x:e.position.x-o,y:e.position.y-a}},uX=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((i,r)=>{const o=typeof r=="string";let a=!t.nodeLookup&&!o?r:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(r):nb(r)?r:t.nodeLookup.get(r.id));const u=a?Im(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return up(i,u)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return dp(n)},Zu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},i=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=up(n,Im(r)),i=!0)}),i?dp(n):{x:0,y:0,width:0,height:0}},ib=(e,t,[n,i,r]=[0,0,1],o=!1,a=!1)=>{const u={...Ju(t,[n,i,r]),width:t.width/r,height:t.height/r},d=[];for(const m of e.values()){const{measured:h,selectable:p=!0,hidden:g=!1}=m;if(a&&!p||g)continue;const x=h.width??m.width??m.initialWidth??null,v=h.height??m.height??m.initialHeight??null,b=Bu(u,Pl(m)),S=(x??0)*(v??0),w=o&&b>0;(!m.internals.handleBounds||w||b>=S||m.dragging)&&d.push(m)}return d},dX=(e,t)=>{const n=new Set;return e.forEach(i=>{n.add(i.id)}),t.filter(i=>n.has(i.source)||n.has(i.target))};function fX(e,t){const n=new Map,i=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!i||i.has(r.id))&&n.set(r.id,r)}),n}async function mX({nodes:e,width:t,height:n,panZoom:i,minZoom:r,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const u=fX(e,a),d=Zu(u),m=rb(d,t,n,a?.minZoom??r,a?.maxZoom??o,a?.padding??.1);return await i.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function aR({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:i=[0,0],nodeExtent:r,onError:o}){const a=n.get(e),u=a.parentId?n.get(a.parentId):void 0,{x:d,y:m}=u?u.internals.positionAbsolute:{x:0,y:0},h=a.origin??i;let p=a.extent||r;if(a.extent==="parent"&&!a.expandParent)if(!u)o?.("005",ps.error005());else{const x=u.measured.width,v=u.measured.height;x&&v&&(p=[[d,m],[d+x,m+v]])}else u&&Bl(a.extent)&&(p=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=Bl(p)?ha(t,p,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",ps.error015()),{position:{x:g.x-d+(a.measured.width??0)*h[0],y:g.y-m+(a.measured.height??0)*h[1]},positionAbsolute:g}}async function pX({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:i,onBeforeDelete:r}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const x=o.has(g.id),v=!x&&g.parentId&&a.find(b=>b.id===g.parentId);(x||v)&&a.push(g)}const u=new Set(t.map(g=>g.id)),d=i.filter(g=>g.deletable!==!1),h=dX(a,d);for(const g of d)u.has(g.id)&&!h.find(v=>v.id===g.id)&&h.push(g);if(!r)return{edges:h,nodes:a};const p=await r({nodes:a,edges:h});return typeof p=="boolean"?p?{edges:h,nodes:a}:{edges:[],nodes:[]}:p}const zl=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ha=(e={x:0,y:0},t,n)=>({x:zl(e.x,t[0][0],t[1][0]-(n?.width??0)),y:zl(e.y,t[0][1],t[1][1]-(n?.height??0))});function lR(e,t,n){const{width:i,height:r}=Vs(n),{x:o,y:a}=n.internals.positionAbsolute;return ha(e,[[o,a],[o+i,a+r]],t)}const yj=(e,t,n)=>en?-zl(Math.abs(e-n),1,t)/t:0,cR=(e,t,n=15,i=40)=>{const r=yj(e.x,i,t.width-i)*n,o=yj(e.y,i,t.height-i)*n;return[r,o]},up=(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)}),Fv=({x:e,y:t,width:n,height:i})=>({x:e,y:t,x2:e+n,y2:t+i}),dp=({x:e,y:t,x2:n,y2:i})=>({x:e,y:t,width:n-e,height:i-t}),Pl=(e,t=[0,0])=>{const{x:n,y:i}=nb(e)?e.internals.positionAbsolute:Ku(e,t);return{x:n,y:i,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Im=(e,t=[0,0])=>{const{x:n,y:i}=nb(e)?e.internals.positionAbsolute:Ku(e,t);return{x:n,y:i,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:i+(e.measured?.height??e.height??e.initialHeight??0)}},uR=(e,t)=>dp(up(Fv(e),Fv(t))),Bu=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),i=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*i)},xj=e=>qr(e.width)&&qr(e.height)&&qr(e.x)&&qr(e.y),qr=e=>!isNaN(e)&&isFinite(e),hX=(e,t)=>{},Qu=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ju=({x:e,y:t},[n,i,r],o=!1,a=[1,1])=>{const u={x:(e-n)/r,y:(t-i)/r};return o?Qu(u,a):u},Tm=({x:e,y:t},[n,i,r])=>({x:e*r+n,y:t*r+i});function sl(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 gX(e,t,n){if(typeof e=="string"||typeof e=="number"){const i=sl(e,n),r=sl(e,t);return{top:i,right:r,bottom:i,left:r,x:r*2,y:i*2}}if(typeof e=="object"){const i=sl(e.top??e.y??0,n),r=sl(e.bottom??e.y??0,n),o=sl(e.left??e.x??0,t),a=sl(e.right??e.x??0,t);return{top:i,right:a,bottom:r,left:o,x:o+a,y:i+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function yX(e,t,n,i,r,o){const{x:a,y:u}=Tm(e,[t,n,i]),{x:d,y:m}=Tm({x:e.x+e.width,y:e.y+e.height},[t,n,i]),h=r-d,p=o-m;return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(h),bottom:Math.floor(p)}}const rb=(e,t,n,i,r,o)=>{const a=gX(o,t,n),u=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(u,d),h=zl(m,i,r),p=e.x+e.width/2,g=e.y+e.height/2,x=t/2-p*h,v=n/2-g*h,b=yX(e,x,v,h,t,n),S={left:Math.min(b.left-a.left,0),top:Math.min(b.top-a.top,0),right:Math.min(b.right-a.right,0),bottom:Math.min(b.bottom-a.bottom,0)};return{x:x-S.left+S.right,y:v-S.top+S.bottom,zoom:h}},$u=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function Bl(e){return e!=null&&e!=="parent"}function Vs(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function dR(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function fR(e,t={width:0,height:0},n,i,r){const o={...e},a=i.get(n);if(a){const u=a.origin||r;o.x+=a.internals.positionAbsolute.x-(t.width??0)*u[0],o.y+=a.internals.positionAbsolute.y-(t.height??0)*u[1]}return o}function vj(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function xX(){let e,t;return{promise:new Promise((i,r)=>{e=i,t=r}),resolve:e,reject:t}}function vX(e){return{...iR,...e||{}}}function vu(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:i,containerBounds:r}){const{x:o,y:a}=Gr(e),u=Ju({x:o-(r?.left??0),y:a-(r?.top??0)},i),{x:d,y:m}=n?Qu(u,t):u;return{xSnapped:d,ySnapped:m,...u}}const sb=e=>({width:e.offsetWidth,height:e.offsetHeight}),mR=e=>e?.getRootNode?.()||window?.document,bX=["INPUT","SELECT","TEXTAREA"];function pR(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:bX.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const hR=e=>"clientX"in e,Gr=(e,t)=>{const n=hR(e),i=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:i-(t?.left??0),y:r-(t?.top??0)}},bj=(e,t,n,i,r)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(a=>{const u=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:r,position:a.getAttribute("data-handlepos"),x:(u.left-n.left)/i,y:(u.top-n.top)/i,...sb(a)}})};function gR({sourceX:e,sourceY:t,targetX:n,targetY:i,sourceControlX:r,sourceControlY:o,targetControlX:a,targetControlY:u}){const d=e*.125+r*.375+a*.375+n*.125,m=t*.125+o*.375+u*.375+i*.125,h=Math.abs(d-e),p=Math.abs(m-t);return[d,m,h,p]}function Rf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function _j({pos:e,x1:t,y1:n,x2:i,y2:r,c:o}){switch(e){case at.Left:return[t-Rf(t-i,o),n];case at.Right:return[t+Rf(i-t,o),n];case at.Top:return[t,n-Rf(n-r,o)];case at.Bottom:return[t,n+Rf(r-n,o)]}}function yR({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:i,targetY:r,targetPosition:o=at.Top,curvature:a=.25}){const[u,d]=_j({pos:n,x1:e,y1:t,x2:i,y2:r,c:a}),[m,h]=_j({pos:o,x1:i,y1:r,x2:e,y2:t,c:a}),[p,g,x,v]=gR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:u,sourceControlY:d,targetControlX:m,targetControlY:h});return[`M${e},${t} C${u},${d} ${m},${h} ${i},${r}`,p,g,x,v]}function xR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const r=Math.abs(n-e)/2,o=n0}const SX=({source:e,sourceHandle:t,target:n,targetHandle:i})=>`xy-edge__${e}${t||""}-${n}${i||""}`,wX=(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)),CX=(e,t,n={})=>{if(!e.source||!e.target)return t;const i=n.getEdgeId||SX;let r;return oR(e)?r={...e}:r={...e,id:i(e)},wX(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function vR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const[r,o,a,u]=xR({sourceX:e,sourceY:t,targetX:n,targetY:i});return[`M ${e},${t}L ${n},${i}`,r,o,a,u]}const kj={[at.Left]:{x:-1,y:0},[at.Right]:{x:1,y:0},[at.Top]:{x:0,y:-1},[at.Bottom]:{x:0,y:1}},jX=({source:e,sourcePosition:t=at.Bottom,target:n})=>t===at.Left||t===at.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function EX({source:e,sourcePosition:t=at.Bottom,target:n,targetPosition:i=at.Top,center:r,offset:o,stepPosition:a}){const u=kj[t],d=kj[i],m={x:e.x+u.x*o,y:e.y+u.y*o},h={x:n.x+d.x*o,y:n.y+d.y*o},p=jX({source:m,sourcePosition:t,target:h}),g=p.x!==0?"x":"y",x=p[g];let v=[],b,S;const w={x:0,y:0},k={x:0,y:0},[,,j,N]=xR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(u[g]*d[g]===-1){g==="x"?(b=r.x??m.x+(h.x-m.x)*a,S=r.y??(m.y+h.y)/2):(b=r.x??(m.x+h.x)/2,S=r.y??m.y+(h.y-m.y)*a);const L=[{x:b,y:m.y},{x:b,y:h.y}],M=[{x:m.x,y:S},{x:h.x,y:S}];u[g]===x?v=g==="x"?L:M:v=g==="x"?M:L}else{const L=[{x:m.x,y:h.y}],M=[{x:h.x,y:m.y}];if(g==="x"?v=u.x===x?M:L:v=u.y===x?L:M,t===i){const P=Math.abs(e[g]-n[g]);if(P<=o){const F=Math.min(o-1,o-P);u[g]===x?w[g]=(m[g]>e[g]?-1:1)*F:k[g]=(h[g]>n[g]?-1:1)*F}}if(t!==i){const P=g==="x"?"y":"x",F=u[g]===d[P],V=m[P]>h[P],Y=m[P]=G?(b=(O.x+T.x)/2,S=v[0].y):(b=v[0].x,S=(O.y+T.y)/2)}const z={x:m.x+w.x,y:m.y+w.y},I={x:h.x+k.x,y:h.y+k.y};return[[e,...z.x!==v[0].x||z.y!==v[0].y?[z]:[],...v,...I.x!==v[v.length-1].x||I.y!==v[v.length-1].y?[I]:[],n],b,S,j,N]}function NX(e,t,n,i){const r=Math.min(Sj(e,t)/2,Sj(t,n)/2,i),{x:o,y:a}=t;if(e.x===o&&o===n.x||e.y===a&&a===n.y)return`L${o} ${a}`;if(e.y===a){const m=e.xn.id===t):e[0])||null}function Uv(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`:""}function TX(e,{id:t,defaultColor:n,defaultMarkerStart:i,defaultMarkerEnd:r}){const o=new Set;return e.reduce((a,u)=>([u.markerStart||i,u.markerEnd||r].forEach(d=>{if(d&&typeof d=="object"){const m=Uv(d,t);o.has(m)||(a.push({id:m,color:d.color||n,...d}),o.add(m))}}),a),[]).sort((a,u)=>a.id.localeCompare(u.id))}const bR=1e3,RX=10,ob={nodeOrigin:[0,0],nodeExtent:zu,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},AX={...ob,checkEquality:!0};function ab(e,t){const n={...e};for(const i in t)t[i]!==void 0&&(n[i]=t[i]);return n}function MX(e,t,n){const i=ab(ob,n);for(const r of e.values())if(r.parentId)cb(r,e,t,i);else{const o=Ku(r,i.nodeOrigin),a=Bl(r.extent)?r.extent:i.nodeExtent,u=ha(o,a,Vs(r));r.internals.positionAbsolute=u}}function DX(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],i=[];for(const r of e.handles){const o={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(o):r.type==="target"&&i.push(o)}return{source:n,target:i}}function lb(e){return e==="manual"}function qv(e,t,n,i={}){const r=ab(AX,i),o={i:0},a=new Map(t),u=r?.elevateNodesOnSelect&&!lb(r.zIndexMode)?bR:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const h of e){let p=a.get(h.id);if(r.checkEquality&&h===p?.internals.userNode)t.set(h.id,p);else{const g=Ku(h,r.nodeOrigin),x=Bl(h.extent)?h.extent:r.nodeExtent,v=ha(g,x,Vs(h));p={...r.defaults,...h,measured:{width:h.measured?.width,height:h.measured?.height},internals:{positionAbsolute:v,handleBounds:DX(h,p),z:_R(h,u,r.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(d=!1),h.parentId&&cb(p,t,n,i,o),m||=h.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function OX(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 cb(e,t,n,i,r){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:u,zIndexMode:d}=ab(ob,i),m=e.parentId,h=t.get(m);if(!h){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}OX(e,n),r&&!h.parentId&&h.internals.rootParentIndex===void 0&&d==="auto"&&(h.internals.rootParentIndex=++r.i,h.internals.z=h.internals.z+r.i*RX),r&&h.internals.rootParentIndex!==void 0&&(r.i=h.internals.rootParentIndex);const p=o&&!lb(d)?bR:0,{x:g,y:x,z:v}=LX(e,h,a,u,p,d),{positionAbsolute:b}=e.internals,S=g!==b.x||x!==b.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:g,y:x}:b,z:v}})}function _R(e,t,n){const i=qr(e.zIndex)?e.zIndex:0;return lb(n)?i:i+(e.selected?t:0)}function LX(e,t,n,i,r,o){const{x:a,y:u}=t.internals.positionAbsolute,d=Vs(e),m=Ku(e,n),h=Bl(e.extent)?ha(m,e.extent,d):m;let p=ha({x:a+h.x,y:u+h.y},i,d);e.extent==="parent"&&(p=lR(p,d,t));const g=_R(e,r,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=g?x+1:g}}function ub(e,t,n,i=[0,0]){const r=[],o=new Map;for(const a of e){const u=t.get(a.parentId);if(!u)continue;const d=o.get(a.parentId)?.expandedRect??Pl(u),m=uR(d,a.rect);o.set(a.parentId,{expandedRect:m,parent:u})}return o.size>0&&o.forEach(({expandedRect:a,parent:u},d)=>{const m=u.internals.positionAbsolute,h=Vs(u),p=u.origin??i,g=a.x0||x>0||S||w)&&(r.push({id:d,type:"position",position:{x:u.position.x-g+S,y:u.position.y-x+w}}),n.get(d)?.forEach(k=>{e.some(j=>j.id===k.id)||r.push({id:k.id,type:"position",position:{x:k.position.x+g,y:k.position.y+x}})})),(h.width0){const x=ub(g,t,n,r);m.push(...x)}return{changes:m,updatedInternals:d}}async function PX({delta:e,panZoom:t,transform:n,translateExtent:i,width:r,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,o]],i),u=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(u)}function Ej(e,t,n,i,r,o){let a=r;const u=i.get(a)||new Map;i.set(a,u.set(n,t)),a=`${r}-${e}`;const d=i.get(a)||new Map;if(i.set(a,d.set(n,t)),o){a=`${r}-${e}-${o}`;const m=i.get(a)||new Map;i.set(a,m.set(n,t))}}function kR(e,t,n){e.clear(),t.clear();for(const i of n){const{source:r,target:o,sourceHandle:a=null,targetHandle:u=null}=i,d={edgeId:i.id,source:r,target:o,sourceHandle:a,targetHandle:u},m=`${r}-${a}--${o}-${u}`,h=`${o}-${u}--${r}-${a}`;Ej("source",d,h,e,r,a),Ej("target",d,m,e,o,u),t.set(i.id,i)}}function SR(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:SR(n,t):!1}function Nj(e,t,n){let i=e;do{if(i?.matches?.(t))return!0;if(i===n)return!1;i=i?.parentElement}while(i);return!1}function BX(e,t,n,i){const r=new Map;for(const[o,a]of e)if((a.selected||a.id===i)&&(!a.parentId||!SR(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const u=e.get(o);u&&r.set(o,{id:o,position:u.position||{x:0,y:0},distance:{x:n.x-u.internals.positionAbsolute.x,y:n.y-u.internals.positionAbsolute.y},extent:u.extent,parentId:u.parentId,origin:u.origin,expandParent:u.expandParent,internals:{positionAbsolute:u.internals.positionAbsolute||{x:0,y:0}},measured:{width:u.measured.width??0,height:u.measured.height??0}})}return r}function Uy({nodeId:e,dragItems:t,nodeLookup:n,dragging:i=!0}){const r=[];for(const[a,u]of t){const d=n.get(a)?.internals.userNode;d&&r.push({...d,position:u.position,dragging:i})}if(!e)return[r[0],r];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:i}:r[0],r]}function $X({dragItems:e,snapGrid:t,x:n,y:i}){const r=e.values().next().value;if(!r)return null;const o={x:n-r.distance.x,y:i-r.distance.y},a=Qu(o,t);return{x:a.x-o.x,y:a.y-o.y}}function HX({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:i,onDragStop:r}){let o={x:null,y:null},a=0,u=new Map,d=!1,m={x:0,y:0},h=null,p=!1,g=null,x=!1,v=!1,b=null;function S({noDragClassName:k,handleSelector:j,domNode:N,isSelectable:z,nodeId:I,nodeClickDistance:A=0}){g=dr(N);function L({x:$,y:G}){const{nodeLookup:P,nodeExtent:F,snapGrid:V,snapToGrid:Y,nodeOrigin:U,onNodeDrag:Q,onSelectionDrag:W,onError:q,updateNodePositions:J}=t();o={x:$,y:G};let D=!1;const Z=u.size>1,ie=Z&&F?Fv(Zu(u)):null,ee=Z&&Y?$X({dragItems:u,snapGrid:V,x:$,y:G}):null;for(const[te,oe]of u){if(!P.has(te))continue;let le={x:$-oe.distance.x,y:G-oe.distance.y};Y&&(le=ee?{x:Math.round(le.x+ee.x),y:Math.round(le.y+ee.y)}:Qu(le,V));let he=null;if(Z&&F&&!oe.extent&&ie){const{positionAbsolute:je}=oe.internals,Ve=je.x-ie.x+F[0][0],We=je.x+oe.measured.width-ie.x2+F[1][0],Pe=je.y-ie.y+F[0][1],ct=je.y+oe.measured.height-ie.y2+F[1][1];he=[[Ve,Pe],[We,ct]]}const{position:Ie,positionAbsolute:xe}=aR({nodeId:te,nextPosition:le,nodeLookup:P,nodeExtent:he||F,nodeOrigin:U,onError:q});D=D||oe.position.x!==Ie.x||oe.position.y!==Ie.y,oe.position=Ie,oe.internals.positionAbsolute=xe}if(v=v||D,!!D&&(J(u,!0),b&&(i||Q||!I&&W))){const[te,oe]=Uy({nodeId:I,dragItems:u,nodeLookup:P});i?.(b,u,te,oe),Q?.(b,te,oe),I||W?.(b,oe)}}async function M(){if(!h)return;const{transform:$,panBy:G,autoPanSpeed:P,autoPanOnNodeDrag:F}=t();if(!F){d=!1,cancelAnimationFrame(a);return}const[V,Y]=cR(m,h,P);(V!==0||Y!==0)&&(o.x=(o.x??0)-V/$[2],o.y=(o.y??0)-Y/$[2],await G({x:V,y:Y})&&L(o)),a=requestAnimationFrame(M)}function O($){const{nodeLookup:G,multiSelectionActive:P,nodesDraggable:F,transform:V,snapGrid:Y,snapToGrid:U,selectNodesOnDrag:Q,onNodeDragStart:W,onSelectionDragStart:q,unselectNodesAndEdges:J}=t();p=!0,(!Q||!z)&&!P&&I&&(G.get(I)?.selected||J()),z&&Q&&I&&e?.(I);const D=vu($.sourceEvent,{transform:V,snapGrid:Y,snapToGrid:U,containerBounds:h});if(o=D,u=BX(G,F,D,I),u.size>0&&(n||W||!I&&q)){const[Z,ie]=Uy({nodeId:I,dragItems:u,nodeLookup:G});n?.($.sourceEvent,u,Z,ie),W?.($.sourceEvent,Z,ie),I||q?.($.sourceEvent,ie)}}const T=$T().clickDistance(A).on("start",$=>{const{domNode:G,nodeDragThreshold:P,transform:F,snapGrid:V,snapToGrid:Y}=t();h=G?.getBoundingClientRect()||null,x=!1,v=!1,b=$.sourceEvent,P===0&&O($),o=vu($.sourceEvent,{transform:F,snapGrid:V,snapToGrid:Y,containerBounds:h}),m=Gr($.sourceEvent,h)}).on("drag",$=>{const{autoPanOnNodeDrag:G,transform:P,snapGrid:F,snapToGrid:V,nodeDragThreshold:Y,nodeLookup:U}=t(),Q=vu($.sourceEvent,{transform:P,snapGrid:F,snapToGrid:V,containerBounds:h});if(b=$.sourceEvent,($.sourceEvent.type==="touchmove"&&$.sourceEvent.touches.length>1||I&&!U.has(I))&&(x=!0),!x){if(!d&&G&&p&&(d=!0,M()),!p){const W=Gr($.sourceEvent,h),q=W.x-m.x,J=W.y-m.y;Math.sqrt(q*q+J*J)>Y&&O($)}(o.x!==Q.xSnapped||o.y!==Q.ySnapped)&&u&&p&&(m=Gr($.sourceEvent,h),L(Q))}}).on("end",$=>{if(!(!p||x)&&(d=!1,p=!1,cancelAnimationFrame(a),u.size>0)){const{nodeLookup:G,updateNodePositions:P,onNodeDragStop:F,onSelectionDragStop:V}=t();if(v&&(P(u,!1),v=!1),r||F||!I&&V){const[Y,U]=Uy({nodeId:I,dragItems:u,nodeLookup:G,dragging:!1});r?.($.sourceEvent,u,Y,U),F?.($.sourceEvent,Y,U),I||V?.($.sourceEvent,U)}}}).filter($=>{const G=$.target;return!$.button&&(!k||!Nj(G,`.${k}`,N))&&(!j||Nj(G,j,N))});g.call(T)}function w(){g?.on(".drag",null)}return{update:S,destroy:w}}function FX(e,t,n){const i=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Bu(r,Pl(o))>0&&i.push(o);return i}const VX=250;function UX(e,t,n,i){let r=[],o=1/0;const a=FX(e,n,t+VX);for(const u of a){const d=[...u.internals.handleBounds?.source??[],...u.internals.handleBounds?.target??[]];for(const m of d){if(i.nodeId===m.nodeId&&i.type===m.type&&i.id===m.id)continue;const{x:h,y:p}=ga(u,m,m.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const u=i.type==="source"?"target":"source";return r.find(d=>d.type===u)??r[0]}return r[0]}function wR(e,t,n,i,r,o=!1){const a=i.get(e);if(!a)return null;const u=r==="strict"?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],d=(n?u?.find(m=>m.id===n):u?.[0])??null;return d&&o?{...d,...ga(a,d,d.position,!0)}:d}function CR(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function qX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const jR=()=>!0;function GX(e,{connectionMode:t,connectionRadius:n,handleId:i,nodeId:r,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:d,lib:m,autoPanOnConnect:h,flowId:p,panBy:g,cancelConnection:x,onConnectStart:v,onConnect:b,onConnectEnd:S,isValidConnection:w=jR,onReconnectEnd:k,updateConnection:j,getTransform:N,getFromHandle:z,autoPanSpeed:I,dragThreshold:A=1,handleDomNode:L}){const M=mR(e.target);let O=0,T;const{x:$,y:G}=Gr(e),P=CR(o,L),F=u?.getBoundingClientRect();let V=!1;if(!F||!P)return;const Y=wR(r,P,i,d,t);if(!Y)return;let U=Gr(e,F),Q=!1,W=null,q=!1,J=null;function D(){if(!h||!F)return;const[Ie,xe]=cR(U,F,I);g({x:Ie,y:xe}),O=requestAnimationFrame(D)}const Z={...Y,nodeId:r,type:P,position:Y.position},ie=d.get(r);let te={inProgress:!0,isValid:null,from:ga(ie,Z,at.Left,!0),fromHandle:Z,fromPosition:Z.position,fromNode:ie,to:U,toHandle:null,toPosition:gj[Z.position],toNode:null,pointer:U};function oe(){V=!0,j(te),v?.(e,{nodeId:r,handleId:i,handleType:P})}A===0&&oe();function le(Ie){if(!V){const{x:ct,y:It}=Gr(Ie),ut=ct-$,Bt=It-G;if(!(ut*ut+Bt*Bt>A*A))return;oe()}if(!z()||!Z){he(Ie);return}const xe=N();U=Gr(Ie,F),T=UX(Ju(U,xe,!1,[1,1]),n,d,Z),Q||(D(),Q=!0);const je=ER(Ie,{handle:T,connectionMode:t,fromNodeId:r,fromHandleId:i,fromType:a?"target":"source",isValidConnection:w,doc:M,lib:m,flowId:p,nodeLookup:d});J=je.handleDomNode,W=je.connection,q=qX(!!T,je.isValid);const Ve=d.get(r),We=Ve?ga(Ve,Z,at.Left,!0):te.from,Pe={...te,from:We,isValid:q,to:je.toHandle&&q?Tm({x:je.toHandle.x,y:je.toHandle.y},xe):U,toHandle:je.toHandle,toPosition:q&&je.toHandle?je.toHandle.position:gj[Z.position],toNode:je.toHandle?d.get(je.toHandle.nodeId):null,pointer:U};j(Pe),te=Pe}function he(Ie){if(!("touches"in Ie&&Ie.touches.length>0)){if(V){(T||J)&&W&&q&&b?.(W);const{inProgress:xe,...je}=te,Ve={...je,toPosition:te.toHandle?te.toPosition:null};S?.(Ie,Ve),o&&k?.(Ie,Ve)}x(),cancelAnimationFrame(O),Q=!1,q=!1,W=null,J=null,M.removeEventListener("mousemove",le),M.removeEventListener("mouseup",he),M.removeEventListener("touchmove",le),M.removeEventListener("touchend",he)}}M.addEventListener("mousemove",le),M.addEventListener("mouseup",he),M.addEventListener("touchmove",le),M.addEventListener("touchend",he)}function ER(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:o,doc:a,lib:u,flowId:d,isValidConnection:m=jR,nodeLookup:h}){const p=o==="target",g=t?a.querySelector(`.${u}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x,y:v}=Gr(e),b=a.elementFromPoint(x,v),S=b?.classList.contains(`${u}-flow__handle`)?b:g,w={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=CR(void 0,S),j=S.getAttribute("data-nodeid"),N=S.getAttribute("data-handleid"),z=S.classList.contains("connectable"),I=S.classList.contains("connectableend");if(!j||!k)return w;const A={source:p?j:i,sourceHandle:p?N:r,target:p?i:j,targetHandle:p?r:N};w.connection=A;const M=z&&I&&(n===Ll.Strict?p&&k==="source"||!p&&k==="target":j!==i||N!==r);w.isValid=M&&m(A),w.toHandle=wR(j,k,N,h,n,!0)}return w}const Gv={onPointerDown:GX,isValid:ER};function WX({domNode:e,panZoom:t,getTransform:n,getViewScale:i}){const r=dr(e);function o({translateExtent:u,width:d,height:m,zoomStep:h=1,pannable:p=!0,zoomable:g=!0,inversePan:x=!1}){const v=j=>{if(j.sourceEvent.type!=="wheel"||!t)return;const N=n(),z=j.sourceEvent.ctrlKey&&$u()?10:1,I=-j.sourceEvent.deltaY*(j.sourceEvent.deltaMode===1?.05:j.sourceEvent.deltaMode?1:.002)*h,A=N[2]*Math.pow(2,I*z);t.scaleTo(A)};let b=[0,0];const S=j=>{(j.sourceEvent.type==="mousedown"||j.sourceEvent.type==="touchstart")&&(b=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY])},w=j=>{const N=n();if(j.sourceEvent.type!=="mousemove"&&j.sourceEvent.type!=="touchmove"||!t)return;const z=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY],I=[z[0]-b[0],z[1]-b[1]];b=z;const A=i()*Math.max(N[2],Math.log(N[2]))*(x?-1:1),L={x:N[0]-I[0]*A,y:N[1]-I[1]*A},M=[[0,0],[d,m]];t.setViewportConstrained({x:L.x,y:L.y,zoom:N[2]},M,u)},k=tR().on("start",S).on("zoom",p?w:null).on("zoom.wheel",g?v:null);r.call(k,{})}function a(){r.on("zoom",null)}return{update:o,destroy:a,pointer:Hr}}const fp=e=>({x:e.x,y:e.y,zoom:e.k}),qy=({x:e,y:t,zoom:n})=>cp.translate(e,t).scale(n),fl=(e,t)=>e.target.closest(`.${t}`),NR=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),YX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Gy=(e,t=0,n=YX,i=()=>{})=>{const r=typeof t=="number"&&t>0;return r||i(),r?e.transition().duration(t).ease(n).on("end",i):e},IR=e=>{const t=e.ctrlKey&&$u()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function XX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:i,panOnScrollMode:r,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:u,onPanZoom:d,onPanZoomEnd:m}){return h=>{if(fl(h,t))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(h.ctrlKey&&a){const S=Hr(h),w=IR(h),k=p*Math.pow(2,w);i.scaleTo(n,k,S,h);return}const g=h.deltaMode===1?20:1;let x=r===ca.Vertical?0:h.deltaX*g,v=r===ca.Horizontal?0:h.deltaY*g;!$u()&&h.shiftKey&&r!==ca.Vertical&&(x=h.deltaY*g,v=0),i.translateBy(n,-(x/p)*o,-(v/p)*o,{internal:!0});const b=fp(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(h,b),e.panScrollTimeout=setTimeout(()=>{m?.(h,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,u?.(h,b))}}function KX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(i,r){const o=i.type==="wheel",a=!t&&o&&!i.ctrlKey,u=fl(i,e);if(i.ctrlKey&&o&&u&&i.preventDefault(),a||u)return null;i.preventDefault(),n.call(this,i,r)}}function ZX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return i=>{if(i.sourceEvent?.internal)return;const r=fp(i.transform);e.mouseButton=i.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,i.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(i.sourceEvent,r)}}function QX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:i,onPanZoom:r}){return o=>{e.usedRightMouseButton=!!(n&&NR(t,e.mouseButton??0)),o.sourceEvent?.sync||i([o.transform.x,o.transform.y,o.transform.k]),r&&!o.sourceEvent?.internal&&r?.(o.sourceEvent,fp(o.transform))}}function JX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:i,onPanZoomEnd:r,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&NR(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,i(!1),r)){const u=fp(a.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,u)},n?150:0)}}}function eK({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:i,panOnScroll:r,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:u,noPanClassName:d,lib:m,connectionInProgress:h}){return p=>{const g=e||t,x=n&&p.ctrlKey,v=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(fl(p,`${m}-flow__node`)||fl(p,`${m}-flow__edge`)))return!0;if(!i&&!g&&!r&&!o&&!n||a||h&&!v||fl(p,u)&&v||fl(p,d)&&(!v||r&&v&&!e)||!n&&p.ctrlKey&&v)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!g&&!r&&!x&&v||!i&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(i)&&!i.includes(p.button)&&p.type==="mousedown")return!1;const b=Array.isArray(i)&&i.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||v)&&b}}function tK({domNode:e,minZoom:t,maxZoom:n,translateExtent:i,viewport:r,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:u,onDraggingChange:d}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),p=tR().scaleExtent([t,n]).translateExtent(i),g=dr(e).call(p);k({x:r.x,y:r.y,zoom:zl(r.zoom,t,n)},[[0,0],[h.width,h.height]],i);const x=g.on("wheel.zoom"),v=g.on("dblclick.zoom");p.wheelDelta(IR);function b(T,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?xu:qf).transform(Gy(g,$?.duration,$?.ease,()=>G(!0)),T)}):Promise.resolve(!1)}function S({noWheelClassName:T,noPanClassName:$,onPaneContextMenu:G,userSelectionActive:P,panOnScroll:F,panOnDrag:V,panOnScrollMode:Y,panOnScrollSpeed:U,preventScrolling:Q,zoomOnPinch:W,zoomOnScroll:q,zoomOnDoubleClick:J,zoomActivationKeyPressed:D,lib:Z,onTransformChange:ie,connectionInProgress:ee,paneClickDistance:te,selectionOnDrag:oe}){P&&!m.isZoomingOrPanning&&w();const le=F&&!D&&!P;p.clickDistance(oe?1/0:!qr(te)||te<0?0:te);const he=le?XX({zoomPanValues:m,noWheelClassName:T,d3Selection:g,d3Zoom:p,panOnScrollMode:Y,panOnScrollSpeed:U,zoomOnPinch:W,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:u}):KX({noWheelClassName:T,preventScrolling:Q,d3ZoomHandler:x});if(g.on("wheel.zoom",he,{passive:!1}),!P){const xe=ZX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});p.on("start",xe);const je=QX({zoomPanValues:m,panOnDrag:V,onPaneContextMenu:!!G,onPanZoom:o,onTransformChange:ie});p.on("zoom",je);const Ve=JX({zoomPanValues:m,panOnDrag:V,panOnScroll:F,onPaneContextMenu:G,onPanZoomEnd:u,onDraggingChange:d});p.on("end",Ve)}const Ie=eK({zoomActivationKeyPressed:D,panOnDrag:V,zoomOnScroll:q,panOnScroll:F,zoomOnDoubleClick:J,zoomOnPinch:W,userSelectionActive:P,noPanClassName:$,noWheelClassName:T,lib:Z,connectionInProgress:ee});p.filter(Ie),J?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function w(){p.on("zoom",null)}async function k(T,$,G){const P=qy(T),F=p?.constrain()(P,$,G);return F&&await b(F),new Promise(V=>V(F))}async function j(T,$){const G=qy(T);return await b(G,$),new Promise(P=>P(G))}function N(T){if(g){const $=qy(T),G=g.property("__zoom");(G.k!==T.zoom||G.x!==T.x||G.y!==T.y)&&p?.transform(g,$,null,{sync:!0})}}function z(){const T=g?eR(g.node()):{x:0,y:0,k:1};return{x:T.x,y:T.y,zoom:T.k}}function I(T,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?xu:qf).scaleTo(Gy(g,$?.duration,$?.ease,()=>G(!0)),T)}):Promise.resolve(!1)}function A(T,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?xu:qf).scaleBy(Gy(g,$?.duration,$?.ease,()=>G(!0)),T)}):Promise.resolve(!1)}function L(T){p?.scaleExtent(T)}function M(T){p?.translateExtent(T)}function O(T){const $=!qr(T)||T<0?0:T;p?.clickDistance($)}return{update:S,destroy:w,setViewport:j,setViewportConstrained:k,getViewport:z,scaleTo:I,scaleBy:A,setScaleExtent:L,setTranslateExtent:M,syncViewport:N,setClickDistance:O}}var $l;(function(e){e.Line="line",e.Handle="handle"})($l||($l={}));function nK({width:e,prevWidth:t,height:n,prevHeight:i,affectsX:r,affectsY:o}){const a=e-t,u=n-i,d=[a>0?1:a<0?-1:0,u>0?1:u<0?-1:0];return a&&r&&(d[0]=d[0]*-1),u&&o&&(d[1]=d[1]*-1),d}function Ij(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),i=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:i,affectsY:r}}function bo(e,t){return Math.max(0,t-e)}function _o(e,t){return Math.max(0,e-t)}function Af(e,t,n){return Math.max(0,t-e,e-n)}function Tj(e,t){return e?!t:t}function iK(e,t,n,i,r,o,a,u){let{affectsX:d,affectsY:m}=t;const{isHorizontal:h,isVertical:p}=t,g=h&&p,{xSnapped:x,ySnapped:v}=n,{minWidth:b,maxWidth:S,minHeight:w,maxHeight:k}=i,{x:j,y:N,width:z,height:I,aspectRatio:A}=e;let L=Math.floor(h?x-e.pointerX:0),M=Math.floor(p?v-e.pointerY:0);const O=z+(d?-L:L),T=I+(m?-M:M),$=-o[0]*z,G=-o[1]*I;let P=Af(O,b,S),F=Af(T,w,k);if(a){let U=0,Q=0;d&&L<0?U=bo(j+L+$,a[0][0]):!d&&L>0&&(U=_o(j+O+$,a[1][0])),m&&M<0?Q=bo(N+M+G,a[0][1]):!m&&M>0&&(Q=_o(N+T+G,a[1][1])),P=Math.max(P,U),F=Math.max(F,Q)}if(u){let U=0,Q=0;d&&L>0?U=_o(j+L,u[0][0]):!d&&L<0&&(U=bo(j+O,u[1][0])),m&&M>0?Q=_o(N+M,u[0][1]):!m&&M<0&&(Q=bo(N+T,u[1][1])),P=Math.max(P,U),F=Math.max(F,Q)}if(r){if(h){const U=Af(O/A,w,k)*A;if(P=Math.max(P,U),a){let Q=0;!d&&!m||d&&!m&&g?Q=_o(N+G+O/A,a[1][1])*A:Q=bo(N+G+(d?L:-L)/A,a[0][1])*A,P=Math.max(P,Q)}if(u){let Q=0;!d&&!m||d&&!m&&g?Q=bo(N+O/A,u[1][1])*A:Q=_o(N+(d?L:-L)/A,u[0][1])*A,P=Math.max(P,Q)}}if(p){const U=Af(T*A,b,S)/A;if(F=Math.max(F,U),a){let Q=0;!d&&!m||m&&!d&&g?Q=_o(j+T*A+$,a[1][0])/A:Q=bo(j+(m?M:-M)*A+$,a[0][0])/A,F=Math.max(F,Q)}if(u){let Q=0;!d&&!m||m&&!d&&g?Q=bo(j+T*A,u[1][0])/A:Q=_o(j+(m?M:-M)*A,u[0][0])/A,F=Math.max(F,Q)}}}M=M+(M<0?F:-F),L=L+(L<0?P:-P),r&&(g?O>T*A?M=(Tj(d,m)?-L:L)/A:L=(Tj(d,m)?-M:M)*A:h?(M=L/A,m=d):(L=M*A,d=m));const V=d?j+L:j,Y=m?N+M:N;return{width:z+(d?-L:L),height:I+(m?-M:M),x:o[0]*L*(d?-1:1)+V,y:o[1]*M*(m?-1:1)+Y}}const TR={width:0,height:0,x:0,y:0},rK={...TR,pointerX:0,pointerY:0,aspectRatio:1};function sK(e){return[[0,0],[e.measured.width,e.measured.height]]}function oK(e,t,n){const i=t.position.x+e.position.x,r=t.position.y+e.position.y,o=e.measured.width??0,a=e.measured.height??0,u=n[0]*o,d=n[1]*a;return[[i-u,r-d],[i+o-u,r+a-d]]}function aK({domNode:e,nodeId:t,getStoreItems:n,onChange:i,onEnd:r}){const o=dr(e);let a={controlDirection:Ij("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function u({controlPosition:m,boundaries:h,keepAspectRatio:p,resizeDirection:g,onResizeStart:x,onResize:v,onResizeEnd:b,shouldResize:S}){let w={...TR},k={...rK};a={boundaries:h,resizeDirection:g,keepAspectRatio:p,controlDirection:Ij(m)};let j,N=null,z=[],I,A,L,M=!1;const O=$T().on("start",T=>{const{nodeLookup:$,transform:G,snapGrid:P,snapToGrid:F,nodeOrigin:V,paneDomNode:Y}=n();if(j=$.get(t),!j)return;N=Y?.getBoundingClientRect()??null;const{xSnapped:U,ySnapped:Q}=vu(T.sourceEvent,{transform:G,snapGrid:P,snapToGrid:F,containerBounds:N});w={width:j.measured.width??0,height:j.measured.height??0,x:j.position.x??0,y:j.position.y??0},k={...w,pointerX:U,pointerY:Q,aspectRatio:w.width/w.height},I=void 0,j.parentId&&(j.extent==="parent"||j.expandParent)&&(I=$.get(j.parentId),A=I&&j.extent==="parent"?sK(I):void 0),z=[],L=void 0;for(const[W,q]of $)if(q.parentId===t&&(z.push({id:W,position:{...q.position},extent:q.extent}),q.extent==="parent"||q.expandParent)){const J=oK(q,j,q.origin??V);L?L=[[Math.min(J[0][0],L[0][0]),Math.min(J[0][1],L[0][1])],[Math.max(J[1][0],L[1][0]),Math.max(J[1][1],L[1][1])]]:L=J}x?.(T,{...w})}).on("drag",T=>{const{transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F}=n(),V=vu(T.sourceEvent,{transform:$,snapGrid:G,snapToGrid:P,containerBounds:N}),Y=[];if(!j)return;const{x:U,y:Q,width:W,height:q}=w,J={},D=j.origin??F,{width:Z,height:ie,x:ee,y:te}=iK(k,a.controlDirection,V,a.boundaries,a.keepAspectRatio,D,A,L),oe=Z!==W,le=ie!==q,he=ee!==U&&oe,Ie=te!==Q&≤if(!he&&!Ie&&!oe&&!le)return;if((he||Ie||D[0]===1||D[1]===1)&&(J.x=he?ee:w.x,J.y=Ie?te:w.y,w.x=J.x,w.y=J.y,z.length>0)){const We=ee-U,Pe=te-Q;for(const ct of z)ct.position={x:ct.position.x-We+D[0]*(Z-W),y:ct.position.y-Pe+D[1]*(ie-q)},Y.push(ct)}if((oe||le)&&(J.width=oe&&(!a.resizeDirection||a.resizeDirection==="horizontal")?Z:w.width,J.height=le&&(!a.resizeDirection||a.resizeDirection==="vertical")?ie:w.height,w.width=J.width,w.height=J.height),I&&j.expandParent){const We=D[0]*(J.width??0);J.x&&J.x{M&&(b?.(T,{...w}),r?.({...w}),M=!1)});o.call(O)}function d(){o.on(".drag",null)}return{update:u,destroy:d}}var Wy={exports:{}},Yy={},Xy={exports:{}},Ky={};var Rj;function lK(){if(Rj)return Ky;Rj=1;var e=Fl();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,i=e.useState,r=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function u(p,g){var x=g(),v=i({inst:{value:x,getSnapshot:g}}),b=v[0].inst,S=v[1];return o(function(){b.value=x,b.getSnapshot=g,d(b)&&S({inst:b})},[p,x,g]),r(function(){return d(b)&&S({inst:b}),p(function(){d(b)&&S({inst:b})})},[p]),a(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function m(p,g){return g()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:u;return Ky.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Ky}var Aj;function cK(){return Aj||(Aj=1,Xy.exports=lK()),Xy.exports}var Mj;function uK(){if(Mj)return Yy;Mj=1;var e=Fl(),t=cK();function n(m,h){return m===h&&(m!==0||1/m===1/h)||m!==m&&h!==h}var i=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,u=e.useMemo,d=e.useDebugValue;return Yy.useSyncExternalStoreWithSelector=function(m,h,p,g,x){var v=o(null);if(v.current===null){var b={hasValue:!1,value:null};v.current=b}else b=v.current;v=u(function(){function w(I){if(!k){if(k=!0,j=I,I=g(I),x!==void 0&&b.hasValue){var A=b.value;if(x(A,I))return N=A}return N=I}if(A=N,i(j,I))return A;var L=g(I);return x!==void 0&&x(A,L)?(j=I,A):(j=I,N=L)}var k=!1,j,N,z=p===void 0?null:p;return[function(){return w(h())},z===null?void 0:function(){return w(z())}]},[h,p,g,x]);var S=r(m,v[0],v[1]);return a(function(){b.hasValue=!0,b.value=S},[S]),d(S),S},Yy}var Dj;function dK(){return Dj||(Dj=1,Wy.exports=uK()),Wy.exports}var fK=dK();const mK=ya(fK),pK={},Oj=e=>{let t;const n=new Set,i=(h,p)=>{const g=typeof h=="function"?h(t):h;if(!Object.is(g,t)){const x=t;t=p??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,x))}},r=()=>t,d={setState:i,getState:r,getInitialState:()=>m,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(pK?"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()}},m=t=e(i,r,d);return d},hK=e=>e?Oj(e):Oj,{useDebugValue:gK}=At,{useSyncExternalStoreWithSelector:yK}=mK,xK=e=>e;function RR(e,t=xK,n){const i=yK(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return gK(i),i}const Lj=(e,t)=>{const n=hK(e),i=(r,o=t)=>RR(n,r,o);return Object.assign(i,n),i},vK=(e,t)=>e?Lj(e,t):Lj;function Gn(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[i,r]of e)if(!Object.is(r,t.get(i)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const i of n)if(!Object.prototype.hasOwnProperty.call(t,i)||!Object.is(e[i],t[i]))return!1;return!0}const mp=C.createContext(null),bK=mp.Provider,AR=ps.error001();function sn(e,t){const n=C.useContext(mp);if(n===null)throw new Error(AR);return RR(n,e,t)}function Wn(){const e=C.useContext(mp);if(e===null)throw new Error(AR);return C.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const zj={display:"none"},_K={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},MR="react-flow__node-desc",DR="react-flow__edge-desc",kK="react-flow__aria-live",SK=e=>e.ariaLiveMessage,wK=e=>e.ariaLabelConfig;function CK({rfId:e}){const t=sn(SK);return c.jsx("div",{id:`${kK}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:_K,children:t})}function jK({rfId:e,disableKeyboardA11y:t}){const n=sn(wK);return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:`${MR}-${e}`,style:zj,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),c.jsx("div",{id:`${DR}-${e}`,style:zj,children:n["edge.a11yDescription.default"]}),!t&&c.jsx(CK,{rfId:e})]})}const pp=C.forwardRef(({position:e="top-left",children:t,className:n,style:i,...r},o)=>{const a=`${e}`.split("-");return c.jsx("div",{className:pi(["react-flow__panel",n,...a]),style:i,ref:o,...r,children:t})});pp.displayName="Panel";function EK({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:c.jsx(pp,{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:c.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const NK=e=>{const t=[],n=[];for(const[,i]of e.nodeLookup)i.selected&&t.push(i.internals.userNode);for(const[,i]of e.edgeLookup)i.selected&&n.push(i);return{selectedNodes:t,selectedEdges:n}},Mf=e=>e.id;function IK(e,t){return Gn(e.selectedNodes.map(Mf),t.selectedNodes.map(Mf))&&Gn(e.selectedEdges.map(Mf),t.selectedEdges.map(Mf))}function TK({onSelectionChange:e}){const t=Wn(),{selectedNodes:n,selectedEdges:i}=sn(NK,IK);return C.useEffect(()=>{const r={nodes:n,edges:i};e?.(r),t.getState().onSelectionChangeHandlers.forEach(o=>o(r))},[n,i,e]),null}const RK=e=>!!e.onSelectionChangeHandlers;function AK({onSelectionChange:e}){const t=sn(RK);return e||t?c.jsx(TK,{onSelectionChange:e}):null}const Wv=typeof window<"u"?C.useLayoutEffect:C.useEffect,OR=[0,0],MK={x:0,y:0,zoom:1},DK=["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"],Pj=[...DK,"rfId"],OK=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}),Bj={translateExtent:zu,nodeOrigin:OR,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function LK(e){const{setNodes:t,setEdges:n,setMinZoom:i,setMaxZoom:r,setTranslateExtent:o,setNodeExtent:a,reset:u,setDefaultNodesAndEdges:d}=sn(OK,Gn),m=Wn();Wv(()=>(d(e.defaultNodes,e.defaultEdges),()=>{h.current=Bj,u()}),[]);const h=C.useRef(Bj);return Wv(()=>{for(const p of Pj){const g=e[p],x=h.current[p];g!==x&&(typeof e[p]>"u"||(p==="nodes"?t(g):p==="edges"?n(g):p==="minZoom"?i(g):p==="maxZoom"?r(g):p==="translateExtent"?o(g):p==="nodeExtent"?a(g):p==="ariaLabelConfig"?m.setState({ariaLabelConfig:vX(g)}):p==="fitView"?m.setState({fitViewQueued:g}):p==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[p]:g})))}h.current=e},Pj.map(p=>e[p])),null}function $j(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zK(e){const[t,n]=C.useState(e==="system"?null:e);return C.useEffect(()=>{if(e!=="system"){n(e);return}const i=$j(),r=()=>n(i?.matches?"dark":"light");return r(),i?.addEventListener("change",r),()=>{i?.removeEventListener("change",r)}},[e]),t!==null?t:$j()?.matches?"dark":"light"}const Hj=typeof document<"u"?document:null;function Hu(e=null,t={target:Hj,actInsideInputWithModifier:!0}){const[n,i]=C.useState(!1),r=C.useRef(!1),o=C.useRef(new Set([])),[a,u]=C.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(p=>typeof p=="string").map(p=>p.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),h=m.reduce((p,g)=>p.concat(...g),[]);return[m,h]}return[[],[]]},[e]);return C.useEffect(()=>{const d=t?.target??Hj,m=t?.actInsideInputWithModifier??!0;if(e!==null){const h=x=>{if(r.current=x.ctrlKey||x.metaKey||x.shiftKey||x.altKey,(!r.current||r.current&&!m)&&pR(x))return!1;const b=Vj(x.code,u);if(o.current.add(x[b]),Fj(a,o.current,!1)){const S=x.composedPath?.()?.[0]||x.target,w=S?.nodeName==="BUTTON"||S?.nodeName==="A";t.preventDefault!==!1&&(r.current||!w)&&x.preventDefault(),i(!0)}},p=x=>{const v=Vj(x.code,u);Fj(a,o.current,!0)?(i(!1),o.current.clear()):o.current.delete(x[v]),x.key==="Meta"&&o.current.clear(),r.current=!1},g=()=>{o.current.clear(),i(!1)};return d?.addEventListener("keydown",h),d?.addEventListener("keyup",p),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",h),d?.removeEventListener("keyup",p),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,i]),n}function Fj(e,t,n){return e.filter(i=>n||i.length===t.size).some(i=>i.every(r=>t.has(r)))}function Vj(e,t){return t.includes(e)?"code":"key"}const PK=()=>{const e=Wn();return C.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:i}=e.getState();return i?i.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[i,r,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??i,y:t.y??r,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,i]=e.getState().transform;return{x:t,y:n,zoom:i}},setCenter:async(t,n,i)=>e.getState().setCenter(t,n,i),fitBounds:async(t,n)=>{const{width:i,height:r,minZoom:o,maxZoom:a,panZoom:u}=e.getState(),d=rb(t,i,r,o,a,n?.padding??.1);return u?(await u.setViewport(d,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:i,snapGrid:r,snapToGrid:o,domNode:a}=e.getState();if(!a)return t;const{x:u,y:d}=a.getBoundingClientRect(),m={x:t.x-u,y:t.y-d},h=n.snapGrid??r,p=n.snapToGrid??o;return Ju(m,i,p,h)},flowToScreenPosition:t=>{const{transform:n,domNode:i}=e.getState();if(!i)return t;const{x:r,y:o}=i.getBoundingClientRect(),a=Tm(t,n);return{x:a.x+r,y:a.y+o}}}),[])};function LR(e,t){const n=[],i=new Map,r=[];for(const o of e)if(o.type==="add"){r.push(o);continue}else if(o.type==="remove"||o.type==="replace")i.set(o.id,[o]);else{const a=i.get(o.id);a?a.push(o):i.set(o.id,[o])}for(const o of t){const a=i.get(o.id);if(!a){n.push(o);continue}if(a[0].type==="remove")continue;if(a[0].type==="replace"){n.push({...a[0].item});continue}const u={...o};for(const d of a)BK(d,u);n.push(u)}return r.length&&r.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function BK(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 zR(e,t){return LR(e,t)}function $K(e,t){return LR(e,t)}function ra(e,t){return{id:e,type:"select",selected:t}}function ml(e,t=new Set,n=!1){const i=[];for(const[r,o]of e){const a=t.has(r);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),i.push(ra(o.id,a)))}return i}function Uj({items:e=[],lookup:t}){const n=[],i=new Map(e.map(r=>[r.id,r]));for(const[r,o]of e.entries()){const a=t.get(o.id),u=a?.internals?.userNode??a;u!==void 0&&u!==o&&n.push({id:o.id,item:o,type:"replace"}),u===void 0&&n.push({item:o,type:"add",index:r})}for(const[r]of t)i.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function qj(e){return{id:e.id,type:"remove"}}const Gj=e=>cX(e),HK=e=>oR(e);function PR(e){return C.forwardRef(e)}function Wj(e){const[t,n]=C.useState(BigInt(0)),[i]=C.useState(()=>FK(()=>n(r=>r+BigInt(1))));return Wv(()=>{const r=i.get();r.length&&(e(r),i.reset())},[t]),i}function FK(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const BR=C.createContext(null);function VK({children:e}){const t=Wn(),n=C.useCallback(u=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:h,onNodesChange:p,nodeLookup:g,fitViewQueued:x,onNodesChangeMiddlewareMap:v}=t.getState();let b=d;for(const w of u)b=typeof w=="function"?w(b):w;let S=Uj({items:b,lookup:g});for(const w of v.values())S=w(S);h&&m(b),S.length>0?p?.(S):x&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:k,setNodes:j}=t.getState();w&&j(k)})},[]),i=Wj(n),r=C.useCallback(u=>{const{edges:d=[],setEdges:m,hasDefaultEdges:h,onEdgesChange:p,edgeLookup:g}=t.getState();let x=d;for(const v of u)x=typeof v=="function"?v(x):v;h?m(x):p&&p(Uj({items:x,lookup:g}))},[]),o=Wj(r),a=C.useMemo(()=>({nodeQueue:i,edgeQueue:o}),[]);return c.jsx(BR.Provider,{value:a,children:e})}function UK(){const e=C.useContext(BR);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const qK=e=>!!e.panZoom;function db(){const e=PK(),t=Wn(),n=UK(),i=sn(qK),r=C.useMemo(()=>{const o=p=>t.getState().nodeLookup.get(p),a=p=>{n.nodeQueue.push(p)},u=p=>{n.edgeQueue.push(p)},d=p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState(),v=Gj(p)?p:g.get(p.id),b=v.parentId?fR(v.position,v.measured,v.parentId,g,x):v.position,S={...v,position:b,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return Pl(S)},m=(p,g,x={replace:!1})=>{a(v=>v.map(b=>{if(b.id===p){const S=typeof g=="function"?g(b):g;return x.replace&&Gj(S)?S:{...b,...S}}return b}))},h=(p,g,x={replace:!1})=>{u(v=>v.map(b=>{if(b.id===p){const S=typeof g=="function"?g(b):g;return x.replace&&HK(S)?S:{...b,...S}}return b}))};return{getNodes:()=>t.getState().nodes.map(p=>({...p})),getNode:p=>o(p)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:p=[]}=t.getState();return p.map(g=>({...g}))},getEdge:p=>t.getState().edgeLookup.get(p),setNodes:a,setEdges:u,addNodes:p=>{const g=Array.isArray(p)?p:[p];n.nodeQueue.push(x=>[...x,...g])},addEdges:p=>{const g=Array.isArray(p)?p:[p];n.edgeQueue.push(x=>[...x,...g])},toObject:()=>{const{nodes:p=[],edges:g=[],transform:x}=t.getState(),[v,b,S]=x;return{nodes:p.map(w=>({...w})),edges:g.map(w=>({...w})),viewport:{x:v,y:b,zoom:S}}},deleteElements:async({nodes:p=[],edges:g=[]})=>{const{nodes:x,edges:v,onNodesDelete:b,onEdgesDelete:S,triggerNodeChanges:w,triggerEdgeChanges:k,onDelete:j,onBeforeDelete:N}=t.getState(),{nodes:z,edges:I}=await pX({nodesToRemove:p,edgesToRemove:g,nodes:x,edges:v,onBeforeDelete:N}),A=I.length>0,L=z.length>0;if(A){const M=I.map(qj);S?.(I),k(M)}if(L){const M=z.map(qj);b?.(z),w(M)}return(L||A)&&j?.({nodes:z,edges:I}),{deletedNodes:z,deletedEdges:I}},getIntersectingNodes:(p,g=!0,x)=>{const v=xj(p),b=v?p:d(p),S=x!==void 0;return b?(x||t.getState().nodes).filter(w=>{const k=t.getState().nodeLookup.get(w.id);if(k&&!v&&(w.id===p.id||!k.internals.positionAbsolute))return!1;const j=Pl(S?w:k),N=Bu(j,b);return g&&N>0||N>=j.width*j.height||N>=b.width*b.height}):[]},isNodeIntersecting:(p,g,x=!0)=>{const b=xj(p)?p:d(p);if(!b)return!1;const S=Bu(b,g);return x&&S>0||S>=g.width*g.height||S>=b.width*b.height},updateNode:m,updateNodeData:(p,g,x={replace:!1})=>{m(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},updateEdge:h,updateEdgeData:(p,g,x={replace:!1})=>{h(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},getNodesBounds:p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState();return uX(p,{nodeLookup:g,nodeOrigin:x})},getHandleConnections:({type:p,id:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}-${p}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}${p?g?`-${p}-${g}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const g=t.getState().fitViewResolver??xX();return t.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:g}),n.nodeQueue.push(x=>[...x]),g.promise}}},[]);return C.useMemo(()=>({...r,...e,viewportInitialized:i}),[i])}const Yj=e=>e.selected,GK=typeof window<"u"?window:void 0;function WK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Wn(),{deleteElements:i}=db(),r=Hu(e,{actInsideInputWithModifier:!1}),o=Hu(t,{target:GK});C.useEffect(()=>{if(r){const{edges:a,nodes:u}=n.getState();i({nodes:u.filter(Yj),edges:a.filter(Yj)}),n.setState({nodesSelectionActive:!1})}},[r]),C.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function YK(e){const t=Wn();C.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const i=sb(e.current);(i.height===0||i.width===0)&&t.getState().onError?.("004",ps.error004()),t.setState({width:i.width||500,height:i.height||500})};if(e.current){n(),window.addEventListener("resize",n);const i=new ResizeObserver(()=>n());return i.observe(e.current),()=>{window.removeEventListener("resize",n),i&&e.current&&i.unobserve(e.current)}}},[])}const hp={position:"absolute",width:"100%",height:"100%",top:0,left:0},XK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function KK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:i=!1,panOnScrollSpeed:r=.5,panOnScrollMode:o=ca.Free,zoomOnDoubleClick:a=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:m,minZoom:h,maxZoom:p,zoomActivationKeyCode:g,preventScrolling:x=!0,children:v,noWheelClassName:b,noPanClassName:S,onViewportChange:w,isControlledViewport:k,paneClickDistance:j,selectionOnDrag:N}){const z=Wn(),I=C.useRef(null),{userSelectionActive:A,lib:L,connectionInProgress:M}=sn(XK,Gn),O=Hu(g),T=C.useRef();YK(I);const $=C.useCallback(G=>{w?.({x:G[0],y:G[1],zoom:G[2]}),k||z.setState({transform:G})},[w,k]);return C.useEffect(()=>{if(I.current){T.current=tK({domNode:I.current,minZoom:h,maxZoom:p,translateExtent:m,viewport:d,onDraggingChange:V=>z.setState(Y=>Y.paneDragging===V?Y:{paneDragging:V}),onPanZoomStart:(V,Y)=>{const{onViewportChangeStart:U,onMoveStart:Q}=z.getState();Q?.(V,Y),U?.(Y)},onPanZoom:(V,Y)=>{const{onViewportChange:U,onMove:Q}=z.getState();Q?.(V,Y),U?.(Y)},onPanZoomEnd:(V,Y)=>{const{onViewportChangeEnd:U,onMoveEnd:Q}=z.getState();Q?.(V,Y),U?.(Y)}});const{x:G,y:P,zoom:F}=T.current.getViewport();return z.setState({panZoom:T.current,transform:[G,P,F],domNode:I.current.closest(".react-flow")}),()=>{T.current?.destroy()}}},[]),C.useEffect(()=>{T.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:i,panOnScrollSpeed:r,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:u,zoomActivationKeyPressed:O,preventScrolling:x,noPanClassName:S,userSelectionActive:A,noWheelClassName:b,lib:L,onTransformChange:$,connectionInProgress:M,selectionOnDrag:N,paneClickDistance:j})},[e,t,n,i,r,o,a,u,O,x,S,A,b,L,$,M,N,j]),c.jsx("div",{className:"react-flow__renderer",ref:I,style:hp,children:v})}const ZK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function QK(){const{userSelectionActive:e,userSelectionRect:t}=sn(ZK,Gn);return e&&t?c.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 Zy=(e,t)=>n=>{n.target===t.current&&e?.(n)},JK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function eZ({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Pu.Full,panOnDrag:i,paneClickDistance:r,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:u,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:h,onPaneMouseEnter:p,onPaneMouseMove:g,onPaneMouseLeave:x,children:v}){const b=Wn(),{userSelectionActive:S,elementsSelectable:w,dragging:k,connectionInProgress:j}=sn(JK,Gn),N=w&&(e||S),z=C.useRef(null),I=C.useRef(),A=C.useRef(new Set),L=C.useRef(new Set),M=C.useRef(!1),O=U=>{if(M.current||j){M.current=!1;return}d?.(U),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},T=U=>{if(Array.isArray(i)&&i?.includes(2)){U.preventDefault();return}m?.(U)},$=h?U=>h(U):void 0,G=U=>{M.current&&(U.stopPropagation(),M.current=!1)},P=U=>{const{domNode:Q}=b.getState();if(I.current=Q?.getBoundingClientRect(),!I.current)return;const W=U.target===z.current;if(!W&&!!U.target.closest(".nokey")||!e||!(o&&W||t)||U.button!==0||!U.isPrimary)return;U.target?.setPointerCapture?.(U.pointerId),M.current=!1;const{x:D,y:Z}=Gr(U.nativeEvent,I.current);b.setState({userSelectionRect:{width:0,height:0,startX:D,startY:Z,x:D,y:Z}}),W||(U.stopPropagation(),U.preventDefault())},F=U=>{const{userSelectionRect:Q,transform:W,nodeLookup:q,edgeLookup:J,connectionLookup:D,triggerNodeChanges:Z,triggerEdgeChanges:ie,defaultEdgeOptions:ee,resetSelectedElements:te}=b.getState();if(!I.current||!Q)return;const{x:oe,y:le}=Gr(U.nativeEvent,I.current),{startX:he,startY:Ie}=Q;if(!M.current){const Pe=t?0:r;if(Math.hypot(oe-he,le-Ie)<=Pe)return;te(),a?.(U)}M.current=!0;const xe={startX:he,startY:Ie,x:oePe.id)),L.current=new Set;const We=ee?.selectable??!0;for(const Pe of A.current){const ct=D.get(Pe);if(ct)for(const{edgeId:It}of ct.values()){const ut=J.get(It);ut&&(ut.selectable??We)&&L.current.add(It)}}if(!vj(je,A.current)){const Pe=ml(q,A.current,!0);Z(Pe)}if(!vj(Ve,L.current)){const Pe=ml(J,L.current);ie(Pe)}b.setState({userSelectionRect:xe,userSelectionActive:!0,nodesSelectionActive:!1})},V=U=>{U.button===0&&(U.target?.releasePointerCapture?.(U.pointerId),!S&&U.target===z.current&&b.getState().userSelectionRect&&O?.(U),b.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(u?.(U),b.setState({nodesSelectionActive:A.current.size>0})))},Y=i===!0||Array.isArray(i)&&i.includes(0);return c.jsxs("div",{className:pi(["react-flow__pane",{draggable:Y,dragging:k,selection:e}]),onClick:N?void 0:Zy(O,z),onContextMenu:Zy(T,z),onWheel:Zy($,z),onPointerEnter:N?void 0:p,onPointerMove:N?F:g,onPointerUp:N?V:void 0,onPointerDownCapture:N?P:void 0,onClickCapture:N?G:void 0,onPointerLeave:x,ref:z,style:hp,children:[v,c.jsx(QK,{})]})}function Yv({id:e,store:t,unselect:n=!1,nodeRef:i}){const{addSelectedNodes:r,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:u,onError:d}=t.getState(),m=u.get(e);if(!m){d?.("012",ps.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>i?.current?.blur())):r([e])}function $R({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:i,nodeId:r,isSelectable:o,nodeClickDistance:a}){const u=Wn(),[d,m]=C.useState(!1),h=C.useRef();return C.useEffect(()=>{h.current=HX({getStoreItems:()=>u.getState(),onNodeMouseDown:p=>{Yv({id:p,store:u,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),C.useEffect(()=>{if(!(t||!e.current||!h.current))return h.current.update({noDragClassName:n,handleSelector:i,domNode:e.current,isSelectable:o,nodeId:r,nodeClickDistance:a}),()=>{h.current?.destroy()}},[n,i,t,o,e,r,a]),d}const tZ=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function HR(){const e=Wn();return C.useCallback(n=>{const{nodeExtent:i,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:u,updateNodePositions:d,nodeLookup:m,nodeOrigin:h}=e.getState(),p=new Map,g=tZ(a),x=r?o[0]:5,v=r?o[1]:5,b=n.direction.x*x*n.factor,S=n.direction.y*v*n.factor;for(const[,w]of m){if(!g(w))continue;let k={x:w.internals.positionAbsolute.x+b,y:w.internals.positionAbsolute.y+S};r&&(k=Qu(k,o));const{position:j,positionAbsolute:N}=aR({nodeId:w.id,nextPosition:k,nodeLookup:m,nodeExtent:i,nodeOrigin:h,onError:u});w.position=j,w.internals.positionAbsolute=N,p.set(w.id,w)}d(p)},[])}const fb=C.createContext(null),nZ=fb.Provider;fb.Consumer;const FR=()=>C.useContext(fb),iZ=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),rZ=(e,t,n)=>i=>{const{connectionClickStartHandle:r,connectionMode:o,connection:a}=i,{fromHandle:u,toHandle:d,isValid:m}=a,h=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:u?.nodeId===e&&u?.id===t&&u?.type===n,connectingTo:h,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:o===Ll.Strict?u?.type!==n:e!==u?.nodeId||t!==u?.id,connectionInProcess:!!u,clickConnectionInProcess:!!r,valid:h&&m}};function sZ({type:e="source",position:t=at.Top,isValidConnection:n,isConnectable:i=!0,isConnectableStart:r=!0,isConnectableEnd:o=!0,id:a,onConnect:u,children:d,className:m,onMouseDown:h,onTouchStart:p,...g},x){const v=a||null,b=e==="target",S=Wn(),w=FR(),{connectOnClick:k,noPanClassName:j,rfId:N}=sn(iZ,Gn),{connectingFrom:z,connectingTo:I,clickConnecting:A,isPossibleEndHandle:L,connectionInProcess:M,clickConnectionInProcess:O,valid:T}=sn(rZ(w,v,e),Gn);w||S.getState().onError?.("010",ps.error010());const $=F=>{const{defaultEdgeOptions:V,onConnect:Y,hasDefaultEdges:U}=S.getState(),Q={...V,...F};if(U){const{edges:W,setEdges:q}=S.getState();q(CX(Q,W))}Y?.(Q),u?.(Q)},G=F=>{if(!w)return;const V=hR(F.nativeEvent);if(r&&(V&&F.button===0||!V)){const Y=S.getState();Gv.onPointerDown(F.nativeEvent,{handleDomNode:F.currentTarget,autoPanOnConnect:Y.autoPanOnConnect,connectionMode:Y.connectionMode,connectionRadius:Y.connectionRadius,domNode:Y.domNode,nodeLookup:Y.nodeLookup,lib:Y.lib,isTarget:b,handleId:v,nodeId:w,flowId:Y.rfId,panBy:Y.panBy,cancelConnection:Y.cancelConnection,onConnectStart:Y.onConnectStart,onConnectEnd:(...U)=>S.getState().onConnectEnd?.(...U),updateConnection:Y.updateConnection,onConnect:$,isValidConnection:n||((...U)=>S.getState().isValidConnection?.(...U)??!0),getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:Y.autoPanSpeed,dragThreshold:Y.connectionDragThreshold})}V?h?.(F):p?.(F)},P=F=>{const{onClickConnectStart:V,onClickConnectEnd:Y,connectionClickStartHandle:U,connectionMode:Q,isValidConnection:W,lib:q,rfId:J,nodeLookup:D,connection:Z}=S.getState();if(!w||!U&&!r)return;if(!U){V?.(F.nativeEvent,{nodeId:w,handleId:v,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:w,type:e,id:v}});return}const ie=mR(F.target),ee=n||W,{connection:te,isValid:oe}=Gv.isValid(F.nativeEvent,{handle:{nodeId:w,id:v,type:e},connectionMode:Q,fromNodeId:U.nodeId,fromHandleId:U.id||null,fromType:U.type,isValidConnection:ee,flowId:J,doc:ie,lib:q,nodeLookup:D});oe&&te&&$(te);const le=structuredClone(Z);delete le.inProgress,le.toPosition=le.toHandle?le.toHandle.position:null,Y?.(F,le),S.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":v,"data-nodeid":w,"data-handlepos":t,"data-id":`${N}-${w}-${v}-${e}`,className:pi(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",j,m,{source:!b,target:b,connectable:i,connectablestart:r,connectableend:o,clickconnecting:A,connectingfrom:z,connectingto:I,valid:T,connectionindicator:i&&(!M||L)&&(M||O?o:r)}]),onMouseDown:G,onTouchStart:G,onClick:k?P:void 0,ref:x,...g,children:d})}const Hl=C.memo(PR(sZ));function oZ({data:e,isConnectable:t,sourcePosition:n=at.Bottom}){return c.jsxs(c.Fragment,{children:[e?.label,c.jsx(Hl,{type:"source",position:n,isConnectable:t})]})}function aZ({data:e,isConnectable:t,targetPosition:n=at.Top,sourcePosition:i=at.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(Hl,{type:"target",position:n,isConnectable:t}),e?.label,c.jsx(Hl,{type:"source",position:i,isConnectable:t})]})}function lZ(){return null}function cZ({data:e,isConnectable:t,targetPosition:n=at.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(Hl,{type:"target",position:n,isConnectable:t}),e?.label]})}const Rm={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Xj={input:oZ,default:aZ,output:cZ,group:lZ};function uZ(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}}const dZ=e=>{const{width:t,height:n,x:i,y:r}=Zu(e.nodeLookup,{filter:o=>!!o.selected});return{width:qr(t)?t:null,height:qr(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${i}px,${r}px)`}};function fZ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const i=Wn(),{width:r,height:o,transformString:a,userSelectionActive:u}=sn(dZ,Gn),d=HR(),m=C.useRef(null);C.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const h=!u&&r!==null&&o!==null;if($R({nodeRef:m,disabled:!h}),!h)return null;const p=e?x=>{const v=i.getState().nodes.filter(b=>b.selected);e(x,v)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(Rm,x.key)&&(x.preventDefault(),d({direction:Rm[x.key],factor:x.shiftKey?4:1}))};return c.jsx("div",{className:pi(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:c.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:r,height:o}})})}const Kj=typeof window<"u"?window:void 0,mZ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function VR({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:u,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:h,selectionMode:p,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:v,panActivationKeyCode:b,zoomActivationKeyCode:S,elementsSelectable:w,zoomOnScroll:k,zoomOnPinch:j,panOnScroll:N,panOnScrollSpeed:z,panOnScrollMode:I,zoomOnDoubleClick:A,panOnDrag:L,defaultViewport:M,translateExtent:O,minZoom:T,maxZoom:$,preventScrolling:G,onSelectionContextMenu:P,noWheelClassName:F,noPanClassName:V,disableKeyboardA11y:Y,onViewportChange:U,isControlledViewport:Q}){const{nodesSelectionActive:W,userSelectionActive:q}=sn(mZ,Gn),J=Hu(m,{target:Kj}),D=Hu(b,{target:Kj}),Z=D||L,ie=D||N,ee=h&&Z!==!0,te=J||q||ee;return WK({deleteKeyCode:d,multiSelectionKeyCode:v}),c.jsx(KK,{onPaneContextMenu:o,elementsSelectable:w,zoomOnScroll:k,zoomOnPinch:j,panOnScroll:ie,panOnScrollSpeed:z,panOnScrollMode:I,zoomOnDoubleClick:A,panOnDrag:!J&&Z,defaultViewport:M,translateExtent:O,minZoom:T,maxZoom:$,zoomActivationKeyCode:S,preventScrolling:G,noWheelClassName:F,noPanClassName:V,onViewportChange:U,isControlledViewport:Q,paneClickDistance:u,selectionOnDrag:ee,children:c.jsxs(eZ,{onSelectionStart:g,onSelectionEnd:x,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:Z,isSelecting:!!te,selectionMode:p,selectionKeyPressed:J,paneClickDistance:u,selectionOnDrag:ee,children:[e,W&&c.jsx(fZ,{onSelectionContextMenu:P,noPanClassName:V,disableKeyboardA11y:Y})]})})}VR.displayName="FlowRenderer";const pZ=C.memo(VR),hZ=e=>t=>e?ib(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 gZ(e){return sn(C.useCallback(hZ(e),[e]),Gn)}const yZ=e=>e.updateNodeInternals;function xZ(){const e=sn(yZ),[t]=C.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const i=new Map;n.forEach(r=>{const o=r.target.getAttribute("data-id");i.set(o,{id:o,nodeElement:r.target,force:!0})}),e(i)}));return C.useEffect(()=>()=>{t?.disconnect()},[t]),t}function vZ({node:e,nodeType:t,hasDimensions:n,resizeObserver:i}){const r=Wn(),o=C.useRef(null),a=C.useRef(null),u=C.useRef(e.sourcePosition),d=C.useRef(e.targetPosition),m=C.useRef(t),h=n&&!!e.internals.handleBounds;return C.useEffect(()=>{o.current&&!e.hidden&&(!h||a.current!==o.current)&&(a.current&&i?.unobserve(a.current),i?.observe(o.current),a.current=o.current)},[h,e.hidden]),C.useEffect(()=>()=>{a.current&&(i?.unobserve(a.current),a.current=null)},[]),C.useEffect(()=>{if(o.current){const p=m.current!==t,g=u.current!==e.sourcePosition,x=d.current!==e.targetPosition;(p||g||x)&&(m.current=t,u.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function bZ({id:e,onClick:t,onMouseEnter:n,onMouseMove:i,onMouseLeave:r,onContextMenu:o,onDoubleClick:a,nodesDraggable:u,elementsSelectable:d,nodesConnectable:m,nodesFocusable:h,resizeObserver:p,noDragClassName:g,noPanClassName:x,disableKeyboardA11y:v,rfId:b,nodeTypes:S,nodeClickDistance:w,onError:k}){const{node:j,internals:N,isParent:z}=sn(oe=>{const le=oe.nodeLookup.get(e),he=oe.parentLookup.has(e);return{node:le,internals:le.internals,isParent:he}},Gn);let I=j.type||"default",A=S?.[I]||Xj[I];A===void 0&&(k?.("003",ps.error003(I)),I="default",A=S?.default||Xj.default);const L=!!(j.draggable||u&&typeof j.draggable>"u"),M=!!(j.selectable||d&&typeof j.selectable>"u"),O=!!(j.connectable||m&&typeof j.connectable>"u"),T=!!(j.focusable||h&&typeof j.focusable>"u"),$=Wn(),G=dR(j),P=vZ({node:j,nodeType:I,hasDimensions:G,resizeObserver:p}),F=$R({nodeRef:P,disabled:j.hidden||!L,noDragClassName:g,handleSelector:j.dragHandle,nodeId:e,isSelectable:M,nodeClickDistance:w}),V=HR();if(j.hidden)return null;const Y=Vs(j),U=uZ(j),Q=M||L||t||n||i||r,W=n?oe=>n(oe,{...N.userNode}):void 0,q=i?oe=>i(oe,{...N.userNode}):void 0,J=r?oe=>r(oe,{...N.userNode}):void 0,D=o?oe=>o(oe,{...N.userNode}):void 0,Z=a?oe=>a(oe,{...N.userNode}):void 0,ie=oe=>{const{selectNodesOnDrag:le,nodeDragThreshold:he}=$.getState();M&&(!le||!L||he>0)&&Yv({id:e,store:$,nodeRef:P}),t&&t(oe,{...N.userNode})},ee=oe=>{if(!(pR(oe.nativeEvent)||v)){if(nR.includes(oe.key)&&M){const le=oe.key==="Escape";Yv({id:e,store:$,unselect:le,nodeRef:P})}else if(L&&j.selected&&Object.prototype.hasOwnProperty.call(Rm,oe.key)){oe.preventDefault();const{ariaLabelConfig:le}=$.getState();$.setState({ariaLiveMessage:le["node.a11yDescription.ariaLiveMessage"]({direction:oe.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),V({direction:Rm[oe.key],factor:oe.shiftKey?4:1})}}},te=()=>{if(v||!P.current?.matches(":focus-visible"))return;const{transform:oe,width:le,height:he,autoPanOnNodeFocus:Ie,setCenter:xe}=$.getState();if(!Ie)return;ib(new Map([[e,j]]),{x:0,y:0,width:le,height:he},oe,!0).length>0||xe(j.position.x+Y.width/2,j.position.y+Y.height/2,{zoom:oe[2]})};return c.jsx("div",{className:pi(["react-flow__node",`react-flow__node-${I}`,{[x]:L},j.className,{selected:j.selected,selectable:M,parent:z,draggable:L,dragging:F}]),ref:P,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:Q?"all":"none",visibility:G?"visible":"hidden",...j.style,...U},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:W,onMouseMove:q,onMouseLeave:J,onContextMenu:D,onClick:ie,onDoubleClick:Z,onKeyDown:T?ee:void 0,tabIndex:T?0:void 0,onFocus:T?te:void 0,role:j.ariaRole??(T?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${MR}-${b}`,"aria-label":j.ariaLabel,...j.domAttributes,children:c.jsx(nZ,{value:e,children:c.jsx(A,{id:e,data:j.data,type:I,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:j.selected??!1,selectable:M,draggable:L,deletable:j.deletable??!0,isConnectable:O,sourcePosition:j.sourcePosition,targetPosition:j.targetPosition,dragging:F,dragHandle:j.dragHandle,zIndex:N.z,parentId:j.parentId,...Y})})})}var _Z=C.memo(bZ);const kZ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function UR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,onError:o}=sn(kZ,Gn),a=gZ(e.onlyRenderVisibleElements),u=xZ();return c.jsx("div",{className:"react-flow__nodes",style:hp,children:a.map(d=>c.jsx(_Z,{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:u,nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}UR.displayName="NodeRenderer";const SZ=C.memo(UR);function wZ(e){return sn(C.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const i=[];if(n.width&&n.height)for(const r of n.edges){const o=n.nodeLookup.get(r.source),a=n.nodeLookup.get(r.target);o&&a&&kX({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&i.push(r.id)}return i},[e]),Gn)}const CZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return c.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},jZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return c.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Zj={[Nm.Arrow]:CZ,[Nm.ArrowClosed]:jZ};function EZ(e){const t=Wn();return C.useMemo(()=>Object.prototype.hasOwnProperty.call(Zj,e)?Zj[e]:(t.getState().onError?.("009",ps.error009(e)),null),[e])}const NZ=({id:e,type:t,color:n,width:i=12.5,height:r=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:u="auto-start-reverse"})=>{const d=EZ(t);return d?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:u,refX:"0",refY:"0",children:c.jsx(d,{color:n,strokeWidth:a})}):null},qR=({defaultColor:e,rfId:t})=>{const n=sn(o=>o.edges),i=sn(o=>o.defaultEdgeOptions),r=C.useMemo(()=>TX(n,{id:t,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd}),[n,i,t,e]);return r.length?c.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:c.jsx("defs",{children:r.map(o=>c.jsx(NZ,{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};qR.displayName="MarkerDefinitions";var IZ=C.memo(qR);function GR({x:e,y:t,label:n,labelStyle:i,labelShowBg:r=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:u=2,children:d,className:m,...h}){const[p,g]=C.useState({x:1,y:0,width:0,height:0}),x=pi(["react-flow__edge-textwrapper",m]),v=C.useRef(null);return C.useEffect(()=>{if(v.current){const b=v.current.getBBox();g({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?c.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:x,visibility:p.width?"visible":"hidden",...h,children:[r&&c.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:u,ry:u}),c.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:v,style:i,children:n}),d]}):null}GR.displayName="EdgeText";const TZ=C.memo(GR);function gp({path:e,labelX:t,labelY:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d,interactionWidth:m=20,...h}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...h,d:e,fill:"none",className:pi(["react-flow__edge-path",h.className])}),m?c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,i&&qr(t)&&qr(n)?c.jsx(TZ,{x:t,y:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d}):null]})}function Qj({pos:e,x1:t,y1:n,x2:i,y2:r}){return e===at.Left||e===at.Right?[.5*(t+i),n]:[t,.5*(n+r)]}function WR({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:i,targetY:r,targetPosition:o=at.Top}){const[a,u]=Qj({pos:n,x1:e,y1:t,x2:i,y2:r}),[d,m]=Qj({pos:o,x1:i,y1:r,x2:e,y2:t}),[h,p,g,x]=gR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:a,sourceControlY:u,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${u} ${d},${m} ${i},${r}`,h,p,g,x]}function YR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a,targetPosition:u,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:w})=>{const[k,j,N]=WR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:u}),z=e.isInternal?void 0:t;return c.jsx(gp,{id:z,path:k,labelX:j,labelY:N,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:w})})}const RZ=YR({isInternal:!1}),XR=YR({isInternal:!0});RZ.displayName="SimpleBezierEdge";XR.displayName="SimpleBezierEdgeInternal";function KR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,sourcePosition:x=at.Bottom,targetPosition:v=at.Top,markerEnd:b,markerStart:S,pathOptions:w,interactionWidth:k})=>{const[j,N,z]=Vv({sourceX:n,sourceY:i,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:w?.borderRadius,offset:w?.offset,stepPosition:w?.stepPosition}),I=e.isInternal?void 0:t;return c.jsx(gp,{id:I,path:j,labelX:N,labelY:z,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:S,interactionWidth:k})})}const ZR=KR({isInternal:!1}),QR=KR({isInternal:!0});ZR.displayName="SmoothStepEdge";QR.displayName="SmoothStepEdgeInternal";function JR(e){return C.memo(({id:t,...n})=>{const i=e.isInternal?void 0:t;return c.jsx(ZR,{...n,id:i,pathOptions:C.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const AZ=JR({isInternal:!1}),eA=JR({isInternal:!0});AZ.displayName="StepEdge";eA.displayName="StepEdgeInternal";function tA(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})=>{const[S,w,k]=vR({sourceX:n,sourceY:i,targetX:r,targetY:o}),j=e.isInternal?void 0:t;return c.jsx(gp,{id:j,path:S,labelX:w,labelY:k,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})})}const MZ=tA({isInternal:!1}),nA=tA({isInternal:!0});MZ.displayName="StraightEdge";nA.displayName="StraightEdgeInternal";function iA(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a=at.Bottom,targetPosition:u=at.Top,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,pathOptions:w,interactionWidth:k})=>{const[j,N,z]=yR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:u,curvature:w?.curvature}),I=e.isInternal?void 0:t;return c.jsx(gp,{id:I,path:j,labelX:N,labelY:z,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:k})})}const DZ=iA({isInternal:!1}),rA=iA({isInternal:!0});DZ.displayName="BezierEdge";rA.displayName="BezierEdgeInternal";const Jj={default:rA,straight:nA,step:eA,smoothstep:QR,simplebezier:XR},e2={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},OZ=(e,t,n)=>n===at.Left?e-t:n===at.Right?e+t:e,LZ=(e,t,n)=>n===at.Top?e-t:n===at.Bottom?e+t:e,t2="react-flow__edgeupdater";function n2({position:e,centerX:t,centerY:n,radius:i=10,onMouseDown:r,onMouseEnter:o,onMouseOut:a,type:u}){return c.jsx("circle",{onMouseDown:r,onMouseEnter:o,onMouseOut:a,className:pi([t2,`${t2}-${u}`]),cx:OZ(t,i,e),cy:LZ(n,i,e),r:i,stroke:"transparent",fill:"transparent"})}function zZ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:i,sourceY:r,targetX:o,targetY:a,sourcePosition:u,targetPosition:d,onReconnect:m,onReconnectStart:h,onReconnectEnd:p,setReconnecting:g,setUpdateHover:x}){const v=Wn(),b=(N,z)=>{if(N.button!==0)return;const{autoPanOnConnect:I,domNode:A,connectionMode:L,connectionRadius:M,lib:O,onConnectStart:T,cancelConnection:$,nodeLookup:G,rfId:P,panBy:F,updateConnection:V}=v.getState(),Y=z.type==="target",U=(q,J)=>{g(!1),p?.(q,n,z.type,J)},Q=q=>m?.(n,q),W=(q,J)=>{g(!0),h?.(N,n,z.type),T?.(q,J)};Gv.onPointerDown(N.nativeEvent,{autoPanOnConnect:I,connectionMode:L,connectionRadius:M,domNode:A,handleId:z.id,nodeId:z.nodeId,nodeLookup:G,isTarget:Y,edgeUpdaterType:z.type,lib:O,flowId:P,cancelConnection:$,panBy:F,isValidConnection:(...q)=>v.getState().isValidConnection?.(...q)??!0,onConnect:Q,onConnectStart:W,onConnectEnd:(...q)=>v.getState().onConnectEnd?.(...q),onReconnectEnd:U,updateConnection:V,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},S=N=>b(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),w=N=>b(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),k=()=>x(!0),j=()=>x(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(n2,{position:u,centerX:i,centerY:r,radius:t,onMouseDown:S,onMouseEnter:k,onMouseOut:j,type:"source"}),(e===!0||e==="target")&&c.jsx(n2,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:w,onMouseEnter:k,onMouseOut:j,type:"target"})]})}function PZ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:i,onClick:r,onDoubleClick:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,rfId:v,edgeTypes:b,noPanClassName:S,onError:w,disableKeyboardA11y:k}){let j=sn(xe=>xe.edgeLookup.get(e));const N=sn(xe=>xe.defaultEdgeOptions);j=N?{...N,...j}:j;let z=j.type||"default",I=b?.[z]||Jj[z];I===void 0&&(w?.("011",ps.error011(z)),z="default",I=b?.default||Jj.default);const A=!!(j.focusable||t&&typeof j.focusable>"u"),L=typeof p<"u"&&(j.reconnectable||n&&typeof j.reconnectable>"u"),M=!!(j.selectable||i&&typeof j.selectable>"u"),O=C.useRef(null),[T,$]=C.useState(!1),[G,P]=C.useState(!1),F=Wn(),{zIndex:V,sourceX:Y,sourceY:U,targetX:Q,targetY:W,sourcePosition:q,targetPosition:J}=sn(C.useCallback(xe=>{const je=xe.nodeLookup.get(j.source),Ve=xe.nodeLookup.get(j.target);if(!je||!Ve)return{zIndex:j.zIndex,...e2};const We=IX({id:e,sourceNode:je,targetNode:Ve,sourceHandle:j.sourceHandle||null,targetHandle:j.targetHandle||null,connectionMode:xe.connectionMode,onError:w});return{zIndex:_X({selected:j.selected,zIndex:j.zIndex,sourceNode:je,targetNode:Ve,elevateOnSelect:xe.elevateEdgesOnSelect,zIndexMode:xe.zIndexMode}),...We||e2}},[j.source,j.target,j.sourceHandle,j.targetHandle,j.selected,j.zIndex]),Gn),D=C.useMemo(()=>j.markerStart?`url('#${Uv(j.markerStart,v)}')`:void 0,[j.markerStart,v]),Z=C.useMemo(()=>j.markerEnd?`url('#${Uv(j.markerEnd,v)}')`:void 0,[j.markerEnd,v]);if(j.hidden||Y===null||U===null||Q===null||W===null)return null;const ie=xe=>{const{addSelectedEdges:je,unselectNodesAndEdges:Ve,multiSelectionActive:We}=F.getState();M&&(F.setState({nodesSelectionActive:!1}),j.selected&&We?(Ve({nodes:[],edges:[j]}),O.current?.blur()):je([e])),r&&r(xe,j)},ee=o?xe=>{o(xe,{...j})}:void 0,te=a?xe=>{a(xe,{...j})}:void 0,oe=u?xe=>{u(xe,{...j})}:void 0,le=d?xe=>{d(xe,{...j})}:void 0,he=m?xe=>{m(xe,{...j})}:void 0,Ie=xe=>{if(!k&&nR.includes(xe.key)&&M){const{unselectNodesAndEdges:je,addSelectedEdges:Ve}=F.getState();xe.key==="Escape"?(O.current?.blur(),je({edges:[j]})):Ve([e])}};return c.jsx("svg",{style:{zIndex:V},children:c.jsxs("g",{className:pi(["react-flow__edge",`react-flow__edge-${z}`,j.className,S,{selected:j.selected,animated:j.animated,inactive:!M&&!r,updating:T,selectable:M}]),onClick:ie,onDoubleClick:ee,onContextMenu:te,onMouseEnter:oe,onMouseMove:le,onMouseLeave:he,onKeyDown:A?Ie:void 0,tabIndex:A?0:void 0,role:j.ariaRole??(A?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":j.ariaLabel===null?void 0:j.ariaLabel||`Edge from ${j.source} to ${j.target}`,"aria-describedby":A?`${DR}-${v}`:void 0,ref:O,...j.domAttributes,children:[!G&&c.jsx(I,{id:e,source:j.source,target:j.target,type:j.type,selected:j.selected,animated:j.animated,selectable:M,deletable:j.deletable??!0,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,sourceX:Y,sourceY:U,targetX:Q,targetY:W,sourcePosition:q,targetPosition:J,data:j.data,style:j.style,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerStart:D,markerEnd:Z,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth}),L&&c.jsx(zZ,{edge:j,isReconnectable:L,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,sourceX:Y,sourceY:U,targetX:Q,targetY:W,sourcePosition:q,targetPosition:J,setUpdateHover:$,setReconnecting:P})]})})}var BZ=C.memo(PZ);const $Z=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function sA({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:i,noPanClassName:r,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:u,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:h,reconnectRadius:p,onEdgeDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,disableKeyboardA11y:b}){const{edgesFocusable:S,edgesReconnectable:w,elementsSelectable:k,onError:j}=sn($Z,Gn),N=wZ(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(IZ,{defaultColor:e,rfId:n}),N.map(z=>c.jsx(BZ,{id:z,edgesFocusable:S,edgesReconnectable:w,elementsSelectable:k,noPanClassName:r,onReconnect:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,onClick:h,reconnectRadius:p,onDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,rfId:n,onError:j,edgeTypes:i,disableKeyboardA11y:b},z))]})}sA.displayName="EdgeRenderer";const HZ=C.memo(sA),FZ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function VZ({children:e}){const t=sn(FZ);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function UZ(e){const t=db(),n=C.useRef(!1);C.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const qZ=e=>e.panZoom?.syncViewport;function GZ(e){const t=sn(qZ),n=Wn();return C.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function WZ(e){return e.connection.inProgress?{...e.connection,to:Ju(e.connection.to,e.transform)}:{...e.connection}}function YZ(e){return WZ}function XZ(e){const t=YZ();return sn(t,Gn)}const KZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ZZ({containerStyle:e,style:t,type:n,component:i}){const{nodesConnectable:r,width:o,height:a,isValid:u,inProgress:d}=sn(KZ,Gn);return!(o&&r&&d)?null:c.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:pi(["react-flow__connection",sR(u)]),children:c.jsx(oA,{style:t,type:n,CustomComponent:i,isValid:u})})})}const oA=({style:e,type:t=So.Bezier,CustomComponent:n,isValid:i})=>{const{inProgress:r,from:o,fromNode:a,fromHandle:u,fromPosition:d,to:m,toNode:h,toHandle:p,toPosition:g,pointer:x}=XZ();if(!r)return;if(n)return c.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:u,fromX:o.x,fromY:o.y,toX:m.x,toY:m.y,fromPosition:d,toPosition:g,connectionStatus:sR(i),toNode:h,toHandle:p,pointer:x});let v="";const b={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case So.Bezier:[v]=yR(b);break;case So.SimpleBezier:[v]=WR(b);break;case So.Step:[v]=Vv({...b,borderRadius:0});break;case So.SmoothStep:[v]=Vv(b);break;default:[v]=vR(b)}return c.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};oA.displayName="ConnectionLine";const QZ={};function i2(e=QZ){C.useRef(e),Wn(),C.useEffect(()=>{},[e])}function JZ(){Wn(),C.useRef(!1),C.useEffect(()=>{},[])}function aA({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:i,onEdgeClick:r,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:g,onSelectionEnd:x,connectionLineType:v,connectionLineStyle:b,connectionLineComponent:S,connectionLineContainerStyle:w,selectionKeyCode:k,selectionOnDrag:j,selectionMode:N,multiSelectionKeyCode:z,panActivationKeyCode:I,zoomActivationKeyCode:A,deleteKeyCode:L,onlyRenderVisibleElements:M,elementsSelectable:O,defaultViewport:T,translateExtent:$,minZoom:G,maxZoom:P,preventScrolling:F,defaultMarkerColor:V,zoomOnScroll:Y,zoomOnPinch:U,panOnScroll:Q,panOnScrollSpeed:W,panOnScrollMode:q,zoomOnDoubleClick:J,panOnDrag:D,onPaneClick:Z,onPaneMouseEnter:ie,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneScroll:oe,onPaneContextMenu:le,paneClickDistance:he,nodeClickDistance:Ie,onEdgeContextMenu:xe,onEdgeMouseEnter:je,onEdgeMouseMove:Ve,onEdgeMouseLeave:We,reconnectRadius:Pe,onReconnect:ct,onReconnectStart:It,onReconnectEnd:ut,noDragClassName:Bt,noWheelClassName:ge,noPanClassName:me,disableKeyboardA11y:qe,nodeExtent:Ge,rfId:ht,viewport:ce,onViewportChange:we}){return i2(e),i2(t),JZ(),UZ(n),GZ(ce),c.jsx(pZ,{onPaneClick:Z,onPaneMouseEnter:ie,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneContextMenu:le,onPaneScroll:oe,paneClickDistance:he,deleteKeyCode:L,selectionKeyCode:k,selectionOnDrag:j,selectionMode:N,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:z,panActivationKeyCode:I,zoomActivationKeyCode:A,elementsSelectable:O,zoomOnScroll:Y,zoomOnPinch:U,zoomOnDoubleClick:J,panOnScroll:Q,panOnScrollSpeed:W,panOnScrollMode:q,panOnDrag:D,defaultViewport:T,translateExtent:$,minZoom:G,maxZoom:P,onSelectionContextMenu:p,preventScrolling:F,noDragClassName:Bt,noWheelClassName:ge,noPanClassName:me,disableKeyboardA11y:qe,onViewportChange:we,isControlledViewport:!!ce,children:c.jsxs(VZ,{children:[c.jsx(HZ,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:ct,onReconnectStart:It,onReconnectEnd:ut,onlyRenderVisibleElements:M,onEdgeContextMenu:xe,onEdgeMouseEnter:je,onEdgeMouseMove:Ve,onEdgeMouseLeave:We,reconnectRadius:Pe,defaultMarkerColor:V,noPanClassName:me,disableKeyboardA11y:qe,rfId:ht}),c.jsx(ZZ,{style:b,type:v,component:S,containerStyle:w}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(SZ,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:o,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,nodeClickDistance:Ie,onlyRenderVisibleElements:M,noPanClassName:me,noDragClassName:Bt,disableKeyboardA11y:qe,nodeExtent:Ge,rfId:ht}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}aA.displayName="GraphView";const eQ=C.memo(aA),r2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:u,minZoom:d=.5,maxZoom:m=2,nodeOrigin:h,nodeExtent:p,zIndexMode:g="basic"}={})=>{const x=new Map,v=new Map,b=new Map,S=new Map,w=i??t??[],k=n??e??[],j=h??[0,0],N=p??zu;kR(b,S,w);const{nodesInitialized:z}=qv(k,x,v,{nodeOrigin:j,nodeExtent:N,zIndexMode:g});let I=[0,0,1];if(a&&r&&o){const A=Zu(x,{filter:T=>!!((T.width||T.initialWidth)&&(T.height||T.initialHeight))}),{x:L,y:M,zoom:O}=rb(A,r,o,d,m,u?.padding??.1);I=[L,M,O]}return{rfId:"1",width:r??0,height:o??0,transform:I,nodes:k,nodesInitialized:z,nodeLookup:x,parentLookup:v,edges:w,edgeLookup:S,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:i!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:zu,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ll.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:j,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:a??!1,fitViewOptions:u,fitViewResolver:null,connection:{...rR},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:hX,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:iR,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},tQ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g})=>vK((x,v)=>{async function b(){const{nodeLookup:S,panZoom:w,fitViewOptions:k,fitViewResolver:j,width:N,height:z,minZoom:I,maxZoom:A}=v();w&&(await mX({nodes:S,width:N,height:z,panZoom:w,minZoom:I,maxZoom:A},k),j?.resolve(!0),x({fitViewResolver:null}))}return{...r2({nodes:e,edges:t,width:r,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,defaultNodes:n,defaultEdges:i,zIndexMode:g}),setNodes:S=>{const{nodeLookup:w,parentLookup:k,nodeOrigin:j,elevateNodesOnSelect:N,fitViewQueued:z,zIndexMode:I,nodesSelectionActive:A}=v(),{nodesInitialized:L,hasSelectedNodes:M}=qv(S,w,k,{nodeOrigin:j,nodeExtent:p,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:I}),O=A&&M;z&&L?(b(),x({nodes:S,nodesInitialized:L,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:O})):x({nodes:S,nodesInitialized:L,nodesSelectionActive:O})},setEdges:S=>{const{connectionLookup:w,edgeLookup:k}=v();kR(w,k,S),x({edges:S})},setDefaultNodesAndEdges:(S,w)=>{if(S){const{setNodes:k}=v();k(S),x({hasDefaultNodes:!0})}if(w){const{setEdges:k}=v();k(w),x({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:w,nodeLookup:k,parentLookup:j,domNode:N,nodeOrigin:z,nodeExtent:I,debug:A,fitViewQueued:L,zIndexMode:M}=v(),{changes:O,updatedInternals:T}=zX(S,k,j,N,z,I,M);T&&(MX(k,j,{nodeOrigin:z,nodeExtent:I,zIndexMode:M}),L?(b(),x({fitViewQueued:!1,fitViewOptions:void 0})):x({}),O?.length>0&&(A&&console.log("React Flow: trigger node changes",O),w?.(O)))},updateNodePositions:(S,w=!1)=>{const k=[];let j=[];const{nodeLookup:N,triggerNodeChanges:z,connection:I,updateConnection:A,onNodesChangeMiddlewareMap:L}=v();for(const[M,O]of S){const T=N.get(M),$=!!(T?.expandParent&&T?.parentId&&O?.position),G={id:M,type:"position",position:$?{x:Math.max(0,O.position.x),y:Math.max(0,O.position.y)}:O.position,dragging:w};if(T&&I.inProgress&&I.fromNode.id===T.id){const P=ga(T,I.fromHandle,at.Left,!0);A({...I,from:P})}$&&T.parentId&&k.push({id:M,parentId:T.parentId,rect:{...O.internals.positionAbsolute,width:O.measured.width??0,height:O.measured.height??0}}),j.push(G)}if(k.length>0){const{parentLookup:M,nodeOrigin:O}=v(),T=ub(k,N,M,O);j.push(...T)}for(const M of L.values())j=M(j);z(j)},triggerNodeChanges:S=>{const{onNodesChange:w,setNodes:k,nodes:j,hasDefaultNodes:N,debug:z}=v();if(S?.length){if(N){const I=zR(S,j);k(I)}z&&console.log("React Flow: trigger node changes",S),w?.(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:w,setEdges:k,edges:j,hasDefaultEdges:N,debug:z}=v();if(S?.length){if(N){const I=$K(S,j);k(I)}z&&console.log("React Flow: trigger edge changes",S),w?.(S)}},addSelectedNodes:S=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:z}=v();if(w){const I=S.map(A=>ra(A,!0));N(I);return}N(ml(j,new Set([...S]),!0)),z(ml(k))},addSelectedEdges:S=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:z}=v();if(w){const I=S.map(A=>ra(A,!0));z(I);return}z(ml(k,new Set([...S]))),N(ml(j,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:w}={})=>{const{edges:k,nodes:j,nodeLookup:N,triggerNodeChanges:z,triggerEdgeChanges:I}=v(),A=S||j,L=w||k,M=[];for(const T of A){if(!T.selected)continue;const $=N.get(T.id);$&&($.selected=!1),M.push(ra(T.id,!1))}const O=[];for(const T of L)T.selected&&O.push(ra(T.id,!1));z(M),I(O)},setMinZoom:S=>{const{panZoom:w,maxZoom:k}=v();w?.setScaleExtent([S,k]),x({minZoom:S})},setMaxZoom:S=>{const{panZoom:w,minZoom:k}=v();w?.setScaleExtent([k,S]),x({maxZoom:S})},setTranslateExtent:S=>{v().panZoom?.setTranslateExtent(S),x({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:w,triggerNodeChanges:k,triggerEdgeChanges:j,elementsSelectable:N}=v();if(!N)return;const z=w.reduce((A,L)=>L.selected?[...A,ra(L.id,!1)]:A,[]),I=S.reduce((A,L)=>L.selected?[...A,ra(L.id,!1)]:A,[]);k(z),j(I)},setNodeExtent:S=>{const{nodes:w,nodeLookup:k,parentLookup:j,nodeOrigin:N,elevateNodesOnSelect:z,nodeExtent:I,zIndexMode:A}=v();S[0][0]===I[0][0]&&S[0][1]===I[0][1]&&S[1][0]===I[1][0]&&S[1][1]===I[1][1]||(qv(w,k,j,{nodeOrigin:N,nodeExtent:S,elevateNodesOnSelect:z,checkEquality:!1,zIndexMode:A}),x({nodeExtent:S}))},panBy:S=>{const{transform:w,width:k,height:j,panZoom:N,translateExtent:z}=v();return PX({delta:S,panZoom:N,transform:w,translateExtent:z,width:k,height:j})},setCenter:async(S,w,k)=>{const{width:j,height:N,maxZoom:z,panZoom:I}=v();if(!I)return Promise.resolve(!1);const A=typeof k?.zoom<"u"?k.zoom:z;return await I.setViewport({x:j/2-S*A,y:N/2-w*A,zoom:A},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{x({connection:{...rR}})},updateConnection:S=>{x({connection:S})},reset:()=>x({...r2()})}},Object.is);function lA({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:i,initialWidth:r,initialHeight:o,initialMinZoom:a,initialMaxZoom:u,initialFitViewOptions:d,fitView:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g,children:x}){const[v]=C.useState(()=>tQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:m,minZoom:a,maxZoom:u,fitViewOptions:d,nodeOrigin:h,nodeExtent:p,zIndexMode:g}));return c.jsx(bK,{value:v,children:c.jsx(VK,{children:x})})}function nQ({children:e,nodes:t,edges:n,defaultNodes:i,defaultEdges:r,width:o,height:a,fitView:u,fitViewOptions:d,minZoom:m,maxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x}){return C.useContext(mp)?c.jsx(c.Fragment,{children:e}):c.jsx(lA,{initialNodes:t,initialEdges:n,defaultNodes:i,defaultEdges:r,initialWidth:o,initialHeight:a,fitView:u,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x,children:e})}const iQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function rQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,className:r,nodeTypes:o,edgeTypes:a,onNodeClick:u,onEdgeClick:d,onInit:m,onMove:h,onMoveStart:p,onMoveEnd:g,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:S,onClickConnectEnd:w,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:z,onNodeDoubleClick:I,onNodeDragStart:A,onNodeDrag:L,onNodeDragStop:M,onNodesDelete:O,onEdgesDelete:T,onDelete:$,onSelectionChange:G,onSelectionDragStart:P,onSelectionDrag:F,onSelectionDragStop:V,onSelectionContextMenu:Y,onSelectionStart:U,onSelectionEnd:Q,onBeforeDelete:W,connectionMode:q,connectionLineType:J=So.Bezier,connectionLineStyle:D,connectionLineComponent:Z,connectionLineContainerStyle:ie,deleteKeyCode:ee="Backspace",selectionKeyCode:te="Shift",selectionOnDrag:oe=!1,selectionMode:le=Pu.Full,panActivationKeyCode:he="Space",multiSelectionKeyCode:Ie=$u()?"Meta":"Control",zoomActivationKeyCode:xe=$u()?"Meta":"Control",snapToGrid:je,snapGrid:Ve,onlyRenderVisibleElements:We=!1,selectNodesOnDrag:Pe,nodesDraggable:ct,autoPanOnNodeFocus:It,nodesConnectable:ut,nodesFocusable:Bt,nodeOrigin:ge=OR,edgesFocusable:me,edgesReconnectable:qe,elementsSelectable:Ge=!0,defaultViewport:ht=MK,minZoom:ce=.5,maxZoom:we=2,translateExtent:Oe=zu,preventScrolling:Ue=!0,nodeExtent:Xe,defaultMarkerColor:bt="#b1b1b7",zoomOnScroll:St=!0,zoomOnPinch:dt=!0,panOnScroll:ke=!1,panOnScrollSpeed:Je=.5,panOnScrollMode:Ke=ca.Free,zoomOnDoubleClick:it=!0,panOnDrag:He=!0,onPaneClick:yn,onPaneMouseEnter:on,onPaneMouseMove:jt,onPaneMouseLeave:Mt,onPaneScroll:an,onPaneContextMenu:Tt,paneClickDistance:$t=1,nodeClickDistance:ii=0,children:Et,onReconnect:Xn,onReconnectStart:dn,onReconnectEnd:tt,onEdgeContextMenu:ln,onEdgeDoubleClick:Rn,onEdgeMouseEnter:Dn,onEdgeMouseMove:Ut,onEdgeMouseLeave:cn,reconnectRadius:xn=10,onNodesChange:vt,onEdgesChange:vn,noDragClassName:Dt="nodrag",noWheelClassName:un="nowheel",noPanClassName:Hn="nopan",fitView:Ne,fitViewOptions:wt,connectOnClick:Sn,attributionPosition:Ci,proOptions:pn,defaultEdgeOptions:kt,elevateNodesOnSelect:ri=!0,elevateEdgesOnSelect:zn=!1,disableKeyboardA11y:si=!1,autoPanOnConnect:hn,autoPanOnNodeDrag:qt,autoPanSpeed:Ht,connectionRadius:Xt,isValidConnection:Kn,onError:Fn,style:Yn,id:vi,nodeDragThreshold:bn,connectionDragThreshold:Vn,viewport:En,onViewportChange:zi,width:On,height:wn,colorMode:nt="light",debug:Mr,onScroll:ue,ariaLabelConfig:be,zIndexMode:Me="basic",...ft},Ot){const pe=vi||"1",Ce=zK(nt),De=C.useCallback(Be=>{Be.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ue?.(Be)},[ue]);return c.jsx("div",{"data-testid":"rf__wrapper",...ft,onScroll:De,style:{...Yn,...iQ},ref:Ot,className:pi(["react-flow",r,Ce]),id:vi,role:"application",children:c.jsxs(nQ,{nodes:e,edges:t,width:On,height:wn,fitView:Ne,fitViewOptions:wt,minZoom:ce,maxZoom:we,nodeOrigin:ge,nodeExtent:Xe,zIndexMode:Me,children:[c.jsx(LK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:i,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:S,onClickConnectEnd:w,nodesDraggable:ct,autoPanOnNodeFocus:It,nodesConnectable:ut,nodesFocusable:Bt,edgesFocusable:me,edgesReconnectable:qe,elementsSelectable:Ge,elevateNodesOnSelect:ri,elevateEdgesOnSelect:zn,minZoom:ce,maxZoom:we,nodeExtent:Xe,onNodesChange:vt,onEdgesChange:vn,snapToGrid:je,snapGrid:Ve,connectionMode:q,translateExtent:Oe,connectOnClick:Sn,defaultEdgeOptions:kt,fitView:Ne,fitViewOptions:wt,onNodesDelete:O,onEdgesDelete:T,onDelete:$,onNodeDragStart:A,onNodeDrag:L,onNodeDragStop:M,onSelectionDrag:F,onSelectionDragStart:P,onSelectionDragStop:V,onMove:h,onMoveStart:p,onMoveEnd:g,noPanClassName:Hn,nodeOrigin:ge,rfId:pe,autoPanOnConnect:hn,autoPanOnNodeDrag:qt,autoPanSpeed:Ht,onError:Fn,connectionRadius:Xt,isValidConnection:Kn,selectNodesOnDrag:Pe,nodeDragThreshold:bn,connectionDragThreshold:Vn,onBeforeDelete:W,debug:Mr,ariaLabelConfig:be,zIndexMode:Me}),c.jsx(eQ,{onInit:m,onNodeClick:u,onEdgeClick:d,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:z,onNodeDoubleClick:I,nodeTypes:o,edgeTypes:a,connectionLineType:J,connectionLineStyle:D,connectionLineComponent:Z,connectionLineContainerStyle:ie,selectionKeyCode:te,selectionOnDrag:oe,selectionMode:le,deleteKeyCode:ee,multiSelectionKeyCode:Ie,panActivationKeyCode:he,zoomActivationKeyCode:xe,onlyRenderVisibleElements:We,defaultViewport:ht,translateExtent:Oe,minZoom:ce,maxZoom:we,preventScrolling:Ue,zoomOnScroll:St,zoomOnPinch:dt,zoomOnDoubleClick:it,panOnScroll:ke,panOnScrollSpeed:Je,panOnScrollMode:Ke,panOnDrag:He,onPaneClick:yn,onPaneMouseEnter:on,onPaneMouseMove:jt,onPaneMouseLeave:Mt,onPaneScroll:an,onPaneContextMenu:Tt,paneClickDistance:$t,nodeClickDistance:ii,onSelectionContextMenu:Y,onSelectionStart:U,onSelectionEnd:Q,onReconnect:Xn,onReconnectStart:dn,onReconnectEnd:tt,onEdgeContextMenu:ln,onEdgeDoubleClick:Rn,onEdgeMouseEnter:Dn,onEdgeMouseMove:Ut,onEdgeMouseLeave:cn,reconnectRadius:xn,defaultMarkerColor:bt,noDragClassName:Dt,noWheelClassName:un,noPanClassName:Hn,rfId:pe,disableKeyboardA11y:si,nodeExtent:Xe,viewport:En,onViewportChange:zi}),c.jsx(AK,{onSelectionChange:G}),Et,c.jsx(EK,{proOptions:pn,position:Ci}),c.jsx(jK,{rfId:pe,disableKeyboardA11y:si})]})})}var sQ=PR(rQ);function oQ({dimensions:e,lineWidth:t,variant:n,className:i}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:pi(["react-flow__background-pattern",n,i])})}function aQ({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:pi(["react-flow__background-pattern","dots",t])})}var Eo;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Eo||(Eo={}));const lQ={[Eo.Dots]:1,[Eo.Lines]:1,[Eo.Cross]:6},cQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function cA({id:e,variant:t=Eo.Dots,gap:n=20,size:i,lineWidth:r=1,offset:o=0,color:a,bgColor:u,style:d,className:m,patternClassName:h}){const p=C.useRef(null),{transform:g,patternId:x}=sn(cQ,Gn),v=i||lQ[t],b=t===Eo.Dots,S=t===Eo.Cross,w=Array.isArray(n)?n:[n,n],k=[w[0]*g[2]||1,w[1]*g[2]||1],j=v*g[2],N=Array.isArray(o)?o:[o,o],z=S?[j,j]:k,I=[N[0]*g[2]||1+z[0]/2,N[1]*g[2]||1+z[1]/2],A=`${x}${e||""}`;return c.jsxs("svg",{className:pi(["react-flow__background",m]),style:{...d,...hp,"--xy-background-color-props":u,"--xy-background-pattern-color-props":a},ref:p,"data-testid":"rf__background",children:[c.jsx("pattern",{id:A,x:g[0]%k[0],y:g[1]%k[1],width:k[0],height:k[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${I[0]},-${I[1]})`,children:b?c.jsx(aQ,{radius:j/2,className:h}):c.jsx(oQ,{dimensions:z,lineWidth:r,variant:t,className:h})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${A})`})]})}cA.displayName="Background";const uQ=C.memo(cA);function dQ(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:c.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function fQ(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:c.jsx("path",{d:"M0 0h32v4.2H0z"})})}function mQ(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:c.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 pQ(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 hQ(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 Df({children:e,className:t,...n}){return c.jsx("button",{type:"button",className:pi(["react-flow__controls-button",t]),...n,children:e})}const gQ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function uA({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:i=!0,fitViewOptions:r,onZoomIn:o,onZoomOut:a,onFitView:u,onInteractiveChange:d,className:m,children:h,position:p="bottom-left",orientation:g="vertical","aria-label":x}){const v=Wn(),{isInteractive:b,minZoomReached:S,maxZoomReached:w,ariaLabelConfig:k}=sn(gQ,Gn),{zoomIn:j,zoomOut:N,fitView:z}=db(),I=()=>{j(),o?.()},A=()=>{N(),a?.()},L=()=>{z(r),u?.()},M=()=>{v.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),d?.(!b)},O=g==="horizontal"?"horizontal":"vertical";return c.jsxs(pp,{className:pi(["react-flow__controls",O,m]),position:p,style:e,"data-testid":"rf__controls","aria-label":x??k["controls.ariaLabel"],children:[t&&c.jsxs(c.Fragment,{children:[c.jsx(Df,{onClick:I,className:"react-flow__controls-zoomin",title:k["controls.zoomIn.ariaLabel"],"aria-label":k["controls.zoomIn.ariaLabel"],disabled:w,children:c.jsx(dQ,{})}),c.jsx(Df,{onClick:A,className:"react-flow__controls-zoomout",title:k["controls.zoomOut.ariaLabel"],"aria-label":k["controls.zoomOut.ariaLabel"],disabled:S,children:c.jsx(fQ,{})})]}),n&&c.jsx(Df,{className:"react-flow__controls-fitview",onClick:L,title:k["controls.fitView.ariaLabel"],"aria-label":k["controls.fitView.ariaLabel"],children:c.jsx(mQ,{})}),i&&c.jsx(Df,{className:"react-flow__controls-interactive",onClick:M,title:k["controls.interactive.ariaLabel"],"aria-label":k["controls.interactive.ariaLabel"],children:b?c.jsx(hQ,{}):c.jsx(pQ,{})}),h]})}uA.displayName="Controls";const yQ=C.memo(uA);function xQ({id:e,x:t,y:n,width:i,height:r,style:o,color:a,strokeColor:u,strokeWidth:d,className:m,borderRadius:h,shapeRendering:p,selected:g,onClick:x}){const{background:v,backgroundColor:b}=o||{},S=a||v||b;return c.jsx("rect",{className:pi(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:h,ry:h,width:i,height:r,style:{fill:S,stroke:u,strokeWidth:d},shapeRendering:p,onClick:x?w=>x(w,e):void 0})}const vQ=C.memo(xQ),bQ=e=>e.nodes.map(t=>t.id),Qy=e=>e instanceof Function?e:()=>e;function _Q({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:i=5,nodeStrokeWidth:r,nodeComponent:o=vQ,onClick:a}){const u=sn(bQ,Gn),d=Qy(t),m=Qy(e),h=Qy(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:u.map(g=>c.jsx(SQ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:h,nodeBorderRadius:i,nodeStrokeWidth:r,NodeComponent:o,onClick:a,shapeRendering:p},g))})}function kQ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:i,nodeBorderRadius:r,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:u,onClick:d}){const{node:m,x:h,y:p,width:g,height:x}=sn(v=>{const b=v.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const S=b.internals.userNode,{x:w,y:k}=b.internals.positionAbsolute,{width:j,height:N}=Vs(S);return{node:S,x:w,y:k,width:j,height:N}},Gn);return!m||m.hidden||!dR(m)?null:c.jsx(u,{x:h,y:p,width:g,height:x,style:m.style,selected:!!m.selected,className:i(m),color:t(m),borderRadius:r,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const SQ=C.memo(kQ);var wQ=C.memo(_Q);const CQ=200,jQ=150,EQ=e=>!e.hidden,NQ=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?uR(Zu(e.nodeLookup,{filter:EQ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},IQ="react-flow__minimap-desc";function dA({style:e,className:t,nodeStrokeColor:n,nodeColor:i,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:u,bgColor:d,maskColor:m,maskStrokeColor:h,maskStrokeWidth:p,position:g="bottom-right",onClick:x,onNodeClick:v,pannable:b=!1,zoomable:S=!1,ariaLabel:w,inversePan:k,zoomStep:j=1,offsetScale:N=5}){const z=Wn(),I=C.useRef(null),{boundingRect:A,viewBB:L,rfId:M,panZoom:O,translateExtent:T,flowWidth:$,flowHeight:G,ariaLabelConfig:P}=sn(NQ,Gn),F=e?.width??CQ,V=e?.height??jQ,Y=A.width/F,U=A.height/V,Q=Math.max(Y,U),W=Q*F,q=Q*V,J=N*Q,D=A.x-(W-A.width)/2-J,Z=A.y-(q-A.height)/2-J,ie=W+J*2,ee=q+J*2,te=`${IQ}-${M}`,oe=C.useRef(0),le=C.useRef();oe.current=Q,C.useEffect(()=>{if(I.current&&O)return le.current=WX({domNode:I.current,panZoom:O,getTransform:()=>z.getState().transform,getViewScale:()=>oe.current}),()=>{le.current?.destroy()}},[O]),C.useEffect(()=>{le.current?.update({translateExtent:T,width:$,height:G,inversePan:k,pannable:b,zoomStep:j,zoomable:S})},[b,S,k,j,T,$,G]);const he=x?je=>{const[Ve,We]=le.current?.pointer(je)||[0,0];x(je,{x:Ve,y:We})}:void 0,Ie=v?C.useCallback((je,Ve)=>{const We=z.getState().nodeLookup.get(Ve).internals.userNode;v(je,We)},[]):void 0,xe=w??P["minimap.ariaLabel"];return c.jsx(pp,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*Q:void 0,"--xy-minimap-node-background-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:pi(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:F,height:V,viewBox:`${D} ${Z} ${ie} ${ee}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":te,ref:I,onClick:he,children:[xe&&c.jsx("title",{id:te,children:xe}),c.jsx(wQ,{onClick:Ie,nodeColor:i,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:u}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${D-J},${Z-J}h${ie+J*2}v${ee+J*2}h${-ie-J*2}z + M${L.x},${L.y}h${L.width}v${L.height}h${-L.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}dA.displayName="MiniMap";const TQ=C.memo(dA),RQ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,AQ={[$l.Line]:"right",[$l.Handle]:"bottom-right"};function MQ({nodeId:e,position:t,variant:n=$l.Handle,className:i,style:r=void 0,children:o,color:a,minWidth:u=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:g,autoScale:x=!0,shouldResize:v,onResizeStart:b,onResize:S,onResizeEnd:w}){const k=FR(),j=typeof e=="string"?e:k,N=Wn(),z=C.useRef(null),I=n===$l.Handle,A=sn(C.useCallback(RQ(I&&x),[I,x]),Gn),L=C.useRef(null),M=t??AQ[n];C.useEffect(()=>{if(!(!z.current||!j))return L.current||(L.current=aK({domNode:z.current,nodeId:j,getStoreItems:()=>{const{nodeLookup:T,transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F,domNode:V}=N.getState();return{nodeLookup:T,transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F,paneDomNode:V}},onChange:(T,$)=>{const{triggerNodeChanges:G,nodeLookup:P,parentLookup:F,nodeOrigin:V}=N.getState(),Y=[],U={x:T.x,y:T.y},Q=P.get(j);if(Q&&Q.expandParent&&Q.parentId){const W=Q.origin??V,q=T.width??Q.measured.width??0,J=T.height??Q.measured.height??0,D={id:Q.id,parentId:Q.parentId,rect:{width:q,height:J,...fR({x:T.x??Q.position.x,y:T.y??Q.position.y},{width:q,height:J},Q.parentId,P,W)}},Z=ub([D],P,F,V);Y.push(...Z),U.x=T.x?Math.max(W[0]*q,T.x):void 0,U.y=T.y?Math.max(W[1]*J,T.y):void 0}if(U.x!==void 0&&U.y!==void 0){const W={id:j,type:"position",position:{...U}};Y.push(W)}if(T.width!==void 0&&T.height!==void 0){const q={id:j,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:T.width,height:T.height}};Y.push(q)}for(const W of $){const q={...W,type:"position"};Y.push(q)}G(Y)},onEnd:({width:T,height:$})=>{const G={id:j,type:"dimensions",resizing:!1,dimensions:{width:T,height:$}};N.getState().triggerNodeChanges([G])}})),L.current.update({controlPosition:M,boundaries:{minWidth:u,minHeight:d,maxWidth:m,maxHeight:h},keepAspectRatio:p,resizeDirection:g,onResizeStart:b,onResize:S,onResizeEnd:w,shouldResize:v}),()=>{L.current?.destroy()}},[M,u,d,m,h,p,b,S,w,v]);const O=M.split("-");return c.jsx("div",{className:pi(["react-flow__resize-control","nodrag",...O,n,i]),ref:z,style:{...r,scale:A,...a&&{[I?"backgroundColor":"borderColor"]:a}},children:o})}C.memo(MQ);const DQ=C.memo(function({data:t}){const n=["oc-canvas-node",t.isOwner&&"is-owner",t.isSelected&&"is-selected",t.isDropTarget&&"is-drop-target",t.externalTeamBoundary&&"is-external-team-boundary"].filter(Boolean).join(" "),i=Wu(t.icon);return c.jsxs("div",{className:n,children:[c.jsx(Hl,{type:"target",position:at.Top,className:"oc-canvas-handle"}),c.jsxs("div",{className:"oc-canvas-node-row",children:[c.jsx("div",{className:"oc-canvas-node-chip",children:c.jsx("span",{className:"oc-canvas-node-chip-icon",style:{WebkitMaskImage:`url("${i}")`,maskImage:`url("${i}")`},"aria-hidden":!0})}),c.jsxs("div",{className:"oc-canvas-node-text",children:[c.jsx("span",{className:"oc-canvas-node-name",children:t.name}),t.externalTeamLabel&&c.jsx("span",{className:"oc-canvas-node-team",title:t.externalTeamLabel,children:t.externalTeamBoundary?"JiuwenSwarm Team":t.externalTeamLabel}),c.jsxs("div",{className:"oc-canvas-node-meta",children:[t.employeeNames.length>0?c.jsxs("span",{className:"oc-canvas-node-person",title:t.employeeNames.join(", "),children:[t.employeeNames[0],t.employeeNames.length>1?` +${t.employeeNames.length-1}`:""]}):c.jsx("span",{className:"oc-canvas-node-id",children:t.roleId}),t.employeeCount>0&&c.jsx("span",{className:"oc-canvas-node-badge",children:t.employeeCount})]})]})]}),c.jsx(Hl,{type:"source",position:at.Bottom,className:"oc-canvas-handle"})]})});var Jy,s2;function mb(){if(s2)return Jy;s2=1;var e="\0",t="\0",n="";class i{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(h){h&&(this._isDirected=Object.hasOwn(h,"directed")?h.directed:!0,this._isMultigraph=Object.hasOwn(h,"multigraph")?h.multigraph:!1,this._isCompound=Object.hasOwn(h,"compound")?h.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(h){return this._label=h,this}graph(){return this._label}setDefaultNodeLabel(h){return this._defaultNodeLabelFn=h,typeof h!="function"&&(this._defaultNodeLabelFn=()=>h),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var h=this;return this.nodes().filter(p=>Object.keys(h._in[p]).length===0)}sinks(){var h=this;return this.nodes().filter(p=>Object.keys(h._out[p]).length===0)}setNodes(h,p){var g=arguments,x=this;return h.forEach(function(v){g.length>1?x.setNode(v,p):x.setNode(v)}),this}setNode(h,p){return Object.hasOwn(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=p),this):(this._nodes[h]=arguments.length>1?p:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=t,this._children[h]={},this._children[t][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)}node(h){return this._nodes[h]}hasNode(h){return Object.hasOwn(this._nodes,h)}removeNode(h){var p=this;if(Object.hasOwn(this._nodes,h)){var g=x=>p.removeEdge(p._edgeObjs[x]);delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],this.children(h).forEach(function(x){p.setParent(x)}),delete this._children[h]),Object.keys(this._in[h]).forEach(g),delete this._in[h],delete this._preds[h],Object.keys(this._out[h]).forEach(g),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this}setParent(h,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===h)throw new Error("Setting "+p+" as parent of "+h+" would create a cycle");this.setNode(p)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=p,this._children[p][h]=!0,this}_removeFromParentsChildList(h){delete this._children[this._parent[h]][h]}parent(h){if(this._isCompound){var p=this._parent[h];if(p!==t)return p}}children(h=t){if(this._isCompound){var p=this._children[h];if(p)return Object.keys(p)}else{if(h===t)return this.nodes();if(this.hasNode(h))return[]}}predecessors(h){var p=this._preds[h];if(p)return Object.keys(p)}successors(h){var p=this._sucs[h];if(p)return Object.keys(p)}neighbors(h){var p=this.predecessors(h);if(p){const x=new Set(p);for(var g of this.successors(h))x.add(g);return Array.from(x.values())}}isLeaf(h){var p;return this.isDirected()?p=this.successors(h):p=this.neighbors(h),p.length===0}filterNodes(h){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([b,S]){h(b)&&p.setNode(b,S)}),Object.values(this._edgeObjs).forEach(function(b){p.hasNode(b.v)&&p.hasNode(b.w)&&p.setEdge(b,g.edge(b))});var x={};function v(b){var S=g.parent(b);return S===void 0||p.hasNode(S)?(x[b]=S,S):S in x?x[S]:v(S)}return this._isCompound&&p.nodes().forEach(b=>p.setParent(b,v(b))),p}setDefaultEdgeLabel(h){return this._defaultEdgeLabelFn=h,typeof h!="function"&&(this._defaultEdgeLabelFn=()=>h),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(h,p){var g=this,x=arguments;return h.reduce(function(v,b){return x.length>1?g.setEdge(v,b,p):g.setEdge(v,b),b}),this}setEdge(){var h,p,g,x,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(h=b.v,p=b.w,g=b.name,arguments.length===2&&(x=arguments[1],v=!0)):(h=b,p=arguments[1],g=arguments[3],arguments.length>2&&(x=arguments[2],v=!0)),h=""+h,p=""+p,g!==void 0&&(g=""+g);var S=a(this._isDirected,h,p,g);if(Object.hasOwn(this._edgeLabels,S))return v&&(this._edgeLabels[S]=x),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(p),this._edgeLabels[S]=v?x:this._defaultEdgeLabelFn(h,p,g);var w=u(this._isDirected,h,p,g);return h=w.v,p=w.w,Object.freeze(w),this._edgeObjs[S]=w,r(this._preds[p],h),r(this._sucs[h],p),this._in[p][S]=w,this._out[h][S]=w,this._edgeCount++,this}edge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return this._edgeLabels[x]}edgeAsObj(){const h=this.edge(...arguments);return typeof h!="object"?{label:h}:h}hasEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return Object.hasOwn(this._edgeLabels,x)}removeEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g),v=this._edgeObjs[x];return v&&(h=v.v,p=v.w,delete this._edgeLabels[x],delete this._edgeObjs[x],o(this._preds[p],h),o(this._sucs[h],p),delete this._in[p][x],delete this._out[h][x],this._edgeCount--),this}inEdges(h,p){var g=this._in[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.v===p):x}}outEdges(h,p){var g=this._out[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.w===p):x}}nodeEdges(h,p){var g=this.inEdges(h,p);if(g)return g.concat(this.outEdges(h,p))}}function r(m,h){m[h]?m[h]++:m[h]=1}function o(m,h){--m[h]||delete m[h]}function a(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}return x+n+v+n+(g===void 0?e:g)}function u(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}var S={v:x,w:v};return g&&(S.name=g),S}function d(m,h){return a(m,h.v,h.w,h.name)}return Jy=i,Jy}var ex,o2;function OQ(){return o2||(o2=1,ex="2.2.4"),ex}var tx,a2;function LQ(){return a2||(a2=1,tx={Graph:mb(),version:OQ()}),tx}var nx,l2;function zQ(){if(l2)return nx;l2=1;var e=mb();nx={write:t,read:r};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:i(o)};return o.graph()!==void 0&&(a.value=structuredClone(o.graph())),a}function n(o){return o.nodes().map(function(a){var u=o.node(a),d=o.parent(a),m={v:a};return u!==void 0&&(m.value=u),d!==void 0&&(m.parent=d),m})}function i(o){return o.edges().map(function(a){var u=o.edge(a),d={v:a.v,w:a.w};return a.name!==void 0&&(d.name=a.name),u!==void 0&&(d.value=u),d})}function r(o){var a=new e(o.options).setGraph(o.value);return o.nodes.forEach(function(u){a.setNode(u.v,u.value),u.parent&&a.setParent(u.v,u.parent)}),o.edges.forEach(function(u){a.setEdge({v:u.v,w:u.w,name:u.name},u.value)}),a}return nx}var ix,c2;function PQ(){if(c2)return ix;c2=1,ix=e;function e(t){var n={},i=[],r;function o(a){Object.hasOwn(n,a)||(n[a]=!0,r.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){r=[],o(a),r.length&&i.push(r)}),i}return ix}var rx,u2;function fA(){if(u2)return rx;u2=1;class e{_arr=[];_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 i=this._keyIndices[n];if(i!==void 0)return this._arr[i].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,i){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var o=this._arr,a=o.length;return r[n]=a,o.push({key:n,priority:i}),this._decrease(a),!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,i){var r=this._keyIndices[n];if(i>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+i);this._arr[r].priority=i,this._decrease(r)}_heapify(n){var i=this._arr,r=2*n,o=r+1,a=n;r>1,!(i[o].priority1;function n(r,o,a,u){return i(r,String(o),a||t,u||function(d){return r.outEdges(d)})}function i(r,o,a,u){var d={},m=new e,h,p,g=function(x){var v=x.v!==h?x.v:x.w,b=d[v],S=a(x),w=p.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+x+" Weight: "+S);w0&&(h=m.removeMin(),p=d[h],p.distance!==Number.POSITIVE_INFINITY);)u(h).forEach(g);return d}return sx}var ox,f2;function BQ(){if(f2)return ox;f2=1;var e=mA();ox=t;function t(n,i,r){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,i,r),o},{})}return ox}var ax,m2;function pA(){if(m2)return ax;m2=1,ax=e;function e(t){var n=0,i=[],r={},o=[];function a(u){var d=r[u]={onStack:!0,lowlink:n,index:n++};if(i.push(u),t.successors(u).forEach(function(p){Object.hasOwn(r,p)?r[p].onStack&&(d.lowlink=Math.min(d.lowlink,r[p].index)):(a(p),d.lowlink=Math.min(d.lowlink,r[p].lowlink))}),d.lowlink===d.index){var m=[],h;do h=i.pop(),r[h].onStack=!1,m.push(h);while(u!==h);o.push(m)}}return t.nodes().forEach(function(u){Object.hasOwn(r,u)||a(u)}),o}return ax}var lx,p2;function $Q(){if(p2)return lx;p2=1;var e=pA();lx=t;function t(n){return e(n).filter(function(i){return i.length>1||i.length===1&&n.hasEdge(i[0],i[0])})}return lx}var cx,h2;function HQ(){if(h2)return cx;h2=1,cx=t;var e=()=>1;function t(i,r,o){return n(i,r||e,o||function(a){return i.outEdges(a)})}function n(i,r,o){var a={},u=i.nodes();return u.forEach(function(d){a[d]={},a[d][d]={distance:0},u.forEach(function(m){d!==m&&(a[d][m]={distance:Number.POSITIVE_INFINITY})}),o(d).forEach(function(m){var h=m.v===d?m.w:m.v,p=r(m);a[d][h]={distance:p,predecessor:d}})}),u.forEach(function(d){var m=a[d];u.forEach(function(h){var p=a[h];u.forEach(function(g){var x=p[d],v=m[g],b=p[g],S=x.distance+v.distance;Sr.successors(p):p=>r.neighbors(p),d=a==="post"?t:n,m=[],h={};return o.forEach(p=>{if(!r.hasNode(p))throw new Error("Graph does not have node: "+p);d(p,u,h,m)}),m}function t(r,o,a,u){for(var d=[[r,!1]];d.length>0;){var m=d.pop();m[1]?u.push(m[0]):Object.hasOwn(a,m[0])||(a[m[0]]=!0,d.push([m[0],!0]),i(o(m[0]),h=>d.push([h,!1])))}}function n(r,o,a,u){for(var d=[r];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,u.push(m),i(o(m),h=>d.push(h)))}}function i(r,o){for(var a=r.length;a--;)o(r[a],a,r);return r}return fx}var mx,v2;function VQ(){if(v2)return mx;v2=1;var e=gA();mx=t;function t(n,i){return e(n,i,"post")}return mx}var px,b2;function UQ(){if(b2)return px;b2=1;var e=gA();px=t;function t(n,i){return e(n,i,"pre")}return px}var hx,_2;function qQ(){if(_2)return hx;_2=1;var e=mb(),t=fA();hx=n;function n(i,r){var o=new e,a={},u=new t,d;function m(p){var g=p.v===d?p.w:p.v,x=u.priority(g);if(x!==void 0){var v=r(p);v0;){if(d=u.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(h)throw new Error("Input graph is not connected: "+i);h=!0}i.nodeEdges(d).forEach(m)}return o}return hx}var gx,k2;function GQ(){return k2||(k2=1,gx={components:PQ(),dijkstra:mA(),dijkstraAll:BQ(),findCycles:$Q(),floydWarshall:HQ(),isAcyclic:FQ(),postorder:VQ(),preorder:UQ(),prim:qQ(),tarjan:pA(),topsort:hA()}),gx}var yx,S2;function Xr(){if(S2)return yx;S2=1;var e=LQ();return yx={Graph:e.Graph,json:zQ(),alg:GQ(),version:e.version},yx}var xx,w2;function WQ(){if(w2)return xx;w2=1;class e{constructor(){let r={};r._next=r._prev=r,this._sentinel=r}dequeue(){let r=this._sentinel,o=r._prev;if(o!==r)return t(o),o}enqueue(r){let o=this._sentinel;r._prev&&r._next&&t(r),r._next=o._next,o._next._prev=r,o._next=r,r._prev=o}toString(){let r=[],o=this._sentinel,a=o._prev;for(;a!==o;)r.push(JSON.stringify(a,n)),a=a._prev;return"["+r.join(", ")+"]"}}function t(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function n(i,r){if(i!=="_next"&&i!=="_prev")return r}return xx=e,xx}var vx,C2;function YQ(){if(C2)return vx;C2=1;let e=Xr().Graph,t=WQ();vx=i;let n=()=>1;function i(m,h){if(m.nodeCount()<=1)return[];let p=a(m,h||n);return r(p.graph,p.buckets,p.zeroIdx).flatMap(x=>m.outEdges(x.v,x.w))}function r(m,h,p){let g=[],x=h[h.length-1],v=h[0],b;for(;m.nodeCount();){for(;b=v.dequeue();)o(m,h,p,b);for(;b=x.dequeue();)o(m,h,p,b);if(m.nodeCount()){for(let S=h.length-2;S>0;--S)if(b=h[S].dequeue(),b){g=g.concat(o(m,h,p,b,!0));break}}}return g}function o(m,h,p,g,x){let v=x?[]:void 0;return m.inEdges(g.v).forEach(b=>{let S=m.edge(b),w=m.node(b.v);x&&v.push({v:b.v,w:b.w}),w.out-=S,u(h,p,w)}),m.outEdges(g.v).forEach(b=>{let S=m.edge(b),w=b.w,k=m.node(w);k.in-=S,u(h,p,k)}),m.removeNode(g.v),v}function a(m,h){let p=new e,g=0,x=0;m.nodes().forEach(S=>{p.setNode(S,{v:S,in:0,out:0})}),m.edges().forEach(S=>{let w=p.edge(S.v,S.w)||0,k=h(S),j=w+k;p.setEdge(S.v,S.w,j),x=Math.max(x,p.node(S.v).out+=k),g=Math.max(g,p.node(S.w).in+=k)});let v=d(x+g+3).map(()=>new t),b=g+1;return p.nodes().forEach(S=>{u(v,b,p.node(S))}),{graph:p,buckets:v,zeroIdx:b}}function u(m,h,p){p.out?p.in?m[p.out-p.in+h].enqueue(p):m[m.length-1].enqueue(p):m[0].enqueue(p)}function d(m){const h=[];for(let p=0;pM.setNode(O,L.node(O))),L.edges().forEach(O=>{let T=M.edge(O.v,O.w)||{weight:0,minlen:1},$=L.edge(O);M.setEdge(O.v,O.w,{weight:T.weight+$.weight,minlen:Math.max(T.minlen,$.minlen)})}),M}function i(L){let M=new e({multigraph:L.isMultigraph()}).setGraph(L.graph());return L.nodes().forEach(O=>{L.children(O).length||M.setNode(O,L.node(O))}),L.edges().forEach(O=>{M.setEdge(O,L.edge(O))}),M}function r(L){let M=L.nodes().map(O=>{let T={};return L.outEdges(O).forEach($=>{T[$.w]=(T[$.w]||0)+L.edge($).weight}),T});return A(L.nodes(),M)}function o(L){let M=L.nodes().map(O=>{let T={};return L.inEdges(O).forEach($=>{T[$.v]=(T[$.v]||0)+L.edge($).weight}),T});return A(L.nodes(),M)}function a(L,M){let O=L.x,T=L.y,$=M.x-O,G=M.y-T,P=L.width/2,F=L.height/2;if(!$&&!G)throw new Error("Not possible to find intersection inside of the rectangle");let V,Y;return Math.abs(G)*P>Math.abs($)*F?(G<0&&(F=-F),V=F*$/G,Y=F):($<0&&(P=-P),V=P,Y=P*G/$),{x:O+V,y:T+Y}}function u(L){let M=N(v(L)+1).map(()=>[]);return L.nodes().forEach(O=>{let T=L.node(O),$=T.rank;$!==void 0&&(M[$][T.order]=O)}),M}function d(L){let M=L.nodes().map(T=>{let $=L.node(T).rank;return $===void 0?Number.MAX_VALUE:$}),O=x(Math.min,M);L.nodes().forEach(T=>{let $=L.node(T);Object.hasOwn($,"rank")&&($.rank-=O)})}function m(L){let M=L.nodes().map(P=>L.node(P).rank),O=x(Math.min,M),T=[];L.nodes().forEach(P=>{let F=L.node(P).rank-O;T[F]||(T[F]=[]),T[F].push(P)});let $=0,G=L.graph().nodeRankFactor;Array.from(T).forEach((P,F)=>{P===void 0&&F%G!==0?--$:P!==void 0&&$&&P.forEach(V=>L.node(V).rank+=$)})}function h(L,M,O,T){let $={width:0,height:0};return arguments.length>=4&&($.rank=O,$.order=T),t(L,"border",$,M)}function p(L,M=g){const O=[];for(let T=0;Tg){const O=p(M);return L.apply(null,O.map(T=>L.apply(null,T)))}else return L.apply(null,M)}function v(L){const O=L.nodes().map(T=>{let $=L.node(T).rank;return $===void 0?Number.MIN_VALUE:$});return x(Math.max,O)}function b(L,M){let O={lhs:[],rhs:[]};return L.forEach(T=>{M(T)?O.lhs.push(T):O.rhs.push(T)}),O}function S(L,M){let O=Date.now();try{return M()}finally{console.log(L+" time: "+(Date.now()-O)+"ms")}}function w(L,M){return M()}let k=0;function j(L){var M=++k;return L+(""+M)}function N(L,M,O=1){M==null&&(M=L,L=0);let T=G=>GMT[M]),Object.entries(L).reduce((T,[$,G])=>(T[$]=O(G,$),T),{})}function A(L,M){return L.reduce((O,T,$)=>(O[T]=M[$],O),{})}return bx}var _x,E2;function XQ(){if(E2)return _x;E2=1;let e=YQ(),t=mi().uniqueId;_x={run:n,undo:r};function n(o){(o.graph().acyclicer==="greedy"?e(o,u(o)):i(o)).forEach(d=>{let m=o.edge(d);o.removeEdge(d),m.forwardName=d.name,m.reversed=!0,o.setEdge(d.w,d.v,m,t("rev"))});function u(d){return m=>d.edge(m).weight}}function i(o){let a=[],u={},d={};function m(h){Object.hasOwn(d,h)||(d[h]=!0,u[h]=!0,o.outEdges(h).forEach(p=>{Object.hasOwn(u,p.w)?a.push(p):m(p.w)}),delete u[h])}return o.nodes().forEach(m),a}function r(o){o.edges().forEach(a=>{let u=o.edge(a);if(u.reversed){o.removeEdge(a);let d=u.forwardName;delete u.reversed,delete u.forwardName,o.setEdge(a.w,a.v,u,d)}})}return _x}var kx,N2;function KQ(){if(N2)return kx;N2=1;let e=mi();kx={run:t,undo:i};function t(r){r.graph().dummyChains=[],r.edges().forEach(o=>n(r,o))}function n(r,o){let a=o.v,u=r.node(a).rank,d=o.w,m=r.node(d).rank,h=o.name,p=r.edge(o),g=p.labelRank;if(m===u+1)return;r.removeEdge(o);let x,v,b;for(b=0,++u;u{let a=r.node(o),u=a.edgeLabel,d;for(r.setEdge(a.edgeObj,u);a.dummy;)d=r.successors(o)[0],r.removeNode(o),u.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(u.x=a.x,u.y=a.y,u.width=a.width,u.height=a.height),o=d,a=r.node(o)})}return kx}var Sx,I2;function Am(){if(I2)return Sx;I2=1;const{applyWithChunking:e}=mi();Sx={longestPath:t,slack:n};function t(i){var r={};function o(a){var u=i.node(a);if(Object.hasOwn(r,a))return u.rank;r[a]=!0;let d=i.outEdges(a).map(h=>h==null?Number.POSITIVE_INFINITY:o(h.w)-i.edge(h).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),u.rank=m}i.sources().forEach(o)}function n(i,r){return i.node(r.w).rank-i.node(r.v).rank-i.edge(r).minlen}return Sx}var wx,T2;function yA(){if(T2)return wx;T2=1;var e=Xr().Graph,t=Am().slack;wx=n;function n(a){var u=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();u.setNode(d,{});for(var h,p;i(u,a){var p=h.v,g=m===p?h.w:p;!a.hasNode(g)&&!t(u,h)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function r(a,u){return u.edges().reduce((m,h)=>{let p=Number.POSITIVE_INFINITY;return a.hasNode(h.v)!==a.hasNode(h.w)&&(p=t(u,h)),pu.node(m).rank+=d)}return wx}var Cx,R2;function ZQ(){if(R2)return Cx;R2=1;var e=yA(),t=Am().slack,n=Am().longestPath,i=Xr().alg.preorder,r=Xr().alg.postorder,o=mi().simplify;Cx=a,a.initLowLimValues=h,a.initCutValues=u,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=v;function a(k){k=o(k),n(k);var j=e(k);h(j),u(j,k);for(var N,z;N=g(j);)z=x(j,k,N),v(j,k,N,z)}function u(k,j){var N=r(k,k.nodes());N=N.slice(0,N.length-1),N.forEach(z=>d(k,j,z))}function d(k,j,N){var z=k.node(N),I=z.parent;k.edge(N,I).cutvalue=m(k,j,N)}function m(k,j,N){var z=k.node(N),I=z.parent,A=!0,L=j.edge(N,I),M=0;return L||(A=!1,L=j.edge(I,N)),M=L.weight,j.nodeEdges(N).forEach(O=>{var T=O.v===N,$=T?O.w:O.v;if($!==I){var G=T===A,P=j.edge(O).weight;if(M+=G?P:-P,S(k,N,$)){var F=k.edge(N,$).cutvalue;M+=G?-F:F}}}),M}function h(k,j){arguments.length<2&&(j=k.nodes()[0]),p(k,{},1,j)}function p(k,j,N,z,I){var A=N,L=k.node(z);return j[z]=!0,k.neighbors(z).forEach(M=>{Object.hasOwn(j,M)||(N=p(k,j,N,M,z))}),L.low=A,L.lim=N++,I?L.parent=I:delete L.parent,N}function g(k){return k.edges().find(j=>k.edge(j).cutvalue<0)}function x(k,j,N){var z=N.v,I=N.w;j.hasEdge(z,I)||(z=N.w,I=N.v);var A=k.node(z),L=k.node(I),M=A,O=!1;A.lim>L.lim&&(M=L,O=!0);var T=j.edges().filter($=>O===w(k,k.node($.v),M)&&O!==w(k,k.node($.w),M));return T.reduce(($,G)=>t(j,G)!j.node(I).parent),z=i(k,N);z=z.slice(1),z.forEach(I=>{var A=k.node(I).parent,L=j.edge(I,A),M=!1;L||(L=j.edge(A,I),M=!0),j.node(I).rank=j.node(A).rank+(M?L.minlen:-L.minlen)})}function S(k,j,N){return k.hasEdge(j,N)}function w(k,j,N){return N.low<=j.lim&&j.lim<=N.lim}return Cx}var jx,A2;function QQ(){if(A2)return jx;A2=1;var e=Am(),t=e.longestPath,n=yA(),i=ZQ();jx=r;function r(d){var m=d.graph().ranker;if(m instanceof Function)return m(d);switch(d.graph().ranker){case"network-simplex":u(d);break;case"tight-tree":a(d);break;case"longest-path":o(d);break;case"none":break;default:u(d)}}var o=t;function a(d){t(d),n(d)}function u(d){i(d)}return jx}var Ex,M2;function JQ(){if(M2)return Ex;M2=1,Ex=e;function e(i){let r=n(i);i.graph().dummyChains.forEach(o=>{let a=i.node(o),u=a.edgeObj,d=t(i,r,u.v,u.w),m=d.path,h=d.lca,p=0,g=m[p],x=!0;for(;o!==u.w;){if(a=i.node(o),x){for(;(g=m[p])!==h&&i.node(g).maxRankm||h>r[p].lim));for(g=p,p=a;(p=i.parent(p))!==g;)d.push(p);return{path:u.concat(d.reverse()),lca:g}}function n(i){let r={},o=0;function a(u){let d=o;i.children(u).forEach(a),r[u]={low:d,lim:o++}}return i.children().forEach(a),r}return Ex}var Nx,D2;function eJ(){if(D2)return Nx;D2=1;let e=mi();Nx={run:t,cleanup:o};function t(a){let u=e.addDummyNode(a,"root",{},"_root"),d=i(a),m=Object.values(d),h=e.applyWithChunking(Math.max,m)-1,p=2*h+1;a.graph().nestingRoot=u,a.edges().forEach(x=>a.edge(x).minlen*=p);let g=r(a)+1;a.children().forEach(x=>n(a,u,p,g,h,d,x)),a.graph().nodeRankFactor=p}function n(a,u,d,m,h,p,g){let x=a.children(g);if(!x.length){g!==u&&a.setEdge(u,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),b=e.addBorderNode(a,"_bb"),S=a.node(g);a.setParent(v,g),S.borderTop=v,a.setParent(b,g),S.borderBottom=b,x.forEach(w=>{n(a,u,d,m,h,p,w);let k=a.node(w),j=k.borderTop?k.borderTop:w,N=k.borderBottom?k.borderBottom:w,z=k.borderTop?m:2*m,I=j!==N?1:h-p[g]+1;a.setEdge(v,j,{weight:z,minlen:I,nestingEdge:!0}),a.setEdge(N,b,{weight:z,minlen:I,nestingEdge:!0})}),a.parent(g)||a.setEdge(u,v,{weight:0,minlen:h+p[g]})}function i(a){var u={};function d(m,h){var p=a.children(m);p&&p.length&&p.forEach(g=>d(g,h+1)),u[m]=h}return a.children().forEach(m=>d(m,1)),u}function r(a){return a.edges().reduce((u,d)=>u+a.edge(d).weight,0)}function o(a){var u=a.graph();a.removeNode(u.nestingRoot),delete u.nestingRoot,a.edges().forEach(d=>{var m=a.edge(d);m.nestingEdge&&a.removeEdge(d)})}return Nx}var Ix,O2;function tJ(){if(O2)return Ix;O2=1;let e=mi();Ix=t;function t(i){function r(o){let a=i.children(o),u=i.node(o);if(a.length&&a.forEach(r),Object.hasOwn(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(let d=u.minRank,m=u.maxRank+1;di(d.node(m))),d.edges().forEach(m=>i(d.edge(m)))}function i(d){let m=d.width;d.width=d.height,d.height=m}function r(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(o),Object.hasOwn(h,"y")&&o(h)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>u(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(u),Object.hasOwn(h,"x")&&u(h)})}function u(d){let m=d.x;d.x=d.y,d.y=m}return Tx}var Rx,z2;function iJ(){if(z2)return Rx;z2=1;let e=mi();Rx=t;function t(n){let i={},r=n.nodes().filter(h=>!n.children(h).length),o=r.map(h=>n.node(h).rank),a=e.applyWithChunking(Math.max,o),u=e.range(a+1).map(()=>[]);function d(h){if(i[h])return;i[h]=!0;let p=n.node(h);u[p.rank].push(h),n.successors(h).forEach(d)}return r.sort((h,p)=>n.node(h).rank-n.node(p).rank).forEach(d),u}return Rx}var Ax,P2;function rJ(){if(P2)return Ax;P2=1;let e=mi().zipObject;Ax=t;function t(i,r){let o=0;for(let a=1;ax)),u=r.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,v)=>x.pos-v.pos)),d=1;for(;d{let x=g.pos+d;h[x]+=g.weight;let v=0;for(;x>0;)x%2&&(v+=h[x+1]),x=x-1>>1,h[x]+=g.weight;p+=g.weight*v}),p}return Ax}var Mx,B2;function sJ(){if(B2)return Mx;B2=1,Mx=e;function e(t,n=[]){return n.map(i=>{let r=t.inEdges(i);if(r.length){let o=r.reduce((a,u)=>{let d=t.edge(u),m=t.node(u.v);return{sum:a.sum+d.weight*m.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:i}})}return Mx}var Dx,$2;function oJ(){if($2)return Dx;$2=1;let e=mi();Dx=t;function t(r,o){let a={};r.forEach((d,m)=>{let h=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(h.barycenter=d.barycenter,h.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],h=a[d.w];m!==void 0&&h!==void 0&&(h.indegree++,m.out.push(a[d.w]))});let u=Object.values(a).filter(d=>!d.indegree);return n(u)}function n(r){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&i(d,m)}}function u(d){return m=>{m.in.push(d),--m.indegree===0&&r.push(m)}}for(;r.length;){let d=r.pop();o.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(u(d))}return o.filter(d=>!d.merged).map(d=>e.pick(d,["vs","i","barycenter","weight"]))}function i(r,o){let a=0,u=0;r.weight&&(a+=r.barycenter*r.weight,u+=r.weight),o.weight&&(a+=o.barycenter*o.weight,u+=o.weight),r.vs=o.vs.concat(r.vs),r.barycenter=a/u,r.weight=u,r.i=Math.min(o.i,r.i),o.merged=!0}return Dx}var Ox,H2;function aJ(){if(H2)return Ox;H2=1;let e=mi();Ox=t;function t(r,o){let a=e.partition(r,v=>Object.hasOwn(v,"barycenter")),u=a.lhs,d=a.rhs.sort((v,b)=>b.i-v.i),m=[],h=0,p=0,g=0;u.sort(i(!!o)),g=n(m,d,g),u.forEach(v=>{g+=v.vs.length,m.push(v.vs),h+=v.barycenter*v.weight,p+=v.weight,g=n(m,d,g)});let x={vs:m.flat(!0)};return p&&(x.barycenter=h/p,x.weight=p),x}function n(r,o,a){let u;for(;o.length&&(u=o[o.length-1]).i<=a;)o.pop(),r.push(u.vs),a++;return a}function i(r){return(o,a)=>o.barycentera.barycenter?1:r?a.i-o.i:o.i-a.i}return Ox}var Lx,F2;function lJ(){if(F2)return Lx;F2=1;let e=sJ(),t=oJ(),n=aJ();Lx=i;function i(a,u,d,m){let h=a.children(u),p=a.node(u),g=p?p.borderLeft:void 0,x=p?p.borderRight:void 0,v={};g&&(h=h.filter(k=>k!==g&&k!==x));let b=e(a,h);b.forEach(k=>{if(a.children(k.v).length){let j=i(a,k.v,d,m);v[k.v]=j,Object.hasOwn(j,"barycenter")&&o(k,j)}});let S=t(b,d);r(S,v);let w=n(S,m);if(g&&(w.vs=[g,w.vs,x].flat(!0),a.predecessors(g).length)){let k=a.node(a.predecessors(g)[0]),j=a.node(a.predecessors(x)[0]);Object.hasOwn(w,"barycenter")||(w.barycenter=0,w.weight=0),w.barycenter=(w.barycenter*w.weight+k.order+j.order)/(w.weight+2),w.weight+=2}return w}function r(a,u){a.forEach(d=>{d.vs=d.vs.flatMap(m=>u[m]?u[m].vs:m)})}function o(a,u){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+u.barycenter*u.weight)/(a.weight+u.weight),a.weight+=u.weight):(a.barycenter=u.barycenter,a.weight=u.weight)}return Lx}var zx,V2;function cJ(){if(V2)return zx;V2=1;let e=Xr().Graph,t=mi();zx=n;function n(r,o,a,u){u||(u=r.nodes());let d=i(r),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(h=>r.node(h));return u.forEach(h=>{let p=r.node(h),g=r.parent(h);(p.rank===o||p.minRank<=o&&o<=p.maxRank)&&(m.setNode(h),m.setParent(h,g||d),r[a](h).forEach(x=>{let v=x.v===h?x.w:x.v,b=m.edge(v,h),S=b!==void 0?b.weight:0;m.setEdge(v,h,{weight:r.edge(x).weight+S})}),Object.hasOwn(p,"minRank")&&m.setNode(h,{borderLeft:p.borderLeft[o],borderRight:p.borderRight[o]}))}),m}function i(r){for(var o;r.hasNode(o=t.uniqueId("_root")););return o}return zx}var Px,U2;function uJ(){if(U2)return Px;U2=1,Px=e;function e(t,n,i){let r={},o;i.forEach(a=>{let u=t.parent(a),d,m;for(;u;){if(d=t.parent(u),d?(m=r[d],r[d]=u):(m=o,o=u),m&&m!==u){n.setEdge(m,u);return}u=d}})}return Px}var Bx,q2;function dJ(){if(q2)return Bx;q2=1;let e=iJ(),t=rJ(),n=lJ(),i=cJ(),r=uJ(),o=Xr().Graph,a=mi();Bx=u;function u(p,g){if(g&&typeof g.customOrder=="function"){g.customOrder(p,u);return}let x=a.maxRank(p),v=d(p,a.range(1,x+1),"inEdges"),b=d(p,a.range(x-1,-1,-1),"outEdges"),S=e(p);if(h(p,S),g&&g.disableOptimalOrderHeuristic)return;let w=Number.POSITIVE_INFINITY,k;for(let j=0,N=0;N<4;++j,++N){m(j%2?v:b,j%4>=2),S=a.buildLayerMatrix(p);let z=t(p,S);z{v.has(S)||v.set(S,[]),v.get(S).push(w)};for(const S of p.nodes()){const w=p.node(S);if(typeof w.rank=="number"&&b(w.rank,S),typeof w.minRank=="number"&&typeof w.maxRank=="number")for(let k=w.minRank;k<=w.maxRank;k++)k!==w.rank&&b(k,S)}return g.map(function(S){return i(p,S,x,v.get(S)||[])})}function m(p,g){let x=new o;p.forEach(function(v){let b=v.graph().root,S=n(v,b,x,g);S.vs.forEach((w,k)=>v.node(w).order=k),r(v,x,S.vs)})}function h(p,g){Object.values(g).forEach(x=>x.forEach((v,b)=>p.node(v).order=b))}return Bx}var $x,G2;function fJ(){if(G2)return $x;G2=1;let e=Xr().Graph,t=mi();$x={positionX:x,findType1Conflicts:n,findType2Conflicts:i,addConflict:o,hasConflict:a,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:p,findSmallestWidthAlignment:h,balance:g};function n(S,w){let k={};function j(N,z){let I=0,A=0,L=N.length,M=z[z.length-1];return z.forEach((O,T)=>{let $=r(S,O),G=$?S.node($).order:L;($||O===M)&&(z.slice(A,T+1).forEach(P=>{S.predecessors(P).forEach(F=>{let V=S.node(F),Y=V.order;(Y{O=z[T],S.node(O).dummy&&S.predecessors(O).forEach($=>{let G=S.node($);G.dummy&&(G.orderM)&&o(k,$,O)})})}function N(z,I){let A=-1,L,M=0;return I.forEach((O,T)=>{if(S.node(O).dummy==="border"){let $=S.predecessors(O);$.length&&(L=S.node($[0]).order,j(I,M,T,A,L),M=T,A=L)}j(I,M,I.length,L,z.length)}),I}return w.length&&w.reduce(N),k}function r(S,w){if(S.node(w).dummy)return S.predecessors(w).find(k=>S.node(k).dummy)}function o(S,w,k){if(w>k){let N=w;w=k,k=N}let j=S[w];j||(S[w]=j={}),j[k]=!0}function a(S,w,k){if(w>k){let j=w;w=k,k=j}return!!S[w]&&Object.hasOwn(S[w],k)}function u(S,w,k,j){let N={},z={},I={};return w.forEach(A=>{A.forEach((L,M)=>{N[L]=L,z[L]=L,I[L]=M})}),w.forEach(A=>{let L=-1;A.forEach(M=>{let O=j(M);if(O.length){O=O.sort(($,G)=>I[$]-I[G]);let T=(O.length-1)/2;for(let $=Math.floor(T),G=Math.ceil(T);$<=G;++$){let P=O[$];z[M]===M&&LMath.max($,z[G.v]+I.edge(G)),0)}function O(T){let $=I.outEdges(T).reduce((P,F)=>Math.min(P,z[F.w]-I.edge(F)),Number.POSITIVE_INFINITY),G=S.node(T);$!==Number.POSITIVE_INFINITY&&G.borderType!==A&&(z[T]=Math.max(z[T],$))}return L(M,I.predecessors.bind(I)),L(O,I.successors.bind(I)),Object.keys(j).forEach(T=>z[T]=z[k[T]]),z}function m(S,w,k,j){let N=new e,z=S.graph(),I=v(z.nodesep,z.edgesep,j);return w.forEach(A=>{let L;A.forEach(M=>{let O=k[M];if(N.setNode(O),L){var T=k[L],$=N.edge(T,O);N.setEdge(T,O,Math.max(I(S,M,L),$||0))}L=M})}),N}function h(S,w){return Object.values(w).reduce((k,j)=>{let N=Number.NEGATIVE_INFINITY,z=Number.POSITIVE_INFINITY;Object.entries(j).forEach(([A,L])=>{let M=b(S,A)/2;N=Math.max(L+M,N),z=Math.min(L-M,z)});const I=N-z;return I{["l","r"].forEach(I=>{let A=z+I,L=S[A];if(L===w)return;let M=Object.values(L),O=j-t.applyWithChunking(Math.min,M);I!=="l"&&(O=N-t.applyWithChunking(Math.max,M)),O&&(S[A]=t.mapValues(L,T=>T+O))})})}function g(S,w){return t.mapValues(S.ul,(k,j)=>{if(w)return S[w.toLowerCase()][j];{let N=Object.values(S).map(z=>z[j]).sort((z,I)=>z-I);return(N[1]+N[2])/2}})}function x(S){let w=t.buildLayerMatrix(S),k=Object.assign(n(S,w),i(S,w)),j={},N;["u","d"].forEach(I=>{N=I==="u"?w:Object.values(w).reverse(),["l","r"].forEach(A=>{A==="r"&&(N=N.map(T=>Object.values(T).reverse()));let L=(I==="u"?S.predecessors:S.successors).bind(S),M=u(S,N,k,L),O=d(S,N,M.root,M.align,A==="r");A==="r"&&(O=t.mapValues(O,T=>-T)),j[I+A]=O})});let z=h(S,j);return p(j,z),g(j,S.graph().align)}function v(S,w,k){return(j,N,z)=>{let I=j.node(N),A=j.node(z),L=0,M;if(L+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":M=-I.width/2;break;case"r":M=I.width/2;break}if(M&&(L+=k?M:-M),M=0,L+=(I.dummy?w:S)/2,L+=(A.dummy?w:S)/2,L+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":M=A.width/2;break;case"r":M=-A.width/2;break}return M&&(L+=k?M:-M),M=0,L}}function b(S,w){return S.node(w).width}return $x}var Hx,W2;function mJ(){if(W2)return Hx;W2=1;let e=mi(),t=fJ().positionX;Hx=n;function n(r){r=e.asNonCompoundGraph(r),i(r),Object.entries(t(r)).forEach(([o,a])=>r.node(o).x=a)}function i(r){let o=e.buildLayerMatrix(r),a=r.graph().ranksep,u=0;o.forEach(d=>{const m=d.reduce((h,p)=>{const g=r.node(p).height;return h>g?h:g},0);d.forEach(h=>r.node(h).y=u+m/2),u+=m+a})}return Hx}var Fx,Y2;function pJ(){if(Y2)return Fx;Y2=1;let e=XQ(),t=KQ(),n=QQ(),i=mi().normalizeRanks,r=JQ(),o=mi().removeEmptyRanks,a=eJ(),u=tJ(),d=nJ(),m=dJ(),h=mJ(),p=mi(),g=Xr().Graph;Fx=x;function x(D,Z){let ie=Z&&Z.debugTiming?p.time:p.notime;ie("layout",()=>{let ee=ie(" buildLayoutGraph",()=>L(D));ie(" runLayout",()=>v(ee,ie,Z)),ie(" updateInputGraph",()=>b(D,ee))})}function v(D,Z,ie){Z(" makeSpaceForEdgeLabels",()=>M(D)),Z(" removeSelfEdges",()=>U(D)),Z(" acyclic",()=>e.run(D)),Z(" nestingGraph.run",()=>a.run(D)),Z(" rank",()=>n(p.asNonCompoundGraph(D))),Z(" injectEdgeLabelProxies",()=>O(D)),Z(" removeEmptyRanks",()=>o(D)),Z(" nestingGraph.cleanup",()=>a.cleanup(D)),Z(" normalizeRanks",()=>i(D)),Z(" assignRankMinMax",()=>T(D)),Z(" removeEdgeLabelProxies",()=>$(D)),Z(" normalize.run",()=>t.run(D)),Z(" parentDummyChains",()=>r(D)),Z(" addBorderSegments",()=>u(D)),Z(" order",()=>m(D,ie)),Z(" insertSelfEdges",()=>Q(D)),Z(" adjustCoordinateSystem",()=>d.adjust(D)),Z(" position",()=>h(D)),Z(" positionSelfEdges",()=>W(D)),Z(" removeBorderNodes",()=>Y(D)),Z(" normalize.undo",()=>t.undo(D)),Z(" fixupEdgeLabelCoords",()=>F(D)),Z(" undoCoordinateSystem",()=>d.undo(D)),Z(" translateGraph",()=>G(D)),Z(" assignNodeIntersects",()=>P(D)),Z(" reversePoints",()=>V(D)),Z(" acyclic.undo",()=>e.undo(D))}function b(D,Z){D.nodes().forEach(ie=>{let ee=D.node(ie),te=Z.node(ie);ee&&(ee.x=te.x,ee.y=te.y,ee.rank=te.rank,Z.children(ie).length&&(ee.width=te.width,ee.height=te.height))}),D.edges().forEach(ie=>{let ee=D.edge(ie),te=Z.edge(ie);ee.points=te.points,Object.hasOwn(te,"x")&&(ee.x=te.x,ee.y=te.y)}),D.graph().width=Z.graph().width,D.graph().height=Z.graph().height}let S=["nodesep","edgesep","ranksep","marginx","marginy"],w={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},k=["acyclicer","ranker","rankdir","align"],j=["width","height","rank"],N={width:0,height:0},z=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},A=["labelpos"];function L(D){let Z=new g({multigraph:!0,compound:!0}),ie=J(D.graph());return Z.setGraph(Object.assign({},w,q(ie,S),p.pick(ie,k))),D.nodes().forEach(ee=>{let te=J(D.node(ee));const oe=q(te,j);Object.keys(N).forEach(le=>{oe[le]===void 0&&(oe[le]=N[le])}),Z.setNode(ee,oe),Z.setParent(ee,D.parent(ee))}),D.edges().forEach(ee=>{let te=J(D.edge(ee));Z.setEdge(ee,Object.assign({},I,q(te,z),p.pick(te,A)))}),Z}function M(D){let Z=D.graph();Z.ranksep/=2,D.edges().forEach(ie=>{let ee=D.edge(ie);ee.minlen*=2,ee.labelpos.toLowerCase()!=="c"&&(Z.rankdir==="TB"||Z.rankdir==="BT"?ee.width+=ee.labeloffset:ee.height+=ee.labeloffset)})}function O(D){D.edges().forEach(Z=>{let ie=D.edge(Z);if(ie.width&&ie.height){let ee=D.node(Z.v),oe={rank:(D.node(Z.w).rank-ee.rank)/2+ee.rank,e:Z};p.addDummyNode(D,"edge-proxy",oe,"_ep")}})}function T(D){let Z=0;D.nodes().forEach(ie=>{let ee=D.node(ie);ee.borderTop&&(ee.minRank=D.node(ee.borderTop).rank,ee.maxRank=D.node(ee.borderBottom).rank,Z=Math.max(Z,ee.maxRank))}),D.graph().maxRank=Z}function $(D){D.nodes().forEach(Z=>{let ie=D.node(Z);ie.dummy==="edge-proxy"&&(D.edge(ie.e).labelRank=ie.rank,D.removeNode(Z))})}function G(D){let Z=Number.POSITIVE_INFINITY,ie=0,ee=Number.POSITIVE_INFINITY,te=0,oe=D.graph(),le=oe.marginx||0,he=oe.marginy||0;function Ie(xe){let je=xe.x,Ve=xe.y,We=xe.width,Pe=xe.height;Z=Math.min(Z,je-We/2),ie=Math.max(ie,je+We/2),ee=Math.min(ee,Ve-Pe/2),te=Math.max(te,Ve+Pe/2)}D.nodes().forEach(xe=>Ie(D.node(xe))),D.edges().forEach(xe=>{let je=D.edge(xe);Object.hasOwn(je,"x")&&Ie(je)}),Z-=le,ee-=he,D.nodes().forEach(xe=>{let je=D.node(xe);je.x-=Z,je.y-=ee}),D.edges().forEach(xe=>{let je=D.edge(xe);je.points.forEach(Ve=>{Ve.x-=Z,Ve.y-=ee}),Object.hasOwn(je,"x")&&(je.x-=Z),Object.hasOwn(je,"y")&&(je.y-=ee)}),oe.width=ie-Z+le,oe.height=te-ee+he}function P(D){D.edges().forEach(Z=>{let ie=D.edge(Z),ee=D.node(Z.v),te=D.node(Z.w),oe,le;ie.points?(oe=ie.points[0],le=ie.points[ie.points.length-1]):(ie.points=[],oe=te,le=ee),ie.points.unshift(p.intersectRect(ee,oe)),ie.points.push(p.intersectRect(te,le))})}function F(D){D.edges().forEach(Z=>{let ie=D.edge(Z);if(Object.hasOwn(ie,"x"))switch((ie.labelpos==="l"||ie.labelpos==="r")&&(ie.width-=ie.labeloffset),ie.labelpos){case"l":ie.x-=ie.width/2+ie.labeloffset;break;case"r":ie.x+=ie.width/2+ie.labeloffset;break}})}function V(D){D.edges().forEach(Z=>{let ie=D.edge(Z);ie.reversed&&ie.points.reverse()})}function Y(D){D.nodes().forEach(Z=>{if(D.children(Z).length){let ie=D.node(Z),ee=D.node(ie.borderTop),te=D.node(ie.borderBottom),oe=D.node(ie.borderLeft[ie.borderLeft.length-1]),le=D.node(ie.borderRight[ie.borderRight.length-1]);ie.width=Math.abs(le.x-oe.x),ie.height=Math.abs(te.y-ee.y),ie.x=oe.x+ie.width/2,ie.y=ee.y+ie.height/2}}),D.nodes().forEach(Z=>{D.node(Z).dummy==="border"&&D.removeNode(Z)})}function U(D){D.edges().forEach(Z=>{if(Z.v===Z.w){var ie=D.node(Z.v);ie.selfEdges||(ie.selfEdges=[]),ie.selfEdges.push({e:Z,label:D.edge(Z)}),D.removeEdge(Z)}})}function Q(D){var Z=p.buildLayerMatrix(D);Z.forEach(ie=>{var ee=0;ie.forEach((te,oe)=>{var le=D.node(te);le.order=oe+ee,(le.selfEdges||[]).forEach(he=>{p.addDummyNode(D,"selfedge",{width:he.label.width,height:he.label.height,rank:le.rank,order:oe+ ++ee,e:he.e,label:he.label},"_se")}),delete le.selfEdges})})}function W(D){D.nodes().forEach(Z=>{var ie=D.node(Z);if(ie.dummy==="selfedge"){var ee=D.node(ie.e.v),te=ee.x+ee.width/2,oe=ee.y,le=ie.x-te,he=ee.height/2;D.setEdge(ie.e,ie.label),D.removeNode(Z),ie.label.points=[{x:te+2*le/3,y:oe-he},{x:te+5*le/6,y:oe-he},{x:te+le,y:oe},{x:te+5*le/6,y:oe+he},{x:te+2*le/3,y:oe+he}],ie.label.x=ie.x,ie.label.y=ie.y}})}function q(D,Z){return p.mapValues(p.pick(D,Z),Number)}function J(D){var Z={};return D&&Object.entries(D).forEach(([ie,ee])=>{typeof ie=="string"&&(ie=ie.toLowerCase()),Z[ie]=ee}),Z}return Fx}var Vx,X2;function hJ(){if(X2)return Vx;X2=1;let e=mi(),t=Xr().Graph;Vx={debugOrdering:n};function n(i){let r=e.buildLayerMatrix(i),o=new t({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),r.forEach((a,u)=>{let d="layer"+u;o.setNode(d,{rank:"same"}),a.reduce((m,h)=>(o.setEdge(m,h,{style:"invis"}),h))}),o}return Vx}var Ux,K2;function gJ(){return K2||(K2=1,Ux="1.1.8"),Ux}var qx,Z2;function yJ(){return Z2||(Z2=1,qx={graphlib:Xr(),layout:pJ(),debug:hJ(),util:{time:mi().time,notime:mi().notime},version:gJ()}),qx}var xJ=yJ();const Q2=ya(xJ);function vJ(e,t,n={}){const i=new Q2.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const r=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>i.setNode(a.id,{width:r,height:o})),t.forEach(a=>i.setEdge(a.source,a.target)),Q2.layout(i),e.map(a=>{const{x:u,y:d}=i.node(a.id);return{...a,position:{x:u-r/2,y:d-o/2}}})}const bJ={roleNode:DQ},_J=C.forwardRef(function(t,n){return c.jsx(lA,{children:c.jsx(kJ,{...t,forwardedRef:n})})});function kJ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:i,onSelectRole:r,onReparent:o,readOnly:a,forwardedRef:u}){const d=C.useMemo(()=>{const O=new Map;for(const T of t){const $=T.role_ids?.length?T.role_ids:[T.role_id];for(const G of $){if(!G)continue;const P=O.get(G)??[];P.push(T),O.set(G,P)}}return O},[t]),m=C.useCallback(O=>n?n[O]??[]:(d.get(O)??[]).filter(T=>!T.is_default_employee).map(T=>T.name).filter(Boolean),[d,n]),[h,p]=C.useState(0),g=C.useMemo(()=>e.map(O=>O.role_id).sort().join("|"),[e]),x=C.useRef(g);C.useEffect(()=>{x.current!==g&&(x.current=g,p(O=>O+1))},[g]),C.useImperativeHandle(u,()=>({autoLayout:()=>p(O=>O+1)}),[]);const[v,b]=C.useState(null),[S,w]=C.useState({});C.useEffect(()=>{w({})},[h]);const k=C.useMemo(()=>{const O={id:"owner",type:"roleNode",position:{x:0,y:0},draggable:!1,data:{roleId:"owner",name:"You (Owner)",responsibility:"",icon:null,employeeCount:0,employeeNames:[],isOwner:!0,isSelected:!1,isDropTarget:!1,externalTeamLabel:void 0,externalTeamBoundary:!1}},T=e.map(F=>({id:F.role_id,type:"roleNode",position:{x:0,y:0},draggable:!0,data:{roleId:F.role_id,name:F.name,responsibility:F.responsibility,icon:F.icon??null,employeeCount:m(F.role_id).length,employeeNames:m(F.role_id),isOwner:!1,isSelected:!1,isDropTarget:!1,externalTeamLabel:F.covered_by_external_team?F.external_team_boundary?"JiuwenSwarm Team":`via ${F.external_team_boundary_role_id??"team boundary"}`:void 0,externalTeamBoundary:!!F.external_team_boundary}})),$=[O,...T],G=e.map(F=>({id:`e-${F.reports_to}-${F.role_id}`,source:F.reports_to,target:F.role_id,type:"smoothstep"}));return{nodes:vJ($,G),edges:G}},[h,a]),j=C.useMemo(()=>k.nodes.map(O=>{if(O.id==="owner")return O;const T=e.find(G=>G.role_id===O.id);if(!T)return O;const $=S[O.id];return{...O,position:$??O.position,draggable:!0,data:{...O.data,name:T.name,responsibility:T.responsibility,icon:T.icon??null,employeeCount:m(T.role_id).length,employeeNames:m(T.role_id),isSelected:T.role_id===i,isDropTarget:T.role_id===v,externalTeamLabel:T.covered_by_external_team?T.external_team_boundary?"JiuwenSwarm Team":`via ${T.external_team_boundary_role_id??"team boundary"}`:void 0,externalTeamBoundary:!!T.external_team_boundary}}}),[k.nodes,e,d,m,i,v,a,S]),[N,z]=C.useState(j);C.useEffect(()=>{z(j)},[j]);const I=C.useCallback(O=>{z(T=>zR(O,T))},[]),A=C.useCallback((O,T)=>{if(a)return;const $=220,G=80,P={x:T.position.x+$/2,y:T.position.y+G/2},F=N.find(V=>V.id===T.id?!1:P.x>=V.position.x&&P.x<=V.position.x+$&&P.y>=V.position.y&&P.y<=V.position.y+G);b(F?.id??null)},[N,a]),L=C.useCallback((O,T)=>{const $=v;b(null);const G=()=>w(P=>({...P,[T.id]:{x:T.position.x,y:T.position.y}}));if(a||!$||$===T.id||xA(e,T.id,$)){G();return}o(T.id,$),p(P=>P+1)},[v,e,a,o]),M=C.useCallback((O,T)=>{r(T.id==="owner"?null:T.id)},[r]);return c.jsx("div",{style:{width:"100%",height:"100%"},children:c.jsxs(sQ,{nodes:N,edges:k.edges,nodeTypes:bJ,onNodesChange:I,onNodeDrag:A,onNodeDragStop:L,onNodeClick:M,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[c.jsx(uQ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),c.jsx(yQ,{showInteractive:!1}),c.jsx(TQ,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function xA(e,t,n){const i=e.filter(r=>r.reports_to===t).map(r=>r.role_id);for(const r of i)if(r===n||xA(e,r,n))return!0;return!1}function SJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onUpdateRole:a,onDeleteRole:u,onBindExternalTeam:d,onUnbindExternalTeam:m,savedOrgsList:h,activeSavedOrg:p,currentOrgVersion:g,versionAtLoad:x,onSavedOrgsList:v,onSavedOrgSaveAs:b,onSavedOrgLoad:S,onSavedOrgDelete:w}){const[k,j]=C.useState("canvas"),[N,z]=C.useState(null),I=C.useRef(null),A=C.useMemo(()=>e.find(G=>G.role_id===N)??null,[e,N]),L=C.useCallback((G,P)=>{i&&a(G,{reports_to:P})},[a,i]),M=C.useCallback(()=>{I.current?.autoLayout()},[]),O=C.useCallback(()=>{if(!i)return;const G=new Set(e.map(V=>V.role_id));let P="new_role",F=1;for(;G.has(P);)F+=1,P=`new_role_${F}`;o(P,"New Role","","owner",null),z(P)},[e,o,i]),T=C.useCallback(()=>{if(!i||!A)return;const G=new Set(e.map(V=>V.role_id));let P=`${A.role_id}_copy`,F=1;for(;G.has(P);)F+=1,P=`${A.role_id}_copy_${F}`;o(P,`${A.name} (copy)`,A.responsibility,A.reports_to,A.icon),z(P)},[e,o,A,i]),$=C.useRef(null);return C.useEffect(()=>{const G=P=>{const F=P.target;if(!(F&&(F.tagName==="INPUT"||F.tagName==="TEXTAREA"||F.tagName==="SELECT"||F.isContentEditable))&&!($.current&&!$.current.contains(F))){if(P.key==="Escape"&&N){z(null),P.preventDefault();return}if(P.key==="Delete"&&N&&i){u(N),z(null),P.preventDefault();return}if((P.metaKey||P.ctrlKey)&&P.key.toLowerCase()==="d"&&N&&i){T(),P.preventDefault();return}if(P.key.toLowerCase()==="f"&&k==="canvas"){M(),P.preventDefault();return}}};return window.addEventListener("keydown",G),()=>window.removeEventListener("keydown",G)},[N,i,k,u,M,T]),c.jsxs("div",{className:"se-container",ref:$,children:[c.jsxs("div",{className:"se-toolbar",children:[c.jsxs("div",{className:"se-view-switcher",role:"tablist","aria-label":"Editor view",children:[c.jsx("button",{role:"tab","aria-selected":k==="canvas",className:`se-view-btn${k==="canvas"?" is-active":""}`,onClick:()=>j("canvas"),children:"Canvas"}),c.jsx("button",{role:"tab","aria-selected":k==="table",className:`se-view-btn${k==="table"?" is-active":""}`,onClick:()=>j("table"),children:"Table"})]}),c.jsxs("div",{className:`se-toolbar-actions${i?"":" se-toolbar-actions--readonly"}`,children:[i?c.jsxs("div",{className:"se-saved-org-control",children:[c.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),c.jsx(NU,{savedOrgs:h??null,activeName:p??null,isDirty:x!=null&&(g??0)!==x,onRefresh:v??(()=>{}),onSaveAs:b??(()=>{}),onLoad:S??(()=>{}),onDelete:w??(()=>{})})]}):c.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),c.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),k==="canvas"&&c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:M,children:"Auto-layout"}),i&&c.jsx("button",{className:"btn btn-primary btn-sm",onClick:O,children:"+ Add role"})]})]}),c.jsxs("div",{className:"se-body",children:[k==="canvas"?c.jsx(_J,{ref:I,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:N,onSelectRole:z,onReparent:L,readOnly:!i}):c.jsx(Iq,{roles:e,employees:t,selectedIds:N?[N]:[],onSelectRow:G=>z(G),onUpdateRole:a,onDeleteRole:u,readOnly:!i}),A&&c.jsx(MU,{role:A,allRoles:e,employees:t,readOnly:!i,teamBindingEditable:!0,organizationId:r,onUpdateRole:a,onBindExternalTeam:d,onUnbindExternalTeam:m,onDeleteRole:G=>{u(G),z(null)},onClose:()=>z(null)})]})]})}const us={rocket:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M13.13 22.19L11.5 18.36c3.07-1.39 5.51-3.94 6.69-7.07L22 13l-8.87 9.19zM5.64 12.5L2 10.87l9.19-8.87 1.63 3.81c-3.13 1.18-5.68 3.62-7.07 6.69zM14.54 9.46c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0 .78 2.05 0 2.83c-.79.78-2.05.78-2.83 0zM8 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z'/%3E%3C/svg%3E",people:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",check:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",addPerson:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",trash:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E",team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",deploy:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z'/%3E%3C/svg%3E",person:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function wJ({onComplete:e,onSwitchToTab:t}){const[n,i]=C.useState(1),[r,o]=C.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...r,{name:"",resp:"",parent:"owner"}]),u=(g,x,v)=>{const b=[...r];b[g][x]=v,o(b)},d=g=>{r.length<=1||o(r.filter((x,v)=>v!==g))},m=r.filter(g=>g.name.trim()),h=m.map(g=>g.name.trim()).filter(Boolean),p=()=>{e(m.map(g=>({name:g.name.trim(),responsibility:g.resp.trim(),reportsTo:g.parent})))};return c.jsxs("div",{className:"qs-wizard",children:[c.jsxs("div",{className:"qs-header",children:[c.jsx("img",{src:us.rocket,alt:"",className:"qs-header-icon"}),c.jsxs("div",{children:[c.jsx("h3",{className:"qs-header-title",children:"Build Your Team"}),c.jsxs("p",{className:"qs-header-sub",children:["Create an org team in a few steps, or ",c.jsx("button",{className:"qs-link-btn",onClick:()=>t("architecture"),children:"use a template"})]})]})]}),c.jsx("div",{className:"qs-progress",children:[{n:1,icon:us.people,label:"Team Members"},{n:2,icon:us.check,label:"Preview"}].map(g=>c.jsxs("div",{className:`qs-step${n===g.n?" qs-step-active":n>g.n?" qs-step-done":""}`,children:[c.jsx("img",{src:g.icon,alt:"",className:"qs-step-icon"}),c.jsx("span",{children:g.label})]},g.n))}),n===1&&c.jsxs("div",{className:"qs-panel",children:[c.jsx("h4",{children:"Who's on your team?"}),c.jsx("p",{className:"qs-hint",children:"Add each team member with their name and what they do."}),c.jsx("div",{className:"qs-members",children:r.map((g,x)=>c.jsxs("div",{className:"qs-member-row",children:[c.jsx("input",{className:"qs-member-name",value:g.name,placeholder:"Role name (e.g. Engineer)",onChange:v=>u(x,"name",v.target.value)}),c.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>u(x,"resp",v.target.value)}),c.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>u(x,"parent",v.target.value),children:[c.jsx("option",{value:"owner",children:"Reports to you"}),h.filter(v=>v!==g.name.trim()).map(v=>c.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),r.length>1&&c.jsx("button",{className:"qs-remove-btn",onClick:()=>d(x),title:"Remove",children:c.jsx("img",{src:us.trash,alt:"",className:"qs-remove-icon"})})]},x))}),c.jsxs("button",{className:"qs-add-member",onClick:a,children:[c.jsx("img",{src:us.addPerson,alt:"",className:"qs-add-icon"})," Add another member"]}),c.jsxs("div",{className:"qs-nav",children:[c.jsx("span",{}),c.jsx("button",{className:"oc-btn-primary",onClick:()=>i(2),disabled:m.length===0,children:"Next: Preview →"})]})]}),n===2&&c.jsxs("div",{className:"qs-panel",children:[c.jsx("h4",{children:"Your team at a glance"}),c.jsxs("div",{className:"qs-preview",children:[c.jsxs("div",{className:"qs-preview-section",children:[c.jsxs("h5",{children:["Team (",m.length," members)"]}),m.map((g,x)=>c.jsxs("div",{className:"qs-preview-member",children:[c.jsx("strong",{children:g.name}),g.resp&&c.jsxs("span",{className:"qs-preview-resp",children:[" — ",g.resp]}),c.jsx("span",{className:"qs-preview-parent",children:g.parent==="owner"?" (reports to you)":` (managed by ${g.parent})`})]},x))]}),c.jsxs("div",{className:"qs-preview-section",children:[c.jsx("h5",{children:"Actor Runtime"}),c.jsx("p",{children:"Seat routing and delegation will be derived from your reporting structure and any team seats you configure later."})]})]}),c.jsxs("div",{className:"qs-nav",children:[c.jsx("button",{className:"oc-btn-ghost",onClick:()=>i(1),children:"← Back"}),c.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:p,children:"Create Team"})]})]})]})}function CJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onBulkAddRoles:a,onUpdateRole:u,onDeleteRole:d,onBindExternalTeam:m,onUnbindExternalTeam:h,onExport:p,onImportEmployee:g,onResetArchitecture:x,onSwitchToTab:v,savedOrgsList:b,activeSavedOrg:S,currentOrgVersion:w,versionAtLoad:k,onSavedOrgsList:j,onSavedOrgSaveAs:N,onSavedOrgLoad:z,onSavedOrgDelete:I}){const[A,L]=C.useState(!1),[M,O]=C.useState(!1),[T,$]=C.useState(""),[G,P]=C.useState(""),[F,V]=C.useState(""),[Y,U]=C.useState("1.0.0"),Q=C.useMemo(()=>{const te=new Map;for(const oe of t){const le=oe.role_ids?.length?oe.role_ids:[oe.role_id];for(const he of le){if(!he)continue;const Ie=te.get(he)||[];Ie.push(oe),te.set(he,Ie)}}return te},[t]),W=()=>{!T.trim()||!G.trim()||(p({package_id:T.trim(),name:G.trim(),description:F,version:Y}),O(!1),$(""),P(""),V(""),U("1.0.0"))},q=C.useRef(null);C.useEffect(()=>{A&&e.length>0&&(L(!1),q.current&&(clearTimeout(q.current),q.current=null))},[e.length,A]),C.useEffect(()=>{if(A)return q.current=setTimeout(()=>L(!1),1e4),()=>{q.current&&clearTimeout(q.current)}},[A]);const J=te=>{const oe=new Map,le=new Set,he=[];for(const Ie of te){let xe=Ie.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!xe)continue;let je=xe,Ve=2;for(;le.has(je);)je=`${xe}-${Ve++}`;le.add(je),oe.set(Ie.name,je);const We=Ie.reportsTo==="owner"?"owner":oe.get(Ie.reportsTo)||"owner";he.push({role_id:je,name:Ie.name,responsibility:Ie.responsibility,reports_to:We})}if(he.length!==0)if(a)L(!0),a(he);else{for(const Ie of he)o(Ie.role_id,Ie.name,Ie.responsibility,Ie.reports_to);L(!0)}},D=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&x?.()},Z=C.useMemo(()=>{let te=0;for(const oe of e)(oe.covered_by_external_team||(Q.get(oe.role_id)??[]).length>0)&&(te+=1);return te},[e,Q]),ie=C.useMemo(()=>t.filter(te=>te.linked_agent_id).length,[t]),ee=Math.max(0,e.filter(te=>!te.covered_by_external_team&&(Q.get(te.role_id)??[]).length===0).length);return i&&e.length===0?c.jsx("div",{className:"team-view",children:A?c.jsx("div",{className:"qs-wizard",children:c.jsxs("div",{className:"qs-loading",children:[c.jsx("span",{className:"spinner-inline"})," Setting up your team..."]})}):c.jsx(wJ,{onComplete:J,onSwitchToTab:v})}):c.jsxs("div",{className:"team-view",children:[c.jsxs("div",{className:`team-command-bar${i?" team-command-bar--editable":" team-command-bar--readonly"}`,children:[c.jsxs("div",{className:"team-command-copy",children:[c.jsx("span",{className:"team-command-eyebrow",children:i?"Saved org workspace":"Corporate baseline"}),c.jsx("span",{className:"team-command-title",children:i?"Editable company architecture":"Built-in company architecture"})]}),c.jsxs("div",{className:"team-command-metrics",children:[c.jsxs("span",{children:[c.jsx("b",{children:Z})," staffed roles"]}),c.jsxs("span",{children:[c.jsx("b",{children:ee})," vacant"]}),c.jsxs("span",{children:[c.jsx("b",{children:ie})," in office"]})]}),i&&c.jsxs("div",{className:"team-command-actions",children:[c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>v("employees"),children:[c.jsx("img",{src:us.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>O(!0),children:"Export Package"}),x&&c.jsxs("button",{className:"myorg-reset-btn",onClick:D,children:[c.jsx("img",{src:us.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!i&&c.jsx("div",{className:"team-readonly-strip",children:"Corporate role structure is fixed. Execution scope can still bind a role subtree to one JiuwenSwarm Team."}),c.jsx(SJ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onUpdateRole:u,onDeleteRole:d,onBindExternalTeam:m,onUnbindExternalTeam:h,savedOrgsList:b??null,activeSavedOrg:S??null,currentOrgVersion:w??0,versionAtLoad:k??null,onSavedOrgsList:j,onSavedOrgSaveAs:N,onSavedOrgLoad:z,onSavedOrgDelete:I}),M&&c.jsxs("div",{className:"myorg-form",children:[c.jsx("h4",{className:"myorg-form-title",children:"Export as .opcpkg"}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Package ID"}),c.jsx("input",{value:T,onChange:te=>$(te.target.value),placeholder:"my-architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Name"}),c.jsx("input",{value:G,onChange:te=>P(te.target.value),placeholder:"My Architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Description"}),c.jsx("input",{value:F,onChange:te=>V(te.target.value),placeholder:"An org team structure"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Version"}),c.jsx("input",{value:Y,onChange:te=>U(te.target.value)})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:W,disabled:!T.trim()||!G.trim(),children:"Export"}),c.jsx("button",{className:"oc-btn-ghost",onClick:()=>O(!1),children:"Cancel"})]})]}),c.jsxs("div",{className:"myorg-section",children:[c.jsxs("div",{className:"myorg-section-header",children:[c.jsx("img",{src:us.team,alt:"",className:"myorg-section-icon"}),c.jsx("h3",{className:"myorg-section-title",children:"Team Roster"}),c.jsxs("span",{className:"myorg-section-count",children:[t.length," members"]}),c.jsx("span",{className:"myorg-section-spacer"}),c.jsxs("span",{className:"myorg-section-note",children:[Z,"/",e.length," staffed"]})]}),c.jsx("div",{className:"team-roster-grid",children:e.map(te=>{const oe=Q.get(te.role_id)||[],le=!!te.covered_by_external_team;return c.jsxs("div",{className:`team-roster-card${le?" team-roster-card--external":""}`,children:[c.jsxs("div",{className:"team-roster-card-header",children:[c.jsx("img",{src:Wu(te.icon),alt:"",className:"team-roster-card-icon"}),c.jsx("span",{className:"team-roster-role-name",children:te.name}),c.jsx("span",{className:"team-roster-count",children:le?"team":oe.length||"vacant"})]}),le?c.jsxs("div",{className:"team-roster-external",children:[c.jsx("b",{children:te.external_team_boundary?"JiuwenSwarm Team boundary":"Covered by external team"}),c.jsx("span",{children:te.external_team_boundary?"No separate role recruitment; Jiuwen manages internal staffing.":`Inherited from ${te.external_team_boundary_role_id??"team boundary"}.`})]}):oe.length>0?oe.map(he=>c.jsxs("div",{className:"team-roster-emp",children:[c.jsx("img",{src:us.person,alt:"",className:"team-roster-emp-avatar"}),c.jsxs("div",{className:"team-roster-emp-info",children:[c.jsx("span",{className:"team-roster-emp-name",children:he.name}),c.jsx("span",{className:`team-roster-seniority team-roster-seniority--${he.seniority}`,children:he.seniority})]}),he.linked_agent_id?c.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):g&&he.role_id?c.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>g(he.employee_id),title:"Add this employee to the office workspace",children:[c.jsx("img",{src:us.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},he.employee_id)):c.jsxs("div",{className:"team-roster-vacant",children:[c.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),i&&c.jsx("button",{className:"team-roster-hire-btn",onClick:()=>v("employees"),children:"Hire"})]})]},te.role_id)})})]})]})}function yp(e){if(e.adaptive&&typeof e.adaptive=="object")return e.adaptive;const t=e.metadata;if(t&&typeof t=="object"&&t.adaptive&&typeof t.adaptive=="object")return t.adaptive}function jJ(e){const t=yp(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(i=>i&&typeof i=="object").filter(i=>!!(i.required??!0)&&!i.satisfied).map(i=>String(i.name??"").trim()).filter(Boolean)}function EJ(e){const n=yp(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function NJ(e){const t=yp(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function IJ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:i,frontier:r,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:u,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:h,onUpdateRuntimePolicy:p}){const g=e.filter(S=>(d??[]).includes(S.role_id)),x=u||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!x,b=new Map(e.map(S=>[S.role_id,S.name]));return c.jsxs("div",{className:"wfe-container",children:[c.jsxs("div",{className:"wfe-header",children:[c.jsx("h3",{className:"wfe-title",children:"Actor Runtime"}),c.jsx("span",{className:"wfe-profile-badge",children:o})]}),c.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:c.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Final decider"}),c.jsxs("select",{value:x,disabled:m,onChange:S=>{m||h?.({final_decider_role_id:S.target.value||null})},children:[c.jsx("option",{value:"",children:g.length>1?"Select top-level role":"Auto-select only top-level role"}),g.map(S=>c.jsx("option",{value:S.role_id,children:S.name},S.role_id))]})]}),c.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Runtime wakeups, delegation, approvals, and recovery are seat-scoped."}),v&&c.jsx("div",{className:"org-toast org-toast--warn",style:{margin:"0 0 8px"},children:"Multiple top-level roles exist. Select one final decider before company execution can start."})]})}),t.length||n.length||i.length?c.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:c.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Runtime"}),c.jsxs("div",{children:[r.status||"running",r.run_id?` (${r.run_id.slice(0,8)})`:""]})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Frontier"}),c.jsxs("div",{children:[r.running_count??0," running, ",r.ready_count??0," ready, ",r.blocked_count??0," blocked, ",r.waiting_count??0," waiting"]})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Teams"}),c.jsx("div",{children:t.length})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Seats"}),c.jsx("div",{children:n.length})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Work items"}),c.jsx("div",{children:i.length})]}),i.length>0&&c.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:i.slice(0,6).map(S=>{const w=yp(S),k=typeof w?.normalized_state=="string"?w.normalized_state:"",j=typeof w?.blocked_reason=="string"?w.blocked_reason:S.blocked_reason??"",N=EJ(S),z=jJ(S),I=NJ(S),A=[j?`waiting ${j}`:"",N?`gate ${b.get(N)??N}`:"",z.length?`signals ${z.join(", ")}`:"",I?`confidence ${I}`:"",k==="invalidated"?"invalidated":""].filter(Boolean);return c.jsxs("div",{style:{marginBottom:6},children:[c.jsxs("div",{children:[b.get(S.role_id)??S.role_id,": ",S.title," [",S.phase,"]",S.kanban_column&&c.jsxs("span",{style:{opacity:.5},children:[" · ",S.kanban_column]}),S.batch_id&&c.jsxs("span",{style:{opacity:.5},children:[" batch:",S.batch_id]}),k&&k!==S.phase&&c.jsxs("span",{style:{opacity:.7},children:[" state:",k]})]}),A.length>0&&c.jsx("div",{style:{marginLeft:12,opacity:.85},children:A.join(" • ")})]},S.work_item_id)})})]})}):null]})}function TJ({pkg:e,onUninstall:t,uninstallingId:n}){const i=n===e.package_id;return c.jsxs("div",{className:"pkg-card",children:[c.jsxs("div",{className:"pkg-card-header",children:[c.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",alt:"package",className:"pkg-card-icon"}),c.jsxs("div",{className:"pkg-card-title-wrap",children:[c.jsx("span",{className:"pkg-card-name",children:e.name||e.package_id}),c.jsxs("span",{className:"pkg-card-version",children:["v",e.version]})]})]}),c.jsxs("div",{className:"pkg-card-stats",children:[c.jsxs("span",{className:"pkg-card-stat",children:[c.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",alt:"roles",className:"pkg-stat-icon"}),e.role_ids.length," roles"]}),c.jsxs("span",{className:"pkg-card-stat",children:[c.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",alt:"templates",className:"pkg-stat-icon"}),e.template_ids.length," templates"]})]}),e.installed_at&&c.jsxs("div",{className:"pkg-card-date",children:["Installed ",new Date(e.installed_at).toLocaleDateString()]}),t&&c.jsx("div",{className:"pkg-card-actions",children:c.jsx("button",{className:"pkg-btn pkg-btn-danger",disabled:i,onClick:r=>{r.stopPropagation(),t(e.package_id)},children:i?"Removing...":"Uninstall"})})]})}function Gx({icon:e,title:t,count:n,extra:i,children:r,defaultExpanded:o=!1}){const[a,u]=C.useState(o);return c.jsxs("div",{className:"myorg-collapsible",children:[c.jsxs("button",{className:"myorg-collapsible-toggle",onClick:()=>u(!a),children:[c.jsx("span",{className:"myorg-toggle-icon",children:a?"▾":"▸"}),c.jsx("img",{src:e,alt:"",className:"myorg-section-icon"}),c.jsx("span",{className:"myorg-collapsible-title",children:t}),c.jsx("span",{className:"myorg-collapsible-count",children:n}),i&&c.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:i})]}),a&&c.jsx("div",{className:"myorg-collapsible-body",children:r})]})}const cs={search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E",arch:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",packages:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",channels:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z'/%3E%3C/svg%3E",reorg:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z'/%3E%3C/svg%3E",importPkg:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E",arrow:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E",gateReview:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f59e0b' d='M12 2L4 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-3zm-2 16l-4-4 1.41-1.41L10 15.17l6.59-6.59L18 10l-8 8z'/%3E%3C/svg%3E",gateApproval:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",gateHold:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ef4444' d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E"},Xv={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function RJ({presets:e,installedIds:t,previewData:n,applyingPresetId:i,readOnly:r,onPreview:o,onApplyPreset:a,onClearPreview:u,installedPackages:d,channels:m,reorgProposals:h,isCustomMode:p,onReorgDecide:g,onMarketInstall:x,onMarketUninstall:v}){const[b,S]=C.useState(""),[w,k]=C.useState(null),[j,N]=C.useState(null),[z,I]=C.useState(!1),[A,L]=C.useState(""),[M,O]=C.useState(null),[T,$]=C.useState(null),[G,P]=C.useState(()=>new Set),[F,V]=C.useState({}),Y=C.useMemo(()=>{const D=new Set;for(const Z of e)Z.category&&D.add(Z.category);return Array.from(D).sort()},[e]),U=C.useMemo(()=>{const D=new Set;for(const Z of e)Z.collaboration_pattern&&D.add(Z.collaboration_pattern);return Array.from(D).sort()},[e]),Q=C.useMemo(()=>{let D=e;if(w&&(D=D.filter(Z=>Z.category===w)),j&&(D=D.filter(Z=>Z.collaboration_pattern===j)),b.trim()){const Z=b.trim().toLowerCase();D=D.filter(ie=>ie.name.toLowerCase().includes(Z)||ie.description.toLowerCase().includes(Z)||ie.tags.some(ee=>ee.toLowerCase().includes(Z))||(Xv[ie.collaboration_pattern]||"").toLowerCase().includes(Z))}return D},[e,w,j,b]),W=()=>{A.trim()&&(x(A.trim(),"namespace"),I(!1),L(""))},q=D=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(O(D),v(D),setTimeout(()=>O(null),3e3))},J=async(D,Z)=>{if(!(!D.checkpoint_id||D.checkpoint_status!=="pending")){$(D.proposal_id),V(ie=>({...ie,[D.proposal_id]:""}));try{const ie=await g(D,Z);if(!ie.accepted){V(ee=>({...ee,[D.proposal_id]:ie.reason||ie.error||"Decision was not accepted."}));return}P(ee=>{const te=new Set(ee);return te.add(D.proposal_id),te})}catch(ie){V(ee=>({...ee,[D.proposal_id]:ie instanceof Error?ie.message:"Decision failed."}))}finally{$(ie=>ie===D.proposal_id?null:ie)}}};return c.jsxs("div",{className:"mkt-container","data-testid":"architecture-marketplace",children:[c.jsxs("div",{className:"mkt-toolbar",children:[c.jsxs("div",{className:"mkt-search-wrap",children:[c.jsx("img",{src:cs.search,alt:"",className:"mkt-search-icon"}),c.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:b,onChange:D=>S(D.target.value)})]}),c.jsxs("span",{className:"mkt-count",children:[Q.length," architectures"]})]}),c.jsxs("div",{className:"mkt-filters",children:[Y.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill${w?"":" active"}`,onClick:()=>k(null),children:"All"}),Y.map(D=>c.jsx("button",{className:`mkt-pill${w===D?" active":""}`,onClick:()=>k(w===D?null:D),children:D},D))]}),U.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill mkt-pill-pattern${j?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),U.map(D=>c.jsx("button",{className:`mkt-pill mkt-pill-pattern${j===D?" active":""}`,onClick:()=>N(j===D?null:D),children:Xv[D]||D},D))]})]}),Q.length>0?c.jsxs("div",{className:"mkt-section",children:[c.jsxs("div",{className:"mkt-section-header",children:[c.jsx("img",{src:cs.arch,alt:"",className:"mkt-section-icon"}),c.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),c.jsx("span",{className:"mkt-section-count",children:Q.length})]}),c.jsx("div",{className:"mkt-arch-grid",children:Q.map(D=>c.jsx(AJ,{preset:D,isInstalled:t.has(D.id),isApplying:i===D.id,readOnly:r,onPreview:()=>o(D.id),onApply:()=>a(D.id,"namespace")},D.id))})]}):c.jsx("div",{className:"mkt-empty",children:c.jsx("p",{children:"No architectures match your search."})}),c.jsxs(Gx,{icon:cs.packages,title:"Installed Packages",count:d.length,extra:p?c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>I(!z),children:[c.jsx("img",{src:cs.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[p&&z&&c.jsxs("div",{className:"myorg-form",children:[c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Path"}),c.jsx("input",{value:A,onChange:D=>L(D.target.value),placeholder:"/path/to/package.opcpkg"})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:W,disabled:!A.trim(),children:"Install"}),c.jsx("button",{className:"oc-btn-ghost",onClick:()=>I(!1),children:"Cancel"})]})]}),d.length>0?c.jsx("div",{className:"pkg-grid",children:d.map(D=>c.jsx(TJ,{pkg:D,onUninstall:p?q:void 0,uninstallingId:M},D.package_id))}):c.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),c.jsx(Gx,{icon:cs.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?c.jsx("div",{className:"org-channels-grid",children:m.map(D=>c.jsxs("div",{className:`org-channel-card${D.running?" org-ch-running":""}${D.enabled?"":" org-ch-disabled"}`,children:[c.jsxs("div",{className:"org-ch-header",children:[c.jsx("span",{className:`org-ch-dot${D.running?" running":D.ready?" ready":D.configured?" configured":""}`}),c.jsx("span",{className:"org-ch-name",children:D.name})]}),c.jsxs("div",{className:"org-ch-status-row",children:[D.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),D.running&&c.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!D.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},D.name))}):c.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),h.length>0&&c.jsx(Gx,{icon:cs.reorg,title:"Reorg Proposals",count:h.length,children:c.jsx("div",{className:"org-reorg-list",children:h.map(D=>{const Z=D.status==="proposed",ie=T===D.proposal_id,ee=G.has(D.proposal_id),te=Z&&p&&D.checkpoint_status==="pending"&&!!D.checkpoint_id&&!ee;return c.jsxs("div",{className:`org-reorg-card org-reorg-${D.status}`,children:[c.jsxs("div",{className:"org-reorg-header",children:[c.jsx("span",{className:"org-reorg-title",children:D.title||D.summary||"Untitled"}),c.jsx("span",{className:"org-reorg-status",children:D.status})]}),D.summary&&c.jsx("div",{className:"org-reorg-summary",children:D.summary}),te&&c.jsxs("div",{className:"org-reorg-actions",children:[c.jsx("button",{className:"org-reorg-approve",disabled:ie,onClick:()=>{J(D,!0)},children:ie?"Submitting…":"Approve"}),c.jsx("button",{className:"org-reorg-deny",disabled:ie,onClick:()=>{J(D,!1)},children:"Deny"})]}),Z&&p&&ee&&c.jsx("div",{className:"org-reorg-status",children:"Decision submitted"}),Z&&p&&D.user_confirmation_required&&!D.checkpoint_id&&!ee&&c.jsx("div",{className:"org-reorg-status",children:"Approval is unavailable until its review checkpoint is restored."}),F[D.proposal_id]&&c.jsx("div",{className:"org-reorg-status",children:F[D.proposal_id]})]},D.proposal_id)})})}),n&&c.jsx(MJ,{data:n,isInstalled:t.has(n.id),isApplying:i===n.id,onApply:()=>a(n.id,"namespace"),onClose:u})]})}function AJ({preset:e,isInstalled:t,isApplying:n,readOnly:i,onPreview:r,onApply:o}){const a=Xv[e.collaboration_pattern]||e.collaboration_pattern;return c.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:r,children:[c.jsxs("div",{className:"mkt-arch-header",children:[c.jsx("span",{className:"mkt-arch-emoji",children:e.emoji}),c.jsxs("div",{className:"mkt-arch-title-wrap",children:[c.jsx("span",{className:"mkt-arch-name",children:e.name}),c.jsxs("div",{className:"mkt-arch-badges",children:[c.jsx("span",{className:"mkt-arch-category",children:e.category}),e.collaboration_pattern&&c.jsx("span",{className:"mkt-arch-pattern",children:a})]})]})]}),e.dag_summary&&c.jsx("div",{className:"mkt-arch-dag-summary",children:e.dag_summary}),c.jsx("div",{className:"mkt-arch-desc",children:e.description}),c.jsxs("div",{className:"mkt-arch-stats",children:[c.jsxs("span",{className:"mkt-arch-stat",children:[e.roles_count," roles"]}),c.jsxs("span",{className:"mkt-arch-stat",children:[e.work_item_templates_count," templates"]}),e.gates_count>0&&c.jsxs("span",{className:"mkt-arch-stat",children:[e.gates_count," checkpoints"]}),e.team_size&&c.jsxs("span",{className:"mkt-arch-stat",children:[e.team_size," people"]})]}),e.tags.length>0&&c.jsx("div",{className:"mkt-arch-tags",children:e.tags.slice(0,4).map(u=>c.jsx("span",{className:"mkt-tag",children:u},u))}),c.jsxs("div",{className:"mkt-arch-actions",children:[t?c.jsx("span",{className:"mkt-installed-badge",children:"Installed"}):i?null:c.jsx("button",{className:"mkt-btn mkt-btn-primary mkt-btn-sm",disabled:n,onClick:u=>{u.stopPropagation(),o()},children:n?"Applying...":"Use This"}),c.jsx("button",{className:"mkt-btn mkt-btn-ghost mkt-btn-sm",onClick:u=>{u.stopPropagation(),r()},children:"Preview"})]})]})}function MJ({data:e,isInstalled:t,isApplying:n,onApply:i,onClose:r}){return c.jsx("div",{className:"mkt-modal-overlay",onClick:r,children:c.jsxs("div",{className:"mkt-modal",onClick:o=>o.stopPropagation(),children:[c.jsxs("div",{className:"mkt-modal-header",style:{borderBottomColor:e.color||"var(--border)"},children:[c.jsx("span",{className:"mkt-modal-emoji",children:e.emoji}),c.jsxs("div",{children:[c.jsx("h2",{className:"mkt-modal-name",children:e.name}),c.jsx("span",{className:"mkt-modal-category",children:e.category})]}),c.jsx("button",{className:"mkt-modal-close",onClick:r,children:"×"})]}),c.jsxs("div",{className:"mkt-modal-body",children:[c.jsx("p",{className:"mkt-modal-desc",children:e.description}),e.tags.length>0&&c.jsxs("div",{className:"mkt-modal-section",children:[c.jsx("div",{className:"mkt-modal-label",children:"Tags"}),c.jsx("div",{className:"mkt-modal-tags",children:e.tags.map(o=>c.jsx("span",{className:"mkt-tag",children:o},o))})]}),c.jsxs("div",{className:"mkt-modal-section",children:[c.jsxs("div",{className:"mkt-modal-label",children:["Roles (",e.roles.length,")"]}),c.jsx("div",{className:"mkt-role-list",children:e.roles.map(o=>c.jsxs("div",{className:"mkt-role-item",children:[c.jsxs("div",{className:"mkt-role-name",children:[o.name," ",c.jsx("code",{children:o.id})]}),c.jsx("div",{className:"mkt-role-resp",children:o.responsibility}),c.jsxs("div",{className:"mkt-role-meta",children:["reports to: ",c.jsx("code",{children:o.reports_to}),o.can_spawn&&o.can_spawn.length>0&&c.jsxs(c.Fragment,{children:[" · spawns: ",o.can_spawn.map(a=>c.jsx("code",{children:a},a))]})]})]},o.id))})]}),c.jsxs("div",{className:"mkt-modal-section",children:[c.jsxs("div",{className:"mkt-modal-label",children:["Work item templates (",e.work_item_templates.length," templates)"]}),c.jsx("div",{className:"mkt-dag-wrap",children:c.jsx(DJ,{templates:e.work_item_templates})})]})]}),c.jsx("div",{className:"mkt-modal-footer",children:t?c.jsx("span",{className:"mkt-installed-badge",children:"Already Installed"}):c.jsx("button",{className:"mkt-btn mkt-btn-primary",disabled:n,onClick:i,children:n?"Applying...":"Use This Architecture"})})]})})}function DJ({templates:e}){const t=[];let n="__init__",i=[];for(const r of e)r.parallel_group!==n?(i.length>0&&t.push({group:n,templates:i}),n=r.parallel_group,i=[r]):i.push(r);return i.length>0&&t.push({group:n,templates:i}),c.jsx("div",{className:"org-dag",children:t.map((r,o)=>c.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&c.jsx("div",{className:"org-dag-arrow",children:c.jsx("img",{src:cs.arrow,alt:"→",className:"org-dag-arrow-icon"})}),c.jsxs("div",{className:`org-dag-group${r.templates.length>1?" org-dag-parallel":""}`,children:[r.templates.length>1&&c.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),r.templates.map(a=>c.jsxs("div",{className:"org-dag-node",children:[c.jsxs("div",{className:"org-dag-node-header",children:[c.jsx("span",{className:"org-dag-node-title",children:a.title}),c.jsx("span",{className:"org-dag-node-role",children:a.role_id})]}),c.jsx("div",{className:"org-dag-node-id",children:a.id}),a.gate&&c.jsxs("div",{className:`org-dag-gate org-gate-${a.gate.type}`,children:[c.jsx("img",{src:a.gate.type==="review"?cs.gateReview:a.gate.type==="approval"?cs.gateApproval:cs.gateHold,alt:"",className:"org-gate-icon"}),c.jsx("span",{children:a.gate.type}),a.gate.reviewer_role&&c.jsxs("span",{className:"org-gate-reviewer",children:["by ",a.gate.reviewer_role]})]})]},a.id))]})]},o))})}function OJ(e){const t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function LJ({template:e,hiringId:t,onHire:n,onClick:i}){const r=t===e.template_id,o=e.color?{background:`color-mix(in srgb, ${e.color} 18%, transparent)`,color:e.color,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${e.color} 28%, transparent)`}:void 0,a=[],u=new Set;for(const h of[...e.tags,...e.domains])u.has(h)||(u.add(h),a.push(h));const d=a.slice(0,3),m=a.length-d.length;return c.jsxs("div",{className:"tm-card",onClick:()=>i(e),children:[c.jsxs("div",{className:"tm-card-head",children:[c.jsx("div",{className:"tm-card-avatar",style:o,"aria-hidden":!0,children:e.emoji?c.jsx("span",{className:"tm-card-avatar-emoji",children:e.emoji}):c.jsx("span",{className:"tm-card-avatar-mono",children:OJ(e.name)})}),c.jsxs("div",{className:"tm-card-head-text",children:[c.jsxs("div",{className:"tm-card-name-row",children:[c.jsx("span",{className:"tm-card-name",title:e.name,children:e.name}),e.preferred_external_agent&&c.jsx("span",{className:"tm-card-agent-badge",title:`Agent: ${e.preferred_external_agent}`,children:e.preferred_external_agent})]}),e.category&&c.jsx("span",{className:"tm-card-category",children:e.category})]})]}),c.jsxs("div",{className:"tm-card-body",children:[e.vibe&&c.jsxs("div",{className:"tm-card-vibe",children:['"',e.vibe,'"']}),e.description&&c.jsx("div",{className:"tm-card-desc",children:e.description})]}),d.length>0&&c.jsxs("div",{className:"tm-card-chips",children:[d.map(h=>c.jsx("span",{className:"tm-card-chip",children:h},h)),m>0&&c.jsxs("span",{className:"tm-card-chip tm-card-chip-more",children:["+",m]})]}),c.jsx("div",{className:"tm-card-footer",children:c.jsx("button",{className:"tm-card-hire-btn",disabled:r,onClick:h=>{h.stopPropagation(),n(e.template_id)},children:r?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const vA=e=>e,bA=e=>e;function zJ({template:e,vacantRoles:t,hiringId:n,readOnly:i,onHire:r,onClose:o}){const[a,u]=C.useState(""),d=n===e.template_id,m=t.length===0,h=!i&&!d&&!m&&a!=="";C.useEffect(()=>{u("")},[e.template_id]);const p=()=>{h&&r(bA(e.template_id),vA(a))};return c.jsx("div",{className:"tm-detail-overlay",onClick:o,children:c.jsxs("div",{className:"tm-detail-modal",onClick:g=>g.stopPropagation(),children:[c.jsxs("div",{className:"tm-detail-header",style:{borderBottomColor:e.color||"var(--border)"},children:[e.emoji&&c.jsx("span",{className:"tm-detail-emoji",children:e.emoji}),c.jsxs("div",{children:[c.jsx("h2",{className:"tm-detail-name",children:e.name}),c.jsx("span",{className:"tm-detail-category",children:e.category})]}),c.jsx("button",{className:"tm-detail-close",onClick:o,children:"×"})]}),c.jsxs("div",{className:"tm-detail-body",children:[e.vibe&&c.jsxs("blockquote",{className:"tm-detail-vibe",children:['"',e.vibe,'"']}),e.description&&c.jsx("p",{className:"tm-detail-desc",children:e.description}),e.domains.length>0&&c.jsxs("div",{className:"tm-detail-section",children:[c.jsx("div",{className:"tm-detail-label",children:"Domains"}),c.jsx("div",{className:"tm-detail-tags",children:e.domains.map(g=>c.jsx("span",{className:"org-domain-tag",children:g},g))})]}),e.tags.length>0&&c.jsxs("div",{className:"tm-detail-section",children:[c.jsx("div",{className:"tm-detail-label",children:"Tags"}),c.jsx("div",{className:"tm-detail-tags",children:e.tags.map(g=>c.jsx("span",{className:"org-tool-tag",children:g},g))})]}),e.preferred_external_agent&&c.jsxs("div",{className:"tm-detail-section",children:[c.jsx("div",{className:"tm-detail-label",children:"Recommended Agent"}),c.jsx("span",{className:"tm-card-agent-badge",children:e.preferred_external_agent})]}),!i&&c.jsxs("div",{className:"tm-detail-section",children:[c.jsx("div",{className:"tm-detail-label",children:"Hire into role"}),m?c.jsx("p",{className:"tm-detail-vacancy-empty",children:"No vacant roles. Create a role in the Team tab first."}):c.jsx("div",{className:"tm-detail-role-list",role:"listbox","aria-label":"Vacant roles",children:t.map(g=>{const x=g.role_id===a;return c.jsxs("button",{type:"button",role:"option","aria-selected":x,className:`tm-detail-role-row${x?" is-selected":""}`,onClick:()=>u(g.role_id),children:[c.jsx("span",{className:"tm-detail-role-name",children:g.name}),g.responsibility&&c.jsx("span",{className:"tm-detail-role-resp",children:g.responsibility})]},g.role_id)})})]})]}),!i&&c.jsx("div",{className:"tm-detail-footer",children:c.jsx("button",{className:"tm-detail-hire-btn",disabled:!h,onClick:p,children:d?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function PJ({open:e,template:t,vacantRoles:n,onConfirm:i,onClose:r}){const[o,a]=C.useState("");if(C.useEffect(()=>{e&&a("")},[e,t?.template_id]),C.useEffect(()=>{if(!e)return;const h=p=>{p.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[e,r]),!e||!t)return null;const u=n.length===0,d=!u&&o!=="",m=()=>{d&&i(bA(t.template_id),vA(o))};return c.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:r,children:c.jsxs("div",{className:"htr-modal",onMouseDown:h=>h.stopPropagation(),children:[c.jsxs("header",{className:"htr-header",children:[c.jsxs("div",{children:[c.jsxs("h3",{className:"htr-title",children:["Hire ",t.name]}),c.jsx("p",{className:"htr-subtitle",children:"Pick the role to fill with this employee."})]}),c.jsx("button",{className:"htr-close",type:"button",onClick:r,"aria-label":"Close",children:"x"})]}),c.jsx("div",{className:"htr-body",children:u?c.jsxs("div",{className:"htr-empty",children:[c.jsx("p",{className:"htr-empty-title",children:"No vacant roles."}),c.jsx("p",{className:"htr-empty-hint",children:"Add a role in the Team tab first, then come back to hire."})]}):c.jsx("div",{className:"htr-role-list",role:"listbox","aria-label":"Vacant roles",children:n.map(h=>{const p=h.role_id===o;return c.jsxs("button",{type:"button",role:"option","aria-selected":p,className:`htr-role-row${p?" is-selected":""}`,onClick:()=>a(h.role_id),children:[c.jsx("span",{className:"htr-role-name",children:h.name}),h.responsibility&&c.jsx("span",{className:"htr-role-resp",children:h.responsibility})]},h.role_id)})})}),c.jsxs("footer",{className:"htr-footer",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:r,children:u?"Close":"Cancel"}),!u&&c.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const J2={search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E",talent:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function BJ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:i,onHireTalent:r}){const[o,a]=C.useState(""),[u,d]=C.useState(null),[m,h]=C.useState(null),[p,g]=C.useState(null),x=C.useMemo(()=>{const S=new Set;for(const w of e)w.category&&S.add(w.category);return Array.from(S).sort()},[e]),v=C.useMemo(()=>{let S=e;if(u&&(S=S.filter(w=>w.category===u)),o.trim()){const w=o.trim().toLowerCase();S=S.filter(k=>k.name.toLowerCase().includes(w)||k.description.toLowerCase().includes(w)||k.domains.some(j=>j.toLowerCase().includes(w))||k.tags.some(j=>j.toLowerCase().includes(w))||(k.vibe??"").toLowerCase().includes(w))}return S},[e,u,o]),b=S=>{if(i)return;const w=e.find(k=>k.template_id===S);w&&g(w)};return c.jsxs("div",{className:"mkt-container","data-testid":"employees-marketplace",children:[c.jsxs("div",{className:"mkt-toolbar",children:[c.jsxs("div",{className:"mkt-search-wrap",children:[c.jsx("img",{src:J2.search,alt:"",className:"mkt-search-icon"}),c.jsx("input",{className:"mkt-search",placeholder:"Search talent templates...",value:o,onChange:S=>a(S.target.value)})]}),c.jsxs("span",{className:"mkt-count",children:[v.length," employees",t.length>0&&c.jsxs(c.Fragment,{children:[" · ",t.length," vacant role",t.length===1?"":"s"]})]})]}),x.length>0&&c.jsx("div",{className:"mkt-filters",children:c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill${u?"":" active"}`,onClick:()=>d(null),children:"All"}),x.map(S=>c.jsx("button",{className:`mkt-pill${u===S?" active":""}`,onClick:()=>d(u===S?null:S),children:S},S))]})}),v.length>0?c.jsxs("div",{className:"mkt-section",children:[c.jsxs("div",{className:"mkt-section-header",children:[c.jsx("img",{src:J2.talent,alt:"",className:"mkt-section-icon"}),c.jsx("h3",{className:"mkt-section-title",children:"Talent Templates"}),c.jsx("span",{className:"mkt-section-count",children:v.length})]}),c.jsx("div",{className:"tm-grid",children:v.map(S=>c.jsx(LJ,{template:S,hiringId:n,onHire:b,onClick:h},S.template_id))})]}):c.jsx("div",{className:"mkt-empty",children:c.jsx("p",{children:e.length===0?"No talent templates available.":"No employees match your search."})}),m&&c.jsx(zJ,{template:m,vacantRoles:t,hiringId:n,readOnly:i,onHire:(S,w)=>{i||(r(S,w),h(null))},onClose:()=>h(null)}),c.jsx(PJ,{open:p!==null,template:p,vacantRoles:t,onConfirm:(S,w)=>{r(S,w),g(null)},onClose:()=>g(null)})]})}const nu={download:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E",upload:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z'/%3E%3C/svg%3E",check:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",warn:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ef4444' d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E"};function $J({onExport:e,onImport:t,configExportYaml:n,importPreview:i,importError:r}){const[o,a]=C.useState(""),[u,d]=C.useState(null),[m,h]=C.useState(!1),p=C.useRef(!1),g=C.useRef(null);C.useEffect(()=>{if(!p.current||!n||n===g.current)return;g.current=n,p.current=!1;const k=new Blob([n],{type:"application/x-yaml"}),j=URL.createObjectURL(k),N=document.createElement("a");N.href=j;const z=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);N.download=`org_config_${z}.yaml`,document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(j)},[n]),C.useEffect(()=>{h(!1)},[o]),C.useEffect(()=>{i&&!r&&h(!0)},[i,r]);const x=()=>{p.current=!0,e()},v=k=>{const j=k.target.files?.[0];if(!j)return;d(j.name);const N=new FileReader;N.onload=()=>{const z=N.result;typeof z=="string"&&a(z)},N.readAsText(j),k.target.value=""},b=()=>{o.trim()&&t(o,!0)},S=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),h(!1),a(""),d(null))},w=()=>{a(""),d(null),h(!1)};return c.jsxs("div",{className:"cfg-io-panel","data-testid":"config-import-export-panel",children:[c.jsxs("div",{className:"cfg-io-header",children:[c.jsx("h3",{className:"cfg-io-title",children:"Config Import / Export"}),c.jsx("p",{className:"cfg-io-subtitle",children:"Download the current company architecture as YAML, or upload one to replace it."})]}),c.jsxs("div",{className:"cfg-io-section",children:[c.jsxs("div",{className:"cfg-io-section-header",children:[c.jsx("img",{src:nu.download,alt:"",className:"cfg-io-section-icon"}),c.jsx("span",{className:"cfg-io-section-title",children:"Download current config"})]}),c.jsxs("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:x,children:[c.jsx("img",{src:nu.download,alt:"",className:"cfg-io-btn-icon"})," Download YAML"]})]}),c.jsxs("div",{className:"cfg-io-section",children:[c.jsxs("div",{className:"cfg-io-section-header",children:[c.jsx("img",{src:nu.upload,alt:"",className:"cfg-io-section-icon"}),c.jsx("span",{className:"cfg-io-section-title",children:"Upload config"})]}),c.jsx("div",{className:"cfg-io-upload-row",children:c.jsxs("label",{className:"cfg-io-file-label",children:[c.jsx("input",{type:"file",accept:".yaml,.yml",onChange:v,className:"cfg-io-file-input"}),c.jsx("span",{className:"cfg-io-file-btn",children:"Choose file…"}),c.jsx("span",{className:"cfg-io-file-name",children:u??"no file selected"})]})}),c.jsx("textarea",{className:"cfg-io-textarea",placeholder:"…or paste YAML here",value:o,onChange:k=>a(k.target.value),spellCheck:!1,rows:10}),c.jsxs("div",{className:"cfg-io-actions",children:[c.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:b,disabled:!o.trim(),children:"Dry run"}),c.jsx("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:S,disabled:!m||!o.trim(),children:"Apply"}),o&&c.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:w,children:"Clear"})]}),i&&!r&&c.jsxs("div",{className:"cfg-io-preview",children:[c.jsx("img",{src:nu.check,alt:"",className:"cfg-io-preview-icon"}),c.jsxs("div",{className:"cfg-io-preview-body",children:[c.jsx("div",{className:"cfg-io-preview-title",children:"Dry run OK — ready to apply"}),c.jsxs("div",{className:"cfg-io-preview-stats",children:[c.jsxs("span",{className:"cfg-io-preview-stat",children:[c.jsx("span",{className:"cfg-io-stat-label",children:"Roles added"}),c.jsx("span",{className:"cfg-io-stat-value",children:i.roles_added})]}),c.jsxs("span",{className:"cfg-io-preview-stat",children:[c.jsx("span",{className:"cfg-io-stat-label",children:"Roles removed"}),c.jsx("span",{className:"cfg-io-stat-value",children:i.roles_removed})]}),c.jsxs("span",{className:"cfg-io-preview-stat",children:[c.jsx("span",{className:"cfg-io-stat-label",children:"Employees changed"}),c.jsx("span",{className:"cfg-io-stat-value",children:i.employees_changed})]})]})]})]}),r&&c.jsxs("div",{className:"cfg-io-error",children:[c.jsx("img",{src:nu.warn,alt:"",className:"cfg-io-error-icon"}),c.jsxs("div",{className:"cfg-io-error-body",children:[c.jsx("div",{className:"cfg-io-error-title",children:"Validation failed"}),c.jsx("pre",{className:"cfg-io-error-text",children:r})]})]})]})]})}const eE=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function Wx(e){return e.trim()||"Member"}function HJ({open:e,pending:t,result:n,onClose:i,onCreate:r}){const[o,a]=C.useState(1),[u,d]=C.useState(""),[m,h]=C.useState(eE),[p,g]=C.useState("");C.useEffect(()=>{e&&(a(1),d(""),h(eE),g(""))},[e]),C.useEffect(()=>{if(!(!e||!n)){if(n.ok){i();return}g(n.error||"Failed to create organization")}},[e,n,i]);const x=u.trim().length>0,v=C.useMemo(()=>m.map((A,L)=>({member:A,index:L})).filter(A=>A.member.name.trim()),[m]),b=C.useMemo(()=>new Map(v.map((A,L)=>[A.index,L])),[v]),S=v.length>=2,w=x&&S&&!t,k=C.useMemo(()=>v.map(({member:A,index:L},M)=>{const O=A.reportsToIndex==null?null:b.get(A.reportsToIndex);return{...A,roleName:Wx(A.name),managerName:O!=null&&O{h(M=>M.map((O,T)=>T===A?{...O,...L}:O))},N=()=>{h(A=>[...A,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},z=A=>{h(L=>L.filter((O,T)=>T!==A).map((O,T)=>({...O,reportsToIndex:O.reportsToIndex==null?null:O.reportsToIndex>=A?Math.max(0,O.reportsToIndex-1):O.reportsToIndex})).map((O,T)=>T===0?{...O,reportsToIndex:null}:O))},I=()=>{w&&(g(""),r(u.trim(),v.map(({member:A},L)=>{const M=A.reportsToIndex==null?null:b.get(A.reportsToIndex);return{name:A.name.trim(),responsibility:A.responsibility.trim(),prompt:A.prompt.trim(),reports_to_index:M!=null&&MA.stopPropagation(),children:[c.jsxs("div",{className:"org-create-header",children:[c.jsxs("div",{children:[c.jsx("span",{className:"org-create-eyebrow",children:"New organization"}),c.jsx("h3",{id:"org-create-title",className:"org-create-title",children:"Create a saved org"})]}),c.jsx("button",{type:"button",className:"org-create-close",onClick:i,"aria-label":"Close",children:"x"})]}),c.jsx("div",{className:"org-create-steps","aria-label":"Create organization steps",children:[["1","Name"],["2","Members"],["3","Review"]].map(([A,L])=>c.jsxs("span",{className:`org-create-step${o===Number(A)?" org-create-step--active":o>Number(A)?" org-create-step--done":""}`,children:[c.jsx("span",{children:A}),L]},A))}),o===1&&c.jsx("div",{className:"org-create-panel",children:c.jsxs("label",{className:"org-create-field",children:[c.jsx("span",{children:"Organization name"}),c.jsx("input",{value:u,onChange:A=>d(A.target.value),placeholder:"HKU Research Lab",autoFocus:!0})]})}),o===2&&c.jsxs("div",{className:"org-create-panel",children:[c.jsx("div",{className:"org-create-member-list",children:m.map((A,L)=>c.jsxs("div",{className:"org-create-member-row",children:[c.jsx("input",{value:A.name,onChange:M=>j(L,{name:M.target.value}),placeholder:L===0?"Lead role":"Member role"}),c.jsx("input",{value:A.responsibility,onChange:M=>j(L,{responsibility:M.target.value}),placeholder:"Responsibility"}),c.jsxs("select",{value:A.reportsToIndex==null?"owner":String(A.reportsToIndex),onChange:M=>j(L,{reportsToIndex:M.target.value==="owner"?null:Number(M.target.value)}),disabled:L===0,"aria-label":"Reports to",children:[c.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,L).map((M,O)=>c.jsx("option",{value:O,children:Wx(M.name)},O))]}),c.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>z(L),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),c.jsx("textarea",{value:A.prompt,onChange:M=>j(L,{prompt:M.target.value}),placeholder:"Prompt optional","aria-label":`${L===0?"Lead role":"Member role"} prompt optional`})]},L))}),c.jsx("button",{type:"button",className:"org-create-add",onClick:N,children:"+ Add member"})]}),o===3&&c.jsx("div",{className:"org-create-panel",children:c.jsxs("div",{className:"org-create-review",children:[c.jsxs("div",{className:"org-create-review-head",children:[c.jsx("span",{children:u.trim()}),c.jsxs("b",{children:[v.length," members"]})]}),k.map(A=>c.jsxs("div",{className:"org-create-review-row",children:[c.jsx("strong",{children:A.roleName}),c.jsxs("span",{children:[A.managerName,A.prompt.trim()?c.jsx("em",{children:"Prompt"}):null]})]},A.index))]})}),p&&c.jsx("div",{className:"org-create-error",children:p}),c.jsxs("div",{className:"org-create-actions",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?i:()=>a(o-1),children:o===1?"Cancel":"Back"}),o<3?c.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>a(o+1),disabled:o===1?!x:!S,children:"Next"}):c.jsx("button",{type:"button",className:"btn btn-primary",onClick:I,disabled:!w,children:t?"Creating...":"Create organization"})]})]})})}const ol={team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",runtime:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M13 2.05v2.02c3.95.49 7 3.85 7 7.93 0 3.21-1.81 6-4.72 7.72L13 17v5h5l-1.22-1.22C19.91 19.07 22 15.76 22 12c0-5.18-3.95-9.45-9-9.95zM11 2.05C5.95 2.55 2 6.82 2 12c0 3.76 2.09 7.07 5.22 8.78L6 22h5V2.05z'/%3E%3C/svg%3E",architecture:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",employees:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"},tE={agents:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3z'/%3E%3C/svg%3E",active:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z'/%3E%3C/svg%3E"};function FJ(e){const t=String(e??"").trim();return t?t.replace(/^org[_-]/i,"").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,n=>n.toUpperCase()):""}function VJ({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:i,reorgProposals:r,isCustomMode:o,onRequestData:a,onRequestTalents:u,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:h,onImportEmployee:p,onRequestReorgList:g,onReorgDecide:x,onMarketExport:v,onMarketInstall:b,onMarketUninstall:S,marketPresets:w,marketPreviewData:k,onMarketBrowse:j,onMarketPreview:N,onMarketApplyPreset:z,onMarketClearPreview:I,onAddRole:A,onBulkAddRoles:L,onUpdateRole:M,onDeleteRole:O,onBindExternalTeam:T,onUnbindExternalTeam:$,onUpdateOrgStrategy:G,onUpdateRuntimePolicy:P,onResetArchitecture:F,onConfigExport:V,onConfigImport:Y,configExportYaml:U,configImportPreview:Q,configImportError:W,onSavedOrgsList:q,onSavedOrgSaveAs:J,onSavedOrgCreate:D,onSavedOrgLoad:Z,onSavedOrgDelete:ie,savedOrgsList:ee,activeSavedOrg:te,activeSavedOrgVersionAtLoad:oe,orgCreatePending:le,orgCreateResult:he,onSelectCorporate:Ie}){const{t:xe}=Kr(),[je,Ve]=C.useState("team"),[We,Pe]=C.useState(!1),ct=C.useCallback(tt=>{Ve(tt)},[]),[It,ut]=C.useState(null),Bt=C.useRef(-1),[ge,me]=C.useState(null),qe=C.useRef(null),Ge=C.useCallback((tt,ln="info")=>{me({msg:tt,type:ln}),qe.current&&clearTimeout(qe.current),qe.current=setTimeout(()=>me(null),3e3)},[]);C.useEffect(()=>()=>{qe.current&&clearTimeout(qe.current)},[]);const ht=C.useRef(a),ce=C.useRef(u),we=C.useRef(g),Oe=C.useRef(j),Ue=C.useRef(q);ht.current=a,ce.current=u,we.current=g,Oe.current=j,Ue.current=q,C.useEffect(()=>{ht.current(),ce.current(),we.current(),Oe.current?.(),Ue.current?.()},[]),C.useEffect(()=>{!he||!he.ok||(Pe(!1),Ve("team"),Ge(xe("org.createdToast",{name:he.organization_name||he.name})))},[he,Ge,xe]);const Xe=e?.roles??[],bt=C.useMemo(()=>o?Xe.filter(tt=>!tt.is_builtin):Xe,[Xe,o]),St=C.useMemo(()=>e?.employees??[],[e?.employees]),dt=C.useMemo(()=>Km(e),[e]),ke=C.useMemo(()=>St.filter(tt=>tt.linked_agent_id),[St]),Ke=e?.organization_name?.trim()||FJ(te)||xe(o?"org.customOrg":"org.corporateCompany"),it=(o?e?.organization_id||te:"corporate")||"",He=xe(o?"org.kind.saved":"org.kind.corporate"),yn=xe(o?te?"org.state.editableSaved":"org.state.editableDraft":"org.state.readOnly"),on=dt.frontier.status||dt.projectRun?.status||dt.projectRun?.lifecycle_status||xe("common.ready"),jt=C.useMemo(()=>{const tt=new Set;for(const ln of St){if(ln.is_default_employee)continue;const Rn=ln.role_ids?.length?ln.role_ids:[ln.role_id];for(const Dn of Rn)Dn&&tt.add(Dn)}return tt},[St]),Mt=C.useMemo(()=>bt.filter(tt=>!jt.has(tt.role_id)),[bt,jt]),an=C.useMemo(()=>new Set((e?.installed_packages??[]).map(tt=>tt.package_id)),[e?.installed_packages]),Tt=e?.org_version??0;C.useEffect(()=>{It&&Bt.current>=0&&Tt!==Bt.current&&(ut(null),Bt.current=-1,Ve("team"),Ge(xe("org.architectureApplied")))},[Tt,It,Ge,xe]);const $t=(tt,ln)=>{Bt.current=Tt,ut(tt),z?.(tt,ln)},ii=tt=>{if(tt==="corporate"){Ie?.();return}if(tt.startsWith("org:")){const ln=tt.slice(4);ln&&Z?.(ln)}};if(!e)return c.jsx("div",{className:"org-tab",children:c.jsx("div",{className:"org-loading",children:xe("org.loading")})});const Et=e.installed_packages??[],Xn=ee??[],dn=o&&te?`org:${te}`:"corporate";return c.jsxs("div",{className:"org-tab",children:[c.jsxs("div",{className:`org-header${o?" org-header--custom":" org-header--corporate"}`,children:[c.jsxs("div",{className:"org-header-main",children:[c.jsxs("div",{className:"org-eyebrow",children:[c.jsx("span",{children:xe("org.company")}),c.jsx("span",{className:"org-eyebrow-separator",children:"/"}),c.jsx("span",{children:He})]}),c.jsxs("div",{className:"org-title-row",children:[c.jsx("h2",{className:"org-title",children:Ke}),c.jsxs("span",{className:"org-version-badge",children:["v",e.org_version]}),c.jsx("span",{className:`org-state-badge${o?" org-state-badge--editable":" org-state-badge--readonly"}`,children:yn})]}),c.jsxs("div",{className:"org-header-meta",children:[c.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),it&&c.jsx("code",{className:"org-meta-code",children:it}),c.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:on}),c.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:xe("common.autoSaved")})]})]}),c.jsxs("div",{className:"org-control-panel",children:[c.jsxs("label",{className:"org-switcher",children:[c.jsx("span",{className:"org-switcher-label",children:xe("org.organization")}),c.jsx("span",{className:"org-switcher-select-wrap",children:c.jsxs("select",{className:"org-switcher-select",value:dn,onChange:tt=>ii(tt.target.value),onFocus:()=>q?.(),onPointerDown:()=>q?.(),"aria-label":xe("org.organization"),children:[c.jsx("option",{value:"corporate",children:xe("org.corporate")}),Xn.map(tt=>c.jsx("option",{value:`org:${tt.name}`,children:(tt.organization_name||tt.name).trim()||tt.name},tt.name))]})})]}),c.jsxs("button",{type:"button",className:"org-create-trigger",onClick:()=>Pe(!0),children:[c.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),xe("org.newOrganization")]})]}),c.jsxs("div",{className:"org-stats-strip",children:[c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:tE.agents,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:bt.length})," ",xe("org.roles")]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:ol.employees,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:St.length})," ",xe("org.employees")]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:ol.runtime,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:dt.runtimeTeams.length})," ",xe("org.runtimeTeams")]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:tE.active,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:ke.length})," ",xe("common.active")]})]})]}),c.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:ol.team,label:xe("org.tab.team"),count:bt.length},{id:"runtime",icon:ol.runtime,label:xe("org.tab.runtime"),count:dt.runtimeTeams.length},{id:"architecture",icon:ol.architecture,label:xe("org.tab.architecture"),count:w?.length??0},{id:"employees",icon:ol.employees,label:xe("org.tab.employees"),count:n.length}].map(tt=>c.jsxs("button",{className:`org-subtab${je===tt.id?" org-subtab--active":""}`,onClick:()=>ct(tt.id),children:[c.jsx("img",{src:tt.icon,alt:"",className:"org-subtab-icon"}),c.jsx("span",{className:"org-subtab-label",children:tt.label}),c.jsx("span",{className:"org-subtab-count",children:tt.count})]},tt.id))}),ge&&c.jsx("div",{className:`org-toast org-toast--${ge.type}`,onClick:()=>me(null),children:ge.msg}),c.jsxs("div",{className:"org-tab-content",children:[je==="team"&&c.jsx(CJ,{roles:bt,employees:St,sessionRecruitmentByRole:t,isCustomMode:o,organizationId:e.organization_id,onAddRole:A??(()=>{}),onBulkAddRoles:L,onUpdateRole:M??(()=>{}),onDeleteRole:O??(()=>{}),onBindExternalTeam:T,onUnbindExternalTeam:$,onExport:v??(()=>{}),onImportEmployee:p,onResetArchitecture:F,onSwitchToTab:tt=>Ve(tt),savedOrgsList:ee,activeSavedOrg:te??null,currentOrgVersion:e?.org_version??0,versionAtLoad:oe??null,onSavedOrgsList:q,onSavedOrgSaveAs:J,onSavedOrgLoad:Z,onSavedOrgDelete:ie}),je==="runtime"&&c.jsx(IJ,{roles:bt,runtimeTeams:dt.runtimeTeams,runtimeSeats:dt.runtimeSeats,workItems:dt.workItems,frontier:dt.frontier,companyProfile:e.company_profile,runtimePolicy:e.runtime_policy,finalDeciderRoleId:e.final_decider_role_id,topLevelRoleIds:e.top_level_role_ids,readOnly:!o,onUpdateOrgStrategy:G,onUpdateRuntimePolicy:P}),je==="architecture"&&c.jsxs(c.Fragment,{children:[c.jsx(RJ,{presets:w??[],installedIds:an,previewData:k??null,applyingPresetId:It,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:$t,onClearPreview:I??(()=>{}),installedPackages:Et,channels:e.channels,reorgProposals:r,isCustomMode:!!o,onReorgDecide:x,onMarketInstall:(tt,ln)=>b?.(tt,ln),onMarketUninstall:tt=>S?.(tt)}),o&&c.jsx($J,{onExport:V??(()=>{}),onImport:Y??(()=>{}),configExportYaml:U??null,importPreview:Q??null,importError:W??null})]}),je==="employees"&&c.jsx(BJ,{templates:n,vacantRoles:Mt,hiringTemplateId:h??null,readOnly:!o,onHireTalent:m})]}),c.jsx(HJ,{open:We,pending:le,result:he??null,onClose:()=>Pe(!1),onCreate:(tt,ln)=>D?.(tt,ln)})]})}function UJ(e,t,n,i){const r=n.join(", "),o=`session:${t.id}`,a=e.channels.find(u=>u.id===o)??e.channels.find(u=>u.type==="activity");a&&e.sendMessage({channelId:a.id,sender:"system",senderName:"System",content:`Task **${t.displayId}** assigned to ${r}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const qJ=1e12,GJ=/^\[Company:([^\]]+)\]\s*(.*)$/,WJ=/^\[Company\]\s*(.*)$/;function YJ(e,t,n){return!n&&e===!1?!1:t}function _A(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function Mm(e){const t=typeof e=="string"?Number(e):e;return typeof t!="number"||!Number.isFinite(t)?Date.now():t!!t&&typeof t=="object").map(t=>({timestamp:Mm(t.timestamp),type:t.type??"status_change",summary:typeof t.summary=="string"?t.summary:"",detail:typeof t.detail=="string"?t.detail:void 0,turnId:typeof t.turn_id=="string"?t.turn_id:typeof t.turnId=="string"?t.turnId:void 0,itemId:typeof t.item_id=="string"?t.item_id:typeof t.itemId=="string"?t.itemId:void 0,streamId:typeof t.stream_id=="string"?t.stream_id:typeof t.streamId=="string"?t.streamId:void 0,toolCallId:typeof t.tool_call_id=="string"?t.tool_call_id:typeof t.toolCallId=="string"?t.toolCallId:void 0,permissionGroupKey:typeof t.permission_group_key=="string"?t.permission_group_key:typeof t.permissionGroupKey=="string"?t.permissionGroupKey:void 0,seq:typeof t.seq=="number"&&Number.isFinite(t.seq)?t.seq:void 0,executionMode:typeof t.execution_mode=="string"?t.execution_mode:typeof t.executionMode=="string"?t.executionMode:void 0}))):[]}function XJ(e){return Array.isArray(e)?hT(e.filter(t=>!!t&&typeof t=="object").map(t=>{const n=typeof t.runtime_task_id=="string"?t.runtime_task_id:typeof t.runtimeTaskId=="string"?t.runtimeTaskId:typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:void 0,i=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:Mm(t.timestamp),type:t.type??"gate_result",workItemProjectionId:typeof t.work_item_projection_id=="string"?t.work_item_projection_id:typeof t.workItemProjectionId=="string"?t.workItemProjectionId:void 0,workItemTurnType:typeof t.work_item_turn_type=="string"?t.work_item_turn_type:typeof t.workItemTurnType=="string"?t.workItemTurnType:void 0,workItemProjectionTitle:typeof t.work_item_projection_title=="string"?t.work_item_projection_title:typeof t.workItemProjectionTitle=="string"?t.workItemProjectionTitle:void 0,runtimeTaskId:n,executionTurnId:i,roleName:typeof t.role_name=="string"?t.role_name:typeof t.roleName=="string"?t.roleName:void 0,detail:typeof t.detail=="string"?t.detail:void 0}})):[]}function KJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function nE(e){const t=e.toLowerCase();return t.includes("starting")||t.includes("started")?"work_item_started":t.includes("gate passed")||t.includes("approved")||t.includes("completed")?"gate_approved":t.includes("rejected")||t.includes("reworking")?"gate_rejected":t.includes("awaiting peer")?"awaiting_peer":t.includes("awaiting manager review")?"awaiting_manager_review":t.includes("awaiting user")||t.includes("awaiting human review")||t.includes("awaiting review")||t.includes("awaiting confirmation")||t.includes("awaiting feedback")?"awaiting_human":t.includes("failed")?"work_item_failed":t.includes("deadlock")?"deadlock":"gate_result"}function ZJ(e){const t=e.content.trim(),n=e.metadata??{},i=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,r=typeof n.forwarded_from=="string"?n.forwarded_from:typeof n.task_id=="string"?n.task_id:typeof n.taskId=="string"?n.taskId:void 0,o=GJ.exec(t);if(o){const[,u,d]=o,m=d.trim();return{timestamp:e.timestamp,type:nE(m),workItemProjectionId:u,workItemProjectionTitle:KJ(u),roleName:i,detail:m||void 0,runtimeTaskId:r,executionTurnId:r}}const a=WJ.exec(t);if(a){const u=a[1].trim();return{timestamp:e.timestamp,type:nE(u),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:i,detail:u||void 0,runtimeTaskId:r,executionTurnId:r}}return null}function QJ(e){return e.map(ZJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function JJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const i of t){const r=n.get(i.channelId);r?r.push(i):n.set(i.channelId,[i])}return e.map(i=>{const r=QJ(n.get(i.channelId)??[]),o=i.workItemLog&&i.workItemLog.length>0?i.workItemLog:r,a=[...o].reverse().find(m=>{const h=m.workItemProjectionId;return h&&h!=="company_runtime"}),u=i.mode==="primary"?a?.workItemProjectionId??i.workItemProjectionId:i.workItemProjectionId??a?.workItemProjectionId,d=i.isCompanyRuntime||i.mode==="primary"&&o.length>0;return o.length===0&&u===i.workItemProjectionId&&d===i.isCompanyRuntime?i:{...i,isCompanyRuntime:d,workItemProjectionId:u,...o.length>0?{workItemLog:o}:{}}})}function eee(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(i=>[i.taskId,i]));return e.map(i=>{const r=n.get(i.id);if(!r)return i;const o=r.workItemProjectionId??i.workItemProjectionId,a=r.companyProfile??i.companyProfile,u=r.workItemRoleId??i.workItemRoleId,d=r.workItemRoleName??i.workItemRoleName;return o===i.workItemProjectionId&&a===i.companyProfile&&u===i.workItemRoleId&&d===i.workItemRoleName?i:{...i,workItemProjectionId:o,companyProfile:a,workItemRoleId:u,workItemRoleName:d}})}function kA(e){return{id:e.channel_id??e.id??"",type:e.channel_type??e.type??"session",name:e.name??"",officeId:e.office_id??e.officeId,participants:e.participants??[],pinned:!!e.pinned,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now()}}function Xf(e){const t=e.sender_name??e.senderName??"",n=String(t).trim().toLowerCase()==="task generalist"?"OPC":t;return{id:e.message_id??e.id??"",channelId:e.channel_id??e.channelId??"",sender:e.sender??"",senderName:n,content:e.content??"",timestamp:typeof e.created_at=="number"?e.created_at*1e3:e.timestamp??Date.now(),replyToId:e.reply_to_id??e.replyToId,mentions:e.mentions??[],metadata:e.metadata,senderDeleted:!!(e.sender_deleted??e.senderDeleted)}}function SA(e){return{id:e.board_id??e.id??"",name:e.name??"",description:e.description,color:e.color??"#3b82f6",officeId:e.office_id??e.officeId,prefix:e.prefix??"T",nextTaskNum:e.next_task_num??e.nextTaskNum??1,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now()}}function wA(e){return{id:e.column_id??e.id??"",boardId:e.board_id??e.boardId??"",name:e.name??"",color:e.color??"#888",sortOrder:e.sort_order??e.sortOrder??0,isTerminal:!!(e.is_terminal??e.isTerminal),roleLabel:e.role_label??e.roleLabel,gateType:e.gate_type??e.gateType,isParallel:e.is_parallel??e.isParallel}}function CA(e){const t=_A(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",i=e.work_item_id??e.workItemId??e.task_id??e.id??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??(e.work_item_id??e.workItemId?void 0:e.task_id??e.id),o=e.execution_turn_id??e.executionTurnId??r,a=e.execution_mode??e.executionMode,u=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||u==="task_mode_execution";return{id:i,displayId:e.display_id??e.displayId??"",boardId:e.board_id??e.boardId??"",columnId:n,title:e.title??"",description:e.description,priority:e.priority??null,assigneeIds:e.assignee_ids??e.assigneeIds??[],tags:e.tags??[],sortOrder:e.sort_order??e.sortOrder??0,sessionId:e.session_id??e.sessionId,workItemId:e.work_item_id??e.workItemId,runtimeTaskId:r,executionTurnId:o,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification,workItemProjectionId:d?void 0:u,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:EA(e.work_item_gate??e.workItemGate),employeeAssignment:jA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,executionUnitKind:e.execution_unit_kind??e.executionUnitKind,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId,externalTeamBoundaryRoleId:e.external_team_boundary_role_id??e.externalTeamBoundaryRoleId,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds,externalCompanyExecutionFence:e.external_company_execution_fence??e.externalCompanyExecutionFence,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:xp(e.progress_log??e.progressLog),handoffContext:e.handoff_context??e.handoffContext,phase:e.phase,runtimeSessionId:e.runtime_session_id??e.runtimeSessionId,resumeCursor:e.resume_cursor??e.resumeCursor,worktreePath:e.worktree_path??e.worktreePath,blockedReason:e.blocked_reason??e.blockedReason,reviewVerdict:e.review_verdict??e.reviewVerdict,reviewSummary:e.review_summary??e.reviewSummary,reviewOwnerRoleId:e.review_owner_role_id??e.reviewOwnerRoleId,reviewOwnerSeatId:e.review_owner_seat_id??e.reviewOwnerSeatId,managerRoleId:e.manager_role_id??e.managerRoleId,managerSeatId:e.manager_seat_id??e.managerSeatId,scopeKey:e.scope_key??e.scopeKey,completionReport:e.completion_report??e.completionReport,reworkFeedback:e.rework_feedback??e.reworkFeedback,planningContext:e.planning_context??e.planningContext,deliverables:e.deliverables,acceptanceCriteria:e.acceptance_criteria??e.acceptanceCriteria,delegationRationale:e.delegation_rationale??e.delegationRationale,nonOverlapGuard:e.non_overlap_guard??e.nonOverlapGuard,coordinationNotes:e.coordination_notes??e.coordinationNotes,originalMessage:e.original_message??e.originalMessage,residentAssignment:e.resident_assignment??e.residentAssignment,memberSessionState:e.member_session_state??e.memberSessionState,ownershipContract:e.ownership_contract??e.ownershipContract}}function jA(e){if(!(!e||typeof e!="object"))return{name:e.name,employeeId:e.employee_id??e.employeeId,category:e.category,experienceScore:e.experience_score??e.experienceScore,domains:e.domains,preferredExternalAgent:e.preferred_external_agent??e.preferredExternalAgent,promptContext:e.prompt_context??e.promptContext,deltaContext:e.delta_context??e.deltaContext,skillRefs:e.skill_refs??e.skillRefs}}function EA(e){if(!(!e||typeof e!="object"))return{type:e.type??e.gate_type??e.gateType,reviewerRole:e.reviewer_role??e.reviewerRole,autoApprove:e.auto_approve??e.autoApprove,criteria:e.criteria}}const tee=new Set(["queued","ready","ready_for_rework","waiting_dependencies","running","waiting_for_peer","waiting_for_children","paused","needs_attention","awaiting_manager_review","awaiting_human","approved","failed","cancelled"]),nee=new Set(["active","waiting","pending","done","failed"]);function iee(e){return typeof e=="string"&&tee.has(e)?e:"queued"}function ree(e){return typeof e=="string"&&nee.has(e)?e:"pending"}function see(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function oee(e){const t=typeof e.kind=="string"&&e.kind.trim()?e.kind:"activity",n=typeof e.title=="string"&&e.title.trim()?e.title:t.replace(/_/g," ");return{kind:t,title:n,roleName:typeof e.role_name=="string"?e.role_name:typeof e.roleName=="string"?e.roleName:void 0,runtimeTaskId:typeof e.runtime_task_id=="string"?e.runtime_task_id:typeof e.runtimeTaskId=="string"?e.runtimeTaskId:void 0,entries:xp(e.entries)}}function aee(e){const t=Array.isArray(e.activity_sections)?e.activity_sections:Array.isArray(e.activitySections)?e.activitySections:[];return{workItemId:typeof e.work_item_id=="string"?e.work_item_id:e.workItemId??"",workItemProjectionId:typeof e.work_item_projection_id=="string"?e.work_item_projection_id:e.workItemProjectionId??void 0,phase:iee(e.phase),kanbanColumn:typeof e.kanban_column=="string"?e.kanban_column:e.kanbanColumn??"todo",title:typeof e.title=="string"?e.title:"",kind:typeof e.kind=="string"?e.kind:e.kind??void 0,isReviewTarget:!!(e.is_review_target??e.isReviewTarget),executorRoleId:e.executor_role_id??e.executorRoleId??void 0,executorRoleName:e.executor_role_name??e.executorRoleName??void 0,reviewerRoleId:e.reviewer_role_id??e.reviewerRoleId??void 0,selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent??void 0,executionUnitKind:e.execution_unit_kind??e.executionUnitKind??void 0,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId??void 0,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds??void 0,createdAt:Mm(e.created_at??e.createdAt),updatedAt:Mm(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(oee),progressLog:xp(e.progress_log??e.progressLog)}}function iE(e){if(!e||typeof e!="object")return;const t={};for(const[n,i]of Object.entries(e)){if(!i||typeof i!="object")continue;const r=i,a=(Array.isArray(r.work_items)?r.work_items:Array.isArray(r.workItems)?r.workItems:[]).map(aee).sort((d,m)=>d.createdAt-m.createdAt),u=typeof r.role_key=="string"?r.role_key:typeof r.roleKey=="string"?r.roleKey:n;t[n]={roleKey:u,roleId:typeof r.role_id=="string"?r.role_id:typeof r.roleId=="string"?r.roleId:n,roleName:typeof r.role_name=="string"?r.role_name:typeof r.roleName=="string"?r.roleName:n,roleSessionId:typeof r.role_session_id=="string"?r.role_session_id:typeof r.roleSessionId=="string"?r.roleSessionId:void 0,teamInstanceId:typeof r.team_instance_id=="string"?r.team_instance_id:typeof r.teamInstanceId=="string"?r.teamInstanceId:void 0,runtimeStatus:see(r.runtime_status??r.runtimeStatus),aggregatedStatus:ree(r.aggregated_status??r.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function NA(e){const t=_A(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",i=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,r=e.execution_turn_id??e.executionTurnId??i,o=e.execution_mode??e.executionMode,a=String(e.exec_mode??e.execMode??"").trim().toLowerCase(),u=e.work_item_projection_id??e.workItemProjectionId,d=a==="task"||a==="project"||a==="single"||o==="task_mode"||u==="task_mode_execution",m=d?void 0:e.parent_session_id??e.parentSessionId,h={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:i,executionTurnId:r,channelId:e.channel_id??e.channelId??"",sessionId:e.session_id??e.sessionId,parentSessionId:m,mode:d?"primary":e.mode??(m?"child":"primary"),title:e.title??"Untitled",status:e.status??"pending",columnId:e.column_id??e.columnId??"todo",assigneeIds:e.assignee_ids??e.assigneeIds??[],priority:e.priority??null,tags:e.tags??[],agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,progressLog:xp(e.progress_log??e.progressLog),createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),messageCount:e.message_count??e.messageCount??0,latestPreview:e.latest_preview??e.latestPreview,latestSender:e.latest_sender??e.latestSender,latestMessageId:e.latest_message_id??e.latestMessageId,indexLoaded:e.index_loaded??e.indexLoaded,detailLoaded:e.detail_loaded??e.detailLoaded,fullLoaded:e.full_loaded??e.fullLoaded,hasMore:e.has_more??e.hasMore,summaryHasMore:e.summary_has_more??e.summaryHasMore,fullHasMore:e.full_has_more??e.fullHasMore,detailLoading:e.detail_loading??e.detailLoading,detailError:e.detail_error??e.detailError,viewGeneration:e.view_generation??e.viewGeneration,execMode:e.exec_mode??e.execMode,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,preferredAgent:e.preferred_agent??e.preferredAgent,workItemProjectionId:d?void 0:u,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:EA(e.work_item_gate??e.workItemGate),employeeAssignment:jA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,executionUnitKind:e.execution_unit_kind??e.executionUnitKind,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId,externalTeamBoundaryRoleId:e.external_team_boundary_role_id??e.externalTeamBoundaryRoleId,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds,externalCompanyExecutionFence:e.external_company_execution_fence??e.externalCompanyExecutionFence,originChannel:e.origin_channel??e.originChannel,originTaskId:e.origin_task_id??e.originTaskId??e.task_id??e.taskId,runtimeControlState:e.runtime_control_state??e.runtimeControlState,canStop:e.can_stop??e.canStop,canResume:e.can_resume??e.canResume,resumeParentSessionId:e.resume_parent_session_id??e.resumeParentSessionId,pendingRuntimeCheckpointId:e.pending_runtime_checkpoint_id??e.pendingRuntimeCheckpointId,stopIntentId:e.stop_intent_id??e.stopIntentId,handoffContext:e.handoff_context??e.handoffContext,handoffTo:e.handoff_to??e.handoffTo,artifacts:e.artifacts,isCompanyRuntime:d?!1:e.is_company_runtime??e.isCompanyRuntime,workItemLog:d?[]:XJ(e.work_item_log??e.workItemLog),roleWorkItems:d?void 0:iE(e.role_work_items??e.roleWorkItems),executorRoleWorkItems:d?void 0:iE(e.executor_role_work_items??e.executorRoleWorkItems),draftTurnId:e.draft_turn_id??e.draftTurnId,runtimeSessionId:e.runtime_session_id??e.runtimeSessionId,resumeCursor:e.resume_cursor??e.resumeCursor,activeSubagents:e.active_subagents??e.activeSubagents,permissionRequests:e.permission_requests??e.permissionRequests,worktreePath:e.worktree_path??e.worktreePath,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification};return gT(h)}function rE(e){const t=(e.channels??[]).map(kA),n=(e.messages??[]).map(Xf),i=(e.boards??[]).map(SA),r=(e.columns??[]).map(wA),o=JJ((e.sessions??[]).map(NA),n),a=eee((e.tasks??[]).map(CA),o);return{channels:t,messages:n,boards:i,columns:r,tasks:a,sessions:o}}function lee(e){return`session:${e}`}const cee=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function uee(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!cee.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,i={},r=(o,a)=>{const u=String(o??"").trim(),d=String(a??"").trim();if(!u||!d)return;const m=i[u]??(i[u]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&r(o.role_id,o.selection_label);if(Object.keys(i).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";r(o?.role_id,a)}return Object.keys(i).length?i:null}const pb=[{name:"midnight"},{name:"neon"},{name:"paper"},{name:"retro"},{name:"terminal"},{name:"cozy"},{name:"openopc",default:!0}],IA=pb.filter(e=>"default"in e&&e.default);if(IA.length!==1)throw new Error("Theme registry must contain exactly one default");const sE=IA[0].name,TA="opc_office_theme",dee=new Set(pb.map(e=>e.name));function RA(e){return typeof e=="string"&&dee.has(e)}function fee(e){return`theme.${e}`}function mee(e){try{const t=(e??globalThis.localStorage).getItem(TA);return RA(t)?t:sE}catch{return sE}}function pee(e,t){try{(t??globalThis.localStorage).setItem(TA,e)}catch{}}function hee(){try{const e=localStorage.getItem("opc_outdoor_override");if(e==="day"||e==="night")return e;if(localStorage.getItem("opc_outdoor_day")==="1")return"day";if(localStorage.getItem("opc_outdoor_night")==="1")return"night"}catch{}return"auto"}const oE=80,gee=new Set(["message_start","message_stop","tool_call_delta","status_snapshot","context_usage","cost_update","task_ledger_updated","prompt_prefix_state","prompt_prefix_cache_fingerprint","prefetch_started","prefetch_completed","prefetch_consumed","durable_memory_extracted","durable_memory_extraction_failed","session_memory_updated","session_memory_update_failed","tool_batch_started","tool_batch_completed","permission_predicted","turn_started","turn_completed"]),yee=new Set(["member_inbox_updated"]);function xee(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function vee(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function iu(e){return sU(e)}function Os(e){return Nv(e)}function Yx(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function ta(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function zs(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"||t==="jiuwen"||t==="jiuwenswarm"?t:"native"}function bee(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function _ee(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",i=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},r=Array.isArray(e.specialties)?e.specialties.filter(a=>typeof a=="string"):t?.specialties??[],o=typeof e.agent_id=="string"?e.agent_id:t?.agent_id??"";return{agent_id:o,name:typeof e.name=="string"&&e.name?e.name:typeof e.role_name=="string"&&e.role_name?e.role_name:t?.name??o,description:typeof e.description=="string"?e.description:t?.description??"",specialties:r,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:i,employee_id:typeof e.employee_id=="string"?e.employee_id:t?.employee_id,opc_role_id:typeof e.opc_role_id=="string"?e.opc_role_id:t?.opc_role_id,runtime_status:n,current_tool:typeof e.current_tool=="string"?e.current_tool:e.current_tool==null?void 0:t?.current_tool,current_task_id:typeof e.current_task_id=="string"?e.current_task_id:e.current_task_id==null?void 0:t?.current_task_id}}function aE(e,t=[]){const n=new Map(t.map(i=>[i.agent_id,i]));return e.filter(i=>!!i&&typeof i=="object").map(i=>{const r=typeof i.agent_id=="string"?i.agent_id:"";return _ee(i,n.get(r))}).filter(i=>!!i.agent_id)}function lE(e){if(!e||typeof e!="object")return;const t=e;return{name:typeof t.name=="string"?t.name:void 0,employeeId:typeof t.employee_id=="string"?t.employee_id:typeof t.employeeId=="string"?t.employeeId:void 0,category:typeof t.category=="string"?t.category:void 0,experienceScore:typeof t.experience_score=="number"?t.experience_score:typeof t.experienceScore=="number"?t.experienceScore:void 0}}function Of(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function cE(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function Xx(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=lE(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=zs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=zs(e.selectedExecutionAgent)),t}typeof e.work_item_projection_id=="string"?t.workItemProjectionId=e.work_item_projection_id:typeof e.workItemProjectionId=="string"&&(t.workItemProjectionId=e.workItemProjectionId),typeof e.work_item_turn_type=="string"?t.workItemTurnType=e.work_item_turn_type:typeof e.workItemTurnType=="string"&&(t.workItemTurnType=e.workItemTurnType),typeof e.work_item_role_id=="string"?t.workItemRoleId=e.work_item_role_id:typeof e.workItemRoleId=="string"&&(t.workItemRoleId=e.workItemRoleId),typeof e.work_item_role_name=="string"?t.workItemRoleName=e.work_item_role_name:typeof e.workItemRoleName=="string"&&(t.workItemRoleName=e.workItemRoleName);const r=lE(e.employee_assignment??e.employeeAssignment);return r&&(t.employeeAssignment=r),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=zs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=zs(e.selectedExecutionAgent)),t}function Kx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.runtime_session_id=="string"&&(t.runtimeSessionId=e.runtime_session_id),typeof e.resume_cursor=="number"&&(t.resumeCursor=e.resume_cursor),Array.isArray(e.active_subagents)&&(t.activeSubagents=e.active_subagents),Array.isArray(e.permission_requests)&&(t.permissionRequests=e.permission_requests),typeof e.worktree_path=="string"&&(t.worktreePath=e.worktree_path),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function Zx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function uE(e,t){if(!t||!e)return!1;if(t.activeSessionId===e)return!0;const n=t.activeSession;if(!n)return!1;if(n.taskId===e||n.parentSessionId===e||n.sessionId===e)return!0;const i=t.sessions.find(u=>u.taskId===e);if(!i)return!1;const r=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(i.parentSessionId??"").trim();if(o&&r.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(i.taskId??"").trim()===a||String(i.sessionId??"").trim()===a:!1}function kee(e){return e==="done"||e==="delivered"?"approved":e==="failed"?"failed":e==="cancelled"?"cancelled":e==="pending"?"queued":e==="awaiting_manager_review"||e==="awaiting_review"?"awaiting_manager_review":e==="awaiting_human"?"awaiting_human":"running"}function See(e){return e==="approved"||e==="failed"||e==="cancelled"?"done":e==="awaiting_manager_review"||e==="awaiting_human"?"in-review":e==="queued"||e==="ready"||e==="ready_for_rework"||e==="waiting_dependencies"?"todo":"in-progress"}function wee(e){return e==="done"||e==="delivered"?"done":e==="failed"||e==="cancelled"?"failed":e==="pending"?"pending":e==="awaiting_manager_review"||e==="awaiting_review"||e==="awaiting_human"?"waiting":"active"}function Cee(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function jee(e){const t=ko(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,i=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),r=kee(e.status);return{roleKey:n,roleId:n,roleName:i,runtimeStatus:Cee(e.agentStatus),aggregatedStatus:wee(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:r,kanbanColumn:See(r),title:e.title||i,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:i,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:i,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function Eee({taskId:e,sessions:t,agents:n,onClose:i}){if(!e)return null;for(const a of t){const u=a.roleWorkItems;if(u)for(const d of Object.values(u)){const m=d.workItems.find(h=>h.executionTurnId===e);if(m)return c.jsx(qC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:i})}}const r=t.find(a=>a.taskId===e||ko(a)===e);if(!r)return null;const o=jee(r);return c.jsx(qC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:i})}function Nee(){const{locale:e,setLocale:t,t:n,translateMaybe:i}=Kr(),r=C.useRef(new b4);C.useMemo(()=>C4(r.current),[]);const o=C.useRef(null),a=xee(),[u,d]=C.useState(a),[m,h]=C.useState(a),[p,g]=C.useState("disconnected"),[x,v]=C.useState(""),[b,S]=C.useState(null),[w,k]=C.useState([]),[j,N]=C.useState(0),[z,I]=C.useState(null),[A,L]=C.useState(null),[M,O]=C.useState(mee),[T,$]=C.useState(!0),[G,P]=C.useState(()=>{try{return localStorage.getItem("opc_office_sidebar_collapsed")==="1"}catch{return!1}}),F=()=>P(K=>{const B=!K;try{localStorage.setItem("opc_office_sidebar_collapsed",B?"1":"0")}catch{}return B}),[V,Y]=C.useState("all"),[U,Q]=C.useState("workspace"),[W,q]=C.useState([]),[J,D]=C.useState(!1),[Z,ie]=C.useState(!1),[ee,te]=C.useState(null),[oe,le]=C.useState("task"),[he,Ie]=C.useState("corporate"),[xe,je]=C.useState("native"),[Ve,We]=C.useState(null),[Pe,ct]=C.useState(null),[It,ut]=C.useState(null),[Bt,ge]=C.useState([]),[me,qe]=C.useState(""),[Ge,ht]=C.useState(null),[ce,we]=C.useState([]),[Oe,Ue]=C.useState([]),[Xe,bt]=C.useState(null),[St,dt]=C.useState(null),[ke,Je]=C.useState(null),[Ke,it]=C.useState(null),[He,yn]=C.useState(null),[on,jt]=C.useState(null),[Mt,an]=C.useState(null),[Tt,$t]=C.useState(!1),[ii,Et]=C.useState(null),[Xn,dn]=C.useState(null),tt=C.useRef(new Set),ln=C.useRef(new Set),Rn=C.useRef([]),Dn=C.useRef("task"),Ut=C.useRef(null),cn=C.useRef(null),xn=C.useRef(null),vt=C.useRef(null),vn=C.useRef(null),Dt=C.useRef("default"),un=C.useRef(null),Hn=C.useRef(""),Ne=C.useRef(0),wt=C.useRef(!1),Sn=C.useRef(!1),Ci=C.useRef(0),pn=C.useRef(!1),kt=C.useRef(null),ri=C.useRef(null),zn=C.useRef(new Map),[si,hn]=C.useState(null),[qt,Ht]=C.useState(null),[Xt,Kn]=C.useState("success"),[Fn,Yn]=C.useState(null),[vi,bn]=C.useState(null),[Vn,En]=C.useState(null),[zi,On]=C.useState(()=>hee()),wn=C.useCallback(K=>(typeof K=="string"?K.trim():"")||"default",[]),nt=C.useCallback(()=>wn(Dt.current),[wn]),Mr=C.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),ue=C.useCallback(K=>{if(!K||typeof K!="object")return"";for(const ne of["project_id","projectId","active_project_id","activeProjectId"]){const se=K[ne];if(typeof se=="string"&&se.trim())return se.trim()}const B=K.data;if(B&&typeof B=="object")for(const ne of["project_id","projectId"]){const se=B[ne];if(typeof se=="string"&&se.trim())return se.trim()}return""},[]),be=C.useCallback((K,B=!1)=>{const ne=ue(K);return ne?ne===nt():B},[nt,ue]),Me=C.useCallback(K=>{if(!K||typeof K!="object")return"";const B=K.switch_seq??K.switchSeq;return typeof B=="string"?B.trim():""},[]),ft=C.useCallback(K=>{if(!K||typeof K!="object")return null;const B=K.view_generation??K.viewGeneration;if(typeof B=="number")return B;if(typeof B=="string"&&B.trim()){const ne=Number(B);return Number.isFinite(ne)?ne:null}return null},[]),Ot=C.useCallback(K=>{const B=ue(K);if(!B)return!1;const ne=un.current;if(B!==nt()&&B!==ne)return!1;const se=ft(K);if(se!==null&&se!==Ne.current)return!1;const de=Me(K);return!de||!Hn.current||de===Hn.current},[nt,Me,ft,ue]),pe=C.useCallback(K=>{if(!K||K.error!=="task_not_found")return!1;if(!be(K,!1))return!0;if((typeof K.action=="string"?K.action:"")!=="session_detail")return!1;const ne=ft(K);if(ne!==null&&ne!==Ne.current)return!0;const se=typeof K.task_id=="string"?K.task_id:"";return se?!(vt.current?.sessions??[]).some(Te=>Te.taskId===se):!0},[be,ft]),Ce=C.useCallback(()=>{for(const K of zn.current.values())clearTimeout(K);zn.current.clear()},[]),De=C.useCallback((K,B="full",ne=!1,se)=>{if(!K)return;const de=se||nt(),Te=Ne.current;if(!ne&&!uE(K,vt.current))return;const $e=`${de}:${Te}:${K}`,ze=zn.current.get($e);ze&&(clearTimeout(ze),zn.current.delete($e));const rt=setTimeout(()=>{if(zn.current.delete($e),de!==nt()||Te!==Ne.current||!ne&&!uE(K,vt.current))return;const Nt=o.current;if(vt.current?.updateSession(K,{detailLoading:!0,detailError:void 0,viewGeneration:Te}),!Nt){vt.current?.updateSession(K,{detailLoading:!1,detailError:"connection_unavailable"});return}Nt.sessionDetail(de,K,{limit:200,detailLevel:B,include:B==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Te}).then(gt=>{gt.ok===!1&&de===nt()&&Te===Ne.current&&vt.current?.updateSession(K,{detailLoading:!1,detailError:String(gt.error??"request_failed")})})},180);zn.current.set($e,rt)},[nt]),Be=C.useCallback((K,B="success")=>{Ht(K),Kn(B),setTimeout(()=>Ht(null),3e3)},[]),_t=C.useCallback(()=>{ri.current&&(clearTimeout(ri.current),ri.current=null),pn.current=!1,kt.current=null},[]),Ze=C.useCallback(K=>{_t(),pn.current=!0,kt.current=K,ri.current=setTimeout(()=>{!pn.current||kt.current!==K||(_t(),v("create_session_timeout"),Be("Session creation timed out. Please try again.","error"))},3e4)},[_t,Be]),Ye=A4(),Ft=XV(),Kt=cU(),Pn=dU(),[Vt,Jt]=C.useState(null);C.useEffect(()=>{Z&&fetch("/api/llm/config").then(K=>K.json()).then(K=>{K.ok&&Jt(K)}).catch(K=>console.error("Failed to fetch LLM config:",K))},[Z]);const _n=Kt.activeSessionId,Fi=C.useMemo(()=>_n?uee(Ft.getChannelMessages(lee(_n))):null,[_n,Ft]);C.useCallback(K=>{const B=wn(K);Dt.current=B,Ce(),Ft.initFromBackend(B,[],[]),Ye.initFromBackend(B,[],[],[]),Kt.initFromBackend(B,[]),_t(),En(null),ct(null),ut(null),we([])},[Ye,Ft,_t,Ce,wn,Kt]);const Vi=C.useCallback(K=>{const B=wn(K),ne=Mr();return wt.current=!0,Hn.current=ne,Ne.current+=1,un.current=B,Ce(),v(`Switching to ${B}...`),ne},[Ce,Mr,wn]),Xl=C.useRef(!1);C.useLayoutEffect(()=>{cn.current=Ft,xn.current=Ye,vt.current=Kt,vn.current=Pn,Ut.current=K=>{if(!Ye.activeBoardId||Ye.activeBoardColumns.length===0)return;const ne=Ye.activeBoardColumns.find(se=>se.name==="Todo")?.id??Ye.activeBoardColumns[0].id;Ye.createTask({boardId:Ye.activeBoardId,columnId:ne,title:K.title,priority:K.priority,assigneeIds:K.assignee_id?[K.assignee_id]:[]})},Xl.current=!0}),C.useEffect(()=>{Rn.current=W},[W]),C.useEffect(()=>{Dn.current=oe},[oe]),C.useEffect(()=>{const K=r.current,B=ne=>{I(ne),N(se=>se+1)};return K.on("agentSelected",B),()=>{K.off("agentSelected",B)}},[]);const Us=C.useRef(new Map),Ri=C.useRef(null),Dr=C.useCallback(K=>{const B=Us.current;if(B.size===0)return;const ne=K?[K]:Array.from(B.keys());for(const se of ne){const de=B.get(se);if(!de)continue;B.delete(se);const Te=vt.current;de.draftText&&Te?.appendDraft(se,de.draftText,de.draftIteration,de.draftTurnId),Te?.updateSession(se,de.sessionPatch),Object.keys(de.kanbanPatch).length>0&&xn.current?.updateTask(se,de.kanbanPatch)}B.size===0&&Ri.current!==null&&(window.clearTimeout(Ri.current),Ri.current=null)},[]),ed=C.useCallback(()=>{Ri.current===null&&(Ri.current=window.setTimeout(()=>{Ri.current=null,Dr()},80))},[Dr]),Qr=C.useRef(null),td=C.useCallback(()=>{Qr.current===null&&(Qr.current=window.setTimeout(()=>{Qr.current=null,N(K=>K+1)},300))},[]);C.useEffect(()=>{const K=new j3(u,{onSnapshot:B=>{if(!Ot(B))return;S(B);const ne=B.timeline.slice(-oE);k(ne);const se=new Set;for(const Te of ne)se.add(Te.event_id);ln.current=se,r.current.pushSnapshot(B);const de=Object.entries(B.agents??{});if(de.length>0){const Te=aE(de.map(([$e,ze])=>({...ze&&typeof ze=="object"?ze:{},agent_id:$e})),Rn.current);Rn.current=Te,q(Te)}B.exec_mode&&le(Os(B.exec_mode)),B.company_profile&&Ie(iu(B.company_profile)),B.task_preferred_agent&&je(zs(B.task_preferred_agent)),N(Te=>Te+1)},onEvent:B=>{try{if(!be(B,!1))return;if(ln.current.has(B.event_id)){ln.current.delete(B.event_id);return}if(k(ne=>[...ne.slice(-oE+1),B]),r.current.pushEvent(B),B.type==="task_routed"&&B.agent_id){if(Dn.current==="company"||Dn.current==="org")return;const ne=B.data?.task_id;if(ne&&!xn.current?.tasks.find(se=>se.id===ne)){const se=typeof B.data?.content_preview=="string"?B.data.content_preview.slice(0,80):"Task";Ut.current?.({title:se,priority:null,assignee_id:B.agent_id})}}if(B.type==="task_done"&&B.agent_id&&te(B.agent_id),["turn_started","assistant_delta","thinking_delta","status_snapshot","tool_started","tool_progress","tool_completed","permission_requested","permission_resolved","cost_update","context_usage","context_warning","subagent_started","subagent_updated","subagent_completed","member_inbox_updated","compaction_applied","checkpoint_saved","turn_completed","turn_failed"].includes(B.type)){const ne=B.data,se=typeof ne.task_id=="string"?ne.task_id:"";if(se){const de=B.type==="assistant_delta"||B.type==="thinking_delta",Te=Us.current.get(se)?.draftTurnId;de||Dr(se);const $e=vt.current,ze=xn.current,rt=$e?.sessions.find(tr=>tr.taskId===se),Nt=typeof ne.work_item_projection_id=="string"?ne.work_item_projection_id:"",en=(typeof ne.execution_mode=="string"?ne.execution_mode:"")==="task_mode"||Nt==="task_mode_execution",Lt=Hm(ne)||void 0,er=!!Nt&&Nt!=="task_mode_execution"&&!en;er&&!de&&rt?.isCompanyRuntime!==!0&&$e?.setCompanyRuntime(se,!0);const Ui={lastRuntimeEventType:B.type,...B.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...Kx(ne)},Ys=typeof ne.tool_name=="string"?ne.tool_name:void 0,Xs={...Zx(ne),...Ys!==void 0?{currentTool:Ys||void 0}:{},...Ys?{displayTool:Ys}:{}};if(de){const tr=Us.current;let oi=tr.get(se);const _a=B.type==="assistant_delta"&&typeof ne.text=="string"?ne.text:"";oi&&_a&&oi.draftText&&oi.draftTurnId!==void 0&&Lt!==void 0&&oi.draftTurnId!==Lt&&(Dr(se),oi=void 0),oi||(oi={draftText:"",sessionPatch:{},kanbanPatch:{}},tr.set(se,oi)),_a&&(oi.draftText+=_a,oi.draftIteration=typeof ne.iteration=="number"?ne.iteration:oi.draftIteration??rt?.draftIteration,Lt!==void 0&&(oi.draftTurnId=Lt)),oi.sessionPatch={...oi.sessionPatch,...Ui,...er?{isCompanyRuntime:!0}:{}},oi.kanbanPatch={...oi.kanbanPatch,...Xs},ed()}else{const tr=String(Te??rt?.draftTurnId??"").trim(),oi=B.type==="turn_started"&&!!Lt&&!!tr&&Lt!==tr;(B.type==="turn_failed"||oi)&&$e?.clearDraft(se),$e?.updateSession(se,Ui),ze?.updateTask(se,Xs)}const tc=en&&gee.has(B.type)||yee.has(B.type);B.type!=="assistant_delta"&&!tc&&De(se)}}if(B.type==="agent_removed"&&B.agent_id){const ne=B.agent_id;K3(ne);const se=cn.current;se&&(se.markSenderDeleted(ne),se.removeParticipant(ne))}td()}catch(ne){console.error("[onEvent] Error:",ne,B)}},onAck:B=>{try{if(B.ok===!1){if(B.action==="create_session"&&_t(),pe(B))return;B.action==="session_detail"&&typeof B.task_id=="string"&&vt.current?.updateSession(B.task_id,{detailLoading:!1,detailError:String(B.error??"request_failed")}),v(String(B.error??"request_failed")),bn(null),Yn(null),Be(String(B.error??"Request failed"),"error")}if(B.ok&&B.action==="employee_imported"&&Be("Employee deployed to office!"),B.ok&&B.action==="talent_imported"&&Be(`Imported ${B.count??0} templates!`),B.ok&&B.action==="talent_hired"&&(hn(null),Be(`${B.name??"Agent"} hired and added to office!`)),B.ok&&B.action==="architecture_reset"&&(jt(null),an(null)),B.ok&&B.action==="session_detail"){if(!be(B,!1))return;const ne=ft(B);if(ne!==null&&ne!==Ne.current)return;const se=typeof B.task_id=="string"?B.task_id:"",de=Array.isArray(B.messages)?B.messages.map(Xf):[],Te=typeof B.message_count=="number"?B.message_count:de.length,$e=B.detail_level==="full"?"full":"summary",ze=cn.current;ze&&de.length>0&&ze.mergeMessagesFromBackend(de);const rt=vt.current;if(rt&&se){const Nt=rt.sessions.find(Xs=>Xs.taskId===se),gt=$e==="full"?Nt?.fullHasMore:Nt?.summaryHasMore,en=YJ(gt,B.has_more===!0,B.client_history_page===!0),Lt=String(Nt?.draftTurnId??"").trim();Lt&&ze&&de.some(Xs=>Qf(Xs)===Lt)&&rt.clearDraft(se);const Ui=B.session_state,Ys=Ui&&typeof Ui=="object"?NA(Ui):null;rt.updateSession(se,{...Ys??{},...typeof B.handoff_context=="string"?{handoffContext:B.handoff_context}:{},...typeof B.handoff_to=="string"?{handoffTo:B.handoff_to}:{},messageCount:Te,detailLoaded:!0,...$e==="full"?{fullLoaded:!en}:{},hasMore:en,...$e==="full"?{fullHasMore:en}:{summaryHasMore:en},detailLoading:!1,detailError:void 0,viewGeneration:ne??Ne.current})}}if(Array.isArray(B.agents)){const ne=aE(B.agents,Rn.current);Rn.current=ne,q(ne);for(const se of ne)r.current.ensureAgent(se.agent_id,se.name,se.office_id,se.appearance?.palette,se.appearance?.desk_id);N(se=>se+1)}if(B.ok&&(B.agent_id||B.deleted)&&(B.deleted&&(bn(null),Yn(null),Be("Agent removed")),B.agent_id&&!B.deleted&&Be("Agent created!"),o.current?.listAgents()),B.ok&&Array.isArray(B.projects)){L(yU(B.project_id_policy));const ne=vn.current;if(ne){const se=nt(),de=!Sn.current,Te=!Sn.current&&!wt.current,$e=typeof B.active_project_id=="string"?B.active_project_id.trim():"",ze=B.action==="create_project"&&typeof B.project_id=="string"?B.project_id.trim():"",rt=Te?wn(ze||$e||Dt.current):ze?wn(ze):nt();if(ze&&(wt.current=!0),Sn.current=!0,Dt.current=rt,ne.initFromBackend(B.projects,rt),rt!==se||de){const Nt=Mr();Hn.current=Nt,un.current=rt,Ne.current+=1,v(`Switching to ${rt}...`),o.current?.switchProject(rt,Nt)}}}if(B.ok&&Array.isArray(B.channels)){if(!Ot(B))return;const ne=rE(B),se=ue(B);if(!se)return;const de=un.current===se||nt()!==se;Dt.current=se,un.current=null,vn.current?.setActiveProject(se),de&&(Ce(),En(null),ct(null),ut(null)),v("");const Te=cn.current;Te&&Te.initFromBackend(se,ne.channels,ne.messages);const $e=xn.current;$e&&$e.initFromBackend(se,ne.boards,ne.columns,ne.tasks);const ze=vt.current;if(ze){ze.initFromBackend(se,ne.sessions);const rt=ze.activeSessionId;rt&&De(rt,"full",!0)}}}catch(ne){console.error("[onAck] Error:",ne)}},onStatus:(B,ne)=>{if(g(B),v(ne??""),B!=="connected"&&L(null),B==="connected"){const se=nt();K.listProjects(),K.orgInfo(),K.orgSavedList(),K.collabSync(se,void 0,Ne.current)}},onCollabMessage:(B,ne)=>{try{if(B==="project_index_push"){if(!Ot(ne))return}else if(!be(ne,!1))return;const se=cn.current;if(B==="chat_new_message")se&&se.addMessageFromBackend(Xf(ne));else if(B==="chat_channel_created")se&&se.addChannelFromBackend(kA(ne));else if(B==="session_runtime_control"){const de=vt.current;if(de){const Te=Array.isArray(ne.task_ids)?ne.task_ids.map(String).filter(Boolean):[],$e={runtimeControlState:String(ne.runtime_control_state??ne.runtimeControlState??"idle"),canStop:!!(ne.can_stop??ne.canStop),canResume:!!(ne.can_resume??ne.canResume),resumeParentSessionId:String(ne.resume_parent_session_id??ne.resumeParentSessionId??""),pendingRuntimeCheckpointId:String(ne.pending_runtime_checkpoint_id??ne.pendingRuntimeCheckpointId??""),stopIntentId:String(ne.stop_intent_id??ne.stopIntentId??"")};for(const ze of Te)de.updateSession(ze,$e)}}else if(B==="board_task_status_changed"){const de=String(ne.task_id??""),Te=String(ne.column_id??""),$e=String(ne.status??""),ze=["done","failed","cancelled"].includes($e);if(de&&Te){const rt=xn.current;if(rt){const gt=rt.tasks.find(en=>en.id===de);if(gt){const en={};gt.columnId!==Te&&rt.moveTask(de,Te,0),$e==="running"?(!gt.agentStatus||gt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(gt.agentStatus||gt.currentTool||gt.displayTool)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.keys(en).length>0&&rt.updateTask(de,en)}}const Nt=vt.current;if(Nt){const gt=Nt.sessions.find(Lt=>Lt.taskId===de),en={columnId:Te,status:$e||Te};$e==="running"?(!gt?.agentStatus||gt.agentStatus==="idle")&&(en.agentStatus="reflecting"):(gt?.agentStatus||gt?.currentTool||gt?.displayTool||ze)&&(en.agentStatus=void 0,en.currentTool=void 0,en.displayTool=void 0),Object.assign(en,lD(gt,$e)),Nt.updateSession(de,{...en})}}}else if(B==="execution_mode_resolved"){const de=String(ne.mode??""),Te=String(ne.profile??"");if(de){const $e=Os(de);le($e),Ie($e==="org"?"custom":$e==="company"?iu(Te):"corporate")}else Te&&Ie(iu(Te))}else if(B==="project_run_updated"||B==="seat_digest_updated"||B==="work_item_batch_updated")o.current?.collabSync(nt(),void 0,Ne.current);else if(B==="collab_sync_push"||B==="project_index_push"){const de=String(ne.sync_scope??ne.syncScope??"").toLowerCase(),Te=B==="project_index_push"||de==="index";if(!Ot(ne))return;const $e=rE(ne),ze=ue(ne);if(!ze)return;const rt=un.current===ze||nt()!==ze;if(Dt.current=ze,un.current=null,vn.current?.setActiveProject(ze),rt&&(Ce(),En(null),ct(null),ut(null)),v(""),Te){const Lt=vt.current;Lt&&Lt.initFromBackend(ze,$e.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),o.current?.collabSync(ze,void 0,Ne.current);return}const Nt=cn.current;Nt&&Nt.initFromBackend(ze,$e.channels,$e.messages);const gt=xn.current;gt&>.initFromBackend(ze,$e.boards,$e.columns,$e.tasks);const en=vt.current;if(en){en.initFromBackend(ze,$e.sessions);const Lt=en.activeSessionId;Lt&&De(Lt,"full",!0)}}}catch(se){console.error("[onCollabMessage] Error:",se)}},onAgentRuntimeUpdate:B=>{if(!be(B,!1))return;B.agent_id&&q(se=>{const de=se.map(Te=>Te.agent_id===B.agent_id?{...Te,status:B.status,runtime_status:B.status,current_tool:B.current_tool??void 0,current_task_id:B.task_id??void 0}:Te);return Rn.current=de,de});const ne=xn.current;if(ne&&B.task_id){const se=B,de=Zx(se),Te=Kx(se);if(Of(se,"current_tool")){const ze=typeof se.current_tool=="string"&&se.current_tool.trim()?se.current_tool:void 0;de.currentTool=ze,Te.currentTool=ze,ze&&(de.displayTool=ze,Te.displayTool=ze)}if(Of(se,"display_tool")){const ze=typeof se.display_tool=="string"&&se.display_tool.trim()?se.display_tool:void 0;ze&&(de.displayTool=ze,Te.displayTool=ze)}if(cE(B.status)&&(de.displayTool=void 0,Te.displayTool=void 0),Of(se,"tool_elapsed_ms")){const ze=typeof se.tool_elapsed_ms=="number"?se.tool_elapsed_ms:void 0;de.toolElapsedMs=ze,Te.toolElapsedMs=ze}if(Of(se,"last_tool_summary")){const ze=typeof se.last_tool_summary=="string"?se.last_tool_summary:void 0;de.lastToolSummary=ze,Te.lastToolSummary=ze}typeof B.iteration=="number"&&(de.iterationCount=B.iteration),ne.updateTask(B.task_id,{agentStatus:B.status,...de});const $e=vt.current;$e&&$e.updateSession(B.task_id,{agentStatus:B.status,...Te,updatedAt:Date.now()}),De(B.task_id)}},onRuntimeStatusSync:B=>{if(!be(B,!1))return;const ne=vt.current,se=xn.current;if(ne)for(const de of B.sessions??[]){const Te=String(de.task_id??"").trim();if(!Te)continue;const $e=ne.sessions.find(gt=>gt.taskId===Te);if(!$e)continue;const ze=String(de.status??"").trim(),rt={};ze&&ze!==$e.status&&(rt.status=ze);const Nt=typeof de.agent_status=="string"?de.agent_status.trim():"";if(Nt==="idle"||Nt==="reflecting"||Nt==="tool_active"){Nt!==$e.agentStatus&&(rt.agentStatus=Nt);const gt=typeof de.current_tool=="string"&&de.current_tool.trim()?de.current_tool:void 0;gt!==$e.currentTool&&(rt.currentTool=gt),cE(Nt)&&$e.displayTool!==void 0&&(rt.displayTool=void 0)}else{const gt=$e.runtimeControlState==="running"||$e.runtimeControlState==="suspending"||$e.runtimeControlState==="resuming";ze&&ze!=="running"&&!gt&&($e.agentStatus!==void 0&&(rt.agentStatus=void 0),$e.currentTool!==void 0&&(rt.currentTool=void 0),$e.displayTool!==void 0&&(rt.displayTool=void 0))}if(Object.keys(rt).length!==0&&(ne.updateSession(Te,rt),se&&("agentStatus"in rt||"currentTool"in rt||"displayTool"in rt))){const gt={};"agentStatus"in rt&&(gt.agentStatus=rt.agentStatus),"currentTool"in rt&&(gt.currentTool=rt.currentTool),"displayTool"in rt&&(gt.displayTool=rt.displayTool),se.updateTask(Te,gt)}}},onWorkerNotification:B=>{if(!be(B,!1))return;const ne=B,se=typeof B.task_id=="string"?B.task_id:"";if(!se)return;const de=ne;vt.current?.updateSession(se,{...Kx(ne),latestNotification:de,updatedAt:Date.now()}),xn.current?.updateTask(se,{...Zx(ne),latestNotification:de}),De(se)},onKanbanViewData:B=>{if(!be(B,!1))return;const ne=xn.current;ne&&ne.initFromBackend(ue(B)||nt(),(B.boards??[]).map(SA),(B.columns??[]).map(wA),(B.tasks??[]).map(CA))},onSessionProgress:B=>{if(!be(B,!1))return;const ne=vt.current;if(!(!ne||!B.task_id||!B.entry)){if(ne.appendProgress(B.task_id,{type:B.entry.type,summary:B.entry.summary,detail:B.entry.detail,timestamp:B.entry.timestamp*1e3,turnId:typeof B.entry.turn_id=="string"?B.entry.turn_id:typeof B.entry.turnId=="string"?B.entry.turnId:void 0,itemId:typeof B.entry.item_id=="string"?B.entry.item_id:typeof B.entry.itemId=="string"?B.entry.itemId:void 0,streamId:typeof B.entry.stream_id=="string"?B.entry.stream_id:typeof B.entry.streamId=="string"?B.entry.streamId:void 0,toolCallId:typeof B.entry.tool_call_id=="string"?B.entry.tool_call_id:typeof B.entry.toolCallId=="string"?B.entry.toolCallId:void 0,permissionGroupKey:typeof B.entry.permission_group_key=="string"?B.entry.permission_group_key:typeof B.entry.permissionGroupKey=="string"?B.entry.permissionGroupKey:void 0,seq:typeof B.entry.seq=="number"?B.entry.seq:void 0,executionMode:typeof B.entry.execution_mode=="string"?B.entry.execution_mode:typeof B.entry.executionMode=="string"?B.entry.executionMode:void 0}),B.entry.type==="tool_call"){const se=String(B.entry.summary??"").trim();ne.updateSession(B.task_id,{...se?{currentTool:se,displayTool:se}:{},updatedAt:B.entry.timestamp*1e3})}B.entry.type!=="thinking"&&B.entry.type!=="verification"&&De(B.task_id)}},onBoardEvent:B=>{if(!be(B,!1))return;const ne=xn.current;if(!ne)return;const se=String(B.task_id??"");if(!se)return;const de=vt.current;if(de&&de.sessions.find(er=>er.taskId===se)?.mode==="child")return;const Te=Array.isArray(B.assignee_ids)?B.assignee_ids.map(String):[],$e=Xx(B);if(ne.tasks.find(Lt=>Lt.id===se)){const Lt={};B.title&&(Lt.title=String(B.title)),B.display_id&&(Lt.displayId=String(B.display_id)),Te.length>0&&(Lt.assigneeIds=Te),Object.assign(Lt,$e),Object.keys(Lt).length>0&&ne.updateTask(se,Lt);return}const rt=String(B.board_id??ne.activeBoardId??"default"),Nt=ne.columns.filter(Lt=>Lt.boardId===rt),en=Nt.find(Lt=>Lt.name==="Todo")?.id??Nt[0]?.id??"";en&&(ne.createTask({boardId:rt,columnId:en,title:String(B.title??"Untitled"),taskId:se,displayId:B.display_id?String(B.display_id):void 0,assigneeIds:Te}),Object.keys($e).length>0&&ne.updateTask(se,$e))},onSessionCreated:B=>{try{if(!be(B,!1))return;const ne=vt.current;if(!ne)return;const se=String(B.task_id??"");if(!se)return;const de=ue(B);if(!de)return;const Te=se?ne.sessions.find(Lt=>Lt.taskId===se):void 0,$e=Xx(B),ze=Os(B.exec_mode??Te?.execMode),rt=Yx(ze,B.company_profile??Te?.companyProfile),Nt=ta(ze,B.org_id??B.organization_id??Te?.orgId);ze==="org"&&Nt&&jt(Nt),ne.createSession({projectId:de,taskId:se,channelId:B.channel_id,sessionId:B.session_id,parentSessionId:B.parent_session_id,originTaskId:B.origin_task_id??Te?.originTaskId??se,mode:B.parent_session_id?"child":"primary",execMode:ze,companyProfile:rt,orgId:Nt,preferredAgent:zs(B.preferred_agent??Te?.preferredAgent),title:B.title,status:B.status,columnId:Te?.columnId??"todo",assigneeIds:Array.isArray(B.assignee_ids)?B.assignee_ids.map(String):Te?.assigneeIds??[],priority:Te?.priority??null,tags:Te?.tags??[],progressLog:Te?.progressLog??[],createdAt:typeof B.created_at=="number"?B.created_at*1e3:Te?.createdAt??Date.now(),updatedAt:Date.now(),messageCount:0,...$e});const gt=xn.current;if(gt&&ze==="task"&&!B.parent_session_id&&se&&!gt.tasks.find(Lt=>Lt.id===se)&>.activeBoardId){const er=gt.columns.filter(Ui=>Ui.boardId===gt.activeBoardId).find(Ui=>Ui.name==="Todo");er&>.createTask({boardId:gt.activeBoardId,columnId:er.id,title:B.title,taskId:se,assigneeIds:Te?.assigneeIds??[]})}if(pn.current){if(kt.current!==de)return;_t(),ne.setActiveSession(B.task_id),De(B.task_id,"full",!0)}}catch(ne){console.error("[onSessionCreated] Error:",ne)}},onSessionUpdated:B=>{try{if(!be(B,!1))return;const ne=vt.current;if(!ne||!B.task_id)return;const se=Os(B.exec_mode??ne.sessions.find(de=>de.taskId===B.task_id)?.execMode);ne.updateSession(B.task_id,{...B.exec_mode?{execMode:se}:{},...B.exec_mode||B.company_profile?{companyProfile:Yx(se,B.company_profile)}:{},..."org_id"in B||"organization_id"in B?{orgId:ta(se,B.org_id??B.organization_id)}:{},...B.preferred_agent?{preferredAgent:zs(B.preferred_agent)}:{},...B.selected_execution_agent?{selectedExecutionAgent:zs(B.selected_execution_agent)}:{}}),(B.exec_mode==="org"||B.exec_mode==="custom")&&(B.org_id||B.organization_id)&&jt(String(B.org_id??B.organization_id))}catch(ne){console.error("[onSessionUpdated] Error:",ne)}},onSessionMessage:B=>{try{if(!be(B,!1))return;const ne=cn.current;if(!ne)return;const se=Xf(B);console.debug("[onSessionMessage]",se.sender,se.channelId,se.content?.slice(0,60)),ne.addMessageFromBackend(se);const de=se.channelId.startsWith("session:")?se.channelId.slice(8):"",Te=Qf(se),$e=String(vt.current?.sessions.find(ze=>ze.taskId===de)?.draftTurnId??"").trim();de&&se.sender!=="user"&&(Te&&Te===$e&&vt.current?.clearDraft(de),De(de,"full",!0))}catch(ne){console.error("[onSessionMessage] Error:",ne)}},onSessionTitleUpdated:B=>{try{if(!be(B,!1))return;const ne=vt.current;ne&&ne.updateSession(B.task_id,{title:B.title});const se=xn.current;if(se){const Te=ne?.sessions.find(ze=>ze.taskId===B.task_id)?.originTaskId??B.task_id,$e=se.boards.find(ze=>ze.id===Te);$e&&$e.name!==B.title&&se.updateBoardName(Te,B.title)}}catch(ne){console.error("[onSessionTitleUpdated] Error:",ne)}},onSessionDeleted:B=>{try{if(!be(B,!1))return;const ne=vt.current;if(!ne)return;ne.activeSessionId===B.task_id&&ne.setActiveSession(null),ne.deleteSession(B.task_id);const se=xn.current;se&&se.deleteTask(B.task_id);const de=cn.current;de&&de.removeSessionData(B.task_id)}catch(ne){console.error("[onSessionDeleted] Error:",ne)}},onProjectSwitched:B=>{if(!Ot(B))return;const ne=typeof B.project_id=="string"?B.project_id.trim():"";ne&&(un.current=ne,v(`Switching to ${ne}...`))},onProjectDeleted:B=>{const ne=vn.current;ne&&ne.removeProject(B.project_id)},onOrgInfo:B=>{const ne=FN(B);We(ne),an(se=>se===null?ne?.org_version??0:se),(B?.project_run?.execution_model==="multi_team_org"||Array.isArray(B?.work_items)&&B.work_items.length>0)&&o.current?.collabSync(nt(),void 0,Ne.current)},onCommsState:B=>{be(B,!1)&&ct(B)},onCommsMessage:B=>{be(B,!0)&&ut(B)},onTalentList:B=>{ge(B.templates??[]),B.talent_dir&&qe(B.talent_dir)},onEmployeeDetail:B=>{ht(B)},onReorgList:B=>{be(B,!1)&&we(B.proposals??[])},onOrgConfigExport:B=>{dt(B.yaml??"")},onOrgConfigImport:B=>{B.ok?(Je(B.preview??null),it(null),B.dry_run||(jt(null),an(null))):(it(B.error??"Import failed"),Je(null))},onOrgSavedList:B=>{yn(B.orgs??[]),"active_name"in B&&jt(B.active_name??null)},onOrgSavedSaveAs:B=>{B.ok?(o.current?.orgSavedList(),jt(B.name),an(null),dn({kind:"ok",text:`Saved "${B.name}"`})):dn({kind:"error",text:`Save failed: ${B.error??"unknown"}`})},onOrgSavedCreate:B=>{if($t(!1),Et({...B,nonce:Date.now()}),B.ok){const ne=B.organization_id||B.name;jt(ne),le("org"),Ie("custom"),o.current?.orgSavedList(),o.current?.orgInfo(),an(null),dn({kind:"ok",text:`Created "${B.organization_name||ne}"`})}else dn({kind:"error",text:`Create failed: ${B.error??"unknown"}`})},onOrgSavedLoad:B=>{B.ok?(jt(B.name),le("org"),Ie("custom"),o.current?.orgSavedList(),an(null),dn({kind:"ok",text:`Loaded "${B.name}"`})):dn({kind:"error",text:`Load failed: ${B.error??"unknown"}`})},onOrgSavedDelete:B=>{B.ok?(o.current?.orgSavedList(),jt(ne=>ne===B.name?(an(null),null):ne),dn({kind:"ok",text:`Deleted "${B.name}"`})):dn({kind:"error",text:`Delete failed: ${B.error??"unknown"}`})},onMarketBrowse:B=>{Ue(B.presets??[])},onMarketPreview:B=>{bt(B)},onChildSessionCreated:B=>{if(!be(B,!1))return;const ne=vt.current;if(!ne)return;const se=Xx(B),de=ue(B);if(de&&(ne.createSession({projectId:de,taskId:B.task_id,channelId:B.channel_id??`session:${B.task_id}`,sessionId:B.session_id,parentSessionId:B.parent_session_id,originTaskId:B.origin_task_id??B.task_id,mode:"child",orgId:String(B.org_id??B.organization_id??"").trim()||void 0,title:B.title,status:"pending",columnId:"todo",assigneeIds:B.agent_id?[B.agent_id]:[],priority:null,tags:[],createdAt:Date.now(),updatedAt:Date.now(),messageCount:0,progressLog:[],...se}),B.parent_session_id)){const Te=ne.sessions.find($e=>$e.sessionId===B.parent_session_id||$e.taskId===B.parent_session_id);Te&&!Te.isCompanyRuntime&&ne.setCompanyRuntime(Te.taskId,!0)}},onWorkItemProgress:B=>{if(!be(B,!1))return;const ne=vt.current;if(!ne||!B.task_id||!B.entry)return;const se=typeof B.entry.work_item_projection_id=="string"?B.entry.work_item_projection_id:"",de=se&&se!=="company_runtime"?se:void 0,Te=typeof B.entry.runtime_task_id=="string"&&B.entry.runtime_task_id?B.entry.runtime_task_id:typeof B.runtime_task_id=="string"&&B.runtime_task_id?B.runtime_task_id:typeof B.entry.execution_turn_id=="string"&&B.entry.execution_turn_id?B.entry.execution_turn_id:typeof B.execution_turn_id=="string"&&B.execution_turn_id?B.execution_turn_id:void 0,$e=typeof B.entry.execution_turn_id=="string"&&B.entry.execution_turn_id?B.entry.execution_turn_id:typeof B.execution_turn_id=="string"&&B.execution_turn_id?B.execution_turn_id:Te;ne.updateSession(B.task_id,{isCompanyRuntime:!0,...de?{workItemProjectionId:de}:{}});const ze=xn.current;ze&&de&&ze.updateTask(B.task_id,{workItemProjectionId:de}),ne.appendWorkItemProgress(B.task_id,{timestamp:B.entry.timestamp*1e3,type:B.entry.type,workItemProjectionId:de,workItemTurnType:typeof B.entry.work_item_turn_type=="string"?B.entry.work_item_turn_type:void 0,workItemProjectionTitle:typeof B.entry.work_item_projection_title=="string"?B.entry.work_item_projection_title:void 0,runtimeTaskId:Te,executionTurnId:$e,roleName:B.entry.role_name,detail:B.entry.detail})}});return o.current=K,K.connect(),()=>{K.disconnect();for(const B of tt.current)clearTimeout(B);tt.current.clear();for(const B of zn.current.values())clearTimeout(B);zn.current.clear(),Ri.current!==null&&(window.clearTimeout(Ri.current),Ri.current=null),Us.current.clear(),Qr.current!==null&&(window.clearTimeout(Qr.current),Qr.current=null)}},[u]),C.useEffect(()=>{const K=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ne=Date.now();ne-Ci.current<1500||(Ci.current=ne,o.current?.collabSync(nt(),void 0,Ne.current))},B=()=>{document.visibilityState==="visible"&&K()};return window.addEventListener("focus",K),document.addEventListener("visibilitychange",B),()=>{window.removeEventListener("focus",K),document.removeEventListener("visibilitychange",B)}},[nt]),C.useEffect(()=>{if(!Xn)return;const K=setTimeout(()=>dn(null),3e3);return()=>clearTimeout(K)},[Xn]);const qs=C.useCallback(()=>{o.current?.orgSavedList()},[]),Or=C.useCallback((K,B)=>{o.current?.orgSavedSaveAs(K,B)},[]),Kl=C.useCallback((K,B)=>{$t(!0),Et(null),o.current?.orgSavedCreate(K,B)},[]),Gs=C.useCallback(K=>{o.current?.orgSavedLoad(K)},[]),Jr=C.useCallback(K=>{o.current?.orgSavedDelete(K)},[]),Zl=C.useCallback(()=>{le("company"),Ie("corporate"),an(null),o.current?.setExecutionMode("company","corporate",xe),o.current?.orgInfo()},[xe]);C.useEffect(()=>{if(!ee)return;const K=ee;r.current.setAgentBubble(K,"Done!");const B=setTimeout(()=>{tt.current.delete(B),r.current.setAgentBubble(K,null)},3e3);tt.current.add(B),te(null)},[ee]),C.useCallback((K,B,ne)=>{const se=Ye.tasks.find(de=>de.id===K);for(const de of B)r.current.sendToSeat(de),r.current.setAgentActive(de,!0),r.current.setAgentBubble(de,`Task: ${ne.slice(0,22)}`),o.current?.assignTaskToAgent(nt(),K,de,ne);if(se){const de=B.map(Te=>W.find($e=>$e.agent_id===Te)?.name??Te);UJ(Ft,se,de)}N(de=>de+1)},[Ye.tasks,Ft,W,nt]);const Mo=C.useMemo(()=>{const K=b?Object.keys(b.agents).length:0,B=b?.skills.total??0;return{totalAgents:K,totalSkills:B}},[b]),Lr=C.useMemo(()=>{const K=r.current.getCharacterCards();return(T?K:K.filter(ne=>!ne.isSubagent)).slice().sort((ne,se)=>ne.displayName.localeCompare(se.displayName))},[T,j]),ys=C.useMemo(()=>ei(),[j]),va=C.useMemo(()=>{const K={};for(const B of Lr)B.officeId&&(K[B.id]=B.officeId);return K},[Lr]),[nd,bi]=C.useState(null),[zr,Do]=C.useState(""),Ws=K=>{zr.trim()&&(r.current.renameOffice(K,zr.trim()),N(B=>B+1)),bi(null)},id=(K,B)=>{r.current.assignAgentToOffice(B,K),o.current?.moveAgent(B,K),N(ne=>ne+1)},Ql=(K,B)=>{r.current.changeAgentSeat(K,B),N(ne=>ne+1)},hi=Lr.find(K=>K.id===z)??null,Oo=C.useMemo(()=>hi?r.current.getSeatsForOffice(hi.officeId):[],[hi?.officeId,j]),Lo=C.useMemo(()=>{const K=w.slice(-40);return{trace:K.some(B=>B.type==="tool_start"||B.type==="tool_done"),reflect:K.some(B=>B.type==="reflect_start"||B.type==="reflect_done"),synthesize:K.some(B=>B.type==="skill_synthesized")}},[w]),rd=C.useMemo(()=>["all",...Array.from(new Set(w.map(B=>B.type)))],[w]),vp=C.useMemo(()=>(V==="all"?w:w.filter(B=>B.type===V)).slice().reverse(),[V,w]),bp=()=>{const K=m.trim();!K||K===u||d(K)},Jl=C.useCallback(K=>{I(K),N(B=>B+1)},[]),ec=C.useCallback((K,B,ne,se)=>{const de=Kt.sessions.find(Ui=>Ui.taskId===K),Te=Os(B),$e=iu(de?.companyProfile??he),ze=Te==="org"?"custom":"corporate",rt=String(de?.orgId??on??"").trim(),Nt=ta(Te,se??de?.orgId??on),gt=Os(de?.execMode),en=iu(he);if(gt===Te&&$e===ze&&rt===String(Nt??"").trim()&&oe===Te&&en===ze)return;Kt.updateSession(K,{execMode:Te,companyProfile:ze,orgId:Nt,preferredAgent:de?.preferredAgent??xe}),le(Te),Ie(ze),Te==="org"&&Nt&&jt(Nt);const Lt=de?.preferredAgent??xe,er=Te==="task"?void 0:ze;o.current?.sessionUpdateConfig(nt(),K,Te,er,Lt,Nt),o.current?.setExecutionMode(Te,er,Lt,Nt)},[Kt,oe,he,xe,on,nt]),_p=C.useCallback((K,B)=>{const ne=Kt.sessions.find(rt=>rt.taskId===K),se=zs(B),de=Os(ne?.execMode),Te=de==="org"?"custom":"corporate";Kt.updateSession(K,{preferredAgent:se,selectedExecutionAgent:se}),je(se);const $e=de==="task"?void 0:Te,ze=ta(de,ne?.orgId??on);o.current?.sessionUpdateConfig(nt(),K,de,$e,se,ze),o.current?.setExecutionMode(de,$e,se,ze)},[Kt,he,on,nt]),kp=C.useCallback((K,B,ne)=>{if(un.current||pn.current)return;const se=nt();Ze(se);const de=Os(K),Te=de==="org"?"custom":de==="company"?"corporate":void 0;o.current?.createSession(se,void 0,de,Te,xe,ta(de,ne??on)),Q("workspace")},[nt,Ze,xe,on]),ba=C.useCallback((K,B)=>{const ne=Kt.sessions.find(de=>de.taskId===K),se=ne?.resumeParentSessionId??ne?.parentSessionId??ne?.sessionId;for(const de of Kt.sessions)(de.taskId===K||se&&(de.parentSessionId===se||de.sessionId===se))&&Kt.updateSession(de.taskId,{...B,resumeParentSessionId:se})},[Kt]),Sp=C.useCallback(K=>{const B=Kt.sessions.find(se=>se.taskId===K);(B?.execMode==="company"||B?.execMode==="org"||B?.execMode==="custom"||B?.isCompanyRuntime||B?.parentSessionId||B?.companyProfile)&&ba(K,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),o.current?.sessionStop(nt(),K)},[Kt.sessions,ba,nt]),wp=C.useCallback((K,B,ne)=>{const se=Kt.sessions.find(Te=>Te.taskId===K);(se?.execMode==="company"||se?.execMode==="org"||se?.execMode==="custom"||se?.isCompanyRuntime||se?.parentSessionId||se?.companyProfile)&&ba(K,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),o.current?.sessionResume(nt(),K,B??se?.resumeParentSessionId??se?.parentSessionId??se?.sessionId,ne??se?.pendingRuntimeCheckpointId)},[Kt.sessions,ba,nt]);C.useCallback((K,B,ne)=>{const se=Os(K),de=se==="org"?"custom":"corporate",Te=ta(se,ne??on);le(se),Ie(de),Te&&jt(Te),o.current?.setExecutionMode(se,se==="task"?void 0:de,xe,Te)},[he,xe,on]);const xs=oe==="org",Cp=oe==="task"?"task":oe==="org"?`company/${on??"org"}`:`company/${he}`;return c.jsxs("div",{className:"app-shell","data-theme":M,children:[Xn&&c.jsx("div",{className:`org-toast org-toast--${Xn.kind}`,role:"status","aria-live":"polite",children:Xn.text}),c.jsxs("header",{className:"topbar",children:[c.jsxs("div",{className:"topbar-left",children:[c.jsxs("span",{className:"logo-text",children:["Open",c.jsx("span",{className:"logo-accent",children:"OPC"})]}),c.jsx("div",{className:`conn-dot ${vee(p)}`,title:`${p}${x?` — ${x}`:""} +${u}`}),c.jsx(vU,{projects:Pn.projects,activeId:Pn.activeProjectId,projectIdPolicy:p==="connected"?A:null,onSelect:K=>{const B=Vi(K);o.current?.switchProject(K,B)},onCreate:K=>{o.current?.createProject(K)},onDelete:K=>o.current?.deleteProject(K)})]}),c.jsxs("div",{className:"topbar-center",children:[c.jsxs("div",{className:"page-nav",children:[c.jsxs("button",{className:`page-nav-btn${U==="workspace"?" active":""}`,onClick:()=>Q("workspace"),children:[n("app.page.workspace"),(()=>{const K=Ft.channels.reduce((B,ne)=>B+Ft.getUnreadCount(ne.id),0);return K>0?c.jsx("span",{className:"nav-unread-badge",children:K>99?"99+":K}):null})()]}),c.jsx("button",{className:`page-nav-btn${U==="office"?" active":""}`,onClick:()=>Q("office"),children:n("app.page.office")}),c.jsx("button",{className:`page-nav-btn${U==="org"?" active":""}`,onClick:()=>Q("org"),children:n("app.page.org")})]}),c.jsxs("div",{className:"stat-chips",children:[c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Mo.totalAgents})," ",n("app.metric.agents")]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Mo.totalSkills})," ",n("app.metric.skills")]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Ye.getOpenTaskCount()})," ",n("app.metric.tasks")]})]})]}),c.jsxs("div",{className:"topbar-right",children:[c.jsxs("div",{className:"language-toggle",role:"group","aria-label":n("language.label"),title:n("language.label"),children:[c.jsx("button",{type:"button","data-locale":"en","aria-pressed":e==="en",className:`language-toggle-btn${e==="en"?" active":""}`,onClick:()=>t("en"),children:n("language.english")}),c.jsx("button",{type:"button","data-locale":"zh-CN","aria-pressed":e==="zh-CN",className:`language-toggle-btn${e==="zh-CN"?" active":""}`,onClick:()=>t("zh-CN"),children:n("language.chinese")})]}),c.jsxs("select",{className:"theme-select",value:zi,title:n("outdoor.title"),"aria-label":n("outdoor.title"),onChange:K=>{const B=K.target.value;On(B);try{B==="auto"?(localStorage.removeItem("opc_outdoor_override"),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night")):(localStorage.setItem("opc_outdoor_override",B),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night"))}catch{}r.current.syncOutdoorLighting()},children:[c.jsx("option",{value:"auto",children:n("outdoor.auto")}),c.jsx("option",{value:"day",children:n("outdoor.day")}),c.jsx("option",{value:"night",children:n("outdoor.night")})]}),c.jsx("select",{className:"theme-select",value:M,title:n("theme.label"),"aria-label":n("theme.label"),onChange:K=>{const B=K.currentTarget.value;RA(B)&&(O(B),pee(B))},children:pb.map(({name:K})=>c.jsx("option",{value:K,children:n(fee(K))},K))}),c.jsx("button",{className:`icon-btn ${Z?"active":""}`,onClick:()=>ie(K=>!K),title:"LLM & Local Model Settings","aria-label":"LLM Settings",children:c.jsx("span",{style:{fontSize:"14px"},children:"🤖"})}),c.jsx("button",{className:`icon-btn ${J?"active":""}`,onClick:()=>D(K=>!K),title:n("dev.tools"),"aria-label":n("dev.tools"),children:c.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[c.jsx("path",{d:"M5.5 2L2 5.5 5.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M10.5 7L14 10.5 10.5 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),c.jsx(bU,{isOpen:Z,initialConfig:Vt,onClose:()=>ie(!1),onSave:async K=>{try{const ne=await(await fetch("/api/llm/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)})).json();if(ne.ok)return Jt(ne),!0;throw new Error(ne.error||"Failed to save settings")}catch(B){throw console.error("Failed to save LLM settings:",B),B}}}),U==="workspace"&&c.jsx(BV,{boardStore:Ye,chatStore:Ft,sessionStore:Kt,agents:W,officeMap:va,execMode:oe,companyProfile:he,taskPreferredAgent:xe,projectId:Pn.activeProjectId,orgInfoData:Ve,onNavigateToOrg:()=>Q("org"),savedOrgsList:He,activeSavedOrg:on,onSavedOrgsList:qs,onSavedOrgLoad:Gs,commsState:Pe,commsMessage:It,onCommsRefresh:K=>{const{project_id:B,...ne}=K??{};o.current?.commsState(nt(),ne)},onCommsReadMessage:K=>o.current?.commsReadMessage(nt(),K,Pe),onRunTask:(K,B,ne,se,de)=>{o.current?.send({type:"run_task",project_id:nt(),task_id:K,title:B,description:ne,mode:se,profile:de})},onCreateTask:(K,B,ne,se)=>{o.current?.send({type:"kanban_create_task",project_id:nt(),title:K,board_id:B,column_id:ne,task_id:se})},onMoveTask:(K,B)=>{o.current?.send({type:"kanban_move_task",project_id:nt(),task_id:K,column_id:B})},onCreateSession:()=>{if(un.current||pn.current)return;const K=nt();Ze(K),o.current?.createSession(K,void 0,oe,Yx(oe),xe,ta(oe,on))},onSessionSend:(K,B,ne,se)=>o.current?.sessionSend(nt(),K,B,ne,se),onInteractionReply:K=>{const B=o.current;return B?B.interactionReply(nt(),K):Promise.resolve({ok:!1,accepted:!1,error:"socket_unavailable",checkpoint_id:K.checkpointId,checkpoint_type:K.checkpointType,client_request_id:K.clientRequestId})},onSecretarySend:K=>o.current?.secretarySend(nt(),K),onDeleteSession:K=>o.current?.deleteSession(nt(),K),onTitleChange:(K,B)=>o.current?.sessionUpdateTitle(nt(),K,B),onSessionConfigChange:ec,onSessionTaskAgentChange:_p,onContinueInNewChat:kp,onSessionStop:Sp,onSessionResume:wp,onSessionComplete:K=>o.current?.sessionComplete(nt(),K),onLoadSessionDetail:(K,B)=>{const ne=o.current;if(ne)return ne.sessionDetail(nt(),K,{...B,include:B?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne.current}).then(se=>{if(se.ok===!1)throw new Error(String(se.error??"session_detail failed"))})},onOpenExecutionPanel:K=>En(K),onCollabSync:()=>o.current?.collabSync(nt(),void 0,Ne.current)}),U==="org"&&c.jsx("div",{className:"org-page",children:c.jsx(VJ,{data:Ve,sessionRecruitmentByRole:Fi,talents:Bt,employeeDetail:Ge,reorgProposals:ce,isCustomMode:xs,onRequestData:()=>o.current?.orgInfo(),onRequestTalents:()=>o.current?.talentList(),onRequestEmployeeDetail:K=>o.current?.employeeDetail(K),onHireTalent:(K,B)=>{hn(K),o.current?.talentHire(K,B,void 0,Ve?.organization_id||on||void 0)},hiringTemplateId:si,onImportEmployee:K=>o.current?.importEmployeeAsAgent(K),onRequestReorgList:()=>{const K=nt();o.current?.reorgList(K)},onReorgDecide:(K,B,ne)=>{const se=o.current,de=nt(),Te=K.checkpoint_type||"company_reorg_pending",$e=["org-reorg",K.proposal_id,Date.now().toString(36),Math.random().toString(36).slice(2)].join("-");return!se||!K.checkpoint_id||K.checkpoint_status!=="pending"||K.project_id!==de?Promise.resolve({ok:!1,accepted:!1,error:"reorg_checkpoint_unavailable",checkpoint_id:K.checkpoint_id,checkpoint_type:Te,client_request_id:$e}):se.interactionReply(de,{checkpointId:K.checkpoint_id,checkpointType:Te,clientRequestId:$e,requesterTaskId:K.requester_task_id||void 0,requesterSessionId:K.requester_session_id||void 0,decision:{text:ne?.trim()||(B?"approve":"deny"),option_id:B?"approve":"deny"}}).then(ze=>(ze.accepted&&se.reorgList(de),ze))},onMarketExport:K=>o.current?.marketExport(K),onMarketInstall:(K,B)=>o.current?.marketInstall(K,B),onMarketUninstall:K=>o.current?.marketUninstall(K),marketPresets:Oe,marketPreviewData:Xe,onMarketBrowse:()=>o.current?.marketBrowse(),onMarketPreview:K=>o.current?.marketPreview(K),onMarketApplyPreset:(K,B)=>o.current?.marketApplyPreset(K,B),onMarketClearPreview:()=>bt(null),onAddRole:(K,B,ne,se,de)=>o.current?.addRole(K,B,ne,se,de),onBulkAddRoles:K=>o.current?.bulkAddRoles(K),onUpdateRole:(K,B)=>o.current?.updateRole(K,B),onDeleteRole:K=>o.current?.deleteRole(K),onBindExternalTeam:K=>o.current?.bindExternalTeam(K),onUnbindExternalTeam:K=>o.current?.unbindExternalTeam(K),onUpdateOrgStrategy:K=>o.current?.updateOrgStrategy(K),onUpdateRuntimePolicy:K=>o.current?.updateRuntimePolicy(K),onResetArchitecture:()=>o.current?.resetArchitecture(),onConfigExport:()=>o.current?.orgConfigExport(),onConfigImport:(K,B)=>o.current?.orgConfigImport(K,B),configExportYaml:St,configImportPreview:ke,configImportError:Ke,onSavedOrgsList:qs,onSavedOrgSaveAs:Or,onSavedOrgCreate:Kl,onSavedOrgLoad:Gs,onSavedOrgDelete:Jr,savedOrgsList:He,activeSavedOrg:on,activeSavedOrgVersionAtLoad:Mt,orgCreatePending:Tt,orgCreateResult:ii,onSelectCorporate:Zl})}),U==="mapEditor"&&c.jsx("div",{className:"editor-page",children:c.jsx(k4,{bridge:r.current})}),c.jsxs("main",{className:`main-grid${U!=="office"?" hidden":""}${G?" sidebar-collapsed":""}`,children:[c.jsxs("section",{className:"canvas-wrap",children:[c.jsx(v4,{bridge:r.current,active:U==="office"}),c.jsx("button",{className:"canvas-float-btn",onClick:()=>$(K=>!K),title:n(T?"office.hideSubagents":"office.showSubagents"),children:T?"👥":"👤"}),c.jsx("button",{className:"sidebar-collapse-btn",onClick:F,title:n(G?"office.showSidePanel":"office.hideSidePanel"),"aria-label":n(G?"office.showSidePanel":"office.hideSidePanel"),children:c.jsx("span",{className:"collapse-glyph",children:G?"❮":"❯"})})]}),c.jsx("aside",{className:"sidebar",children:c.jsx("div",{className:"sidebar-body",children:c.jsxs("div",{className:"team-panel",children:[c.jsxs("div",{className:"mode-info-bar",children:[c.jsx("span",{className:"mode-badge",children:oe==="company"?`${oe}/${he}`:Cp}),xs?c.jsx("span",{className:"mode-hint",children:n("office.modeHint.org")}):c.jsx("span",{className:"mode-hint",children:n("office.modeHint.switch")})]}),c.jsxs("div",{className:"section-label",children:[n("office.offices")," ",c.jsx("span",{className:"count-badge",children:ys.length})]}),c.jsx("div",{className:"office-cards",children:ys.map(K=>{const B=_E(K.id).length,ne=Lr.filter(de=>de.officeId===K.id),se=Lr.filter(de=>de.officeId!==K.id&&!de.isSubagent);return c.jsxs("div",{className:"office-card",onClick:()=>r.current.panToOffice(K.id),children:[c.jsxs("div",{className:"office-card-header",children:[nd===K.id?c.jsx("input",{className:"office-name-input",value:zr,onChange:de=>Do(de.target.value),onBlur:()=>Ws(K.id),onKeyDown:de=>{de.key==="Enter"&&Ws(K.id),de.key==="Escape"&&bi(null)},autoFocus:!0,onClick:de=>de.stopPropagation()}):c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"office-name",children:K.name}),c.jsx("button",{className:"office-edit-btn",title:n("office.rename"),onClick:de=>{de.stopPropagation(),bi(K.id),Do(K.name)},children:"✎"})]}),c.jsxs("span",{className:"office-capacity",children:[ne.length,"/",B]})]}),c.jsxs("div",{className:"office-agents",children:[ne.map(de=>c.jsx("span",{className:"office-agent-chip",title:`${de.displayName} — ${de.seatId??n("office.noSeat")}`,onClick:Te=>{Te.stopPropagation(),Jl(de.id)},children:de.displayName.slice(0,8)},de.id)),xs&&ne.length0&&c.jsxs("select",{className:"assign-dropdown",value:"",onClick:de=>de.stopPropagation(),onChange:de=>{de.target.value&&id(K.id,de.target.value)},children:[c.jsx("option",{value:"",children:n("office.moveHere")}),se.map(de=>c.jsxs("option",{value:de.id,children:[de.displayName," (",ys.find(Te=>Te.id===Lr.find($e=>$e.id===de.id)?.officeId)?.name??"?",")"]},de.id))]})]})]},K.id)})}),c.jsxs("div",{className:"section-label",children:[n("office.activeAgents")," ",c.jsx("span",{className:"count-badge",children:W.length})]}),c.jsxs("div",{className:"agent-list",children:[W.map(K=>c.jsxs("div",{className:`agent-row ${z===K.agent_id?"selected":""}`,children:[c.jsxs("button",{className:"agent-row-main",onClick:()=>Jl(K.agent_id),children:[c.jsx("span",{className:`dot ${K.status}`}),c.jsxs("div",{className:"agent-info",children:[c.jsx("span",{className:"agent-name",children:K.name}),c.jsx("span",{className:"agent-spec",children:K.specialties.slice(0,2).join(" · ")||n("common.general")})]})]}),xs&&(vi===K.agent_id?c.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:c.jsx("span",{className:"spinner-inline"})}):Fn===K.agent_id?c.jsxs("span",{className:"del-confirm",children:[c.jsx("span",{className:"del-confirm-label",children:n("office.deleteQuestion")}),c.jsx("button",{className:"del-confirm-yes",onClick:()=>{bn(K.agent_id),Yn(null),o.current?.deleteAgent(K.agent_id)},children:n("common.yes")}),c.jsx("button",{className:"del-confirm-no",onClick:()=>Yn(null),children:n("common.no")})]}):c.jsx("button",{className:"agent-del",title:n("office.removeAgent",{name:K.name}),onClick:()=>Yn(K.agent_id),children:"×"}))]},K.agent_id)),W.length===0&&c.jsx("div",{className:"empty-state",children:n("office.emptyAgents")})]}),hi&&c.jsxs("div",{className:"agent-detail",children:[c.jsx("div",{className:"agent-detail-name",children:hi.displayName}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:n("common.state")}),c.jsx("span",{className:"detail-value",children:i("agent.status",hi.state)||hi.state})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:n("common.tool")}),c.jsx("span",{className:"detail-value",children:hi.currentTool??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:n("common.task")}),c.jsx("span",{className:"detail-value",children:hi.taskSummary??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:n("app.page.office")}),c.jsx("select",{className:"detail-select",value:hi.officeId,onChange:K=>{id(K.target.value,hi.id)},disabled:!xs,children:ys.map(K=>c.jsx("option",{value:K.id,children:K.name},K.id))})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:n("common.seat")}),c.jsxs("select",{className:"detail-select",value:hi.seatId??"",onChange:K=>{K.target.value&&Ql(hi.id,K.target.value)},disabled:!xs,children:[c.jsx("option",{value:"",children:"—"}),Oo.map(K=>{const B=K.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,se=>se.toUpperCase()),ne=K.assigned&&K.assignedTo!==hi.id;return c.jsxs("option",{value:K.id,disabled:ne,children:[B,ne?` (${K.assignedTo})`:K.assignedTo===hi.id?" ✓":""]},K.id)})]})]})]}),Lr.length>W.length&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"section-label",children:[n("office.characters"),c.jsx("button",{className:"inline-btn",onClick:()=>$(K=>!K),children:n(T?"office.hideSub":"office.showSub")})]}),c.jsx("div",{className:"agent-list",children:Lr.filter(K=>!W.some(B=>B.agent_id===K.id)).map(K=>c.jsxs("button",{className:`agent-row-simple ${z===K.id?"selected":""}`,onClick:()=>Jl(K.id),children:[K.isSubagent&&c.jsx("span",{className:"sub-badge",children:"SUB"}),c.jsx("span",{className:"agent-name",children:K.displayName}),c.jsxs("span",{className:"agent-spec",children:[K.state,K.currentTool?` · ${K.currentTool}`:""]})]},K.id))})]})]})})})]}),J&&c.jsxs("div",{className:"dev-overlay",children:[c.jsxs("div",{className:"dev-header",children:[c.jsx("span",{className:"dev-title",children:n("dev.tools")}),c.jsx("button",{className:"icon-btn",onClick:()=>D(!1),children:"✕"})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:n("dev.connection")}),c.jsxs("div",{className:"input-row",children:[c.jsx("input",{value:m,onChange:K=>h(K.target.value),placeholder:"ws://..."}),c.jsx("button",{className:"send-btn",onClick:bp,children:"↩"})]})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:n("dev.evolution")}),c.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((K,B)=>{const ne=K.toLowerCase(),se=ne in Lo?Lo[ne]:!1,de=`dev.phase.${ne}`;return c.jsxs("div",{className:"evo-phase-group",children:[B>0&&c.jsx("div",{className:"evo-connector"}),c.jsxs("div",{className:`evo-node ${se?"active":""}`,children:[c.jsx("div",{className:"evo-dot"}),c.jsx("span",{className:"evo-label",children:n(de)})]})]},K)})}),c.jsx("div",{className:"list",children:(b?.skills.recent??[]).slice(-6).reverse().map((K,B)=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:K.skill_name}),c.jsx("span",{className:"muted mono",children:K.version})]},`${K.skill_name}-${K.timestamp}-${B}`))})]}),c.jsxs("div",{className:"dev-group",children:[c.jsxs("div",{className:"dev-label",children:[n("dev.events"),c.jsx("select",{className:"inline-select",value:V,onChange:K=>Y(K.target.value),children:rd.map(K=>c.jsx("option",{value:K,children:K},K))})]}),c.jsx("div",{className:"event-log",children:vp.slice(0,30).map(K=>c.jsxs("div",{className:"log-row",children:[c.jsx("span",{className:"log-time",children:new Date(K.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),c.jsx("span",{className:"log-type",children:K.type}),c.jsx("span",{className:"log-agent",children:K.agent_id}),c.jsx("span",{className:"log-data",children:bee(K.data)})]},K.event_id))})]}),Object.keys(b?.channels??{}).length>0&&c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:n("dev.channels")}),Object.entries(b?.channels??{}).map(([K,B])=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:K}),c.jsx("span",{className:"muted",children:String(B.last_type??"idle")})]},K))]})]}),qt&&c.jsx("div",{className:Xt==="error"?"toast-error":"toast-success",children:qt}),c.jsx(Eee,{taskId:Vn,sessions:Kt.sessions,agents:W,onClose:()=>En(null)})]})}class Iee extends At.Component{constructor(){super(...arguments),this.state={error:null,info:""}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] React crashed:",t,n),this.setState({info:n.componentStack??""})}render(){return this.state.error?c.jsxs("div",{style:{padding:32,color:"#ff6b6b",background:"#1a1a2e",minHeight:"100vh",fontFamily:"monospace"},children:[c.jsx("h2",{children:"UI Error — React crashed"}),c.jsx("pre",{style:{whiteSpace:"pre-wrap",fontSize:13},children:this.state.error.message}),c.jsxs("details",{open:!0,style:{marginTop:12,fontSize:12,color:"#ccc"},children:[c.jsx("summary",{children:"Stack trace"}),c.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.error.stack})]}),this.state.info&&c.jsxs("details",{style:{marginTop:12,fontSize:12,color:"#888"},children:[c.jsx("summary",{children:"Component stack"}),c.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.info})]}),c.jsx("button",{onClick:()=>{this.setState({error:null,info:""})},style:{marginTop:16,padding:"8px 16px",background:"#6366f1",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"Try to recover"})]}):this.props.children}}window.addEventListener("error",e=>{console.error("[Global] Uncaught error:",e.error??e.message)});window.addEventListener("unhandledrejection",e=>{console.error("[Global] Unhandled promise rejection:",e.reason)});const Kv=document.getElementById("root");if(!Kv)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{y3.createRoot(Kv).render(c.jsx(Iee,{children:c.jsx(jD,{children:c.jsx(Nee,{})})}))}catch(e){console.error("React render error:",e),Kv.innerHTML=`

React Error: ${e}

`} diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-Bi8YIzQv.js b/opc/plugins/office_ui/frontend_dist/assets/index-Bi8YIzQv.js deleted file mode 100644 index 680f74f..0000000 --- a/opc/plugins/office_ui/frontend_dist/assets/index-Bi8YIzQv.js +++ /dev/null @@ -1,206 +0,0 @@ -import{g as pa,r as o3}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();var yg={exports:{}},Bc={};var zk;function a3(){if(zk)return Bc;zk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(i,r,o){var a=null;if(o!==void 0&&(a=""+o),r.key!==void 0&&(a=""+r.key),"key"in r){o={};for(var c in r)c!=="key"&&(o[c]=r[c])}else o=r;return r=o.ref,{$$typeof:e,type:i,key:a,ref:r!==void 0?r:null,props:o}}return Bc.Fragment=t,Bc.jsx=n,Bc.jsxs=n,Bc}var Pk;function l3(){return Pk||(Pk=1,yg.exports=a3()),yg.exports}var u=l3(),xg={exports:{}},jt={};var Bk;function c3(){if(Bk)return jt;Bk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(q){return q===null||typeof q!="object"?null:(q=g&&q[g]||q["@@iterator"],typeof q=="function"?q:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,S={};function w(q,Q,D){this.props=q,this.context=Q,this.refs=S,this.updater=D||v}w.prototype.isReactComponent={},w.prototype.setState=function(q,Q){if(typeof q!="object"&&typeof q!="function"&&q!=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,q,Q,"setState")},w.prototype.forceUpdate=function(q){this.updater.enqueueForceUpdate(this,q,"forceUpdate")};function k(){}k.prototype=w.prototype;function j(q,Q,D){this.props=q,this.context=Q,this.refs=S,this.updater=D||v}var N=j.prototype=new k;N.constructor=j,b(N,w.prototype),N.isPureReactComponent=!0;var z=Array.isArray;function T(){}var M={H:null,A:null,T:null,S:null},L=Object.prototype.hasOwnProperty;function A(q,Q,D){var K=D.ref;return{$$typeof:e,type:q,key:Q,ref:K!==void 0?K:null,props:D}}function O(q,Q){return A(q.type,Q,q.props)}function I(q){return typeof q=="object"&&q!==null&&q.$$typeof===e}function $(q){var Q={"=":"=0",":":"=2"};return"$"+q.replace(/[=:]/g,function(D){return Q[D]})}var G=/\/+/g;function P(q,Q){return typeof q=="object"&&q!==null&&q.key!=null?$(""+q.key):Q.toString(36)}function F(q){switch(q.status){case"fulfilled":return q.value;case"rejected":throw q.reason;default:switch(typeof q.status=="string"?q.then(T,T):(q.status="pending",q.then(function(Q){q.status==="pending"&&(q.status="fulfilled",q.value=Q)},function(Q){q.status==="pending"&&(q.status="rejected",q.reason=Q)})),q.status){case"fulfilled":return q.value;case"rejected":throw q.reason}}throw q}function V(q,Q,D,K,ne){var ee=typeof q;(ee==="undefined"||ee==="boolean")&&(q=null);var te=!1;if(q===null)te=!0;else switch(ee){case"bigint":case"string":case"number":te=!0;break;case"object":switch(q.$$typeof){case e:case t:te=!0;break;case h:return te=q._init,V(te(q._payload),Q,D,K,ne)}}if(te)return ne=ne(q),te=K===""?"."+P(q,0):K,z(ne)?(D="",te!=null&&(D=te.replace(G,"$&/")+"/"),V(ne,Q,D,"",function(he){return he})):ne!=null&&(I(ne)&&(ne=O(ne,D+(ne.key==null||q&&q.key===ne.key?"":(""+ne.key).replace(G,"$&/")+"/")+te)),Q.push(ne)),1;te=0;var oe=K===""?".":K+":";if(z(q))for(var le=0;le>>1,W=V[Z];if(0>>1;Zr(D,U))Kr(ne,D)?(V[Z]=ne,V[K]=U,Z=K):(V[Z]=D,V[Q]=U,Z=Q);else if(Kr(ne,U))V[Z]=ne,V[K]=U,Z=K;else break e}}return Y}function r(V,Y){var U=V.sortIndex-Y.sortIndex;return U!==0?U:V.id-Y.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 a=Date,c=a.now();e.unstable_now=function(){return a.now()-c}}var d=[],m=[],h=1,p=null,g=3,x=!1,v=!1,b=!1,S=!1,w=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;function N(V){for(var Y=n(m);Y!==null;){if(Y.callback===null)i(m);else if(Y.startTime<=V)i(m),Y.sortIndex=Y.expirationTime,t(d,Y);else break;Y=n(m)}}function z(V){if(b=!1,N(V),!v)if(n(d)!==null)v=!0,T||(T=!0,$());else{var Y=n(m);Y!==null&&F(z,Y.startTime-V)}}var T=!1,M=-1,L=5,A=-1;function O(){return S?!0:!(e.unstable_now()-AV&&O());){var Z=p.callback;if(typeof Z=="function"){p.callback=null,g=p.priorityLevel;var W=Z(p.expirationTime<=V);if(V=e.unstable_now(),typeof W=="function"){p.callback=W,N(V),Y=!0;break t}p===n(d)&&i(d),N(V)}else i(d);p=n(d)}if(p!==null)Y=!0;else{var q=n(m);q!==null&&F(z,q.startTime-V),Y=!1}}break e}finally{p=null,g=U,x=!1}Y=void 0}}finally{Y?$():T=!1}}}var $;if(typeof j=="function")$=function(){j(I)};else if(typeof MessageChannel<"u"){var G=new MessageChannel,P=G.port2;G.port1.onmessage=I,$=function(){P.postMessage(null)}}else $=function(){w(I,0)};function F(V,Y){M=w(function(){V(e.unstable_now())},Y)}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(V){V.callback=null},e.unstable_forceFrameRate=function(V){0>V||125Z?(V.sortIndex=U,t(m,V),n(d)===null&&V===n(m)&&(b?(k(M),M=-1):b=!0,F(z,U-Z))):(V.sortIndex=W,t(d,V),v||x||(v=!0,T||(T=!0,$()))),V},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(V){var Y=g;return function(){var U=g;g=Y;try{return V.apply(this,arguments)}finally{g=U}}}})(_g)),_g}var Fk;function d3(){return Fk||(Fk=1,bg.exports=u3()),bg.exports}var kg={exports:{}},Oi={};var Vk;function f3(){if(Vk)return Oi;Vk=1;var e=$l();function t(d){var m="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(),kg.exports=f3(),kg.exports}var qk;function m3(){if(qk)return $c;qk=1;var e=d3(),t=$l(),n=lE();function i(s){var l="https://react.dev/errors/"+s;if(1W||(s.current=Z[W],Z[W]=null,W--)}function D(s,l){W++,Z[W]=s.current,s.current=l}var K=q(null),ne=q(null),ee=q(null),te=q(null);function oe(s,l){switch(D(ee,l),D(ne,s),D(K,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?ok(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=ok(l),s=ak(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}Q(K),D(K,s)}function le(){Q(K),Q(ne),Q(ee)}function he(s){s.memoizedState!==null&&D(te,s);var l=K.current,f=ak(l,s.type);l!==f&&(D(ne,s),D(K,f))}function Te(s){ne.current===s&&(Q(K),Q(ne)),te.current===s&&(Q(te),Oc._currentValue=U)}var be,je;function Ve(s){if(be===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);be=l&&l[1]||"",je=-1)":-1_||re[y]!==xe[_]){var Ee=` -`+re[y].replace(" at new "," at ");return s.displayName&&Ee.includes("")&&(Ee=Ee.replace("",s.displayName)),Ee}while(1<=y&&0<=_);break}}}finally{Ye=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?Ve(f):""}function ct(s,l){switch(s.tag){case 26:case 27:case 5:return Ve(s.type);case 16:return Ve("Lazy");case 13:return s.child!==l&&l!==null?Ve("Suspense Fallback"):Ve("Suspense");case 19:return Ve("SuspenseList");case 0:case 15:return $e(s.type,!1);case 11:return $e(s.type.render,!1);case 1:return $e(s.type,!0);case 31:return Ve("Activity");default:return""}}function It(s){try{var l="",f=null;do l+=ct(s,f),f=s,s=s.return;while(s);return l}catch(y){return` -Error generating stack: `+y.message+` -`+y.stack}}var yt=Object.prototype.hasOwnProperty,Vt=e.unstable_scheduleCallback,ge=e.unstable_cancelCallback,me=e.unstable_shouldYield,Ge=e.unstable_requestPaint,Ke=e.unstable_now,pt=e.unstable_getCurrentPriorityLevel,ce=e.unstable_ImmediatePriority,Ce=e.unstable_UserBlockingPriority,Le=e.unstable_NormalPriority,Fe=e.unstable_LowPriority,Qe=e.unstable_IdlePriority,wt=e.log,Ct=e.unstable_setDisableYieldValue,dt=null,_e=null;function et(s){if(typeof wt=="function"&&Ct(s),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(dt,s)}catch{}}var Ze=Math.clz32?Math.clz32:Pt,it=Math.log,De=Math.LN2;function Pt(s){return s>>>=0,s===0?32:31-(it(s)/De|0)|0}var ri=256,Bt=262144,Dt=4194304;function Cn(s){var l=s&42;if(l!==0)return l;switch(s&-s){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 s&261888;case 262144:case 524288:case 1048576:case 2097152:return s&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return s}}function Tt(s,l,f){var y=s.pendingLanes;if(y===0)return 0;var _=0,E=s.suspendedLanes,H=s.pingedLanes;s=s.warmLanes;var X=y&134217727;return X!==0?(y=X&~E,y!==0?_=Cn(y):(H&=X,H!==0?_=Cn(H):f||(f=X&~s,f!==0&&(_=Cn(f))))):(X=y&~E,X!==0?_=Cn(X):H!==0?_=Cn(H):f||(f=y&~s,f!==0&&(_=Cn(f)))),_===0?0:l!==0&&l!==_&&(l&E)===0&&(E=_&-_,f=l&-l,E>=f||E===32&&(f&4194048)!==0)?l:_}function $t(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function Mn(s,l){switch(s){case 1:case 2:case 4:case 8:case 64:return l+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 l+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 xt(){var s=Dt;return Dt<<=1,(Dt&62914560)===0&&(Dt=4194304),s}function Jn(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function Nn(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function tt(s,l,f,y,_,E){var H=s.pendingLanes;s.pendingLanes=f,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=f,s.entangledLanes&=f,s.errorRecoveryDisabledLanes&=f,s.shellSuspendCounter=0;var X=s.entanglements,re=s.expirationTimes,xe=s.hiddenUpdates;for(f=H&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var bt=/[\n"\\]/g;function Rt(s){return s.replace(bt,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ue(s,l,f,y,_,E,H,X){s.name="",H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"?s.type=H:s.removeAttribute("type"),l!=null?H==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+Pn(l)):s.value!==""+Pn(l)&&(s.value=""+Pn(l)):H!=="submit"&&H!=="reset"||s.removeAttribute("value"),l!=null?Oe(s,H,Pn(l)):f!=null?Oe(s,H,Pn(f)):y!=null&&s.removeAttribute("value"),_==null&&E!=null&&(s.defaultChecked=!!E),_!=null&&(s.checked=_&&typeof _!="function"&&typeof _!="symbol"),X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?s.name=""+Pn(X):s.removeAttribute("name")}function we(s,l,f,y,_,E,H,X){if(E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(s.type=E),l!=null||f!=null){if(!(E!=="submit"&&E!=="reset"||l!=null)){pe(s);return}f=f!=null?""+Pn(f):"",l=l!=null?""+Pn(l):f,X||l===s.value||(s.value=l),s.defaultValue=l}y=y??_,y=typeof y!="function"&&typeof y!="symbol"&&!!y,s.checked=X?s.checked:!!y,s.defaultChecked=!!y,H!=null&&typeof H!="function"&&typeof H!="symbol"&&typeof H!="boolean"&&(s.name=H),pe(s)}function Oe(s,l,f){l==="number"&&Me(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function Ue(s,l,f,y){if(s=s.options,l){l={};for(var _=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ga=!1;if(Dr)try{var Ui={};Object.defineProperty(Ui,"passive",{get:function(){ga=!0}}),window.addEventListener("test",Ui,Ui),window.removeEventListener("test",Ui,Ui)}catch{ga=!1}var tr=null,Kl=null,ya=null;function xa(){if(ya)return ya;var s,l=Kl,f=l.length,y,_="value"in tr?tr.value:tr.textContent,E=_.length;for(s=0;s=nc),mb=" ",pb=!1;function hb(s,l){switch(s){case"keyup":return tc.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gb(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var ba=!1;function TA(s,l){switch(s){case"compositionend":return gb(l);case"keypress":return l.which!==32?null:(pb=!0,mb);case"textInput":return s=l.data,s===mb&&pb?null:s;default:return null}}function RA(s,l){if(ba)return s==="compositionend"||!Sp&&hb(s,l)?(s=xa(),ya=Kl=tr=null,ba=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-s};s=y}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=wb(f)}}function jb(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?jb(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function Eb(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=Me(s.document);l instanceof s.HTMLIFrameElement;){try{var f=typeof l.contentWindow.location.href=="string"}catch{f=!1}if(f)s=l.contentWindow;else break;l=Me(s.document)}return l}function jp(s){var l=s&&s.nodeName&&s.nodeName.toLowerCase();return l&&(l==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||l==="textarea"||s.contentEditable==="true")}var BA=Dr&&"documentMode"in document&&11>=document.documentMode,_a=null,Ep=null,oc=null,Np=!1;function Nb(s,l,f){var y=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;Np||_a==null||_a!==Me(y)||(y=_a,"selectionStart"in y&&jp(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),oc&&sc(oc,y)||(oc=y,y=Gd(Ep,"onSelect"),0>=H,_-=H,Kr=1<<32-Ze(l)+_|f<<_|y,Zr=E+s}else Kr=1<Lt?(Jt=nt,nt=null):Jt=nt.sibling;var fn=ve(fe,nt,ye[Lt],Ie);if(fn===null){nt===null&&(nt=Jt);break}s&&nt&&fn.alternate===null&&l(fe,nt),ae=E(fn,ae,Lt),dn===null?lt=fn:dn.sibling=fn,dn=fn,nt=Jt}if(Lt===ye.length)return f(fe,nt),tn&&ys(fe,Lt),lt;if(nt===null){for(;LtLt?(Jt=nt,nt=null):Jt=nt.sibling;var ho=ve(fe,nt,fn.value,Ie);if(ho===null){nt===null&&(nt=Jt);break}s&&nt&&ho.alternate===null&&l(fe,nt),ae=E(ho,ae,Lt),dn===null?lt=ho:dn.sibling=ho,dn=ho,nt=Jt}if(fn.done)return f(fe,nt),tn&&ys(fe,Lt),lt;if(nt===null){for(;!fn.done;Lt++,fn=ye.next())fn=Re(fe,fn.value,Ie),fn!==null&&(ae=E(fn,ae,Lt),dn===null?lt=fn:dn.sibling=fn,dn=fn);return tn&&ys(fe,Lt),lt}for(nt=y(nt);!fn.done;Lt++,fn=ye.next())fn=Se(nt,fe,Lt,fn.value,Ie),fn!==null&&(s&&fn.alternate!==null&&nt.delete(fn.key===null?Lt:fn.key),ae=E(fn,ae,Lt),dn===null?lt=fn:dn.sibling=fn,dn=fn);return s&&nt.forEach(function(s3){return l(fe,s3)}),tn&&ys(fe,Lt),lt}function wn(fe,ae,ye,Ie){if(typeof ye=="object"&&ye!==null&&ye.type===b&&ye.key===null&&(ye=ye.props.children),typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case x:e:{for(var lt=ye.key;ae!==null;){if(ae.key===lt){if(lt=ye.type,lt===b){if(ae.tag===7){f(fe,ae.sibling),Ie=_(ae,ye.props.children),Ie.return=fe,fe=Ie;break e}}else if(ae.elementType===lt||typeof lt=="object"&<!==null&<.$$typeof===L&&Fo(lt)===ae.type){f(fe,ae.sibling),Ie=_(ae,ye.props),fc(Ie,ye),Ie.return=fe,fe=Ie;break e}f(fe,ae);break}else l(fe,ae);ae=ae.sibling}ye.type===b?(Ie=zo(ye.props.children,fe.mode,Ie,ye.key),Ie.return=fe,fe=Ie):(Ie=cd(ye.type,ye.key,ye.props,null,fe.mode,Ie),fc(Ie,ye),Ie.return=fe,fe=Ie)}return H(fe);case v:e:{for(lt=ye.key;ae!==null;){if(ae.key===lt)if(ae.tag===4&&ae.stateNode.containerInfo===ye.containerInfo&&ae.stateNode.implementation===ye.implementation){f(fe,ae.sibling),Ie=_(ae,ye.children||[]),Ie.return=fe,fe=Ie;break e}else{f(fe,ae);break}else l(fe,ae);ae=ae.sibling}Ie=Op(ye,fe.mode,Ie),Ie.return=fe,fe=Ie}return H(fe);case L:return ye=Fo(ye),wn(fe,ae,ye,Ie)}if(F(ye))return Je(fe,ae,ye,Ie);if($(ye)){if(lt=$(ye),typeof lt!="function")throw Error(i(150));return ye=lt.call(ye),gt(fe,ae,ye,Ie)}if(typeof ye.then=="function")return wn(fe,ae,gd(ye),Ie);if(ye.$$typeof===j)return wn(fe,ae,fd(fe,ye),Ie);yd(fe,ye)}return typeof ye=="string"&&ye!==""||typeof ye=="number"||typeof ye=="bigint"?(ye=""+ye,ae!==null&&ae.tag===6?(f(fe,ae.sibling),Ie=_(ae,ye),Ie.return=fe,fe=Ie):(f(fe,ae),Ie=Dp(ye,fe.mode,Ie),Ie.return=fe,fe=Ie),H(fe)):f(fe,ae)}return function(fe,ae,ye,Ie){try{dc=0;var lt=wn(fe,ae,ye,Ie);return Aa=null,lt}catch(nt){if(nt===Ra||nt===pd)throw nt;var dn=rr(29,nt,null,fe.mode);return dn.lanes=Ie,dn.return=fe,dn}}}var Uo=Zb(!0),Qb=Zb(!1),Zs=!1;function Wp(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Yp(s,l){s=s.updateQueue,l.updateQueue===s&&(l.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function Qs(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Js(s,l,f){var y=s.updateQueue;if(y===null)return null;if(y=y.shared,(gn&2)!==0){var _=y.pending;return _===null?l.next=l:(l.next=_.next,_.next=l),y.pending=l,l=ld(s),Ob(s,null,f),l}return ad(s,y,l,f),ld(s)}function mc(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Vn(s,f)}}function Xp(s,l){var f=s.updateQueue,y=s.alternate;if(y!==null&&(y=y.updateQueue,f===y)){var _=null,E=null;if(f=f.firstBaseUpdate,f!==null){do{var H={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};E===null?_=E=H:E=E.next=H,f=f.next}while(f!==null);E===null?_=E=l:E=E.next=l}else _=E=l;f={baseState:y.baseState,firstBaseUpdate:_,lastBaseUpdate:E,shared:y.shared,callbacks:y.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var Kp=!1;function pc(){if(Kp){var s=Ta;if(s!==null)throw s}}function hc(s,l,f,y){Kp=!1;var _=s.updateQueue;Zs=!1;var E=_.firstBaseUpdate,H=_.lastBaseUpdate,X=_.shared.pending;if(X!==null){_.shared.pending=null;var re=X,xe=re.next;re.next=null,H===null?E=xe:H.next=xe,H=re;var Ee=s.alternate;Ee!==null&&(Ee=Ee.updateQueue,X=Ee.lastBaseUpdate,X!==H&&(X===null?Ee.firstBaseUpdate=xe:X.next=xe,Ee.lastBaseUpdate=re))}if(E!==null){var Re=_.baseState;H=0,Ee=xe=re=null,X=E;do{var ve=X.lane&-536870913,Se=ve!==X.lane;if(Se?(Qt&ve)===ve:(y&ve)===ve){ve!==0&&ve===Ia&&(Kp=!0),Ee!==null&&(Ee=Ee.next={lane:0,tag:X.tag,payload:X.payload,callback:null,next:null});e:{var Je=s,gt=X;ve=l;var wn=f;switch(gt.tag){case 1:if(Je=gt.payload,typeof Je=="function"){Re=Je.call(wn,Re,ve);break e}Re=Je;break e;case 3:Je.flags=Je.flags&-65537|128;case 0:if(Je=gt.payload,ve=typeof Je=="function"?Je.call(wn,Re,ve):Je,ve==null)break e;Re=p({},Re,ve);break e;case 2:Zs=!0}}ve=X.callback,ve!==null&&(s.flags|=64,Se&&(s.flags|=8192),Se=_.callbacks,Se===null?_.callbacks=[ve]:Se.push(ve))}else Se={lane:ve,tag:X.tag,payload:X.payload,callback:X.callback,next:null},Ee===null?(xe=Ee=Se,re=Re):Ee=Ee.next=Se,H|=ve;if(X=X.next,X===null){if(X=_.shared.pending,X===null)break;Se=X,X=Se.next,Se.next=null,_.lastBaseUpdate=Se,_.shared.pending=null}}while(!0);Ee===null&&(re=Re),_.baseState=re,_.firstBaseUpdate=xe,_.lastBaseUpdate=Ee,E===null&&(_.shared.lanes=0),ro|=H,s.lanes=H,s.memoizedState=Re}}function Jb(s,l){if(typeof s!="function")throw Error(i(191,s));s.call(l)}function e_(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sE?E:8;var H=V.T,X={};V.T=X,hh(s,!1,l,f);try{var re=_(),xe=V.S;if(xe!==null&&xe(X,re),re!==null&&typeof re=="object"&&typeof re.then=="function"){var Ee=YA(re,y);xc(s,l,Ee,cr(s))}else xc(s,l,y,cr(s))}catch(Re){xc(s,l,{then:function(){},status:"rejected",reason:Re},cr())}finally{Y.p=E,H!==null&&X.types!==null&&(H.types=X.types),V.T=H}}function eM(){}function mh(s,l,f,y){if(s.tag!==5)throw Error(i(476));var _=A_(s).queue;R_(s,_,l,U,f===null?eM:function(){return M_(s),f(y)})}function A_(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_s,lastRenderedState:U},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_s,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function M_(s){var l=A_(s);l.next===null&&(l=s.alternate.memoizedState),xc(s,l.next.queue,{},cr())}function ph(){return Ri(Oc)}function D_(){return ii().memoizedState}function O_(){return ii().memoizedState}function tM(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=cr();s=Qs(f);var y=Js(l,s,f);y!==null&&(Ki(y,l,f),mc(y,l,f)),l={cache:Vp()},s.payload=l;return}l=l.return}}function nM(s,l,f){var y=cr();f={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},Ed(s)?z_(l,f):(f=Ap(s,l,f,y),f!==null&&(Ki(f,s,y),P_(f,l,y)))}function L_(s,l,f){var y=cr();xc(s,l,f,y)}function xc(s,l,f,y){var _={lane:y,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(Ed(s))z_(l,_);else{var E=s.alternate;if(s.lanes===0&&(E===null||E.lanes===0)&&(E=l.lastRenderedReducer,E!==null))try{var H=l.lastRenderedState,X=E(H,f);if(_.hasEagerState=!0,_.eagerState=X,ir(X,H))return ad(s,l,_,0),jn===null&&od(),!1}catch{}if(f=Ap(s,l,_,y),f!==null)return Ki(f,s,y),P_(f,l,y),!0}return!1}function hh(s,l,f,y){if(y={lane:2,revertLane:Wh(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},Ed(s)){if(l)throw Error(i(479))}else l=Ap(s,f,y,2),l!==null&&Ki(l,s,2)}function Ed(s){var l=s.alternate;return s===At||l!==null&&l===At}function z_(s,l){Da=bd=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function P_(s,l,f){if((f&4194048)!==0){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Vn(s,f)}}var vc={readContext:Ri,use:Sd,useCallback:Xn,useContext:Xn,useEffect:Xn,useImperativeHandle:Xn,useLayoutEffect:Xn,useInsertionEffect:Xn,useMemo:Xn,useReducer:Xn,useRef:Xn,useState:Xn,useDebugValue:Xn,useDeferredValue:Xn,useTransition:Xn,useSyncExternalStore:Xn,useId:Xn,useHostTransitionStatus:Xn,useFormState:Xn,useActionState:Xn,useOptimistic:Xn,useMemoCache:Xn,useCacheRefresh:Xn};vc.useEffectEvent=Xn;var B_={readContext:Ri,use:Sd,useCallback:function(s,l){return $i().memoizedState=[s,l===void 0?null:l],s},useContext:Ri,useEffect:k_,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,Cd(4194308,4,j_.bind(null,l,s),f)},useLayoutEffect:function(s,l){return Cd(4194308,4,s,l)},useInsertionEffect:function(s,l){Cd(4,2,s,l)},useMemo:function(s,l){var f=$i();l=l===void 0?null:l;var y=s();if(qo){et(!0);try{s()}finally{et(!1)}}return f.memoizedState=[y,l],y},useReducer:function(s,l,f){var y=$i();if(f!==void 0){var _=f(l);if(qo){et(!0);try{f(l)}finally{et(!1)}}}else _=l;return y.memoizedState=y.baseState=_,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:_},y.queue=s,s=s.dispatch=nM.bind(null,At,s),[y.memoizedState,s]},useRef:function(s){var l=$i();return s={current:s},l.memoizedState=s},useState:function(s){s=lh(s);var l=s.queue,f=L_.bind(null,At,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:dh,useDeferredValue:function(s,l){var f=$i();return fh(f,s,l)},useTransition:function(){var s=lh(!1);return s=R_.bind(null,At,s.queue,!0,!1),$i().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var y=At,_=$i();if(tn){if(f===void 0)throw Error(i(407));f=f()}else{if(f=l(),jn===null)throw Error(i(349));(Qt&127)!==0||o_(y,l,f)}_.memoizedState=f;var E={value:f,getSnapshot:l};return _.queue=E,k_(l_.bind(null,y,E,s),[s]),y.flags|=2048,La(9,{destroy:void 0},a_.bind(null,y,E,f,l),null),f},useId:function(){var s=$i(),l=jn.identifierPrefix;if(tn){var f=Zr,y=Kr;f=(y&~(1<<32-Ze(y)-1)).toString(32)+f,l="_"+l+"R_"+f,f=_d++,0<\/script>",E=E.removeChild(E.firstChild);break;case"select":E=typeof y.is=="string"?H.createElement("select",{is:y.is}):H.createElement("select"),y.multiple?E.multiple=!0:y.size&&(E.size=y.size);break;default:E=typeof y.is=="string"?H.createElement(_,{is:y.is}):H.createElement(_)}}E[Ht]=l,E[Ft]=y;e:for(H=l.child;H!==null;){if(H.tag===5||H.tag===6)E.appendChild(H.stateNode);else if(H.tag!==4&&H.tag!==27&&H.child!==null){H.child.return=H,H=H.child;continue}if(H===l)break e;for(;H.sibling===null;){if(H.return===null||H.return===l)break e;H=H.return}H.sibling.return=H.return,H=H.sibling}l.stateNode=E;e:switch(Mi(E,_,y),_){case"button":case"input":case"select":case"textarea":y=!!y.autoFocus;break e;case"img":y=!0;break e;default:y=!1}y&&Ss(l)}}return An(l),Ih(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==y&&Ss(l);else{if(typeof y!="string"&&l.stateNode===null)throw Error(i(166));if(s=ee.current,Ea(l)){if(s=l.stateNode,f=l.memoizedProps,y=null,_=Ti,_!==null)switch(_.tag){case 27:case 5:y=_.memoizedProps}s[Ht]=l,s=!!(s.nodeValue===f||y!==null&&y.suppressHydrationWarning===!0||rk(s.nodeValue,f)),s||Xs(l,!0)}else s=Wd(s).createTextNode(y),s[Ht]=l,l.stateNode=s}return An(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(y=Ea(l),f!==null){if(s===null){if(!y)throw Error(i(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(i(557));s[Ht]=l}else Po(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;An(l),s=!1}else f=Bp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?(or(l),l):(or(l),null);if((l.flags&128)!==0)throw Error(i(558))}return An(l),null;case 13:if(y=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(_=Ea(l),y!==null&&y.dehydrated!==null){if(s===null){if(!_)throw Error(i(318));if(_=l.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(i(317));_[Ht]=l}else Po(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;An(l),_=!1}else _=Bp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=_),_=!0;if(!_)return l.flags&256?(or(l),l):(or(l),null)}return or(l),(l.flags&128)!==0?(l.lanes=f,l):(f=y!==null,s=s!==null&&s.memoizedState!==null,f&&(y=l.child,_=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(_=y.alternate.memoizedState.cachePool.pool),E=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(E=y.memoizedState.cachePool.pool),E!==_&&(y.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),Ad(l,l.updateQueue),An(l),null);case 4:return le(),s===null&&Zh(l.stateNode.containerInfo),An(l),null;case 10:return vs(l.type),An(l),null;case 19:if(Q(ni),y=l.memoizedState,y===null)return An(l),null;if(_=(l.flags&128)!==0,E=y.rendering,E===null)if(_)_c(y,!1);else{if(Kn!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(E=vd(s),E!==null){for(l.flags|=128,_c(y,!1),s=E.updateQueue,l.updateQueue=s,Ad(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)Lb(f,s),f=f.sibling;return D(ni,ni.current&1|2),tn&&ys(l,y.treeForkCount),l.child}s=s.sibling}y.tail!==null&&Ke()>zd&&(l.flags|=128,_=!0,_c(y,!1),l.lanes=4194304)}else{if(!_)if(s=vd(E),s!==null){if(l.flags|=128,_=!0,s=s.updateQueue,l.updateQueue=s,Ad(l,s),_c(y,!0),y.tail===null&&y.tailMode==="hidden"&&!E.alternate&&!tn)return An(l),null}else 2*Ke()-y.renderingStartTime>zd&&f!==536870912&&(l.flags|=128,_=!0,_c(y,!1),l.lanes=4194304);y.isBackwards?(E.sibling=l.child,l.child=E):(s=y.last,s!==null?s.sibling=E:l.child=E,y.last=E)}return y.tail!==null?(s=y.tail,y.rendering=s,y.tail=s.sibling,y.renderingStartTime=Ke(),s.sibling=null,f=ni.current,D(ni,_?f&1|2:f&1),tn&&ys(l,y.treeForkCount),s):(An(l),null);case 22:case 23:return or(l),Qp(),y=l.memoizedState!==null,s!==null?s.memoizedState!==null!==y&&(l.flags|=8192):y&&(l.flags|=8192),y?(f&536870912)!==0&&(l.flags&128)===0&&(An(l),l.subtreeFlags&6&&(l.flags|=8192)):An(l),f=l.updateQueue,f!==null&&Ad(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),y=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(y=l.memoizedState.cachePool.pool),y!==f&&(l.flags|=2048),s!==null&&Q(Ho),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),vs(ai),An(l),null;case 25:return null;case 30:return null}throw Error(i(156,l.tag))}function aM(s,l){switch(zp(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return vs(ai),le(),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return Te(l),null;case 31:if(l.memoizedState!==null){if(or(l),l.alternate===null)throw Error(i(340));Po()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if(or(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(i(340));Po()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return Q(ni),null;case 4:return le(),null;case 10:return vs(l.type),null;case 22:case 23:return or(l),Qp(),s!==null&&Q(Ho),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return vs(ai),null;case 25:return null;default:return null}}function c1(s,l){switch(zp(l),l.tag){case 3:vs(ai),le();break;case 26:case 27:case 5:Te(l);break;case 4:le();break;case 31:l.memoizedState!==null&&or(l);break;case 13:or(l);break;case 19:Q(ni);break;case 10:vs(l.type);break;case 22:case 23:or(l),Qp(),s!==null&&Q(Ho);break;case 24:vs(ai)}}function kc(s,l){try{var f=l.updateQueue,y=f!==null?f.lastEffect:null;if(y!==null){var _=y.next;f=_;do{if((f.tag&s)===s){y=void 0;var E=f.create,H=f.inst;y=E(),H.destroy=y}f=f.next}while(f!==_)}}catch(X){_n(l,l.return,X)}}function no(s,l,f){try{var y=l.updateQueue,_=y!==null?y.lastEffect:null;if(_!==null){var E=_.next;y=E;do{if((y.tag&s)===s){var H=y.inst,X=H.destroy;if(X!==void 0){H.destroy=void 0,_=l;var re=f,xe=X;try{xe()}catch(Ee){_n(_,re,Ee)}}}y=y.next}while(y!==E)}}catch(Ee){_n(l,l.return,Ee)}}function u1(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{e_(l,f)}catch(y){_n(s,s.return,y)}}}function d1(s,l,f){f.props=Go(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(y){_n(s,l,y)}}function Sc(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var y=s.stateNode;break;case 30:y=s.stateNode;break;default:y=s.stateNode}typeof f=="function"?s.refCleanup=f(y):f.current=y}}catch(_){_n(s,l,_)}}function Qr(s,l){var f=s.ref,y=s.refCleanup;if(f!==null)if(typeof y=="function")try{y()}catch(_){_n(s,l,_)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f=="function")try{f(null)}catch(_){_n(s,l,_)}else f.current=null}function f1(s){var l=s.type,f=s.memoizedProps,y=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&y.focus();break e;case"img":f.src?y.src=f.src:f.srcSet&&(y.srcset=f.srcSet)}}catch(_){_n(s,s.return,_)}}function Th(s,l,f){try{var y=s.stateNode;IM(y,s.type,f,l),y[Ft]=l}catch(_){_n(s,s.return,_)}}function m1(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&co(s.type)||s.tag===4}function Rh(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||m1(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&co(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Ah(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?(f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f).insertBefore(s,l):(l=f.nodeType===9?f.body:f.nodeName==="HTML"?f.ownerDocument.body:f,l.appendChild(s),f=f._reactRootContainer,f!=null||l.onclick!==null||(l.onclick=Ni));else if(y!==4&&(y===27&&co(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(Ah(s,l,f),s=s.sibling;s!==null;)Ah(s,l,f),s=s.sibling}function Md(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(y!==4&&(y===27&&co(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(Md(s,l,f),s=s.sibling;s!==null;)Md(s,l,f),s=s.sibling}function p1(s){var l=s.stateNode,f=s.memoizedProps;try{for(var y=s.type,_=l.attributes;_.length;)l.removeAttributeNode(_[0]);Mi(l,y,f),l[Ht]=s,l[Ft]=f}catch(E){_n(s,s.return,E)}}var ws=!1,ui=!1,Mh=!1,h1=typeof WeakSet=="function"?WeakSet:Set,Si=null;function lM(s,l){if(s=s.containerInfo,eg=ef,s=Eb(s),jp(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var y=f.getSelection&&f.getSelection();if(y&&y.rangeCount!==0){f=y.anchorNode;var _=y.anchorOffset,E=y.focusNode;y=y.focusOffset;try{f.nodeType,E.nodeType}catch{f=null;break e}var H=0,X=-1,re=-1,xe=0,Ee=0,Re=s,ve=null;t:for(;;){for(var Se;Re!==f||_!==0&&Re.nodeType!==3||(X=H+_),Re!==E||y!==0&&Re.nodeType!==3||(re=H+y),Re.nodeType===3&&(H+=Re.nodeValue.length),(Se=Re.firstChild)!==null;)ve=Re,Re=Se;for(;;){if(Re===s)break t;if(ve===f&&++xe===_&&(X=H),ve===E&&++Ee===y&&(re=H),(Se=Re.nextSibling)!==null)break;Re=ve,ve=Re.parentNode}Re=Se}f=X===-1||re===-1?null:{start:X,end:re}}else f=null}f=f||{start:0,end:0}}else f=null;for(tg={focusedElem:s,selectionRange:f},ef=!1,Si=l;Si!==null;)if(l=Si,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,Si=s;else for(;Si!==null;){switch(l=Si,E=l.alternate,s=l.flags,l.tag){case 0:if((s&4)!==0&&(s=l.updateQueue,s=s!==null?s.events:null,s!==null))for(f=0;f title"))),Mi(E,y,f),E[Ht]=s,Xt(E),y=E;break e;case"link":var H=_k("link","href",_).get(y+(f.href||""));if(H){for(var X=0;Xwn&&(H=wn,wn=gt,gt=H);var fe=Cb(X,gt),ae=Cb(X,wn);if(fe&&ae&&(Se.rangeCount!==1||Se.anchorNode!==fe.node||Se.anchorOffset!==fe.offset||Se.focusNode!==ae.node||Se.focusOffset!==ae.offset)){var ye=Re.createRange();ye.setStart(fe.node,fe.offset),Se.removeAllRanges(),gt>wn?(Se.addRange(ye),Se.extend(ae.node,ae.offset)):(ye.setEnd(ae.node,ae.offset),Se.addRange(ye))}}}}for(Re=[],Se=X;Se=Se.parentNode;)Se.nodeType===1&&Re.push({element:Se,left:Se.scrollLeft,top:Se.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;Xf?32:f,V.T=null,f=$h,$h=null;var E=oo,H=Is;if(vi=0,Ha=oo=null,Is=0,(gn&6)!==0)throw Error(i(331));var X=gn;if(gn|=4,j1(E.current),S1(E,E.current,H,f),gn=X,Ic(0,!1),_e&&typeof _e.onPostCommitFiberRoot=="function")try{_e.onPostCommitFiberRoot(dt,E)}catch{}return!0}finally{Y.p=_,V.T=y,U1(s,l)}}function G1(s,l,f){l=_r(f,l),l=vh(s.stateNode,l,2),s=Js(s,l,2),s!==null&&(Nn(s,2),Jr(s))}function _n(s,l,f){if(s.tag===3)G1(s,s,f);else for(;l!==null;){if(l.tag===3){G1(l,s,f);break}else if(l.tag===1){var y=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(so===null||!so.has(y))){s=_r(f,s),f=W_(2),y=Js(l,f,2),y!==null&&(Y_(f,y,l,s),Nn(y,2),Jr(y));break}}l=l.return}}function Uh(s,l,f){var y=s.pingCache;if(y===null){y=s.pingCache=new dM;var _=new Set;y.set(l,_)}else _=y.get(l),_===void 0&&(_=new Set,y.set(l,_));_.has(f)||(Lh=!0,_.add(f),s=gM.bind(null,s,l,f),l.then(s,s))}function gM(s,l,f){var y=s.pingCache;y!==null&&y.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,jn===s&&(Qt&f)===f&&(Kn===4||Kn===3&&(Qt&62914560)===Qt&&300>Ke()-Ld?(gn&2)===0&&Fa(s,0):zh|=f,$a===Qt&&($a=0)),Jr(s)}function W1(s,l){l===0&&(l=xt()),s=Lo(s,l),s!==null&&(Nn(s,l),Jr(s))}function yM(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),W1(s,f)}function xM(s,l){var f=0;switch(s.tag){case 31:case 13:var y=s.stateNode,_=s.memoizedState;_!==null&&(f=_.retryLane);break;case 19:y=s.stateNode;break;case 22:y=s.stateNode._retryCache;break;default:throw Error(i(314))}y!==null&&y.delete(l),W1(s,f)}function vM(s,l){return Vt(s,l)}var Vd=null,Ua=null,qh=!1,Ud=!1,Gh=!1,lo=0;function Jr(s){s!==Ua&&s.next===null&&(Ua===null?Vd=Ua=s:Ua=Ua.next=s),Ud=!0,qh||(qh=!0,_M())}function Ic(s,l){if(!Gh&&Ud){Gh=!0;do for(var f=!1,y=Vd;y!==null;){if(s!==0){var _=y.pendingLanes;if(_===0)var E=0;else{var H=y.suspendedLanes,X=y.pingedLanes;E=(1<<31-Ze(42|s)+1)-1,E&=_&~(H&~X),E=E&201326741?E&201326741|1:E?E|2:0}E!==0&&(f=!0,Z1(y,E))}else E=Qt,E=Tt(y,y===jn?E:0,y.cancelPendingCommit!==null||y.timeoutHandle!==-1),(E&3)===0||$t(y,E)||(f=!0,Z1(y,E));y=y.next}while(f);Gh=!1}}function bM(){Y1()}function Y1(){Ud=qh=!1;var s=0;lo!==0&&RM()&&(s=lo);for(var l=Ke(),f=null,y=Vd;y!==null;){var _=y.next,E=X1(y,l);E===0?(y.next=null,f===null?Vd=_:f.next=_,_===null&&(Ua=f)):(f=y,(s!==0||(E&3)!==0)&&(Ud=!0)),y=_}vi!==0&&vi!==5||Ic(s),lo!==0&&(lo=0)}function X1(s,l){for(var f=s.suspendedLanes,y=s.pingedLanes,_=s.expirationTimes,E=s.pendingLanes&-62914561;0X)break;var Ee=re.transferSize,Re=re.initiatorType;Ee&&sk(Re)&&(re=re.responseEnd,H+=Ee*(re"u"?null:document;function yk(s,l,f){var y=qa;if(y&&typeof l=="string"&&l){var _=Rt(l);_='link[rel="'+s+'"][href="'+_+'"]',typeof f=="string"&&(_+='[crossorigin="'+f+'"]'),gk.has(_)||(gk.add(_),s={rel:s,crossOrigin:f,href:l},y.querySelector(_)===null&&(l=y.createElement("link"),Mi(l,"link",s),Xt(l),y.head.appendChild(l)))}}function $M(s){Ts.D(s),yk("dns-prefetch",s,null)}function HM(s,l){Ts.C(s,l),yk("preconnect",s,l)}function FM(s,l,f){Ts.L(s,l,f);var y=qa;if(y&&s&&l){var _='link[rel="preload"][as="'+Rt(l)+'"]';l==="image"&&f&&f.imageSrcSet?(_+='[imagesrcset="'+Rt(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(_+='[imagesizes="'+Rt(f.imageSizes)+'"]')):_+='[href="'+Rt(s)+'"]';var E=_;switch(l){case"style":E=Ga(s);break;case"script":E=Wa(s)}Er.has(E)||(s=p({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),Er.set(E,s),y.querySelector(_)!==null||l==="style"&&y.querySelector(Mc(E))||l==="script"&&y.querySelector(Dc(E))||(l=y.createElement("link"),Mi(l,"link",s),Xt(l),y.head.appendChild(l)))}}function VM(s,l){Ts.m(s,l);var f=qa;if(f&&s){var y=l&&typeof l.as=="string"?l.as:"script",_='link[rel="modulepreload"][as="'+Rt(y)+'"][href="'+Rt(s)+'"]',E=_;switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":E=Wa(s)}if(!Er.has(E)&&(s=p({rel:"modulepreload",href:s},l),Er.set(E,s),f.querySelector(_)===null)){switch(y){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(Dc(E)))return}y=f.createElement("link"),Mi(y,"link",s),Xt(y),f.head.appendChild(y)}}}function UM(s,l,f){Ts.S(s,l,f);var y=qa;if(y&&s){var _=pn(y).hoistableStyles,E=Ga(s);l=l||"default";var H=_.get(E);if(!H){var X={loading:0,preload:null};if(H=y.querySelector(Mc(E)))X.loading=5;else{s=p({rel:"stylesheet",href:s,"data-precedence":l},f),(f=Er.get(E))&&lg(s,f);var re=H=y.createElement("link");Xt(re),Mi(re,"link",s),re._p=new Promise(function(xe,Ee){re.onload=xe,re.onerror=Ee}),re.addEventListener("load",function(){X.loading|=1}),re.addEventListener("error",function(){X.loading|=2}),X.loading|=4,Xd(H,l,y)}H={type:"stylesheet",instance:H,count:1,state:X},_.set(E,H)}}}function qM(s,l){Ts.X(s,l);var f=qa;if(f&&s){var y=pn(f).hoistableScripts,_=Wa(s),E=y.get(_);E||(E=f.querySelector(Dc(_)),E||(s=p({src:s,async:!0},l),(l=Er.get(_))&&cg(s,l),E=f.createElement("script"),Xt(E),Mi(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function GM(s,l){Ts.M(s,l);var f=qa;if(f&&s){var y=pn(f).hoistableScripts,_=Wa(s),E=y.get(_);E||(E=f.querySelector(Dc(_)),E||(s=p({src:s,async:!0,type:"module"},l),(l=Er.get(_))&&cg(s,l),E=f.createElement("script"),Xt(E),Mi(E,"link",s),f.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},y.set(_,E))}}function xk(s,l,f,y){var _=(_=ee.current)?Yd(_):null;if(!_)throw Error(i(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=Ga(f.href),f=pn(_).hoistableStyles,y=f.get(l),y||(y={type:"style",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=Ga(f.href);var E=pn(_).hoistableStyles,H=E.get(s);if(H||(_=_.ownerDocument||_,H={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},E.set(s,H),(E=_.querySelector(Mc(s)))&&!E._p&&(H.instance=E,H.state.loading=5),Er.has(s)||(f={rel:"preload",as:"style",href:f.href,crossOrigin:f.crossOrigin,integrity:f.integrity,media:f.media,hrefLang:f.hrefLang,referrerPolicy:f.referrerPolicy},Er.set(s,f),E||WM(_,s,f,H.state))),l&&y===null)throw Error(i(528,""));return H}if(l&&y!==null)throw Error(i(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Wa(f),f=pn(_).hoistableScripts,y=f.get(l),y||(y={type:"script",instance:null,count:0,state:null},f.set(l,y)),y):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,s))}}function Ga(s){return'href="'+Rt(s)+'"'}function Mc(s){return'link[rel="stylesheet"]['+s+"]"}function vk(s){return p({},s,{"data-precedence":s.precedence,precedence:null})}function WM(s,l,f,y){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?y.loading=1:(l=s.createElement("link"),y.preload=l,l.addEventListener("load",function(){return y.loading|=1}),l.addEventListener("error",function(){return y.loading|=2}),Mi(l,"link",f),Xt(l),s.head.appendChild(l))}function Wa(s){return'[src="'+Rt(s)+'"]'}function Dc(s){return"script[async]"+s}function bk(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var y=s.querySelector('style[data-href~="'+Rt(f.href)+'"]');if(y)return l.instance=y,Xt(y),y;var _=p({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return y=(s.ownerDocument||s).createElement("style"),Xt(y),Mi(y,"style",_),Xd(y,f.precedence,s),l.instance=y;case"stylesheet":_=Ga(f.href);var E=s.querySelector(Mc(_));if(E)return l.state.loading|=4,l.instance=E,Xt(E),E;y=vk(f),(_=Er.get(_))&&lg(y,_),E=(s.ownerDocument||s).createElement("link"),Xt(E);var H=E;return H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Mi(E,"link",y),l.state.loading|=4,Xd(E,f.precedence,s),l.instance=E;case"script":return E=Wa(f.src),(_=s.querySelector(Dc(E)))?(l.instance=_,Xt(_),_):(y=f,(_=Er.get(E))&&(y=p({},f),cg(y,_)),s=s.ownerDocument||s,_=s.createElement("script"),Xt(_),Mi(_,"link",y),s.head.appendChild(_),l.instance=_);case"void":return null;default:throw Error(i(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(y=l.instance,l.state.loading|=4,Xd(y,f.precedence,s));return l.instance}function Xd(s,l,f){for(var y=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),_=y.length?y[y.length-1]:null,E=_,H=0;H title"):null)}function YM(s,l,f){if(f===1||l.itemProp!=null)return!1;switch(s){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;return l.rel==="stylesheet"?(s=l.disabled,typeof l.precedence=="string"&&s==null):!0;case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Sk(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function XM(s,l,f,y){if(f.type==="stylesheet"&&(typeof y.media!="string"||matchMedia(y.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var _=Ga(y.href),E=l.querySelector(Mc(_));if(E){l=E._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Zd.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=E,Xt(E);return}E=l.ownerDocument||l,y=vk(y),(_=Er.get(_))&&lg(y,_),E=E.createElement("link"),Xt(E);var H=E;H._p=new Promise(function(X,re){H.onload=X,H.onerror=re}),Mi(E,"link",y),f.instance=E}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Zd.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var ug=0;function KM(s,l){return s.stylesheets&&s.count===0&&Jd(s,s.stylesheets),0ug?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(y),clearTimeout(_)}}:null}function Zd(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Jd(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Qd=null;function Jd(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Qd=new Map,l.forEach(ZM,s),Qd=null,Zd.call(s))}function ZM(s,l){if(!(l.state.loading&4)){var f=Qd.get(s);if(f)var y=f.get(null);else{f=new Map,Qd.set(s,f);for(var _=s.querySelectorAll("link[data-precedence],style[data-precedence]"),E=0;E<_.length;E++){var H=_[E];(H.nodeName==="LINK"||H.getAttribute("media")!=="not all")&&(f.set(H.dataset.precedence,H),y=H)}y&&f.set(null,y)}_=l.instance,H=_.getAttribute("data-precedence"),E=f.get(H)||y,E===y&&f.set(null,_),f.set(H,_),this.count++,y=Zd.bind(this),_.addEventListener("load",y),_.addEventListener("error",y),E?E.parentNode.insertBefore(_,E.nextSibling):(s=s.nodeType===9?s.head:s,s.insertBefore(_,s.firstChild)),l.state.loading|=4}}var Oc={$$typeof:j,Provider:null,Consumer:null,_currentValue:U,_currentValue2:U,_threadCount:0};function QM(s,l,f,y,_,E,H,X,re){this.tag=1,this.containerInfo=s,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Jn(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Jn(0),this.hiddenUpdates=Jn(null),this.identifierPrefix=y,this.onUncaughtError=_,this.onCaughtError=E,this.onRecoverableError=H,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=re,this.incompleteTransitions=new Map}function wk(s,l,f,y,_,E,H,X,re,xe,Ee,Re){return s=new QM(s,l,f,H,re,xe,Ee,Re,X),l=1,E===!0&&(l|=24),E=rr(3,null,null,l),s.current=E,E.stateNode=s,l=Vp(),l.refCount++,s.pooledCache=l,l.refCount++,E.memoizedState={element:y,isDehydrated:f,cache:l},Wp(E),s}function Ck(s){return s?(s=wa,s):wa}function jk(s,l,f,y,_,E){_=Ck(_),y.context===null?y.context=_:y.pendingContext=_,y=Qs(l),y.payload={element:f},E=E===void 0?null:E,E!==null&&(y.callback=E),f=Js(s,y,l),f!==null&&(Ki(f,s,l),mc(f,s,l))}function Ek(s,l){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var f=s.retryLane;s.retryLane=f!==0&&f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),vg.exports=m3(),vg.exports}var h3=p3();const g3=2e3,y3=3e4,x3=20,Wk=100,v3=3e4,b3=1e4,_3=new Set(["collab_sync","kanban_create_board","kanban_create_task","kanban_update_task","kanban_move_task","kanban_delete_board","kanban_delete_task","kanban_assign","kanban_status","kanban_switch_view","run_task","create_session","session_send","interaction_reply","session_update_config","session_delete","session_detail","session_stop","session_resume","session_complete","session_update_title","secretary_send","project_index","comms_state","comms_read_message"]),k3=3e4,S3=3e4;class w3{constructor(t,n){this.url=t,this.handlers=n,this.ws=null,this.reconnectTimer=null,this.closedByUser=!1,this.reconnectAttempt=0,this.pendingQueue=[],this.heartbeatTimer=null,this.pongTimer=null,this.pendingSessionDetailRequests=[],this.pendingInteractionReplies=new Map}updateUrl(t){this.url=t}connect(){this.closedByUser=!1,this.handlers.onStatus?.("connecting"),this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempt=0,this.handlers.onStatus?.("connected"),this.flushPendingQueue(),this.startHeartbeat()},this.ws.onmessage=t=>{this.handleMessage(t.data)},this.ws.onerror=()=>{this.handlers.onStatus?.("error","WebSocket error")},this.ws.onclose=()=>{this.stopHeartbeat(),this.failPendingSessionDetailRequests("connection_closed"),this.requeuePendingInteractionReplies(),this.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.failPendingSessionDetailRequests("disconnected"),this.failPendingInteractionReplies("disconnected"),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null);const t=this.ws;this.ws=null,t&&(t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null,t.close())}send(t){if(!this.ensureProjectScope(t))return"send-failed";const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return this.pendingQueue.length{const c=this.pendingInteractionReplies.get(n.clientRequestId);c&&(clearTimeout(c.timeout),c.resolve({ok:!1,accepted:!1,error:"duplicate_request_in_flight",checkpoint_id:n.checkpointId,checkpoint_type:n.checkpointType,client_request_id:n.clientRequestId}));const d=setTimeout(()=>{const h=this.pendingInteractionReplies.get(n.clientRequestId);if(!h)return;this.pendingInteractionReplies.delete(n.clientRequestId);const p=this.pendingQueue.indexOf(h.wireData);p>=0&&this.pendingQueue.splice(p,1),h.resolve({ok:!1,accepted:!1,error:"request_timeout",checkpoint_id:n.checkpointId,checkpoint_type:n.checkpointType,client_request_id:n.clientRequestId})},S3);this.pendingInteractionReplies.set(n.clientRequestId,{wireData:o,timeout:d,resolve:a});const m=this.send(r);(m==="queue-full"||m==="send-failed")&&this.failInteractionReply(n.clientRequestId,m==="queue-full"?"send_queue_full":"send_failed")})}deleteSession(t,n){const i=this.requireProjectId(t,"session_delete");this.send({type:"session_delete",project_id:i,task_id:n})}sessionUpdateTitle(t,n,i){const r=this.requireProjectId(t,"session_update_title");this.send({type:"session_update_title",project_id:r,task_id:n,title:i})}sessionUpdateConfig(t,n,i,r,o,a){const c=this.requireProjectId(t,"session_update_config");this.send({type:"session_update_config",project_id:c,task_id:n,exec_mode:i,company_profile:r,preferred_agent:o,org_id:a})}sessionStop(t,n){const i=this.requireProjectId(t,"session_stop");this.send({type:"session_stop",project_id:i,task_id:n})}sessionResume(t,n,i,r,o){const a=this.requireProjectId(t,"session_resume");this.send({type:"session_resume",project_id:a,task_id:n,runtime_session_id:i,checkpoint_id:r,content:o})}sessionComplete(t,n){const i=this.requireProjectId(t,"session_complete");this.send({type:"session_complete",project_id:i,task_id:n})}sessionDetail(t,n,i){const r=this.requireProjectId(t,"session_detail"),o=i?.detailLevel??"summary";return new Promise(a=>{const c={type:"session_detail",project_id:r,task_id:n,limit:i?.limit,before_created_at:i?.beforeCreatedAt,before_message_id:i?.beforeMessageId,detail_level:o,include:i?.include,view_generation:i?.viewGeneration},d=JSON.stringify(c),m={projectId:r,taskId:n,detailLevel:o,viewGeneration:i?.viewGeneration,historyPage:i?.beforeCreatedAt!==void 0||!!i?.beforeMessageId,wireData:d,queued:!1,settled:!1,timeout:null,resolve:a};m.timeout=setTimeout(()=>{const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.timeoutSessionDetailRequest(p)},k3),this.pendingSessionDetailRequests.push(m);const h=this.send(c);if(m.queued=h==="queued",h==="queue-full"||h==="send-failed"){const p=this.pendingSessionDetailRequests.indexOf(m);p>=0&&this.failSessionDetailRequest(p,h==="queue-full"?"send_queue_full":"send_failed")}})}secretarySend(t,n){const i=this.requireProjectId(t,"secretary_send");this.send({type:"secretary_send",project_id:i,content:n})}listProjects(){this.send({type:"list_projects"})}createProject(t){this.send({type:"create_project",project_id:this.normalizeProjectId(t)})}deleteProject(t){this.send({type:"delete_project",project_id:this.normalizeProjectId(t)})}switchProject(t,n){this.send({type:"switch_project",project_id:this.normalizeProjectId(t),switch_seq:n})}orgInfo(){this.send({type:"org_info"})}talentImport(t){this.send({type:"talent_import",repo_path:t})}talentList(){this.send({type:"talent_list"})}talentScanLocal(){this.send({type:"talent_scan_local"})}talentImportSelected(t){this.send({type:"talent_import_selected",template_ids:t})}talentHire(t,n,i,r){this.send({type:"talent_hire",template_id:t,role_id:n,employee_name:i,org_id:r})}employeeDetail(t){this.send({type:"employee_detail",employee_id:t})}reorgList(t){const n=this.requireProjectId(t,"reorg_list");this.send({type:"reorg_list",project_id:n})}importEmployeeAsAgent(t,n){this.send({type:"import_employee_as_agent",employee_id:t,office_id:n})}marketBrowse(){this.send({type:"market_browse"})}marketPreview(t){this.send({type:"market_preview",preset_id:t})}marketApplyPreset(t,n="namespace"){this.send({type:"market_apply_preset",preset_id:t,strategy:n})}marketListInstalled(){this.send({type:"market_list_installed"})}marketExport(t){this.send({type:"market_export",...t})}marketInstall(t,n="namespace"){this.send({type:"market_install",path:t,strategy:n})}marketUninstall(t){this.send({type:"market_uninstall",package_id:t})}addRole(t,n,i,r="owner",o){this.send({type:"add_role",role_id:t,name:n,responsibility:i,reports_to:r,icon:o||null})}bulkAddRoles(t){this.send({type:"bulk_add_roles",roles:t})}updateRole(t,n){this.send({type:"update_role",role_id:t,...n})}bindExternalTeam(t){this.send({type:"bind_external_team",external_agent:"jiuwenswarm",scope:"subtree",collapse_subtree:!0,provider_mode:"team",...t})}unbindExternalTeam(t){this.send({type:"unbind_external_team",...t})}deleteRole(t){this.send({type:"delete_role",role_id:t})}updateRuntimePolicy(t){this.send({type:"update_runtime_policy",policy:t})}updateOrgStrategy(t){this.send({type:"update_org_strategy",...t})}resetArchitecture(){this.send({type:"reset_architecture"})}orgConfigExport(){this.send({type:"org_config_export"})}orgConfigImport(t,n){this.send({type:"org_config_import",yaml:t,dry_run:n})}orgSavedList(){this.send({type:"org_saved_list"})}orgSavedSaveAs(t,n){this.send({type:"org_saved_save_as",name:t,overwrite:n})}orgSavedCreate(t,n){this.send({type:"org_saved_create",organization_name:t,members:n})}orgSavedLoad(t){this.send({type:"org_saved_load",name:t})}orgSavedDelete(t){this.send({type:"org_saved_delete",name:t})}commsState(t,n){const i=this.requireProjectId(t,"comms_state");this.send({type:"comms_state",project_id:i,...n||{}})}commsReadMessage(t,n,i){const r=this.requireProjectId(t,"comms_read_message");this.send({type:"comms_read_message",project_id:r,task_id:String(i?.task_id??""),path:n})}normalizeProjectId(t){return typeof t=="string"?t.trim():""}requireProjectId(t,n){const i=this.normalizeProjectId(t);if(!i)throw new Error(`${n} requires non-empty project_id`);return i}ensureProjectScope(t){const n=typeof t.type=="string"?t.type:"";if(!_3.has(n))return!0;const i=this.normalizeProjectId(t.project_id??t.projectId);if(!i){const r=`${n} requires non-empty project_id`;return console.error(`[wsClient] ${r}`,t),this.handlers.onAck?.({ok:!1,error:r,action:n}),!1}return t.project_id=i,!0}handleMessage(t){if(typeof t!="string")return;let n=null;try{n=JSON.parse(t)}catch{return}if(!(!n||typeof n!="object"||!("type"in n)))try{switch(n.type){case"snapshot":this.handlers.onSnapshot?.(n.payload);break;case"event":this.handlers.onEvent?.(n.payload);break;case"ack":{const i=this.settleSessionDetailRequest(n.payload),r=this.settleInteractionReply(i);this.handlers.onAck?.(r);break}case"channel_created":this.handlers.onChannelCreated?.(n.payload);break;case"board_task_created":case"board_task_moved":this.handlers.onBoardEvent?.(n.payload);break;case"board_task_status_changed":case"execution_mode_resolved":case"project_run_updated":case"seat_digest_updated":case"work_item_batch_updated":case"session_runtime_control":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"cross_office_collab":this.handlers.onCrossOfficeCollab?.(n.payload);break;case"chat_new_message":case"chat_channel_created":case"kanban_updated":case"kanban_board_created":case"collab_sync_push":case"project_index_push":this.handlers.onCollabMessage?.(n.type,n.payload);break;case"agent_runtime_update":this.handlers.onAgentRuntimeUpdate?.(n.payload);break;case"runtime_status_sync":this.handlers.onRuntimeStatusSync?.(n.payload);break;case"worker_notification":this.handlers.onWorkerNotification?.(n.payload);break;case"session_progress":this.handlers.onSessionProgress?.(n.payload);break;case"work_item_progress":this.handlers.onWorkItemProgress?.(n.payload);break;case"kanban_view_data":this.handlers.onKanbanViewData?.(n.payload);break;case"session_created":this.handlers.onSessionCreated?.(n.payload);break;case"session_updated":this.handlers.onSessionUpdated?.(n.payload);break;case"session_message":this.handlers.onSessionMessage?.(n.payload);break;case"session_title_updated":this.handlers.onSessionTitleUpdated?.(n.payload);break;case"session_deleted":this.handlers.onSessionDeleted?.(n.payload);break;case"child_session_created":this.handlers.onChildSessionCreated?.(n.payload);break;case"project_switched":this.handlers.onProjectSwitched?.(n.payload);break;case"project_deleted":this.handlers.onProjectDeleted?.(n.payload);break;case"org_info":this.handlers.onOrgInfo?.(n.payload);break;case"comms_state":this.handlers.onCommsState?.(n.payload);break;case"comms_message":this.handlers.onCommsMessage?.(n.payload);break;case"comms_state_dirty":try{const i=typeof n.payload?.project_id=="string"?n.payload.project_id:"";i&&this.commsState(i)}catch{}break;case"talent_list":this.handlers.onTalentList?.(n.payload);break;case"talent_scan_local":this.handlers.onTalentScanLocal?.(n.payload);break;case"employee_detail":this.handlers.onEmployeeDetail?.(n.payload);break;case"reorg_list":this.handlers.onReorgList?.(n.payload);break;case"market_list_installed":this.handlers.onMarketListInstalled?.(n.payload);break;case"market_browse":this.handlers.onMarketBrowse?.(n.payload);break;case"market_preview":this.handlers.onMarketPreview?.(n.payload);break;case"org_config_export":this.handlers.onOrgConfigExport?.(n.payload);break;case"org_config_import":this.handlers.onOrgConfigImport?.(n.payload);break;case"org_saved_list":this.handlers.onOrgSavedList?.(n.payload);break;case"org_saved_save_as":this.handlers.onOrgSavedSaveAs?.(n.payload);break;case"org_saved_create":this.handlers.onOrgSavedCreate?.(n.payload);break;case"org_saved_load":this.handlers.onOrgSavedLoad?.(n.payload);break;case"org_saved_delete":this.handlers.onOrgSavedDelete?.(n.payload);break;case"pong":this.handlePong();break;default:break}}catch(i){console.error("[wsClient] Error handling message:",n.type,i)}}settleSessionDetailRequest(t){const n=typeof t.action=="string"?t.action.trim():"";if(!(n==="session_detail"||!n&&t.error==="store_not_ready"))return t;const r=this.normalizeProjectId(t.project_id??t.projectId),o=typeof t.task_id=="string"?t.task_id:"",a=t.detail_level==="full"?"full":t.detail_level==="summary"?"summary":"",c=typeof t.view_generation=="number"?t.view_generation:void 0,d=this.pendingSessionDetailRequests.findIndex(p=>(!r||p.projectId===r)&&(!o||p.taskId===o)&&(!a||p.detailLevel===a)&&(c===void 0||p.viewGeneration===c));if(d<0)return t;const[m]=this.pendingSessionDetailRequests.splice(d,1);m.timeout!==null&&clearTimeout(m.timeout);const h={...t,action:"session_detail",project_id:r||m.projectId,task_id:o||m.taskId,detail_level:a||m.detailLevel,client_history_page:m.historyPage};return m.settled||(m.settled=!0,m.resolve(h)),h}settleInteractionReply(t){if(String(t.action??"").trim()!=="interaction_reply")return t;const n=String(t.client_request_id??"").trim();if(!n)return t;const i=this.pendingInteractionReplies.get(n);if(!i)return t;this.pendingInteractionReplies.delete(n),clearTimeout(i.timeout);const r=this.pendingQueue.indexOf(i.wireData);return r>=0&&this.pendingQueue.splice(r,1),i.resolve({...t,ok:t.ok===!0,accepted:t.accepted===!0,checkpoint_id:String(t.checkpoint_id??""),checkpoint_type:String(t.checkpoint_type??""),client_request_id:n,error:typeof t.error=="string"?t.error:void 0,reason:typeof t.reason=="string"?t.reason:void 0,status:typeof t.status=="string"?t.status:void 0,deduplicated:t.deduplicated===!0}),t}failInteractionReply(t,n){const i=this.pendingInteractionReplies.get(t);if(!i)return;this.pendingInteractionReplies.delete(t),clearTimeout(i.timeout);const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1);let o="",a="";try{const c=JSON.parse(i.wireData);o=String(c.checkpoint_id??""),a=String(c.checkpoint_type??"")}catch{}i.resolve({ok:!1,accepted:!1,error:n,checkpoint_id:o,checkpoint_type:a,client_request_id:t})}failPendingInteractionReplies(t){for(const n of[...this.pendingInteractionReplies.keys()])this.failInteractionReply(n,t)}requeuePendingInteractionReplies(){for(const[t,n]of[...this.pendingInteractionReplies.entries()])if(!this.pendingQueue.includes(n.wireData)){if(this.pendingQueue.length>=Wk){this.failInteractionReply(t,"send_queue_full");continue}this.pendingQueue.push(n.wireData)}}timeoutSessionDetailRequest(t){const n=this.pendingSessionDetailRequests[t];if(n){if(n.queued){this.failSessionDetailRequest(t,"request_timeout");return}n.timeout!==null&&clearTimeout(n.timeout),n.timeout=null,n.settled||(n.settled=!0,n.resolve(this.sessionDetailFailurePayload(n,"request_timeout")))}}failSessionDetailRequest(t,n){const[i]=this.pendingSessionDetailRequests.splice(t,1);if(i){if(i.timeout!==null&&clearTimeout(i.timeout),i.queued){const r=this.pendingQueue.indexOf(i.wireData);r>=0&&this.pendingQueue.splice(r,1)}i.settled||i.resolve(this.sessionDetailFailurePayload(i,n))}}sessionDetailFailurePayload(t,n){return{ok:!1,action:"session_detail",error:n,project_id:t.projectId,task_id:t.taskId,detail_level:t.detailLevel,client_history_page:t.historyPage}}failPendingSessionDetailRequests(t){for(;this.pendingSessionDetailRequests.length>0;)this.failSessionDetailRequest(0,t)}flushPendingQueue(){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)return;const t=this.pendingQueue.splice(0);for(const n of t){const i=this.pendingSessionDetailRequests.findIndex(o=>o.queued&&o.wireData===n),r=[...this.pendingInteractionReplies.entries()].find(([,o])=>o.wireData===n)?.[0];try{this.ws.send(n),i>=0&&(this.pendingSessionDetailRequests[i].queued=!1)}catch{i>=0&&this.failSessionDetailRequest(i,"send_failed"),r&&this.failInteractionReply(r,"send_failed")}}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=window.setInterval(()=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},b3))},v3)}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}handlePong(){this.pongTimer!==null&&(window.clearTimeout(this.pongTimer),this.pongTimer=null)}scheduleReconnect(){if(this.reconnectTimer!==null)return;if(this.reconnectAttempt>=x3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(g3*Math.pow(2,this.reconnectAttempt),y3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var C3=o3();const Qi=pa(C3),R=32,Zn=20,mr=25,Yv=2,Yk=3,j3=Zn*Yk+Yv*(Yk-1),E3=mr,Sg=j3,Hc=E3,lu=R*8,ll=R*4,fl=R*20,cE=1.8,N3=cE,I3=cE,T3=30,R3=8,A3=-2,M3=.22,D3=5,O3=23;function L3(){if(typeof window>"u")return null;const e=o=>{const a=new URLSearchParams(o);return a.get("day")==="1"||a.get("daytime")==="1"?"day":a.get("night")==="1"?"night":null};let t=e(window.location.search||"");if(t)return t;const n=window.location.hash;if(!n)return null;const i=n.indexOf("?");if(i>=0&&(t=e(n.slice(i+1)),t))return t;const r=n.replace(/^#/,"");return r.includes("=")&&(t=e(r),t)?t:null}function cu(e=new Date){if(typeof window<"u")try{const n=L3();if(n==="day")return!0;if(n==="night")return!1;const i=window.localStorage?.getItem("opc_outdoor_override");if(i==="day")return!0;if(i==="night")return!1;if(window.localStorage?.getItem("opc_outdoor_day")==="1")return!0;if(window.localStorage?.getItem("opc_outdoor_night")==="1")return!1}catch{}const t=e.getHours();return t>=D3&&t<=O3}const Xk=11064556,Kk=3228986,z3=200,P3=100,B3=60,Of=2,Lf=20,uE=3,dE=6,Xa=2.5,$3=8,H3=15,Zk=5,Qk=10,F3=5,Jk=3,eS=2;function V3(e,t,n){const i=t||e.clientWidth||window.innerWidth-380,r=n||e.clientHeight||window.innerHeight-48,o=cu()?"#a8d4ec":"#31453a";return{type:Qi.CANVAS,parent:e,width:i,height:r,pixelArt:!0,backgroundColor:o,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Qi.Scale.RESIZE,autoCenter:Qi.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const U3=16,q3=32,tS=6;class G3 extends Qi.Scene{constructor(){super("Boot")}preload(){this.load.image("office-bg","assets/office-bg.png"),this.load.spritesheet("office-tileset-32","assets/office-tileset-32.png",{frameWidth:32,frameHeight:32});for(let n=0;n{t.clear(),t.fillStyle(4886745,1),t.fillRect(this.scale.width/2-100,this.scale.height/2-8,200*n,16)}),this.load.on("complete",()=>t.destroy())}create(){this.createCharacterAnimations(),console.log("[BootScene] All assets loaded"),this.scene.start("Office")}createCharacterAnimations(){const n=[{name:"down",row:0},{name:"up",row:1},{name:"right",row:2},{name:"left",row:2}];for(let i=0;i0)return t}}catch{}return mE()}function Mm(e){localStorage.setItem(fE,JSON.stringify(e))}function W3(e,t){const n=Qn(),i=n.find(r=>r.id===e);i&&(i.name=t,Mm(n))}function wg(e,t){const n=Qn();for(const r of n)r.assignedAgents=r.assignedAgents.filter(o=>o!==t);const i=n.find(r=>r.id===e);i&&i.assignedAgents.push(t),Mm(n)}function Y3(e){const t=Qn();for(const n of t)n.assignedAgents=n.assignedAgents.filter(i=>i!==e);Mm(t)}function X3(e){return Qn().find(t=>t.assignedAgents.includes(e))}function K3(e,t,n){const i=Qn(),r=i.find(o=>o.id===e);r&&(r.mapStr=t,r.seats=n,Mm(i))}function pE(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+Zn:Zn,n=[];for(let i=0;it.map(n=>n===0?".":"#").join(""))}function Li(e,t,n,i,r=t+i){return{x:Math.round(e*R),y:Math.round(t*R),w:Math.round(n*R),h:Math.round(i*R),depthY:Math.round(r*R)}}const Z3=[Li(8,4,4.3,3.35,7.15),Li(2.3,8.65,5.35,1.95,10.55),Li(11.1,8.55,3.1,1.7,10.45),Li(14.15,8.55,4.95,2,10.95),Li(2.1,11.45,3.05,1.8,12.95),Li(5.25,11.45,3.05,1.8,12.95),Li(8.45,11.45,3.05,1.8,12.95),Li(2.1,14.55,3.05,1.85,16.1),Li(5.25,14.55,3.05,1.85,16.1),Li(8.45,14.55,3.05,1.85,16.1),Li(14,12.15,4.85,3,15.3),Li(1,19.55,3.05,1.15,20.7),Li(4.45,20.45,3.35,1.35,21.8),Li(14.1,20.5,3.15,1.85,22.3),Li(8.05,23.1,4.2,1,24.1),Li(17,23.1,2.1,1,24.1)];class Xf{constructor(){this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null,this.tilesetFrames={shelfA:61,shelfB:62,waterCooler:105,waterCoolerAlt:106,fridge:108,vending:110,plantA:148,plantB:150,boxA:153,boxB:154,boxC:158}}clearSceneDecor(){for(const t of this.bgSprites)t.destroy();for(const t of this.foregroundSprites)t.destroy();for(const t of this.nameLabels)t.destroy();for(const t of this.decor)t.destroy();this.bgSprites=[],this.foregroundSprites=[],this.nameLabels=[],this.decor=[],this.outdoorBackdrop=null,this.outdoorParking=null}addForegroundOccluders(t,n){const i=n.offsetCol*R;for(const r of Z3){const o=t.add.image(i,0,"office-bg");o.setOrigin(0,0),o.setCrop(r.x,r.y,r.w,r.h),o.setDepth(r.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,i,r,o,a="#f5efe3",c="10px"){const d=t.add.text(n,i,r,{fontSize:c,fontFamily:"monospace",color:a,backgroundColor:o,padding:{left:4,right:4,top:2,bottom:2},resolution:2,align:"center"});return d.setOrigin(.5,.5),d.setDepth(-94),this.decor.push(d),d}addTilesetSprite(t,n,i,r,o=1){const a=t.add.image(n,i,"office-tileset-32",r);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const i=n+R*10.1,r=R*4.1,o=i+r+R*.15,a=o+R*1.1;return{gateCenterX:t/2,roadY:i,roadHeight:r,waterTopY:o,dockY:a,bottomY:n+fl}}paintStylizedParkingCar(t,n,i,r,o,a){const c=o?{outline:1314840,body:14240338,bodyMid:13057092,bodyDark:9316914,cabin:14706798,cabinHi:15894668,cabinLo:11546684,glass:6062264,glassDeep:3824776,glassHi:12116220,tire:1842724,tireOuter:1184794,bonnetHi:15233140}:{outline:1053728,body:4095176,bodyMid:3105960,bodyDark:2377848,cabin:6068444,cabinHi:8303856,cabinLo:3434664,glass:4878240,glassDeep:3164264,glassHi:11065599,tire:1842724,tireOuter:1184794,bonnetHi:7121128},d=(x,v,b,S,w,k=1)=>{t.fillStyle(w,k);const j=r?-x-b:x;t.fillRect(Math.round(n+j),Math.round(i+v),b,S)};t.fillStyle(988175,.28),t.fillEllipse(n,i+36,36,9),d(-16,-38,32,76,c.outline),d(-15,-37,30,74,c.body),d(-14,2,28,35,c.bodyDark),d(-14,-4,28,10,c.bodyMid),d(-13,8,26,22,c.body),d(-13,8,26,7,c.bonnetHi,.92),d(-13,-35,26,32,c.cabin),d(-13,-35,26,4,c.cabinHi),d(-13,-8,26,5,c.cabinLo),d(-11,-7,22,11,c.glassDeep),d(-11,-7,22,5,c.glass),d(-10,-6,8,3,c.glassHi),d(-1,-6,6,2,c.glassHi,.75),d(-16,-2,3,8,c.bodyDark),d(13,-2,3,8,c.bodyDark);const m=22,h=-30,p=7,g=9;for(const x of[m,h])d(-22,x,p,g,c.tire),d(15,x,p,g,c.tire),d(-22,x,1,g,c.tireOuter),d(15+p-1,x,1,g,c.tireOuter);for(const x of[m,h])d(-18,x+1,4,g-2,c.bodyDark),d(14,x+1,4,g-2,c.bodyDark);a&&(d(-12,33,5,4,16052970),d(7,33,5,4,16052970),d(-11,34,2,2,16775368),d(8,34,2,2,16775368),d(-13,-38,4,3,16733488),d(9,-38,4,3,13121568),d(-18,4,3,4,16763976),d(15,4,3,4,16752688)),d(-15,-37,30,1,c.cabinHi,.45),d(-14,28,28,1,0,.12)}buildOutdoorBackdrop(t,n,i,r,o,a){const c=t.add.graphics();c.setDepth(-320);const d=-lu,m=-ll,h=n+lu*2,p=i+ll+fl,g=d+h,x=i+fl,v=m+R*6.2,b=i+R*.35,S=i+R*4.25,w=i+R*5.9,{gateCenterX:k,roadY:j,roadHeight:N,waterTopY:z,dockY:T}=this.getOutdoorMetrics(n,i),M=o?{skyTop:7259376,skyBand:11066104,towerFar:8953780,towerNear:10268868,towerRoof:11847900,winColor:16777215,winAlpha:.22,facadeColor:14214384,facadeAlpha:.36,bridgeColor:12636384,bridgeAlpha:.92,grassBase:3831876,grassLawn:6076520,treeTrunk:3562560,treeMid:5023848,treeHi:7526532,grove0:3168312,grove1:5150816,grove2:6865016,fence:10127992,road:3948616,roadDash:14207120,curb:3551792,water:3508408,ripple:6073556,rippleHi:10017008,edgeGreen:5810280,edgeGreenHi:8310928,logoDirt:12105880,logoDirtHi:13684920}:{skyTop:2503493,skyBand:3494250,towerFar:1253426,towerNear:1911614,towerRoof:2373195,winColor:15979916,winAlpha:.42,facadeColor:3163484,facadeAlpha:.45,bridgeColor:2306631,bridgeAlpha:.95,grassBase:3232315,grassLawn:5210447,treeTrunk:2835501,treeMid:4156223,treeHi:5539412,grove0:2637864,grove1:4222784,grove2:6130776,fence:8153685,road:3159098,roadDash:13676922,curb:3025447,water:2181730,ripple:3967139,rippleHi:7913424,edgeGreen:7310175,edgeGreenHi:9417850,logoDirt:10265207,logoDirtHi:12301197};if(c.fillStyle(M.skyTop,1),c.fillRect(d,m,h,R*8.2),c.fillStyle(M.skyBand,1),c.fillRect(d,m+R*6.15,h,R*2.05),o){c.fillStyle(16775400,.45);for(let ge=0;ge<5;ge++){const me=d+h*(.12+ge*.19)+ge*17%40,Ge=m+R*(1.4+ge%3*.35);c.fillEllipse(me,Ge,R*2.2,R*.95)}c.fillStyle(16773808,.92),c.fillCircle(g-R*2.4,m+R*1.25,R*.85),c.fillStyle(16776432,.35),c.fillCircle(g-R*2.4,m+R*1.25,R*1.45)}c.fillStyle(M.towerFar,1);for(let ge=d-R;geR*1.9&&c.fillRect(ge+pt-8,Le+4,3,3));c.fillStyle(M.facadeColor,M.facadeAlpha),c.fillRect(ge+pt*.5,Ce+R*.4,2,ce-R*.8),c.fillStyle(M.towerNear,1)}c.fillStyle(M.bridgeColor,M.bridgeAlpha);for(let ge=d+R*6;ge(ge.offsetCol+2.95)*R),O=R*.9,I=n-R*1.8,$=6,G=R*1.7,P=i+R*.08,F=R*2.05,V=P+F,Y=R*9.4,U=k-Y/2,Z=V-2,W=R*3.1,q=Z+W,Q=R*2.3;c.fillStyle(12428667,1),c.fillRect(k-R*4.25,q,R*8.5,j-q),c.fillStyle(14141089,.95);for(let ge=q+R*.35;geK&&c.fillRect(K,P,me-K,$),c.fillStyle(8415310,1),c.fillRect(me-4,P,4,R*.62),c.fillRect(me+G,P,4,R*.62),c.fillStyle(11045217,1),c.fillRect(me,P,G,4),c.fillStyle(15920612,1),K=me+G}Kk-R*5.4&&ge=0&&this.decor.splice(ge,1),this.outdoorParking.destroy(),this.outdoorParking=null}const je=t.add.graphics();je.setDepth(-300);const Ve=4080460,Ye=15262424,$e=[{x:d+R*2.2,count:5},{x:g-R*11.4,count:5}];je.lineStyle(0,0,0),je.fillStyle(Ve,1);for(const ge of $e)je.fillRect(ge.x,w,R*12.8,R*3.8);je.lineStyle(1,Ye,.95);for(const ge of $e)for(let me=0;mek-R;for(let Ge=0;Ge=0&&this.decor.splice(a,1),this.outdoorParking.destroy(),this.outdoorParking=null}if(this.outdoorBackdrop){const a=this.decor.indexOf(this.outdoorBackdrop);a>=0&&this.decor.splice(a,1),this.outdoorBackdrop.destroy(),this.outdoorBackdrop=null}this.buildOutdoorBackdrop(t,r,o,i,n,{skipLabels:!0})}buildBoundaryDecor(t,n,i){const r=t.add.graphics();r.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+Zn)*R,c=mr*R,d=Zn*R,m=R*2,h=R*20;this.buildOutdoorBackdrop(t,a,c,n,i),r.fillStyle(2498844,1),r.fillRect(-R,0,a+R*2,c),r.fillStyle(3221794,1),r.fillRect(0,0,a,c),r.fillStyle(6048831,1),r.fillRect(0,0,a,8),r.fillRect(0,c-8,a,8),r.fillRect(0,0,8,c),r.fillRect(a-8,0,8,c),r.fillStyle(2367001,1),r.fillRect(8,8,a-16,3),r.fillRect(8,c-11,a-16,3),r.fillStyle(1709844,1),r.fillRect(0,0,a,m),r.fillStyle(4931637,1),r.fillRect(0,m-5,a,5),r.fillStyle(4208173,1),r.fillRect(0,m,a,c-m),r.fillStyle(4865588,1),r.fillRect(0,R*8,a,R*4),r.fillStyle(3813416,1),r.fillRect(0,h,a,c-h),r.lineStyle(1,5917503,.32);for(let p=0;p<=a;p+=R)r.beginPath(),r.moveTo(p,m),r.lineTo(p,c),r.strokePath();for(let p=m;p<=c;p+=R)r.beginPath(),r.moveTo(0,p),r.lineTo(a,p),r.strokePath();for(let p=R*3;pI.id===p.id);r.fillStyle(5785659,1),r.fillRect(g-10,0,d+20,c),r.fillStyle(2301208,1),r.fillRect(g-4,0,d+8,c),r.lineStyle(2,8087640,.9),r.strokeRect(g-10,0,d+20,c),r.lineStyle(2,10982014,.34),r.strokeRect(g-4,0,d+8,c),r.fillStyle(1578259,1),r.fillRect(g-4,0,d+8,R),r.fillStyle(7166796,1),r.fillRect(g+R*5.5,R*.55,R*9,5),r.fillStyle(9074018,1),r.fillRect(g-10,0,8,8),r.fillRect(g+d+2,0,8,8),r.fillRect(g-10,c-8,8,8),r.fillRect(g+d+2,c-8,8,8),r.fillStyle(3221536,1),r.fillRect(g-4,h,d+8,6);const v=g+R*.7,b=g+R*14.65,S=R*1.05,w=R*4.45,k=R*6.4,j=S+k+R*.35,N=R*.55,z=x%2===0?6115909:5069382,T=x%2===0?4609113:5984070,M=x%2===0?5205640:7297908,L=x%2===0?5666919:9073231,A=x%2===0?7045045:10119803,O=x%2===0?6196089:10979160;r.fillStyle(2827295,1),r.fillRect(g+R*.58,j,d-R*1.16,R*.44),r.fillStyle(7692879,1),r.fillRect(g+R*.92,j+2,d-R*1.84,2),r.fillRect(g+R*4.3,j-R*.2,4,R*.84),r.fillRect(g+d-R*4.3,j-R*.2,4,R*.84),o.fillStyle(1906966,1),o.fillRect(v,S,w,k),o.fillRect(b,S,w,k),o.fillStyle(3090722,1),o.fillRect(v+4,S+4,w-8,k-8),o.fillRect(b+4,S+4,w-8,k-8),o.fillStyle(z,1),o.fillRect(v+4,S+4,w-8,R*.7),o.fillStyle(T,1),o.fillRect(b+4,S+4,w-8,R*.7),o.fillStyle(M,.95),o.fillRect(v+4,S+R*1.15,w-8,k-R*1.45),o.fillStyle(L,.95),o.fillRect(b+4,S+R*1.15,w-8,k-R*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,S+10,w-20,2),o.fillRect(b+10,S+10,w-20,2),o.lineStyle(1,6181444,.28);for(let I=v+12;I","#2d241c","#e8d5b6","8px"),this.decor.push(r,o)}buildMap(t,n=cu()){this.clearSceneDecor();const i=Qn(),r=((i[i.length-1]?.offsetCol??0)+Zn)*R,o=mr*R,a=this.getOutdoorMetrics(r,o);this.buildBoundaryDecor(t,i,n);for(const m of i){const h=(m.offsetCol+Zn/2)*R,p=t.add.image(m.offsetCol*R,0,"office-bg");p.setOrigin(0,0),p.setDepth(-100),this.bgSprites.push(p),this.addForegroundOccluders(t,m);const g=t.add.text(h,6,m.name,{fontSize:"14px",fontFamily:"monospace",color:"#ffffff",stroke:"#000000",strokeThickness:3,align:"center"});g.setOrigin(.5,0),g.setDepth(99999),g.setData("officeId",m.id),this.nameLabels.push(g)}const c=hE(i),d=Xf.buildWallBodies(t,c);return console.log("[OfficeMapBuilder] Composite map ready —",i.length,"offices"),{wallBodies:d,collisionGrid:c,waterfront:{dockCenterX:a.gateCenterX,dockY:a.dockY,waterTopY:a.waterTopY,waterBottomY:a.bottomY}}}getBackgroundSprites(){return this.bgSprites}getNameLabels(){return this.nameLabels}updateLabel(t,n){const i=this.nameLabels.find(r=>r.getData("officeId")===t);i&&i.setText(n)}static buildWallBodies(t,n){const i=n.length,r=i>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const h=d-c,p=t.add.rectangle(c*R+h*R/2,a*R+R/2,h*R,R);p.setVisible(!1),o.add(p),c=-1}}}return o}static buildWallBodiesForRegion(t,n,i,r){const o=n.length,a=o>0?n[0].length:0;for(let c=0;c=0){const p=m-d,g=t.add.rectangle((r+d)*R+p*R/2,c*R+R/2,p*R,R);g.setVisible(!1),i.add(g),d=-1}}}}}const ot={IDLE:"idle",WALK:"walk",TYPE:"type",THINK:"think",CELEBRATE:"celebrate",COFFEE:"coffee",CHAT:"chat",PRACTICE:"practice",REFLECT:"reflect",SLEEP:"sleep",PRESENT:"present"},Ka={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function Xx(e,t){return e+Math.random()*(t-e)}function Q3(e,t){return Math.floor(Xx(e,t+1))}class J3 extends Qi.GameObjects.Container{constructor(t,n,i,r,o,a){const c=o*R+R/2,d=a*R+R/2;super(t,c,d),this.officeId="office-0",this.agentState=ot.IDLE,this.dir=Ka.DOWN,this.isActive=!1,this.currentTool=null,this.seatId=null,this.urgency="relaxed",this.isSubagent=!1,this.parentAgentId=null,this.lastEventAt=0,this.stateTimer=0,this.seatTimer=0,this.wanderCount=0,this.hueShift=0,this.bubbleText=null,this.bubbleTimer=0,this.myceliumEffect=null,this.myceliumEffectTimer=0,this.myceliumSession=null,this.bubbleObj=null,this.currentPath=[],this.pathIndex=0,this.pathfinder=null,this.arrivalCallback=null,this.agentId=n,this.displayName=i,this.palette=r%6,this.wanderTimer=Xx(.5,2.5),this.wanderLimit=Q3(uE,dE);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,A3,T3,R3,1382432,M3),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(N3,I3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const h=Math.min(12,R-4),p=Math.min(6,R/2);this.body.setSize(h,p),this.body.setOffset(-h/2,-p),this.body.setCollideWorldBounds(!0),this.setDepth(d),this.playAnimForState()}setPathfinder(t){this.pathfinder=t}getState(){return this.agentState}getTilePos(){return{x:Math.floor(this.x/R),y:Math.floor(this.y/R)}}setAgentState(t){this.agentState!==t&&(this.agentState=t,this.playAnimForState())}setDirection(t){this.dir!==t&&(this.dir=t,this.playAnimForState())}playAnimForState(){if(!this.sprite?.anims)return;const t=`char_${this.palette}`,n=this.dir,i=n===Ka.LEFT;this.sprite.setFlipX(i);const r=i?"right":n;switch(this.agentState){case ot.WALK:this.sprite.play(`${t}_walk_${r}`,!0);break;case ot.CELEBRATE:this.sprite.play(`${t}_celebrate_${r}`,!0);break;case ot.TYPE:case ot.PRESENT:case ot.PRACTICE:this.sprite.play(`${t}_type_${r}`,!0);break;case ot.THINK:case ot.REFLECT:this.sprite.play(`${t}_read_${r}`,!0);break;case ot.COFFEE:case ot.CHAT:this.sprite.play(`${t}_coffee_${r}`,!0);break;case ot.SLEEP:case ot.IDLE:default:this.sprite.play(`${t}_idle_${r}`,!0);break}}async walkTo(t,n,i){if(!this.pathfinder||!this.sprite?.anims)return!1;const r=this.getTilePos(),o=await this.pathfinder.findPath(r,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=i??null,this.setAgentState(ot.WALK),!0)}stopMovement(){this.currentPath=[],this.pathIndex=0,this.arrivalCallback=null,this.body?.setVelocity(0,0)}get isMoving(){return this.agentState===ot.WALK&&this.currentPath.length>0}getWalkSpeed(){switch(this.urgency){case"urgent":return z3;case"normal":return P3;default:return B3}}showBubble(t,n=F3){this.bubbleText=t,this.bubbleTimer=n,this.updateBubbleDisplay()}clearBubble(){this.bubbleText=null,this.bubbleTimer=0,this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null)}updateBubbleDisplay(){if(this.bubbleObj&&(this.bubbleObj.destroy(),this.bubbleObj=null),!this.bubbleText)return;const t=this.scene.add.container(this.x,this.y-70),n=this.scene.add.text(0,0,this.bubbleText,{fontSize:"10px",fontFamily:"monospace",color:"#1a1a2e",backgroundColor:"#ffffff",padding:{x:4,y:2},resolution:2});n.setOrigin(.5,1);const i=this.scene.add.graphics(),r=n.width+8,o=n.height+4;i.fillStyle(16777215,.95),i.fillRoundedRect(-r/2,-o,r,o,4),i.lineStyle(1,6710886,.5),i.strokeRoundedRect(-r/2,-o,r,o,4),t.add([i,n]),t.setDepth(1e5),this.bubbleObj=t}update(t){this.setDepth(this.y),this.bubbleObj&&(this.bubbleObj.setPosition(this.x,this.y-70),this.bubbleTimer>0&&(this.bubbleTimer-=t,this.bubbleTimer<=0&&this.clearBubble())),this.stateTimer>0&&(this.stateTimer-=t,this.stateTimer<=0&&(this.stateTimer=0,this.agentState===ot.CELEBRATE&&this.setAgentState(ot.IDLE),this.agentState===ot.COFFEE&&(this.setAgentState(ot.IDLE),this.wanderTimer=Xx(Of,Lf)),this.agentState===ot.CHAT&&this.setAgentState(ot.IDLE))),this.agentState===ot.WALK&&this.currentPath.length>0&&this.followPath(t)}followPath(t){if(this.body.setVelocity(0,0),this.pathIndex>=this.currentPath.length){this.arriveAtDestination();return}const n=this.currentPath[this.pathIndex],i=n.x*R+R/2,r=n.y*R+R/2,o=i-this.x,a=r-this.y,c=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(c<=m+.5){this.x=i,this.y=r,this.pathIndex++,this.pathIndex>=this.currentPath.length&&this.arriveAtDestination();return}this.x+=o/c*m,this.y+=a/c*m,Math.abs(o)>Math.abs(a)?this.setDirection(o>0?Ka.RIGHT:Ka.LEFT):this.setDirection(a>0?Ka.DOWN:Ka.UP)}arriveAtDestination(){this.currentPath=[],this.pathIndex=0,this.body.setVelocity(0,0);const t=this.arrivalCallback;this.arrivalCallback=null,t?t():this.agentState===ot.WALK&&this.setAgentState(ot.IDLE)}destroy(t){this.clearBubble(),super.destroy(t)}}var jg,iS;function e4(){return iS||(iS=1,jg=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),jg}var Eg,rS;function t4(){return rS||(rS=1,Eg=function(e,t,n,i,r){this.parent=e,this.x=t,this.y=n,this.costSoFar=i,this.simpleDistanceToTarget=r,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),Eg}var zf={exports:{}},n4=zf.exports,sS;function i4(){return sS||(sS=1,(function(e,t){(function(){var n,i,r,o,a,c,d,m,h,p,g,x,v,b,S;r=Math.floor,p=Math.min,i=function(w,k){return wk?1:0},h=function(w,k,j,N,z){var T;if(j==null&&(j=0),z==null&&(z=i),j<0)throw new Error("lo must be non-negative");for(N==null&&(N=w.length);jO;0<=O?A++:A--)L.push(A);return L}).apply(this).reverse(),M=[],N=0,z=T.length;NI;0<=I?++L:--L)$.push(a(w,j));return $},b=function(w,k,j,N){var z,T,M;for(N==null&&(N=i),z=w[j];j>k;){if(M=j-1>>1,T=w[M],N(z,T)<0){w[j]=T,j=M;continue}break}return w[j]=z},S=function(w,k,j){var N,z,T,M,L;for(j==null&&(j=i),z=w.length,L=k,T=w[k],N=2*k+1;Np[0].length-1||G>p.length-1||P>p[0].length-1||F>p.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if($===P&&G===F){Y([]);return}for(var U=p[F][P],Z=!1,W=0;W"u"){k.shift();continue}if(G.openList.size()===0){G.callback(null),delete w[$],k.shift();continue}var P=G.openList.pop();if(G.endX===P.x&&G.endY===P.y){var F=[];F.push({x:P.x,y:P.y});for(var V=P.parent;V!=null;)F.push({x:V.x,y:V.y}),V=V.parent;F.reverse();var Y=F;G.callback(Y),delete w[$],k.shift();continue}P.list=r,P.y>0&&T(G,P,0,-1,c*A(P.x,P.y-1)),P.x0&&T(G,P,-1,0,c*A(P.x-1,P.y)),z&&(P.x>0&&P.y>0&&(b||M(p,N,P.x,P.y-1,P)&&M(p,N,P.x-1,P.y,P))&&T(G,P,-1,-1,d*A(P.x-1,P.y-1)),P.x0&&(b||M(p,N,P.x,P.y-1,P)&&M(p,N,P.x+1,P.y,P))&&T(G,P,1,-1,d*A(P.x+1,P.y-1)),P.x>0&&P.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new o4.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(i=>{if(t.x<0||t.x>=this.gridCols||t.y<0||t.y>=this.gridRows||n.x<0||n.x>=this.gridCols||n.y<0||n.y>=this.gridRows){i([]);return}if(this.grid[n.y]?.[n.x]===1){const r=this.findNearestWalkable(n.x,n.y);if(!r){i([]);return}n=r}if(this.grid[t.y]?.[t.x]===1){const r=this.findNearestWalkable(t.x,t.y);if(!r){i([]);return}t=r}this.easystar.findPath(t.x,t.y,n.x,n.y,r=>{i(r??[])}),this.easystar.calculate()})}blockTile(t,n){n>=0&&n=0&&t=0&&n=0&&t=this.grid.length||t<0||t<0||t>=this.grid[0].length?!1:this.grid[n][t]===0}getWalkableTiles(){const t=[];for(let n=0;n=r&&e=o&&tl4(`${e.id}-${c.id}`,c.localX+t,c.localY,c.type)),doorways:o.doorways.map(c=>({id:`${e.id}-${c.id}`,tileX:c.localX+t,tileY:c.localY}))}}const i={};for(const[r,o]of e.seats){const a=u4(r,o),c=`${e.id}-${a}`;if(!n[c])continue;i[c]=(i[c]??0)+1;const d=i[c],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",h=c4(r,o,a);n[c].seats.push(a4(`${e.id}-${m}-${d}`,r+t,o,h))}return n}function yE(e){const t=e??Qn(),n={};for(const i of t)Object.assign(n,d4(i));return n}let Co=yE();function f4(e){Co=yE(e)}function xE(e){const t=Co[`${e}-workspace`]?.seats??[],n=Co[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function cS(){return Object.values(Co).flatMap(e=>e.seats)}function m4(e){const t=Co[e];if(!t)return null;const{x:n,y:i,w:r,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=Qn().find(g=>g.id===a);if(!d)return{x:n+1,y:i+1};const m=pE(d.mapStr),h=d.offsetCol,p=[];for(let g=i;g=0&&v({x:n.tileX,y:n.tileY})):[]}function Jo(e,t){return e+Math.random()*(t-e)}function p4(e,t){return Math.floor(Jo(e,t+1))}function es(e,t){return e.length>t?e.slice(0,t)+"...":e}function dS(e){if(!e)return"Tool";const t=e.toLowerCase().trim();return t==="shell"?"Shell":t==="write_file"||t==="write"?"Write":t==="edit_file"||t==="edit"?"Edit":t==="read_file"||t==="read"?"Read":t==="grep"||t==="search"?"Search":t==="web_search"||t==="websearch"?"WebSearch":t==="web_fetch"||t==="webfetch"?"Fetch":e.slice(0,12)}class h4{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},i=t.agent_id||"openopc-main";if(i==="user")return;const r=i.startsWith("subagent-"),o=r?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=r?`Sub ${i.slice(-4)}`:void 0,c=this.scene.ensureAgent(i,a,r,o);switch(c.lastEventAt=Date.now(),typeof n.task_preview=="string"&&(c.taskSummary=n.task_preview),typeof n.result_preview=="string"&&(c.taskSummary=n.result_preview),t.type){case"tool_start":this.onToolStart(c,n);break;case"tool_done":this.onToolDone(c,n);break;case"agent_active":this.onAgentActive(c);break;case"waiting":this.onWaiting(c);break;case"reflect_start":this.onReflectStart(c);break;case"reflect_done":this.onReflectDone(c);break;case"skill_synthesized":this.onSkillSynthesized(c,n);break;case"subagent_spawn":this.onSubagentSpawn(c,i,o);break;case"subagent_done":this.onSubagentDone(c,i);break;case"message_in":this.onMessageIn(c,n);break;case"message_out":this.onMessageOut(c,n);break;case"practice_start":this.onPracticeStart(c,n);break;case"practice_done":this.onPracticeDone(c);break;case"task_routed":this.onTaskRouted(c,n);break;case"task_delegated":this.onTaskDelegated(c,i,n);break;case"delegation_done":this.onDelegationDone(c,n);break;case"agent_spawned":this.onAgentSpawned(c,i,n);break;case"agent_removed":this.onAgentRemoved(c,i);break;case"collab_started":this.onCollabStarted(c);break;case"collab_ended":this.onCollabEnded(c);break;case"skill_published":this.onSkillPublished(c,n);break;case"skill_adopted":this.onSkillAdopted(c,n);break;case"mycelium_transport":this.onMyceliumTransport(c,i,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(c,i,n);break;case"mycelium_spore":this.onMyceliumSpore(c,i,n);break;case"mycelium_decompose":this.onMyceliumDecompose(c,i,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(c,n);break;case"mycelium_germinate":this.onMyceliumGerminate(c,i,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(i,n);break;case"hyphal_weaken":this.onHyphalWeaken(i,n);break}}onToolStart(t,n){const i=typeof n.tool_name=="string"?n.tool_name:"tool",r=dS(i);t.urgency="urgent",t.currentTool=i,t.isActive=!0,t.showBubble(`${r}...`),this.sendToSeat(t)}onToolDone(t,n){const i=typeof n.tool_name=="string"?n.tool_name:t.currentTool,r=dS(i);t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Xa,t.isActive=!1,t.showBubble(`${r} done`)}onAgentActive(t){t.urgency="urgent",t.isActive=!0,t.currentTool||this.sendToSeat(t)}onWaiting(t){t.urgency="relaxed",t.isActive=!1,t.currentTool=null,t.showBubble("Waiting");const n=this.moveToZone(t,"breakRoom",ot.COFFEE);n||t.setAgentState(ot.IDLE),n&&(t.stateTimer=Jo($3,H3))}onReflectStart(t){t.urgency="normal",t.isActive=!1,t.currentTool="Reflect",this.moveToZone(t,"meetingRoom",ot.REFLECT)||t.setAgentState(ot.REFLECT),t.stateTimer=30,t.showBubble("Reflecting...")}onReflectDone(t){t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Xa,t.showBubble("Insight!")}onSkillSynthesized(t,n){const i=es(String(n.skill_name??"new"),20);t.setAgentState(ot.PRESENT),t.showBubble(`New Skill: ${i}`)}onSubagentSpawn(t,n,i){this.placeAtDoorway(t),t.urgency="urgent",t.isActive=!0,t.showBubble("Spawned"),this.sendToSeat(t)}onSubagentDone(t,n){t.urgency="relaxed",t.currentTool=null,t.isActive=!1,t.showBubble("Finished"),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onMessageIn(t,n){t.urgency="urgent";const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?es(i,30):"New task";t.showBubble(r),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const i=typeof n.content_preview=="string"?n.content_preview:"";i&&(t.taskSummary=i);const r=i?es(i,30):"Reply sent";t.showBubble(`Reply: ${r}`)}onPracticeStart(t,n){t.urgency="normal";const i=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${es(i,20)}`),t.isActive=!1,t.currentTool="Practice",this.moveToZone(t,"meetingRoom",ot.PRACTICE)||t.setAgentState(ot.PRACTICE)}onPracticeDone(t){t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Xa,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const i=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${i})`)}onTaskDelegated(t,n,i){t.urgency="normal",t.stateTimer=Jo(Zk,Qk);const r=typeof i.target=="string"?i.target:"?";t.setAgentState(ot.CHAT),t.showBubble(`Delegating to ${r}...`);const o=this.scene.getAgent(r);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const i=typeof n.target=="string"?n.target:"";if(t.setAgentState(ot.IDLE),t.showBubble("Delegation complete"),i){const r=this.scene.getAgent(i);r&&(r.parentAgentId=null)}}onAgentSpawned(t,n,i){const r=typeof i.role_name=="string"?i.role_name:n;t.displayName=r,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${r} joined`)}onAgentRemoved(t,n){t.showBubble("Leaving..."),this.moveToDoorway(t)?this.pendingDespawn.add(n):this.scene.removeAgent(n)}onCollabStarted(t){t.urgency="normal",t.isActive=!1,t.stateTimer=Jo(Zk,Qk),this.moveToZone(t,"meetingRoom",ot.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Xa,t.setAgentState(ot.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const i=es(String(n.skill_name??"skill"),20);t.setAgentState(ot.CELEBRATE),t.stateTimer=Xa,t.showBubble(`Published: ${i}`)}onSkillAdopted(t,n){const i=es(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${i}`)}onMyceliumTransport(t,n,i){const r=typeof i.source=="string"?i.source:n,o=typeof i.target=="string"?i.target:null,a=typeof i.domain=="string"?es(i.domain,15):"?",c=this.scene.ensureAgent(r);if(c.myceliumEffect="transport_send",c.myceliumEffectTimer=3,c.showBubble(`-> [${a}]`),o){const d=this.scene.ensureAgent(o);d.myceliumEffect="transport_recv",d.myceliumEffectTimer=2,d.showBubble("Receiving...");const m=d.getTilePos();c.walkTo(m.x,m.y+1)}}onMyceliumCrystallize(t,n,i){const r=Array.isArray(i.corroborating_agents)?i.corroborating_agents:[],o=es(String(i.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...r])),c=`${t.officeId}-meetingRoom`,d=Co[c]?.seats??[];for(let m=0;m{p.setDirection(x.facing),p.setAgentState(ot.CHAT)}),p.showBubble(h===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,i){const r=es(String(i.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(ot.PRESENT),t.showBubble(`Breakthrough! ${r}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,i){const r=es(String(i.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(ot.REFLECT),t.showBubble(`Learning: ${r}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const i=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${i}]...`,2)}onMyceliumGerminate(t,n,i){const r=typeof i.target_agent=="string"?i.target_agent:n,o=this.scene.ensureAgent(r);o.myceliumEffect=null,o.setAgentState(ot.CELEBRATE),o.stateTimer=Xa,o.showBubble("Insight took root!")}onHyphalStrengthen(t,n){}onHyphalWeaken(t,n){}updateIdle(t){for(const n of this.scene.agents.values()){if(this.pendingDespawn.has(n.agentId)&&!n.isMoving){this.pendingDespawn.delete(n.agentId),this.scene.removeAgent(n.agentId);continue}if(n.myceliumEffectTimer>0&&(n.myceliumEffectTimer-=t,n.myceliumEffectTimer<=0&&(n.myceliumEffect=null,n.myceliumEffectTimer=0,n.myceliumSession=null)),n.agentState===ot.TYPE&&!n.isActive){n.seatTimer>0?(n.seatTimer-=t,n.seatTimer<=0&&(n.seatTimer=0,n.setAgentState(ot.IDLE),n.wanderCount=0,n.wanderLimit=p4(uE,dE),n.wanderTimer=Jo(Of,Lf))):n.setAgentState(ot.IDLE);continue}if(n.agentState===ot.IDLE){if(n.isActive){if(n.urgency="urgent",!n.seatId){n.setAgentState(ot.TYPE);continue}this.sendToSeat(n);continue}if(n.wanderTimer-=t,n.wanderTimer<=0){if(n.wanderCount>=n.wanderLimit&&n.seatId){n.urgency="relaxed",this.sendToSeat(n),n.wanderTimer=Jo(Of,Lf);continue}const i=this.scene.getWalkableTilesForOffice(n.officeId);if(i.length>0){n.urgency="relaxed";const r=i[Math.floor(Math.random()*i.length)];n.walkTo(r.x,r.y),n.wanderCount++}n.wanderTimer=Jo(Of,Lf)}}}}sendToSeat(t){if(!t.seatId)return;const n=this.scene.getSeatById(t.seatId);n&&t.walkTo(n.tileX,n.tileY,()=>{t.setAgentState(ot.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=Jk+Math.random()*eS)}).then(i=>{i||(t.setAgentState(ot.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=Jk+Math.random()*eS))})}moveToZone(t,n,i){const r=`${t.officeId}-${n}`,o=Co[r];if(!o)return!1;if(o.seats.length>0){const c=new Set;for(const m of this.scene.agents.values()){if(m===t||m.isMoving)continue;const h=m.getTilePos();c.add(`${h.x},${h.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const h=m.currentPath;if(h?.length){const p=h[h.length-1];c.add(`${p.x},${p.y}`)}}const d=o.seats.find(m=>!c.has(`${m.tileX},${m.tileY}`));if(d)return t.walkTo(d.tileX,d.tileY,()=>{t.setDirection(d.facing),i?t.setAgentState(i):t.setAgentState(ot.IDLE)}),!0}const a=m4(r);return a?(t.walkTo(a.x,a.y,()=>{i?t.setAgentState(i):t.setAgentState(ot.IDLE)}),!0):!1}moveToDoorway(t){const n=uS(t.officeId);if(n.length===0)return!1;const i=n[Math.floor(Math.random()*n.length)];return t.walkTo(i.x,i.y),!0}placeAtDoorway(t){const n=uS(t.officeId);if(n.length>0){const i=n[Math.floor(Math.random()*n.length)];t.setPosition(i.x*R+R/2,i.y*R+R/2)}}}class g4 extends Qi.Scene{constructor(){super("Office"),this.yachtLoopStarted=!1,this.outdoorIsDay=null,this.agents=new Map,this.seats=[],this.walkableTiles=[],this.walkableTilesByOffice=new Map,this.dragState={pointerId:null,lastX:0,lastY:0,moved:!1}}create(){this.bridge=this.registry.get("bridge");const t=cu();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Xk:Kk),this.mapBuilder=new Xf,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new lS(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=cS().map(d=>({...d})),this.behavior=new h4(this);const n=Sg*R,i=Hc*R,r=-lu,o=-ll,a=n+lu*2,c=i+ll+fl;this.physics.world.setBounds(r,o,a,c),this.cameras.main.setBounds(r,o,a,c),this.resetCameraView(!1),this.startWaterfrontLoop(),this.input.on("pointerdown",d=>{d.leftButtonDown()&&(this.dragState.pointerId=d.id,this.dragState.lastX=d.x,this.dragState.lastY=d.y,this.dragState.moved=!1)}),this.input.on("pointermove",d=>{if(!d.isDown||this.dragState.pointerId!==d.id)return;const m=d.x-this.dragState.lastX,h=d.y-this.dragState.lastY;if(!this.dragState.moved&&Math.abs(d.downX-d.x)+Math.abs(d.downY-d.y)<6)return;this.dragState.moved=!0;const p=this.cameras.main;p.stopFollow(),p.scrollX-=m/p.zoom,p.scrollY-=h/p.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,h,p)=>{const g=this.cameras.main,x=this.input.activePointer,v=g.getWorldPoint(x.x,x.y),b=this.getMinCameraZoom(g),S=Qi.Math.Clamp(g.zoom-p*.0015,b,3);g.setZoom(S);const w=g.getWorldPoint(x.x,x.y);g.scrollX+=v.x-w.x,g.scrollY+=v.y-w.y,g.scrollX=g.clampX(g.scrollX),g.scrollY=g.clampY(g.scrollY)}),this.scale.on("resize",()=>{const d=this.cameras.main,m=this.getMinCameraZoom(d);d.zoom{if(this.dragState.pointerId!==d.id)return;const m=this.dragState.pointerId===d.id&&this.dragState.moved;if(this.dragState.pointerId=null,this.dragState.moved=!1,m)return;const h=this.cameras.main.getWorldPoint(d.x,d.y);let p=null,g=1/0;for(const x of this.agents.values()){const v=Qi.Math.Distance.Between(h.x,h.y,x.x,x.y);v<24&&vthis.add.circle(U,5,2.1,14284031,.95));F.add(V),F.setDepth(-250),F.setAlpha(0),F.setRotation(-.04),F.setScale(o),this.tweens.add({targets:[p,g,x],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const Y=()=>{F.setPosition(c,a),F.setAlpha(0),F.setRotation(-.04),p.setAlpha(.55),g.setAlpha(.42),x.setAlpha(.24),this.tweens.add({targets:F,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{p.setAlpha(.22),g.setAlpha(.14),x.setAlpha(.08),this.tweens.add({targets:F,x:d+4,y:a+R*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{p.setAlpha(.48),g.setAlpha(.32),x.setAlpha(.18),this.tweens.add({targets:F,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,Y)}})})}})};Y()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=Qn();for(const n of t){const i=[];for(const r of this.walkableTiles)r.x>=n.offsetCol&&r.xm.id===t);if(!i)return;const r=(i.offsetCol+Zn/2)*R,o=Hc/2*R,a=this.cameras.main,c=this.getMinCameraZoom(a),d=Qi.Math.Clamp(Math.min(this.scale.width/((Zn+4)*R),this.scale.height/((Hc-4)*R)),c,Math.max(1.5,c));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.easeOut"}),a.pan(r,o,380,"Cubic.easeOut")}resolveOfficeForAgent(t){const n=X3(t);if(n)return n.id;const i=Qn();let r=null,o=-1;for(const c of i){const d=xE(c.id),m=c.assignedAgents.length,h=d.length-m;h>o&&(r=c,o=h)}const a=r?.id??i[0]?.id??"office-0";return wg(a,t),a}addAgent(t,n,i=!1,r=null,o,a,c){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,h=o?(wg(o,t),o):this.resolveOfficeForAgent(t),p=c?this.seats.find(j=>j.id===c&&!j.assigned)??this.findFreeSeatInOffice(h):this.findFreeSeatInOffice(h),v=(Qn().find(j=>j.id===h)?.offsetCol??0)+5,b=20;let S=v,w=b;p&&(S=p.tileX,w=p.tileY,p.assigned=!0,p.assignedTo=t);const k=new J3(this,t,d,m,S,w);return k.officeId=h,k.setPathfinder(this.pathfinder),k.seatId=p?.id??null,k.isSubagent=i,k.parentAgentId=r,p&&(k.setAgentState(ot.TYPE),k.setDirection(p.facing),k.seatTimer=10),this.agents.set(t,k),k}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const i=this.seats.find(r=>r.id===n.seatId);i&&(i.assigned=!1,i.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:i}=require("../map/OfficeStore");i(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,i=!1,r=null,o,a,c){const d=this.agents.get(t);return d?(o&&d.officeId!==o&&this.reassignAgent(t,o),c&&d.seatId!==c&&this.changeAgentSeat(t,c),d):this.addAgent(t,n,i,r,o,a,c)}findFreeSeatInOffice(t){const n=this.seats.filter(i=>i.id.startsWith(`${t}-desk-`)).find(i=>!i.assigned);return n||(this.seats.filter(i=>i.id.startsWith(`${t}-leader-`)).find(i=>!i.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const m=this.seats.find(h=>h.id===i.seatId);m&&(m.assigned=!1,m.assignedTo=null)}i.stopMovement(),wg(n,t),i.officeId=n;const r=this.findFreeSeatInOffice(n),c=(Qn().find(m=>m.id===n)?.offsetCol??0)+5,d=20;r?(r.assigned=!0,r.assignedTo=t,i.seatId=r.id,i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(ot.TYPE),i.setDirection(r.facing),i.seatTimer=10):(i.seatId=null,i.setPosition(c*R+R/2,d*R+R/2))}getCharacterCards(){const t=[];for(const n of this.agents.values())t.push({id:n.agentId,displayName:n.displayName,state:n.agentState,currentTool:n.currentTool,isSubagent:n.isSubagent,parentAgentId:n.parentAgentId,taskSummary:n.taskSummary,lastEventAt:n.lastEventAt,officeId:n.officeId,seatId:n.seatId});return t}changeAgentSeat(t,n){const i=this.agents.get(t);if(!i)return;if(i.seatId){const o=this.seats.find(a=>a.id===i.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const r=this.seats.find(o=>o.id===n);!r||r.assigned&&r.assignedTo!==t||(r.assigned=!0,r.assignedTo=t,i.seatId=n,i.stopMovement(),i.setPosition(r.tileX*R+R/2,r.tileY*R+R/2),i.setAgentState(ot.TYPE),i.setDirection(r.facing),i.seatTimer=10)}rebuildOfficeCollision(t,n,i){K3(t,n,i),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const r=Qn(),o=hE(r),a=Xf.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new lS(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),f4(r),this.seats=cS().map(c=>({...c}));for(const c of this.agents.values())c.setPathfinder(this.pathfinder),c.stopMovement();console.log("[OfficeScene] Office collision rebuilt —",t,"walkable:",this.walkableTiles.length)}renameOffice(t,n){W3(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(cu())}syncOutdoorLighting(){this.applyOutdoorLighting(cu())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?Xk:Kk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=Sg*R,n=Hc*R;return{worldW:t+lu*2,worldH:n+ll+fl}}getMinCameraZoom(t){const{worldW:n,worldH:i}=this.getWorldSize();return Math.max(t.width/n,t.height/i)}}function y4({bridge:e,active:t=!0}){const n=C.useRef(null),i=C.useRef(null),r=C.useRef(null),o=C.useRef(t);return o.current=t,C.useEffect(()=>{const a=r.current;!a||!a.loop||(t?a.loop.started&&!a.loop.running&&(a.loop.wake(),a.scale.getParentBounds(),a.scale.refresh()):a.loop.running&&a.loop.sleep())},[t]),C.useEffect(()=>{if(!n.current||!i.current)return;const a=n.current,c=i.current,d=(h,p)=>{console.log("[PhaserGame] Creating Phaser game",h,"×",p);const g=V3(c,h,p);g.scene=[G3,g4];const x=new Qi.Game(g);x.registry.set("bridge",e),x.events.once(Qi.Core.Events.READY,()=>{!o.current&&x.loop.running&&x.loop.sleep()}),r.current=x};if(typeof ResizeObserver>"u")return d(a.clientWidth||window.innerWidth-380,a.clientHeight||window.innerHeight-48),()=>{r.current?.destroy(!0),r.current=null};const m=new ResizeObserver(h=>{const p=h[h.length-1].contentRect,g=Math.floor(p.width),x=Math.floor(p.height);if(!(g<1||x<1))if(!r.current)d(g,x);else{const v=r.current.scale;v.getParentBounds(),v.refresh()}});return m.observe(a),()=>{m.disconnect(),r.current?.destroy(!0),r.current=null}},[e]),u.jsx("div",{ref:n,style:{width:"100%",height:"100%"},children:u.jsx("div",{ref:i,style:{width:"100%",height:"100%"}})})}class x4 extends Qi.Events.EventEmitter{constructor(){super(),this.scene=null,this.eventQueue=[],this.snapshotQueue=[]}setScene(t){this.scene=t;for(const n of this.snapshotQueue)this.applySnapshot(n);this.snapshotQueue=[];for(const n of this.eventQueue)this.applyEvent(n);this.eventQueue=[]}getScene(){return this.scene}pushEvent(t){if(!this.scene){this.eventQueue.push(t),this.eventQueue.length>500&&this.eventQueue.shift();return}this.applyEvent(t)}pushSnapshot(t){const n=Object.keys(t.agents??{}).length;if(!this.scene){console.log(`[GameBridge] pushSnapshot queued (scene not ready) — ${n} agents`),this.snapshotQueue=[t],this.eventQueue=[];return}console.log(`[GameBridge] pushSnapshot applying now — ${n} agents`),this.applySnapshot(t)}sendToSeat(t){this.scene&&this.scene.behavior.sendToSeat(this.scene.ensureAgent(t))}setAgentActive(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(i.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const i=this.scene.getAgent(t);i&&(n?i.showBubble(n):i.clearBubble())}ensureAgent(t,n,i,r,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,i,r,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return Qn()}renameOffice(t,n){this.scene&&(this.scene.renameOffice(t,n),this.emit("officeChanged"))}assignAgentToOffice(t,n){this.scene&&(this.scene.reassignAgent(t,n),this.emit("officeChanged"))}panToOffice(t){this.scene&&this.scene.panToOffice(t)}resetCamera(){this.scene&&this.scene.resetCameraView()}syncOutdoorLighting(){this.scene&&this.scene.syncOutdoorLighting()}rebuildOfficeCollision(t,n,i){this.scene&&this.scene.rebuildOfficeCollision(t,n,i)}getSeatsForOffice(t){return this.scene?this.scene.seats.filter(n=>n.id.startsWith(`${t}-desk-`)||n.id.startsWith(`${t}-leader-`)).map(n=>({id:n.id,assigned:n.assigned,assignedTo:n.assignedTo})):[]}changeAgentSeat(t,n){this.scene&&(this.scene.changeAgentSeat(t,n),this.emit("officeChanged"))}notifyChannelMessage(t,n){if(this.scene)for(const i of t){const r=this.scene.getAgent(i);r&&(r.showBubble(n.slice(0,30)),setTimeout(()=>r.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const i=this.scene.getAgent(n);i&&this.scene.behavior.moveToZone(i,"meetingRoom")}}triggerCelebration(t){if(!this.scene)return;const n=this.scene.getAgent(t);n&&(n.showBubble("🎉 Done!"),setTimeout(()=>n.clearBubble(),3e3))}applyEvent(t){this.scene&&(this.scene.behavior.applyEvent(t),this.emit("eventApplied",t))}applySnapshot(t){if(!this.scene){console.warn("[GameBridge] applySnapshot called but scene is null");return}const n=Array.from(this.scene.agents.keys());console.log("[GameBridge] applySnapshot — clearing",n.length,"old agents:",n);for(const o of n)this.scene.removeAgent(o);const i=t.timeline??[];for(const o of i)this.scene.behavior.applyEvent(o);const r=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",r.length,"agents:",r.map(([o])=>o));for(const[o,a]of r){const c=a,d=c.name||c.role_name||o,m=c.office_id,h=c.appearance?.palette,p=c.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,h,p),x=c.runtime_status||c.status;x==="tool_active"?(g.currentTool=c.current_tool??null,g.isActive=!0,g.setAgentState(ot.TYPE)):x==="reflecting"&&(g.currentTool=c.current_tool??"Reflect",g.isActive=!1,g.setAgentState(ot.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${h}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}i.length===0&&r.length===0&&(console.warn("[GameBridge] applySnapshot — empty snapshot, creating fallback agent"),this.scene.ensureAgent("openopc-main","OpenOPC")),console.log("[GameBridge] applySnapshot done — total agents:",this.scene.agents.size),this.emit("snapshotApplied",t)}}const v4="assets/office-bg.png";function b4({bridge:e}){const t=C.useRef(null),n=C.useRef(null),i=C.useRef(!1),[r,o]=C.useState(()=>Qn()),[a,c]=C.useState(()=>Qn()[0]?.id??"office-0"),d=r.find(ee=>ee.id===a)??r[0],[m,h]=C.useState(()=>Cg(d?.mapStr??uu,Zn,mr)),[p,g]=C.useState(()=>[...d?.seats??du]),[x,v]=C.useState("wall"),[b,S]=C.useState(!1),[w,k]=C.useState(!1),[j,N]=C.useState(!1),[z,T]=C.useState(1),[M,L]=C.useState(!0),A=Zn,O=mr,I=ee=>{const te=Qn();o(te),c(ee);const oe=te.find(le=>le.id===ee);oe&&(h(Cg(oe.mapStr,Zn,mr)),g([...oe.seats])),N(!1)};C.useEffect(()=>{const ee=new Image;ee.crossOrigin="anonymous",ee.onload=()=>{n.current=ee,S(!0)},ee.onerror=()=>{n.current=null,S(!0)},ee.src=v4},[]);const $=C.useCallback(()=>{const ee=t.current;if(!ee)return;const te=ee.getContext("2d");if(!te)return;const oe=A*R,le=O*R;ee.width=oe,ee.height=le,te.clearRect(0,0,oe,le),n.current?te.drawImage(n.current,0,0,oe,le):(te.fillStyle="#3d3d3d",te.fillRect(0,0,oe,le));for(let he=0;he{$()},[$]);const G=ee=>{const te=t.current;if(!te)return null;const oe=te.getBoundingClientRect(),le=te.width/oe.width,he=te.height/oe.height,Te=Math.floor((ee.clientX-oe.left)*le/R),be=Math.floor((ee.clientY-oe.top)*he/R);return Te<0||Te>=A||be<0||be>=O?null:{c:Te,r:be}},P=C.useCallback((ee,te)=>{if(N(!1),x==="seat")g(oe=>{const le=oe.findIndex(([he,Te])=>he===ee&&Te===te);return le>=0?oe.filter((he,Te)=>Te!==le):[...oe,[ee,te]]}),h(oe=>{if(oe[te]?.[ee]===1){const le=oe.map(he=>[...he]);return le[te][ee]=0,le}return oe});else{const oe=x==="wall"?1:0;h(le=>{if(le[te]?.[ee]===oe)return le;const he=le.map(Te=>[...Te]);return he[te][ee]=oe,he}),x==="wall"&&g(le=>le.filter(([he,Te])=>!(he===ee&&Te===te)))}},[x]),F=ee=>{if(ee.button!==0)return;i.current=!0;const te=G(ee);te&&P(te.c,te.r)},V=ee=>{if(!i.current||x==="seat")return;const te=G(ee);te&&P(te.c,te.r)},Y=()=>{i.current=!1},U=()=>{const ee=nS(m);e.rebuildOfficeCollision(a,ee,p),N(!0),o(Qn()),setTimeout(()=>N(!1),2e3)},Z=()=>k(ee=>!ee),W=()=>{h(Cg(uu,Zn,mr)),g([...du]),N(!1)},q=(()=>{const te=nS(m).map((le,he)=>` '${le}', // ${he}`).join(` -`),oe=p.map(([le,he])=>` [${le}, ${he}],`).join(` -`);return`const MAP_STR: string[] = [ -${te} -] - -const SEATS: [number, number][] = [ -${oe} -]`})(),Q=()=>T(ee=>Math.min(ee+.25,3)),D=()=>T(ee=>Math.max(ee-.25,.5)),K=m.flat().filter(ee=>ee===1).length,ne=m.flat().filter(ee=>ee===0).length;return u.jsxs("div",{className:"collision-editor",children:[u.jsxs("div",{className:"ce-toolbar",children:[u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("span",{className:"ce-title",children:"Map Editor"}),u.jsx("select",{className:"ce-office-select",value:a,onChange:ee=>I(ee.target.value),children:r.map(ee=>u.jsx("option",{value:ee.id,children:ee.name},ee.id))})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsxs("button",{className:`ce-mode-btn ${x==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[u.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[u.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),u.jsxs("button",{className:`ce-mode-btn ${x==="seat"?"active seat":""}`,onClick:()=>v("seat"),children:[u.jsx("span",{className:"ce-mode-dot seat"})," Seat"]})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:"ce-btn",onClick:D,children:"-"}),u.jsxs("span",{className:"ce-zoom-label",children:[Math.round(z*100),"%"]}),u.jsx("button",{className:"ce-btn",onClick:Q,children:"+"}),u.jsx("button",{className:`ce-btn${M?" active":""}`,onClick:()=>L(ee=>!ee),children:"Grid"})]}),u.jsxs("div",{className:"ce-toolbar-group",children:[u.jsx("button",{className:`ce-btn apply${j?" success":""}`,onClick:U,children:j?"Applied":"Apply"}),u.jsx("button",{className:`ce-btn${w?" active":""}`,onClick:Z,children:"Export"}),u.jsx("button",{className:"ce-btn danger",onClick:W,children:"Reset"})]}),u.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[u.jsxs("span",{children:["Walls: ",K]}),u.jsxs("span",{children:["Floor: ",ne]}),u.jsxs("span",{children:["Seats: ",p.length]})]})]}),u.jsxs("div",{className:"ce-body",children:[u.jsx("div",{className:"ce-canvas-wrap",style:{overflow:"auto"},children:u.jsx("canvas",{ref:t,style:{width:A*R*z,height:O*R*z,imageRendering:"pixelated",cursor:x==="seat"?"crosshair":"cell"},onMouseDown:F,onMouseMove:V,onMouseUp:Y,onMouseLeave:Y})}),w&&u.jsxs("div",{className:"ce-export-panel",children:[u.jsxs("div",{className:"ce-export-header",children:[u.jsx("span",{children:"Export — copy to source code"}),u.jsx("button",{className:"ce-btn",onClick:()=>navigator.clipboard.writeText(q),children:"Copy"})]}),u.jsx("textarea",{className:"ce-export-textarea",value:q,readOnly:!0,rows:20})]})]})]})}let _4=0;function bi(e,t,n={}){return{event_id:`test-${++_4}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function $n(e){return new Promise(t=>setTimeout(t,e))}async function k4(e){const t=[],n=e.getScene();if(!n)return t.push({name:"scene-ready",pass:!1,detail:"OfficeScene not initialized"}),t;console.log("%c[EventTest] Starting full event test suite (multi-office)...","color: #6366f1; font-weight: bold");for(const I of[...n.agents.keys()])n.removeAgent(I);await $n(100);const i=Qn();t.push({name:"offices-loaded",pass:i.length>=3,detail:`${i.length} offices loaded: ${i.map(I=>I.name).join(", ")}`});const r=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const I of r)e.pushEvent(bi("agent_active",I));await $n(300);const o=new Set;let a=!1;for(const I of r){const $=n.getAgent(I);$&&$.seatId&&(o.has($.seatId)&&(a=!0),o.add($.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===r.length,detail:`Assigned ${o.size} unique seats to ${r.length} agents. IDs: [${[...o].join(", ")}]`});const c=r.every(I=>n.getAgent(I)?.officeId!=null);t.push({name:"agents-have-officeId",pass:c,detail:r.map(I=>`${I}=${n.getAgent(I)?.officeId}`).join(", ")}),e.pushEvent(bi("tool_start","agent-A",{tool_name:"shell"})),await $n(200);const d=n.getAgent("agent-A");t.push({name:"tool_start-state",pass:d.isActive===!0&&d.currentTool==="shell",detail:`isActive=${d.isActive}, currentTool=${d.currentTool}`}),e.pushEvent(bi("tool_done","agent-A",{tool_name:"shell"})),await $n(100),t.push({name:"tool_done-celebrate",pass:d.agentState==="celebrate",detail:`state=${d.agentState}`});for(let I=0;I<20&&d.agentState==="celebrate";I++)await $n(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(bi("waiting","agent-B")),await $n(200);const m=n.getAgent("agent-B");t.push({name:"waiting-state",pass:m.isActive===!1&&(m.agentState==="walk"||m.agentState==="idle"||m.agentState==="coffee"),detail:`isActive=${m.isActive}, state=${m.agentState}`}),e.pushEvent(bi("reflect_start","agent-C")),await $n(200);const h=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:h.currentTool==="Reflect"&&(h.agentState==="walk"||h.agentState==="reflect"),detail:`currentTool=${h.currentTool}, state=${h.agentState}`}),e.pushEvent(bi("reflect_done","agent-C")),await $n(100),t.push({name:"reflect_done-celebrate",pass:h.agentState==="celebrate",detail:`state=${h.agentState}`});const p=["agent-A","agent-B","agent-C","agent-D"];for(const I of p)e.pushEvent(bi("collab_started",I));await $n(4e3);const g=new Map;let x=!1;for(const I of p){const $=n.getAgent(I);if(!$)continue;const G=$.getTilePos(),P=`${G.x},${G.y}`;g.has(P)&&(x=!0),g.set(P,I)}t.push({name:"collab-no-overlap",pass:!x,detail:`${p.length} agents, ${g.size} unique positions`});for(const I of p)e.pushEvent(bi("collab_ended",I));await $n(100);const v=p.every(I=>n.getAgent(I)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:p.map(I=>`${I}=${n.getAgent(I)?.agentState}`).join(", ")}),await $n(3e3),e.pushEvent(bi("practice_start","agent-E",{target_domain:"TypeScript"})),await $n(200);const b=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:b.currentTool==="Practice"&&(b.agentState==="walk"||b.agentState==="practice"),detail:`currentTool=${b.currentTool}, state=${b.agentState}`}),e.pushEvent(bi("practice_done","agent-E")),await $n(100),t.push({name:"practice_done-celebrate",pass:b.agentState==="celebrate",detail:`state=${b.agentState}`}),await $n(3e3),e.pushEvent(bi("task_delegated","agent-A",{target:"agent-B"})),await $n(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(bi("delegation_done","agent-A",{target:"agent-B"})),await $n(300),t.push({name:"delegation_done-return",pass:["idle","walk","type"].includes(d.agentState),detail:`state=${d.agentState}`});const S=n.getAgent("agent-F");e.pushEvent(bi("message_in","agent-F",{content_preview:"Hello test"})),await $n(200),t.push({name:"message_in-active",pass:S.isActive===!0,detail:`isActive=${S.isActive}, state=${S.agentState}`}),e.pushEvent(bi("message_out","agent-F",{content_preview:"Reply test"})),await $n(100),t.push({name:"message_out-bubble",pass:S.bubbleText?.includes("Reply")===!0,detail:`bubble="${S.bubbleText}"`}),e.pushEvent(bi("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await $n(200);const w=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:w!=null&&w.isSubagent===!0,detail:`created=${!!w}, isSubagent=${w?.isSubagent}`}),e.pushEvent(bi("subagent_done","subagent-test-1")),await $n(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(bi("task_routed","agent-E",{method:"auto"})),await $n(200),t.push({name:"task_routed-active",pass:b.isActive===!0,detail:`isActive=${b.isActive}, state=${b.agentState}`}),e.pushEvent(bi("agent_removed","agent-F")),await $n(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(bi("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await $n(4e3);const k=new Map;let j=!1;for(const I of["agent-A","agent-B","agent-C"]){const $=n.getAgent(I);if(!$)continue;const G=$.getTilePos(),P=`${G.x},${G.y}`;k.has(P)&&(j=!0),k.set(P,I)}t.push({name:"crystal-no-overlap",pass:!j,detail:`3 agents, ${k.size} unique positions`});const N=new Map;let z=!1;for(const I of n.agents.values())I.seatId&&(N.has(I.seatId)&&(z=!0),N.set(I.seatId,I.agentId));t.push({name:"desk-seat-no-conflict",pass:!z,detail:`${N.size} desk seats assigned, conflict=${z}`});const T=n.getAgent("agent-D");if(T){const I=T.officeId,$=i.find(P=>P.id!==I)??i[1];e.assignAgentToOffice("agent-D",$.id),await $n(300);const G=T.officeId;t.push({name:"reassign-office",pass:G===$.id&&G!==I,detail:`${I} → ${G} (expected ${$.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const M=new Map;let L=!1;for(const I of n.agents.values())I.seatId&&(M.has(I.seatId)&&(L=!0),M.set(I.seatId,I.agentId));t.push({name:"cross-office-seat-unique",pass:!L,detail:`${M.size} seats, conflict=${L}`});const A=t.filter(I=>I.pass).length,O=t.filter(I=>!I.pass).length;console.log(""),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold"),console.log(`%c[EventTest] Results: ${A} passed, ${O} failed, ${t.length} total`,`color: ${O>0?"#f87171":"#34d399"}; font-weight: bold`),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold");for(const I of t){const $=I.pass?"✅":"❌",G=I.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${$} ${I.name}: ${I.detail}`,G)}return t}function S4(e){window.__runEventTests=()=>k4(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const w4={queued:"todo",ready:"todo",ready_for_rework:"todo",waiting_dependencies:"todo",running:"in-progress",waiting_for_peer:"in-progress",waiting_for_children:"in-progress",paused:"in-progress",needs_attention:"in-progress",awaiting_manager_review:"in-review",awaiting_human:"in-review",approved:"done",failed:"done",cancelled:"done"};function C4(e){return e?w4[e]??"todo":"todo"}function j4(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function E4(e,t){switch(t.type){case"SET":return t.boards;case"UPDATE_NAME":return e.map(n=>n.id===t.boardId?{...n,name:t.name}:n);default:return e}}function N4(e,t){return t.type==="SET"?t.columns:e}function I4(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(i=>i.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(i=>i.id===t.id?{...i,...t.partial,updatedAt:n}:i);case"DELETE":return e.filter(i=>i.id!==t.id);case"MOVE":return e.map(i=>i.id===t.id?{...i,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:i);case"ASSIGN":return e.map(i=>i.id===t.taskId?{...i,assigneeIds:t.agentIds,updatedAt:n}:i);case"REMOVE_ASSIGNEE":return e.map(i=>i.assigneeIds.includes(t.agentId)?{...i,assigneeIds:i.assigneeIds.filter(r=>r!==t.agentId),updatedAt:n}:i);default:return e}}function T4(){const[e,t]=C.useReducer(E4,[]),[n,i]=C.useReducer(N4,[]),[r,o]=C.useReducer(I4,[]),[a,c]=C.useState(null),[d,m]=C.useState("default"),h=C.useMemo(()=>e.find(M=>M.id===a)??null,[e,a]),p=C.useMemo(()=>n.filter(M=>M.boardId===a).sort((M,L)=>M.sortOrder-L.sortOrder),[n,a]),g=C.useMemo(()=>{const M=r.filter(A=>A.boardId===a),L={};for(const A of p)L[A.id]=[];for(const A of M){const O=A.phase?C4(A.phase):A.columnId;L[O]&&L[O].push(A)}for(const A of Object.keys(L))L[A].sort((O,I)=>O.sortOrder-I.sortOrder);return L},[r,a,p]),x=C.useCallback(M=>{const L=e.find($=>$.id===M.boardId),A=L?.nextTaskNum??1,O=L?.prefix??"T",I={id:M.taskId??`task-${j4()}`,displayId:M.displayId??`${O}-${String(A).padStart(3,"0")}`,boardId:M.boardId,columnId:M.columnId,title:M.title,description:M.description,priority:M.priority??null,assigneeIds:M.assigneeIds??[],tags:M.tags??[],sortOrder:A,createdAt:Date.now(),updatedAt:Date.now()};return o({type:"ADD",task:I}),I},[e]),v=C.useCallback((M,L)=>o({type:"UPDATE",id:M,partial:L}),[]),b=C.useCallback(M=>o({type:"DELETE",id:M}),[]),S=C.useCallback((M,L,A)=>o({type:"MOVE",id:M,columnId:L,sortOrder:A}),[]),w=C.useCallback((M,L)=>o({type:"ASSIGN",taskId:M,agentIds:L}),[]),k=C.useCallback(()=>{const M=new Set(n.filter(L=>L.isTerminal).map(L=>L.id));return r.filter(L=>!M.has(L.columnId)).length},[r,n]),j=C.useCallback(M=>{o({type:"REMOVE_ASSIGNEE",agentId:M})},[]),N=C.useCallback((M,L,A,O,I)=>{const $=M||"default",G=$!==d,P=!G&&!!I?.preserveTasksWhenIncomingEmpty&&O.length===0;m($),t({type:"SET",boards:L}),i({type:"SET",columns:A}),o({type:"SET",tasks:P?r:O}),c(F=>!G&&F&&L.some(V=>V.id===F)?F:null)},[d,r]),z=C.useCallback(M=>{c(M)},[]),T=C.useCallback((M,L)=>{t({type:"UPDATE_NAME",boardId:M,name:L})},[]);return C.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:r,activeBoardId:a,activeBoard:h,activeBoardColumns:p,tasksByColumn:g,setActiveBoard:z,createTask:x,updateTask:v,deleteTask:b,moveTask:S,assignTask:w,dispatchTask:o,getOpenTaskCount:k,removeAssignee:j,initFromBackend:N,updateBoardName:T}),[d,e,n,r,a,h,p,g,z,x,v,b,S,w,o,k,j,N,T])}var Dm=lE();const R4=pa(Dm);function Za(e,t,n){let i=n.initialDeps??[],r,o=!0;function a(){var c,d,m;let h;n.key&&((c=n.debug)!=null&&c.call(n))&&(h=Date.now());const p=e();if(!(p.length!==i.length||p.some((v,b)=>i[b]!==v)))return r;i=p;let x;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(x=Date.now()),r=t(...p),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-h)*100)/100,b=Math.round((Date.now()-x)*100)/100,S=b/16,w=(k,j)=>{for(k=String(k);k.length{i=c},a}function fS(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const A4=(e,t)=>Math.abs(e-t)<1.01,M4=(e,t,n)=>{let i;return function(...r){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,r),n)}},mS=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},D4=e=>e,O4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let r=t;r<=n;r++)i.push(r);return i},L4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;const r=a=>{const{width:c,height:d}=a;t({width:Math.round(c),height:Math.round(d)})};if(r(mS(n)),!i.ResizeObserver)return()=>{};const o=new i.ResizeObserver(a=>{const c=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){r({width:m.inlineSize,height:m.blockSize});return}}r(mS(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(c):c()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},pS={passive:!0},hS=typeof window>"u"?!0:"onscrollend"in window,z4=(e,t)=>{const n=e.scrollElement;if(!n)return;const i=e.targetWindow;if(!i)return;let r=0;const o=e.options.useScrollendEvent&&hS?()=>{}:M4(i,()=>{t(r,!1)},e.options.isScrollingResetDelay),a=h=>()=>{const{horizontal:p,isRtl:g}=e.options;r=p?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(r,h)},c=a(!0),d=a(!1);n.addEventListener("scroll",c,pS);const m=e.options.useScrollendEvent&&hS;return m&&n.addEventListener("scrollend",d,pS),()=>{n.removeEventListener("scroll",c),m&&n.removeEventListener("scrollend",d)}},P4=(e,t,n)=>{if(t?.borderBoxSize){const i=t.borderBoxSize[0];if(i)return Math.round(i[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},B4=(e,{adjustments:t=0,behavior:n},i)=>{var r,o;const a=e+t;(o=(r=i.scrollElement)==null?void 0:r.scrollTo)==null||o.call(r,{[i.options.horizontal?"left":"top"]:a,behavior:n})};class $4{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var n,i,r;return((r=(i=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:i.now)==null?void 0:r.call(i))??Date.now()},this.observer=(()=>{let n=null;const i=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(r=>{r.forEach(o=>{const a=()=>{const c=o.target,d=this.indexFromElement(c);if(!c.isConnected){this.observer.unobserve(c);return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(c,o,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));return{disconnect:()=>{var r;(r=i())==null||r.disconnect(),n=null},observe:r=>{var o;return(o=i())==null?void 0:o.observe(r,{box:"border-box"})},unobserve:r=>{var o;return(o=i())==null?void 0:o.unobserve(r)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([i,r])=>{typeof r>"u"&&delete n[i]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:D4,rangeExtractor:O4,onChange:()=>{},measureElement:P4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var i,r;(r=(i=this.options).onChange)==null||r.call(i,this,n)},this.maybeNotify=Za(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const i=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==i){if(this.cleanup(),!i){this.maybeNotify();return}this.scrollElement=i,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(r=>{this.observer.observe(r)}),this.unsubs.push(this.options.observeElementRect(this,r=>{this.scrollRect=r,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(r,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,i)=>{const r=new Map,o=new Map;for(let a=i-1;a>=0;a--){const c=n[a];if(r.has(c.lane))continue;const d=o.get(c.lane);if(d==null||c.end>d.end?o.set(c.lane,c):c.enda.end===c.end?a.index-c.index:a.end-c.end)[0]:void 0},this.getMeasurementOptions=Za(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,i,r,o,a,c)=>(this.prevLanes!==void 0&&this.prevLanes!==c&&(this.lanesChangedFlag=!0),this.prevLanes=c,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c}),{key:!1}),this.getMeasurements=Za(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:i,scrollMargin:r,getItemKey:o,enabled:a,lanes:c},d)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>n)for(const g of this.laneAssignments.keys())g>=n&&this.laneAssignments.delete(g);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(g=>{this.itemSizeCache.set(g.key,g.size)}));const m=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===n&&(this.lanesSettling=!1);const h=this.measurementsCache.slice(0,m),p=new Array(c).fill(void 0);for(let g=0;g1){b=v;const N=p[b],z=N!==void 0?h[N]:void 0;S=z?z.end+this.options.gap:i+r}else{const N=this.options.lanes===1?h[g-1]:this.getFurthestMeasurement(h,g);S=N?N.end+this.options.gap:i+r,b=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,b)}const w=d.get(x),k=typeof w=="number"?w:this.options.estimateSize(g),j=S+k;h[g]={index:g,start:S,size:k,end:j,key:x,lane:b},p[b]=g}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Za(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,i,r,o)=>this.range=n.length>0&&i>0?H4({measurements:n,outerSize:i,scrollOffset:r,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Za(()=>{let n=null,i=null;const r=this.calculateRange();return r&&(n=r.startIndex,i=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,i]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,i]},(n,i,r,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:i,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const i=this.options.indexAttribute,r=n.getAttribute(i);return r?parseInt(r,10):(console.warn(`Missing attribute name '${i}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var i;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const r=this.scrollState.index??((i=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:i.index);if(r!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,r-o),c=Math.min(this.options.count-1,r+o);return n>=a&&n<=c}return!0},this.measureElement=n=>{if(!n){this.elementsCache.forEach((a,c)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(c))});return}const i=this.indexFromElement(n),r=this.options.getItemKey(i),o=this.elementsCache.get(r);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(r,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,i)=>{var r;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,c=i-a;c!==0&&(((r=this.scrollState)==null?void 0:r.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,c,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,i)=>{const r=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const i=this.getMeasurements();if(i.length!==0)return fS(i[vE(0,i.length-1,r=>fS(i[r]).start,n)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const n=this.scrollElement.document.documentElement;return this.options.horizontal?n.scrollWidth-this.scrollElement.innerWidth:n.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(n,i,r=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();i==="auto"&&(i=n>=a+o?"end":"start"),i==="center"?n+=(r-o)/2:i==="end"&&(n-=o);const c=this.getMaxScrollOffset();return Math.max(Math.min(c,n),0)},this.getOffsetForIndex=(n,i="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const r=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(i==="auto")if(a.end>=o+r-this.options.scrollPaddingEnd)i="end";else if(a.start<=o+this.options.scrollPaddingStart)i="start";else return[o,i];if(i==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),i];const c=i==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(c,i,a.size),i]},this.scrollToOffset=(n,{align:i="start",behavior:r="auto"}={})=>{const o=this.getOffsetForAlignment(n,i),a=this.now();this.scrollState={index:null,align:i,behavior:r,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:i="auto",behavior:r="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,i);if(!o)return;const[a,c]=o,d=this.now();this.scrollState={index:n,align:c,behavior:r,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:i="auto"}={})=>{const r=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:i,startedAt:o,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const i=this.getMeasurements();let r;if(i.length===0)r=this.options.paddingStart;else if(this.options.lanes===1)r=((n=i[i.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=i.length-1;for(;a>=0&&o.some(c=>c===null);){const c=i[a];o[c.lane]===null&&(o[c.lane]=c.end),a--}r=Math.max(...o.filter(c=>c!==null))}return Math.max(r-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:i,behavior:r})=>{this.options.scrollToFn(n,{behavior:r,adjustments:i},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(t)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const i=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,r=i?i[0]:this.scrollState.lastTargetOffset,o=1,a=r!==this.scrollState.lastTargetOffset;if(!a&&A4(r,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=r,this.scrollState.behavior="auto",this._scrollToOffset(r,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const vE=(e,t,n,i)=>{for(;e<=t;){const r=(e+t)/2|0,o=n(r);if(oi)t=r-1;else return r}return e>0?e-1:0};function H4({measurements:e,outerSize:t,scrollOffset:n,lanes:i}){const r=e.length-1,o=d=>e[d].start;if(e.length<=i)return{startIndex:0,endIndex:r};let a=vE(0,r,o,n),c=a;if(i===1)for(;c1){const d=Array(i).fill(0);for(;ch=0&&m.some(h=>h>=n);){const h=e[a];m[h.lane]=h.start,a--}a=Math.max(0,a-a%i),c=Math.min(r,c+(i-1-c%i))}return{startIndex:a,endIndex:c}}const gS=typeof document<"u"?C.useLayoutEffect:C.useEffect;function F4({useFlushSync:e=!0,...t}){const n=C.useReducer(()=>({}),{})[1],i={...t,onChange:(o,a)=>{var c;e&&a?Dm.flushSync(n):n(),(c=t.onChange)==null||c.call(t,o,a)}},[r]=C.useState(()=>new $4(i));return r.setOptions(i),gS(()=>r._didMount(),[]),gS(()=>r._willUpdate()),r}function V4(e){return F4({observeElementRect:L4,observeElementOffset:z4,scrollToFn:B4,...e})}function U4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2C9.5 2 7.5 3.5 7 5.5C5 5.5 3 7.5 3 10C3 12 4.5 13.5 6 14V20C6 21.1 6.9 22 8 22H16C17.1 22 18 21.1 18 20V14C19.5 13.5 21 12 21 10C21 7.5 19 5.5 17 5.5C16.5 3.5 14.5 2 12 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 2V8M8 6H16M12 14V18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Om(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94L6.73 20.15a2.12 2.12 0 0 1-3-3l6.72-6.72a6 6 0 0 1 7.94-7.94L14.7 6.3z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function bE(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"3",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"8",y:"8",width:"8",height:"8",rx:"1.5",fill:"currentColor"})]})}function q4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M5 12L3 3L21 12L3 21L5 12ZM5 12H13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Lm(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Hl(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M20 6L9 17L4 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function G4(){return u.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M13 8H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M17 12H7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function W4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66L9.41 17.41a2 2 0 0 1-2.83-2.83l8.49-8.49",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function as({down:e}){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",style:{transition:"transform 200ms",transform:e?"rotate(90deg)":"none"},children:u.jsx("path",{d:"M9 18L15 12L9 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Y4(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 5V19M5 12H19",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}function Xv(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"11",cy:"11",r:"8",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M21 21L16.65 16.65",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function X4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M3 6H5H21",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6L18.13 20.11A2 2 0 0 1 16.14 22H7.86a2 2 0 0 1-2-1.89L5 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function K4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1.5",stroke:"currentColor",strokeWidth:"1.5"})]})}function _E(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M22 12H18L15 21L9 3L6 12H2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function _u(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function bl(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function kE(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M5 12h14",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"m12 5 7 7-7 7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Z4(){return u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9 11L12 14L22 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M21 12V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function yS(){return u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M13 2L3 14H12L11 22L21 10H12L13 2Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function zm(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M4 18H10V14H4V18Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M8 14H14V10H8V14Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M12 10H18V6H12V10Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 8L21 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Q4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M9 12L11 14L15 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function J4(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Fc(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M12 6V12L16 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Kf(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M7 17L2 12L7 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M17 7L22 12L17 17",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 12H22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function _l(){return u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M12 2V22",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("circle",{cx:"12",cy:"6",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"12",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("circle",{cx:"12",cy:"18",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),u.jsx("path",{d:"M14 6H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 12H18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),u.jsx("path",{d:"M14 18H20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function Pm(){return u.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:u.jsx("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function xS({size:e=12}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function eD({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("circle",{cx:"12",cy:"8",r:"5",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 21a8 8 0 0 0-16 0",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round"})]})}function tD({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10 6h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 10h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 14h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M10 18h4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}function nD({size:e=14}={}){return u.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[u.jsx("path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.582a.5.5 0 0 1 0 .962L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M20 3v4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M22 5h-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M4 17v2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),u.jsx("path",{d:"M5 18H3",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}const sl=new Set(["done","failed","cancelled"]),iD=new Set(["company","org","custom"]),rD=new Set(["idle","done","failed","cancelled"]);function Bm(e){return sl.has(e.status)?"idle":e.agentStatus==="reflecting"||e.agentStatus==="tool_active"?e.agentStatus:e.runtimeControlState&&e.runtimeControlState!=="running"&&e.runtimeControlState!=="suspending"&&e.runtimeControlState!=="resuming"?"idle":e.status==="running"?"reflecting":"idle"}function ls(e){return Bm(e)!=="idle"}function sD(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return iD.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function oD(e,t){if(!sD(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(rD.has(n)){const i=e?.runtimeControlState;return i==="suspending"||i==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function Tg(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function vS(e){return Math.max(0,Math.min(Math.round(e),100))}function SE(e){const t=Tg(e?.contextTokens),n=Tg(e?.contextWindow),i=Tg(e?.contextRemainingPct),r=typeof t=="number"?Math.max(0,Math.round(t)):void 0,o=typeof n=="number"&&n>0?Math.max(1,Math.round(n)):void 0,a=typeof i=="number"?vS(i):void 0;if(typeof r=="number"&&typeof o=="number"){const c=Math.min(r,o),d=vS(c/o*100);return{usedPct:d,remainingPct:100-d,usedTokens:c,windowTokens:o}}if(typeof a=="number"&&typeof o=="number"){const c=100-a;return{usedPct:c,remainingPct:a,usedTokens:Math.round(c/100*o),windowTokens:o}}return typeof o=="number"?{usedPct:0,remainingPct:100,usedTokens:0,windowTokens:o}:typeof a=="number"?{remainingPct:a}:typeof r=="number"?{usedTokens:r}:{}}const aD=new Set(["runtime_v2_assistant","runtime_v2_company_assistant","child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]);function $m(e){const t=e??{};for(const n of["canonical_turn_id","conversation_turn_id","turn_id","execution_turn_id"]){const i=String(t[n]??"").trim();if(i)return i}return""}function Zf(e){if(e.sender==="user")return"";const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!aD.has(n))return"";if(n==="runtime_v2_company_assistant"){const i=String(t.ui_message_id??"").trim();if(!(t.company_final_turn===!0||!!String(t.result_delivery_id??"").trim()||i.startsWith("runtime-v2-company-assistant-final:")||String(t.detail_visibility??"").trim()==="summary"))return""}return $m(t)}const lD=new Set(["child_task_result","child_task_result_retry","company_role_result","company_role_result_retry","child_result","top_level_reply"]),Kx=new Set(["runtime_v2_assistant","runtime_v2_company_assistant"]);function na(e,...t){for(const n of t){const i=String(e[n]??"").trim();if(i)return i}return""}function cD(e,t){const i=na(e,"result_attempt","attempt","attempt_index","retry_count","retryCount")||(t.endsWith("_retry")?"retry":""),r=na(e,"result_revision","delivery_revision","revision");return[i?`attempt:${i}`:"",r?`revision:${r}`:""].filter(Boolean).join(":")}function Rg(e,t,n){const i=cD(t,n);return i?`${e}:${i}`:e}function wE(e){const t=e.metadata??{},n=String(t.transcript_kind??t.kind??"").trim();if(!lD.has(n)&&!Kx.has(n))return"";const i=na(t,"canonical_delivery_id","result_delivery_id","delivery_id");if(i)return`delivery:${i}`;if(Kx.has(n)){const d=$m(t);return d?`turn:${d}`:""}const o=na(t,"source_task_id","child_task_id")||(n==="top_level_reply"?"":na(t,"task_id","taskId"));if(o)return Rg(`source-task:${o}`,t,n);const a=na(t,"work_item_id","work_item_projection_id");if(a)return Rg(`work-item:${a}`,t,n);const c=na(t,"child_session_id");return c?Rg(`child-session:${c}`,t,n):""}function Kv(e){const t=e.metadata??{},n=String(t.checkpoint_id??"").trim();if(n)return`checkpoint:${n}`;const i=String(t.ui_message_id??"").trim(),r=String(t.transcript_kind??t.kind??"").trim(),o=String(t.role??"").trim().toLowerCase(),a=e.sender==="user"||o==="user"||r==="runtime_v2_user_turn"||r==="top_level_user_turn";if(a&&i)return`ui:${i}`;const c=String(t.ui_timeline_id??"").trim();if(c)return c;const d=Kx.has(r)?Zf(e):"";if(!a&&d)return`turn:assistant:${d}`;const m=wE(e);return!a&&m?`result:${m}`:`message:${e.id}`}const uD=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,dD=/(\d{1,3})%\s*used/i,fD=/(\d{1,3})%\s*remaining/i;function Zv(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function mD(e){return e.replace(/\s+/g," ").trim()}function pD(e){let t=String(e||"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(i=>i.trimEnd()).join(` -`).replace(/\n{3,}/g,` - -`).trim();for(;;){const i=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!i)break;const r=i[2].trim();if(r.length<80||r===t)break;t=r}const n=t.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return n.length>1&&/^Verification:\s/i.test(n[n.length-1])&&(t=n.slice(0,-1).join(` - -`).trim()),mD(t).slice(0,2e3)}function Zx(e){const t=e.metadata??{};switch(String(t.transcript_kind??t.kind??"").trim()){case"child_task_result":return 80;case"child_task_result_retry":return 79;case"company_role_result":return 75;case"company_role_result_retry":return 74;case"child_result":return 70;case"runtime_v2_assistant":return 60;case"runtime_v2_company_assistant":return 20;case"top_level_reply":return 40}return String(t.kind??"").trim()==="worker_notification"?20:0}function bS(e){return String(e.content??"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(t=>t.trimEnd()).join(` -`).trim().length}function _S(e){const t=e.metadata??{};let n=0;return String(t.source??"").trim()==="engine"&&(n+=4),String(t.source_result_message_id??"").trim()&&(n+=2),(t.authoritative_output===!0||t.canonical_result===!0)&&(n+=1),n}function hD(e,t){const n=[[Zx(e),Zx(t)],[_S(e),_S(t)],[bS(e),bS(t)]];for(const[o,a]of n)if(o!==a)return o>a?1:-1;const i=e.id.localeCompare(t.id);if(i!==0)return i;const r=e.content.localeCompare(t.content);return r!==0?r:e.timestamp===t.timestamp?0:e.timestamp>t.timestamp?1:-1}function CE(e){if(Zx(e)<=0)return"";const t=wE(e);if(t)return`result:${t}`;const n=pD(e.content);return n?`result:${n}`:""}function lf(e){if(!e)return;const t=e.replace(/,/g,"").trim();if(!t)return;const n=Number(t);return Number.isFinite(n)?Math.max(0,Math.round(n)):void 0}function kS(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function kl(e){if(!e)return;const t=String(e.execMode??"").trim();if(!(t==="company"||t==="org"||t==="custom"||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems))return;const i=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(i.length===0)return;const r=i.map(o=>o.aggregatedStatus);if(r.some(o=>o==="active"))return"running";if(r.some(o=>o==="waiting")||r.some(o=>o==="pending"))return"pending";if(r.every(o=>o==="failed"))return"failed";if(r.every(o=>o==="done")||r.some(o=>o==="done"))return"done"}function gD(e){const t={};for(const n of e??[]){const i=`${n.summary??""} ${n.detail??""}`.trim();if(!i)continue;const r=uD.exec(i);if(r){const c=lf(r[1]),d=lf(r[2]);typeof c=="number"&&(t.contextTokens=c),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=fD.exec(i);if(o){t.contextRemainingPct=kS(lf(o[1]));continue}const a=dD.exec(i);if(a){const c=kS(lf(a[1]));typeof c=="number"&&(t.contextRemainingPct=100-c)}}return t}function Qf(e){const t=gD(e.progressLog),n=e.contextTokens??t.contextTokens,i=e.contextWindow??t.contextWindow,r=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&i===e.contextWindow&&r===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:i,contextRemainingPct:r}}function jE(e){const t=new Set,n=[];for(const i of e)t.has(i.taskId)||(t.add(i.taskId),n.push(i));return n}function yD(e){return!!(String(e?.workItemRoleId??"").trim()||String(e?.workItemRoleName??"").trim())}function Pf(e,t){if(!e||e.mode==="child")return[];const n=new Set;e.sessionId&&n.add(e.sessionId),n.add(e.taskId);const i=String(e.originTaskId??e.taskId??"").trim(),r=new Map;for(const c of e.workItemLog??[]){const d=c.executionTurnId||c.runtimeTaskId;d&&!r.has(d)&&r.set(d,r.size)}const o=new Set;return t.filter(c=>{if(c.taskId===e.taskId||o.has(c.taskId))return!1;const d=!!c.parentSessionId&&n.has(c.parentSessionId),m=r.has(c.taskId),h=!!i&&String(c.originTaskId??"").trim()===i;return!d&&!m&&!h?!1:(o.add(c.taskId),!0)}).sort((c,d)=>{const m=r.get(c.taskId),h=r.get(d.taskId);return m!=null&&h!=null&&m!==h?m-h:m!=null&&h==null?-1:m==null&&h!=null?1:d.updatedAt-c.updatedAt})}function SS(e,t){const n=Pf(e,t);return!e||e.mode==="child"||!yD(e)?n:jE([e,...n])}function Jf(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const i=new Set;return t.filter(r=>r.taskId===e.taskId||i.has(r.taskId)||String(r.sessionId??"").trim()!==n?!1:(i.add(r.taskId),!0)).sort((r,o)=>o.updatedAt-r.updatedAt)}function xD(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function wS(e){const t=ls(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,i=Math.max(0,e.messageCount??0)*1e4,r=(e.progressLog?.length??0)*100;return n+t+i+r+e.updatedAt}function CS(e){const t=SE(e),n=ls(e)?1e11:0,i=String(e.draftAssistantText??"").trim()?1e10:0,r=typeof t.usedPct=="number"||typeof t.usedTokens=="number"||typeof t.windowTokens=="number"?1e10:0,o=typeof e.inputTokens=="number"||typeof e.outputTokens=="number"||typeof e.totalTokens=="number"?1e9:0,a=Math.max(0,e.messageCount??0)*1e4,c=(e.progressLog?.length??0)*100;return n+i+r+o+a+c}function em(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=Qf(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const i=t.map(Qf),r=i.filter(p=>p.status!=="cancelled"),o=r.length>0?r:i,a=jE([n,...o]),c=xD(e),d=[...a].sort((p,g)=>wS(g)-wS(p))[0]??n,m=c?n:d,h=[...a].sort((p,g)=>CS(g)-CS(p))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:h,projectedFromChild:!c&&m.taskId!==e.taskId}}function jS(e,t,n){if(!e)return null;const i=Qf(e),r=t??i,o=kl(r)??kl(i),a=tm(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),assigneeIds:r.assigneeIds.length>0?r.assigneeIds:i.assigneeIds,agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,workItemProjectionId:r.workItemProjectionId??i.workItemProjectionId,workItemTurnType:r.workItemTurnType??i.workItemTurnType,companyProfile:i.companyProfile??r.companyProfile,workItemRoleId:i.workItemRoleId??r.workItemRoleId,workItemRoleName:i.workItemRoleName??r.workItemRoleName,workItemGate:i.workItemGate??r.workItemGate,employeeAssignment:i.employeeAssignment??r.employeeAssignment,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,draftAssistantText:r.draftAssistantText??i.draftAssistantText,draftUpdatedAt:r.draftUpdatedAt??i.draftUpdatedAt,draftIteration:r.draftIteration??i.draftIteration,draftTurnId:r.draftTurnId??i.draftTurnId,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a),isCompanyRuntime:!!(i.isCompanyRuntime||r.isCompanyRuntime),workItemLog:(i.workItemLog?.length??0)>0?i.workItemLog:r.workItemLog,roleWorkItems:i.roleWorkItems??r.roleWorkItems,executorRoleWorkItems:i.executorRoleWorkItems??r.executorRoleWorkItems,activeSubagents:i.activeSubagents??r.activeSubagents,permissionRequests:i.permissionRequests??r.permissionRequests}}function vD(e,t,n){if(!e)return null;const i=Qf(e),r=t??i,o=kl(r)??kl(i),a=tm(n.length>0?n:[i]);return{...i,status:o??(r.status||i.status),agentStatus:r.agentStatus??i.agentStatus,currentTool:r.currentTool??i.currentTool,displayTool:r.displayTool??r.currentTool??i.displayTool??i.currentTool,toolElapsedMs:r.toolElapsedMs??i.toolElapsedMs,lastToolSummary:r.lastToolSummary??i.lastToolSummary,contextTokens:r.contextTokens??i.contextTokens,contextWindow:r.contextWindow??i.contextWindow,contextRemainingPct:r.contextRemainingPct??i.contextRemainingPct,inputTokens:r.inputTokens??i.inputTokens,outputTokens:r.outputTokens??i.outputTokens,totalTokens:r.totalTokens??i.totalTokens,turnCostUsd:r.turnCostUsd??i.turnCostUsd,sessionCostUsd:r.sessionCostUsd??i.sessionCostUsd,pendingPermissionCount:r.pendingPermissionCount??i.pendingPermissionCount,drainMode:r.drainMode??i.drainMode,selectedExecutionAgent:r.selectedExecutionAgent??i.selectedExecutionAgent,runtimeControlState:r.runtimeControlState??i.runtimeControlState,canStop:r.canStop??i.canStop,canResume:r.canResume??i.canResume,resumeParentSessionId:r.resumeParentSessionId??i.resumeParentSessionId,pendingRuntimeCheckpointId:r.pendingRuntimeCheckpointId??i.pendingRuntimeCheckpointId,stopIntentId:r.stopIntentId??i.stopIntentId,updatedAt:Math.max(i.updatedAt,r.updatedAt),messageCount:Math.max(i.messageCount??0,r.messageCount??0,a)}}function Qx(e){const t=new Set,n=new Map,i=new Map,r=[];for(const o of e)for(const a of o){const c=a.metadata??{},d=String(c.checkpoint_id??"").trim();if(d){const x=i.get(d);if(x!==void 0){const v=r[x],b=a.timestamp>=v.timestamp?a:v,S=a.timestamp0,S=b?a:v,w=b?v:a;r[x]={...w,...S,timestamp:Math.min(v.timestamp,a.timestamp),metadata:{...w.metadata??{},...S.metadata??{},ui_timeline_id:h||Kv(v)}};continue}n.set(h,r.length)}const p=d?`checkpoint:${d}`:"",g=h||p||m||`${a.sender}:${a.replyToId??""}:${a.timestamp}:${a.content.trim()}`;t.has(g)||(t.add(g),d&&i.set(d,r.length),r.push(a))}return r.sort((o,a)=>o.timestamp===a.timestamp?o.id.localeCompare(a.id):o.timestamp-a.timestamp)}function ES(e,t){const n=[];for(const i of e){if(i.channelId===t){Zv(i,"summary")&&n.push(i);continue}const r=i.metadata??{},o=String(r.transcript_kind??r.kind??"").trim(),a=String(r.checkpoint_id??"").trim(),c=String(r.checkpoint_type??"").trim(),d=String(r.response_to_checkpoint_id??"").trim();if(a&&c||d){n.push(i);continue}["company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result","top_level_reply"].includes(o)&&n.push(i)}return Qx([n])}function NS(e){const t=new Set,n=[];for(const i of e)for(const r of i.progressLog??[]){const o=`${r.timestamp}:${r.type}:${r.summary}:${r.detail??""}`;t.has(o)||(t.add(o),n.push(r))}return n.sort((i,r)=>i.timestamp-r.timestamp)}function tm(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const EE="openopc_locale",bD={"app.page.workspace":"Workspace","app.page.office":"Office","app.page.org":"Org","app.page.mapEditor":"Map editor","app.metric.agents":"agents","app.metric.skills":"skills","app.metric.tasks":"tasks","language.label":"Language","language.english":"EN","language.chinese":"简","outdoor.title":"Outdoor lighting override","outdoor.auto":"Outdoor auto","outdoor.day":"Outdoor day","outdoor.night":"Outdoor night","theme.label":"Color theme","theme.midnight":"Midnight","theme.neon":"Neon","theme.paper":"Paper","theme.retro":"Retro","theme.terminal":"Terminal","theme.cozy":"Cozy","theme.openopc":"OpenOPC","dev.tools":"Developer Tools","dev.connection":"Connection","dev.evolution":"Evolution Pipeline","dev.events":"Events","dev.channels":"Channels","dev.phase.trace":"Trace","dev.phase.reflect":"Reflect","dev.phase.synthesize":"Synthesize","dev.phase.practice":"Practice","dev.phase.lifecycle":"Lifecycle","project.switch":"Switch project","project.new":"New project","project.create":"Create project","project.delete":"Delete project","project.deleteButton":"Del","project.placeholder":"project-name","project.nameInvalid":"Start with a letter or number; then use letters, numbers, hyphens, or underscores","project.policyUnavailable":"Project naming rules are unavailable","project.confirmTitle":'Delete project "{name}"?',"project.confirmBody":"All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone.","common.cancel":"Cancel","common.delete":"Delete","common.yes":"Yes","common.no":"No","common.loading":"Loading...","common.ready":"ready","common.autoSaved":"Auto-saved","common.active":"active","common.idle":"idle","common.general":"general","common.state":"State","common.tool":"Tool","common.task":"Task","common.seat":"Seat","common.role":"Role","common.employee":"Employee","common.manager":"Manager","common.origin":"Origin","common.projection":"Projection","common.gate":"Gate","common.runtime":"Runtime","office.modeHint.org":"Manage your team in the Org tab","office.modeHint.switch":"Switch to Org mode to create or manage agents","office.offices":"Offices","office.activeAgents":"Active Agents","office.rename":"Rename","office.noSeat":"no seat","office.moveHere":"+ Move here","office.characters":"Characters","office.hideSub":"hide sub","office.showSub":"show sub","office.hideSubagents":"Hide sub-agents","office.showSubagents":"Show sub-agents","office.showSidePanel":"Show side panel","office.hideSidePanel":"Hide side panel","office.removeAgent":"Remove {name}","office.deleteQuestion":"Delete?","office.emptyAgents":"No agents yet — click a template above to spawn one.","session.newChat":"New Chat","session.secretary":"Secretary","session.search":"Search...","session.activity":"Activity","session.noSessions":"No sessions yet","session.today":"Today","session.yesterday":"Yesterday","session.earlier":"Earlier","session.runtimeSuffix":"Runtime Sessions","session.justNow":"just now","session.minutes":"{count}m","session.hours":"{count}h","session.days":"{count}d","session.companyRuntime":"Company runtime","session.expand":"Expand","session.collapse":"Collapse","session.subTask":"{count} sub-task","session.subTasks":"{count} sub-tasks","workspace.selectRuntimeSession":"Select a Runtime Session on the left to view its Work Item board.","workspace.noWorkItems":"No work items yet — start delegation to populate this board.","workspace.clickEditTitle":"Click to edit session title","workspace.channel.secretary":"Secretary","workspace.channel.activity":"Activity","workspace.confirmNoRoles":`Your org has no roles defined. - -Set up at least one role before running a task. - -Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. - -Choose one final decider in the Org tab before running a task. - -Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: - -{warnings} - -Run anyway?`,"kanban.addTask":"Add task","kanban.taskTitle":"Task title...","kanban.startTask":"Start task","kanban.startWorkItem":"Start Work Item","kanban.upstreamDeps":"{count} upstream dep(s)","kanban.dep":"{count} dep","kanban.crossOffice":"Cross-office","kanban.executionTurn":"Execution Turn: {id}","kanban.column.Todo":"Todo","kanban.column.In Progress":"In Progress","kanban.column.Done":"Done","kanban.column.Ready":"Ready","kanban.column.Running":"Running","kanban.column.Review":"Review","kanban.column.Approved":"Approved","kanban.status.todo":"To do","kanban.status.in_progress":"In progress","kanban.status.in_review":"In review","kanban.status.done":"Done","kanban.status.running":"Running","kanban.status.idle":"Idle","kanban.status.blocked":"Blocked","kanban.status.awaiting_peer":"Awaiting","kanban.status.awaiting_manager_review":"Mgr Review","kanban.status.awaiting_human":"Human Review","kanban.status.awaiting_review":"In Review","kanban.status.failed":"Failed","kanban.status.cancelled":"Cancelled","agent.status.idle":"Idle","agent.status.reflecting":"Thinking...","agent.status.tool_active":"Running tool","agent.summary.active":"{active}/{total} active","agent.summary.count":"{count} agent","agent.summary.countPlural":"{count} agents","org.loading":"Loading organization data...","org.company":"Company","org.customOrg":"Custom org","org.corporateCompany":"Corporate company","org.kind.saved":"Saved org","org.kind.corporate":"Corporate","org.state.editableSaved":"Editable saved architecture","org.state.editableDraft":"Editable draft architecture","org.state.readOnly":"Built-in read-only architecture","org.organization":"Organization","org.corporate":"Corporate","org.newOrganization":"New organization","org.roles":"roles","org.employees":"employees","org.runtimeTeams":"runtime teams","org.tab.team":"Team","org.tab.runtime":"Runtime","org.tab.architecture":"Architecture","org.tab.employees":"Employees","org.createdToast":"Created {name} and saved automatically","org.architectureApplied":"Architecture applied successfully"},_D={"app.page.workspace":"工作台","app.page.office":"办公室","app.page.org":"组织","app.page.mapEditor":"地图编辑","app.metric.agents":"Agent","app.metric.skills":"技能","app.metric.tasks":"任务","language.label":"语言","language.english":"EN","language.chinese":"简","outdoor.title":"户外光照","outdoor.auto":"户外自动","outdoor.day":"户外白天","outdoor.night":"户外夜晚","theme.label":"配色主题","theme.midnight":"午夜","theme.neon":"霓虹","theme.paper":"纸张","theme.retro":"复古","theme.terminal":"终端","theme.cozy":"舒适","theme.openopc":"OpenOPC","dev.tools":"开发工具","dev.connection":"连接","dev.evolution":"进化流水线","dev.events":"事件","dev.channels":"频道","dev.phase.trace":"追踪","dev.phase.reflect":"反思","dev.phase.synthesize":"合成","dev.phase.practice":"练习","dev.phase.lifecycle":"生命周期","project.switch":"切换项目","project.new":"新建项目","project.create":"创建项目","project.delete":"删除项目","project.deleteButton":"删","project.placeholder":"项目名","project.nameInvalid":"项目 ID 须以字母或数字开头,后续可使用字母、数字、连字符或下划线","project.policyUnavailable":"暂时无法加载项目命名规则","project.confirmTitle":"删除项目“{name}”?","project.confirmBody":"此项目中的所有会话、消息、任务和 Agent 数据都会被永久删除。此操作无法撤销。","common.cancel":"取消","common.delete":"删除","common.yes":"是","common.no":"否","common.loading":"加载中...","common.ready":"就绪","common.autoSaved":"已自动保存","common.active":"活跃","common.idle":"空闲","common.general":"通用","common.state":"状态","common.tool":"工具","common.task":"任务","common.seat":"座位","common.role":"角色","common.employee":"员工","common.manager":"经理","common.origin":"来源","common.projection":"投影","common.gate":"关卡","common.runtime":"运行时","office.modeHint.org":"在“组织”页管理你的团队","office.modeHint.switch":"切换到“组织”模式以创建或管理 Agent","office.offices":"办公室","office.activeAgents":"活跃 Agent","office.rename":"重命名","office.noSeat":"未分配座位","office.moveHere":"+ 移到这里","office.characters":"角色","office.hideSub":"隐藏子项","office.showSub":"显示子项","office.hideSubagents":"隐藏子 Agent","office.showSubagents":"显示子 Agent","office.showSidePanel":"显示侧栏","office.hideSidePanel":"隐藏侧栏","office.removeAgent":"移除 {name}","office.deleteQuestion":"删除?","office.emptyAgents":"还没有 Agent,点击上方模板生成一个。","session.newChat":"新聊天","session.secretary":"秘书","session.search":"搜索...","session.activity":"动态","session.noSessions":"还没有会话","session.today":"今天","session.yesterday":"昨天","session.earlier":"更早","session.runtimeSuffix":"运行时会话","session.justNow":"刚刚","session.minutes":"{count} 分钟","session.hours":"{count} 小时","session.days":"{count} 天","session.companyRuntime":"公司运行时","session.expand":"展开","session.collapse":"折叠","session.subTask":"{count} 个子任务","session.subTasks":"{count} 个子任务","workspace.selectRuntimeSession":"在左侧选择一个运行时会话来查看它的工作项看板。","workspace.noWorkItems":"还没有工作项,开始委派后会填充此看板。","workspace.clickEditTitle":"点击编辑会话标题","workspace.channel.secretary":"秘书","workspace.channel.activity":"动态","workspace.confirmNoRoles":`你的组织还没有定义角色。 - -运行任务前请至少设置一个角色。 - -现在前往“组织”页吗?`,"workspace.confirmNoDecider":`你的组织有多个顶层角色,但尚未选择最终决策者。 - -运行任务前请在“组织”页选择一个最终决策者。 - -现在前往“组织”页吗?`,"workspace.warningNoTeams":"尚未定义运行时团队,系统会根据角色自动生成","workspace.warningVacantRoles":"{count} 个角色没有员工:{names}","workspace.confirmWarnings":`运行此任务前: - -{warnings} - -仍然运行吗?`,"kanban.addTask":"添加任务","kanban.taskTitle":"任务标题...","kanban.startTask":"启动任务","kanban.startWorkItem":"启动工作项","kanban.upstreamDeps":"{count} 个上游依赖","kanban.dep":"{count} 依赖","kanban.crossOffice":"跨办公室","kanban.executionTurn":"执行轮次:{id}","kanban.column.Todo":"待办","kanban.column.In Progress":"进行中","kanban.column.Done":"完成","kanban.column.Ready":"就绪","kanban.column.Running":"运行中","kanban.column.Review":"评审","kanban.column.Approved":"已批准","kanban.status.todo":"待办","kanban.status.in_progress":"进行中","kanban.status.in_review":"评审中","kanban.status.done":"完成","kanban.status.running":"运行中","kanban.status.idle":"空闲","kanban.status.blocked":"阻塞","kanban.status.awaiting_peer":"等待同伴","kanban.status.awaiting_manager_review":"经理评审","kanban.status.awaiting_human":"人工评审","kanban.status.awaiting_review":"评审中","kanban.status.failed":"失败","kanban.status.cancelled":"已取消","agent.status.idle":"空闲","agent.status.reflecting":"思考中...","agent.status.tool_active":"运行工具","agent.summary.active":"{active}/{total} 活跃","agent.summary.count":"{count} 个 Agent","agent.summary.countPlural":"{count} 个 Agent","org.loading":"正在加载组织数据...","org.company":"公司","org.customOrg":"自定义组织","org.corporateCompany":"企业公司","org.kind.saved":"已保存组织","org.kind.corporate":"企业","org.state.editableSaved":"可编辑的已保存架构","org.state.editableDraft":"可编辑草稿架构","org.state.readOnly":"内置只读架构","org.organization":"组织","org.corporate":"企业","org.newOrganization":"新建组织","org.roles":"角色","org.employees":"员工","org.runtimeTeams":"运行时团队","org.tab.team":"团队","org.tab.runtime":"运行时","org.tab.architecture":"架构","org.tab.employees":"员工","org.createdToast":"已创建 {name} 并自动保存","org.architectureApplied":"架构已成功应用"},Ag={en:bD,"zh-CN":_D},NE=C.createContext(null);function kD(){try{const e=localStorage.getItem(EE);if(e==="en"||e==="zh-CN")return e}catch{}try{return navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en"}catch{return"en"}}function SD(e,t){return t?e.replace(/\{(\w+)\}/g,(n,i)=>Object.prototype.hasOwnProperty.call(t,i)?String(t[i]):`{${i}}`):e}function wD({children:e}){const[t,n]=C.useState(()=>kD());C.useEffect(()=>{document.documentElement.lang=t==="zh-CN"?"zh-CN":"en"},[t]);const i=C.useCallback(c=>{n(c);try{localStorage.setItem(EE,c),document.documentElement.lang=c==="zh-CN"?"zh-CN":"en"}catch{}},[]),r=C.useCallback((c,d)=>{const m=Ag[t][c]??Ag.en[c]??c;return SD(m,d)},[t]),o=C.useCallback((c,d)=>{const m=String(d??"").trim();if(!m)return"";const h=`${c}.${m}`;return Ag[t][h]??m},[t]),a=C.useMemo(()=>({locale:t,setLocale:i,t:r,translateMaybe:o}),[t,i,r,o]);return u.jsx(NE.Provider,{value:a,children:e})}function Wr(){const e=C.useContext(NE);if(!e)throw new Error("useI18n must be used within I18nProvider");return e}const CD={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function jD(e){const t=kl(e)??e.status,n=Bm({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":CD[t]??"status-pending"}function ED(e,t){const n=Date.now()-e;return n<6e4?t("session.justNow"):n<36e5?t("session.minutes",{count:Math.floor(n/6e4)}):n<864e5?t("session.hours",{count:Math.floor(n/36e5)}):t("session.days",{count:Math.floor(n/864e5)})}function ND(e){const t=new Date,n=new Date(e),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(i.getTime()-864e5);return n>=i?"Today":n>=r?"Yesterday":"Earlier"}function IS(e,t,n){const i=n(e==="Today"?"session.today":e==="Yesterday"?"session.yesterday":"session.earlier");return t?`${i} ${n("session.runtimeSuffix")}`:i}function ID(e){const t=new Map,n=[];for(const i of e)if(i.mode==="child"&&i.parentSessionId){const r=t.get(i.parentSessionId)??[];r.push(i),t.set(i.parentSessionId,r)}else n.push(i);return n.map(i=>({session:i,children:Array.from(new Map([...i.sessionId?t.get(i.sessionId)??[]:[],...t.get(i.taskId)??[]].map(r=>[r.taskId,r])).values())}))}function cf({session:e,isActive:t,isChild:n,isLast:i,unreadCount:r,onSelect:o,onDelete:a}){const{t:c,translateMaybe:d}=Wr(),[m,h]=C.useState(!1),[p,g]=C.useState(!1),x=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,v=kl(e)??e.status;return C.useEffect(()=>{if(!p)return;const b=setTimeout(()=>g(!1),3e3);return()=>clearTimeout(b)},[p]),u.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[n&&u.jsx("span",{className:`session-tree-line${i?" last":""}`}),u.jsx("span",{className:`session-dot ${jD(e)}`}),u.jsxs("div",{className:"session-item-content",children:[u.jsxs("span",{className:"session-item-title",children:[n&&x&&u.jsx("span",{className:"session-agent-tag",children:x}),!n&&e.isCompanyRuntime&&u.jsx("span",{className:"session-runtime-badge",title:c("session.companyRuntime"),children:u.jsx(zm,{})}),e.title]}),u.jsxs("span",{className:"session-item-meta",children:[d("kanban.status",v)||v," · ",ED(e.updatedAt,c)]})]}),!!r&&r>0&&u.jsx("span",{className:"session-unread-badge",children:r>99?"99+":r}),m&&!n&&!p&&u.jsx("button",{className:"session-delete-btn",onClick:b=>{b.stopPropagation(),g(!0)},title:c("common.delete"),children:u.jsx(X4,{})}),p&&u.jsxs("span",{className:"session-confirm-delete",onClick:b=>b.stopPropagation(),children:[u.jsx("button",{className:"session-confirm-yes",onClick:()=>{g(!1),a()},children:c("common.delete")}),u.jsx("button",{className:"session-confirm-no",onClick:()=>g(!1),children:c("common.cancel")})]})]})}function TD({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:i,unreadCounts:r,onSelect:o,onCreateSession:a,onDeleteSession:c,onSelectSecretary:d}){const{t:m}=Wr(),[h,p]=C.useState(""),[g,x]=C.useState(new Set),v=e.some(A=>A.isCompanyRuntime||A.mode==="child"||A.execMode==="company"||A.execMode==="org"||A.execMode==="custom"),b=C.useCallback(A=>{x(O=>{const I=new Set(O);return I.has(A)?I.delete(A):I.add(A),I})},[]),S=C.useMemo(()=>{if(!h.trim())return e;const A=h.toLowerCase();return e.filter(O=>O.title.toLowerCase().includes(A))},[e,h]),w=C.useMemo(()=>ID(S),[S]),k=C.useMemo(()=>{const A={Today:[],Yesterday:[],Earlier:[]};for(const O of w){const I=ND(O.session.createdAt);A[I]?.push(O)}return A},[w]),j=C.useMemo(()=>{const A=[];for(const O of["Today","Yesterday","Earlier"]){const I=k[O];if(!(!I||I.length===0)){A.push({kind:"group",group:O});for(const $ of I){A.push({kind:"primary",node:$});const G=$.children.length>0,P=g.has($.session.taskId);G&&P?A.push({kind:"child-count",node:$}):G&&$.children.forEach((F,V)=>{A.push({kind:"child",parentTaskId:$.session.taskId,child:F,childIndex:V,childCount:$.children.length})})}}}return A},[g,k]),N=j.length>120,z=C.useRef(null),T=V4({count:j.length,getScrollElement:()=>z.current,estimateSize:A=>{const O=j[A];return O?.kind==="group"?26:O?.kind==="child-count"?30:54},overscan:8}),M=C.useCallback(A=>{const O=A.children.length>0,I=g.has(A.session.taskId);return u.jsx("div",{className:"session-tree-node",children:u.jsxs("div",{className:"session-tree-primary",children:[O&&u.jsx("button",{className:`session-expand-btn${I?" collapsed":""}`,onClick:$=>{$.stopPropagation(),b(A.session.taskId)},"aria-label":m(I?"session.expand":"session.collapse")}),u.jsx(cf,{session:A.session,isActive:A.session.taskId===t,unreadCount:r?.[A.session.channelId],onSelect:()=>o(A.session.taskId),onDelete:()=>c(A.session.taskId)})]})})},[t,g,c,o,b,r,m]),L=C.useCallback(A=>A.kind==="group"?u.jsx("div",{className:"session-group-label",children:IS(A.group,v,m)}):A.kind==="primary"?M(A.node):A.kind==="child-count"?u.jsx("button",{className:"session-child-count",onClick:()=>b(A.node.session.taskId),children:m(A.node.children.length>1?"session.subTasks":"session.subTask",{count:A.node.children.length})}):u.jsx("div",{className:"session-children",children:u.jsx(cf,{session:A.child,isActive:A.child.taskId===t,isChild:!0,isLast:A.childIndex===A.childCount-1,unreadCount:r?.[A.child.channelId],onSelect:()=>o(A.child.taskId),onDelete:()=>c(A.child.taskId)})}),[t,v,c,o,M,b,r,m]);return u.jsxs("div",{className:"session-sidebar",children:[u.jsxs("button",{className:"session-new-btn",onClick:a,children:[u.jsx(Y4,{}),u.jsx("span",{children:m("session.newChat")})]}),d&&u.jsxs("button",{className:`session-nav-btn${n===i?" active":""}`,onClick:d,children:[u.jsx(_u,{}),u.jsx("span",{children:m("session.secretary")}),!!(i&&r?.[i])&&r[i]>0&&u.jsx("span",{className:"session-unread-badge",children:r[i]>99?"99+":r[i]})]}),u.jsxs("div",{className:"session-search-wrap",children:[u.jsx(Xv,{}),u.jsx("input",{className:"session-search",placeholder:m("session.search"),value:h,onChange:A=>p(A.target.value)})]}),u.jsxs("div",{ref:z,className:`session-list${N?" session-list-virtualized":""}`,children:[N?u.jsx("div",{style:{height:T.getTotalSize(),width:"100%",position:"relative"},children:T.getVirtualItems().map(A=>u.jsx("div",{"data-index":A.index,ref:T.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${A.start}px)`},children:L(j[A.index])},A.key))}):["Today","Yesterday","Earlier"].map(A=>{const O=k[A];return!O||O.length===0?null:u.jsxs("div",{className:"session-group",children:[u.jsx("div",{className:"session-group-label",children:IS(A,v,m)}),O.map(I=>{const $=I.children.length>0,G=g.has(I.session.taskId);return u.jsxs("div",{className:"session-tree-node",children:[u.jsxs("div",{className:"session-tree-primary",children:[$&&u.jsx("button",{className:`session-expand-btn${G?" collapsed":""}`,onClick:P=>{P.stopPropagation(),b(I.session.taskId)},"aria-label":m(G?"session.expand":"session.collapse")}),u.jsx(cf,{session:I.session,isActive:I.session.taskId===t,unreadCount:r?.[I.session.channelId],onSelect:()=>o(I.session.taskId),onDelete:()=>c(I.session.taskId)})]}),$&&!G&&u.jsx("div",{className:"session-children",children:I.children.map((P,F)=>u.jsx(cf,{session:P,isActive:P.taskId===t,isChild:!0,isLast:F===I.children.length-1,unreadCount:r?.[P.channelId],onSelect:()=>o(P.taskId),onDelete:()=>c(P.taskId)},P.taskId))}),$&&G&&u.jsx("button",{className:"session-child-count",onClick:()=>b(I.session.taskId),children:m(I.children.length>1?"session.subTasks":"session.subTask",{count:I.children.length})})]},I.session.taskId)})]},A)}),S.length===0&&u.jsx("div",{className:"session-empty",children:m("session.noSessions")})]}),u.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==i?" active":""}`,onClick:()=>o(null),children:[u.jsx(_E,{}),u.jsx("span",{children:m("session.activity")})]})]})}function Fi(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var RD=typeof Symbol=="function"&&Symbol.observable||"@@observable",TS=RD,RS=()=>Math.random().toString(36).substring(7).split("").join("."),AD={INIT:`@@redux/INIT${RS()}`,REPLACE:`@@redux/REPLACE${RS()}`},AS=AD;function MD(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function IE(e,t,n){if(typeof e!="function")throw new Error(Fi(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Fi(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Fi(1));return n(IE)(e,t)}let i=e,r=t,o=new Map,a=o,c=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((S,w)=>{a.set(w,S)}))}function h(){if(d)throw new Error(Fi(3));return r}function p(S){if(typeof S!="function")throw new Error(Fi(4));if(d)throw new Error(Fi(5));let w=!0;m();const k=c++;return a.set(k,S),function(){if(w){if(d)throw new Error(Fi(6));w=!1,m(),a.delete(k),o=null}}}function g(S){if(!MD(S))throw new Error(Fi(7));if(typeof S.type>"u")throw new Error(Fi(8));if(typeof S.type!="string")throw new Error(Fi(17));if(d)throw new Error(Fi(9));try{d=!0,r=i(r,S)}finally{d=!1}return(o=a).forEach(k=>{k()}),S}function x(S){if(typeof S!="function")throw new Error(Fi(10));i=S,g({type:AS.REPLACE})}function v(){const S=p;return{subscribe(w){if(typeof w!="object"||w===null)throw new Error(Fi(11));function k(){const N=w;N.next&&N.next(h())}return k(),{unsubscribe:S(k)}},[TS](){return this}}}return g({type:AS.INIT}),{dispatch:g,subscribe:p,getState:h,replaceReducer:x,[TS]:v}}function MS(e,t){return function(...n){return t(e.apply(this,n))}}function DS(e,t){if(typeof e=="function")return MS(e,t);if(typeof e!="object"||e===null)throw new Error(Fi(16));const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=MS(r,t))}return n}function TE(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...i)=>t(n(...i)))}function DD(...e){return t=>(n,i)=>{const r=t(n,i);let o=()=>{throw new Error(Fi(15))};const a={getState:r.getState,dispatch:(d,...m)=>o(d,...m)},c=e.map(d=>d(a));return o=TE(...c)(r.dispatch),{...r,dispatch:o}}}var Mg={exports:{}},Dg={};var OS;function OD(){if(OS)return Dg;OS=1;var e=$l();function t(d,m){return d===m&&(d!==0||1/d===1/m)||d!==d&&m!==m}var n=typeof Object.is=="function"?Object.is:t,i=e.useSyncExternalStore,r=e.useRef,o=e.useEffect,a=e.useMemo,c=e.useDebugValue;return Dg.useSyncExternalStoreWithSelector=function(d,m,h,p,g){var x=r(null);if(x.current===null){var v={hasValue:!1,value:null};x.current=v}else v=x.current;x=a(function(){function S(z){if(!w){if(w=!0,k=z,z=p(z),g!==void 0&&v.hasValue){var T=v.value;if(g(T,z))return j=T}return j=z}if(T=j,n(k,z))return T;var M=p(z);return g!==void 0&&g(T,M)?(k=z,T):(k=z,j=M)}var w=!1,k,j,N=h===void 0?null:h;return[function(){return S(m())},N===null?void 0:function(){return S(N())}]},[m,h,p,g]);var b=i(d,x[0],x[1]);return o(function(){v.hasValue=!0,v.value=b},[b]),c(b),b},Dg}var LS;function LD(){return LS||(LS=1,Mg.exports=OD()),Mg.exports}LD();var zD=C.version.startsWith("19"),PD=Symbol.for(zD?"react.transitional.element":"react.element"),BD=Symbol.for("react.portal"),$D=Symbol.for("react.fragment"),HD=Symbol.for("react.strict_mode"),FD=Symbol.for("react.profiler"),VD=Symbol.for("react.consumer"),UD=Symbol.for("react.context"),RE=Symbol.for("react.forward_ref"),qD=Symbol.for("react.suspense"),GD=Symbol.for("react.suspense_list"),Qv=Symbol.for("react.memo"),WD=Symbol.for("react.lazy"),YD=RE,XD=Qv;function KD(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case PD:switch(e=e.type,e){case $D:case FD:case HD:case qD:case GD:return e;default:switch(e=e&&e.$$typeof,e){case UD:case RE:case WD:case Qv:return e;case VD:return e;default:return t}}case BD:return t}}}function ZD(e){return KD(e)===Qv}function QD(e,t,n,i,{areStatesEqual:r,areOwnPropsEqual:o,areStatePropsEqual:a}){let c=!1,d,m,h,p,g;function x(k,j){return d=k,m=j,h=e(d,m),p=t(i,m),g=n(h,p,m),c=!0,g}function v(){return h=e(d,m),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function b(){return e.dependsOnOwnProps&&(h=e(d,m)),t.dependsOnOwnProps&&(p=t(i,m)),g=n(h,p,m),g}function S(){const k=e(d,m),j=!a(k,h);return h=k,j&&(g=n(h,p,m)),g}function w(k,j){const N=!o(j,m),z=!r(k,d,j,m);return d=k,m=j,N&&z?v():N?b():z?S():g}return function(j,N){return c?w(j,N):x(j,N)}}function JD(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:i,...r}){const o=t(e,r),a=n(e,r),c=i(e,r);return QD(o,a,c,e,r)}function e5(e,t){const n={};for(const i in e){const r=e[i];typeof r=="function"&&(n[i]=(...o)=>t(r(...o)))}return n}function Jx(e){return function(n){const i=e(n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function zS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function AE(e,t){return function(i,{displayName:r}){const o=function(c,d){return o.dependsOnOwnProps?o.mapToProps(c,d):o.mapToProps(c,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(c,d){o.mapToProps=e,o.dependsOnOwnProps=zS(e);let m=o(c,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=zS(m),m=o(c,d)),m},o}}function Jv(e,t){return(n,i)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${i.wrappedComponentName}.`)}}function t5(e){return e&&typeof e=="object"?Jx(t=>e5(e,t)):e?typeof e=="function"?AE(e):Jv(e,"mapDispatchToProps"):Jx(t=>({dispatch:t}))}function n5(e){return e?typeof e=="function"?AE(e):Jv(e,"mapStateToProps"):Jx(()=>({}))}function i5(e,t,n){return{...n,...e,...t}}function r5(e){return function(n,{displayName:i,areMergedPropsEqual:r}){let o=!1,a;return function(d,m,h){const p=e(d,m,h);return o?r(p,a)||(a=p):(o=!0,a=p),a}}}function s5(e){return e?typeof e=="function"?r5(e):Jv(e,"mergeProps"):()=>i5}function o5(e){e()}function a5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){o5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let i=e;for(;i;)n.push(i),i=i.next;return n},subscribe(n){let i=!0;const r=t={callback:n,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!i||e===null||(i=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var PS={notify(){},get:()=>[]};function ME(e,t){let n,i=PS,r=0,o=!1;function a(b){h();const S=i.subscribe(b);let w=!1;return()=>{w||(w=!0,S(),p())}}function c(){i.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function h(){r++,n||(n=t?t.addNestedSub(d):e.subscribe(d),i=a5())}function p(){r--,n&&r===0&&(n(),n=void 0,i.clear(),i=PS)}function g(){o||(o=!0,h())}function x(){o&&(o=!1,p())}const v={addNestedSub:a,notifyNestedSubs:c,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:x,getListeners:()=>i};return v}var l5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",c5=l5(),u5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",d5=u5(),f5=()=>c5||d5?C.useLayoutEffect:C.useEffect,nm=f5();function BS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Og(e,t){if(BS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let r=0;re(...t),n)}function j5(e,t,n,i,r,o){e.current=i,n.current=!1,r.current&&(r.current=null,o())}function E5(e,t,n,i,r,o,a,c,d,m,h){if(!e)return()=>{};let p=!1,g=null;const x=()=>{if(p||!c.current)return;const b=t.getState();let S,w;try{S=i(b,r.current)}catch(k){w=k,g=k}w||(g=null),S===o.current?a.current||m():(o.current=S,d.current=S,a.current=!0,h())};return n.onStateChange=x,n.trySubscribe(),x(),()=>{if(p=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function N5(e,t){return e===t}function I5(e,t,n,{pure:i,areStatesEqual:r=N5,areOwnPropsEqual:o=Og,areStatePropsEqual:a=Og,areMergedPropsEqual:c=Og,forwardRef:d=!1,context:m=OE}={}){const h=m,p=n5(e),g=t5(t),x=s5(n),v=!!e;return S=>{const w=S.displayName||S.name||"Component",k=`Connect(${w})`,j={shouldHandleStateChanges:v,displayName:k,wrappedComponentName:w,WrappedComponent:S,initMapStateToProps:p,initMapDispatchToProps:g,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:c};function N(M){const[L,A,O]=C.useMemo(()=>{const{reactReduxForwardedRef:be,...je}=M;return[M.context,be,je]},[M]),I=C.useMemo(()=>{let be=h;return L?.Consumer,be},[L,h]),$=C.useContext(I),G=!!M.store&&!!M.store.getState&&!!M.store.dispatch,P=!!$&&!!$.store,F=G?M.store:$.store,V=P?$.getServerState:F.getState,Y=C.useMemo(()=>JD(F.dispatch,j),[F]),[U,Z]=C.useMemo(()=>{if(!v)return w5;const be=ME(F,G?void 0:$.subscription),je=be.notifyNestedSubs.bind(be);return[be,je]},[F,G,$]),W=C.useMemo(()=>G?$:{...$,subscription:U},[G,$,U]),q=C.useRef(void 0),Q=C.useRef(O),D=C.useRef(void 0),K=C.useRef(!1),ne=C.useRef(!1),ee=C.useRef(void 0);nm(()=>(ne.current=!0,()=>{ne.current=!1}),[]);const te=C.useMemo(()=>()=>D.current&&O===Q.current?D.current:Y(F.getState(),O),[F,O]),oe=C.useMemo(()=>je=>U?E5(v,F,U,Y,Q,q,K,ne,D,Z,je):()=>{},[U]);C5(j5,[Q,q,K,O,D,Z]);let le;try{le=C.useSyncExternalStore(oe,te,V?()=>Y(V(),O):te)}catch(be){throw ee.current&&(be.message+=` -The error may be correlated with this previous error: -${ee.current.stack} - -`),be}nm(()=>{ee.current=void 0,D.current=void 0,q.current=le});const he=C.useMemo(()=>C.createElement(S,{...le,ref:A}),[A,S,le]);return C.useMemo(()=>v?C.createElement(I.Provider,{value:W},he):he,[I,he,W])}const T=C.memo(N);if(T.WrappedComponent=S,T.displayName=N.displayName=k,d){const L=C.forwardRef(function(O,I){return C.createElement(T,{...O,reactReduxForwardedRef:I})});return L.displayName=k,L.WrappedComponent=S,ev(L,S)}return ev(T,S)}}var LE=I5;function T5(e){const{children:t,context:n,serverState:i,store:r}=e,o=C.useMemo(()=>{const d=ME(r);return{store:r,subscription:d,getServerState:i?()=>i:void 0}},[r,i]),a=C.useMemo(()=>r.getState(),[r]);nm(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==r.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const c=n||OE;return C.createElement(c.Provider,{value:o},t)}var R5=T5,A5="Invariant failed";function M5(e,t){throw new Error(A5)}var Hr=function(t){var n=t.top,i=t.right,r=t.bottom,o=t.left,a=i-o,c=r-n,d={top:n,right:i,bottom:r,left:o,width:a,height:c,x:o,y:n,center:{x:(i+o)/2,y:(r+n)/2}};return d},e0=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},VS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},D5=function(t,n){return{top:t.top+n.y,left:t.left+n.x,bottom:t.bottom+n.y,right:t.right+n.x}},Lg={top:0,right:0,bottom:0,left:0},t0=function(t){var n=t.borderBox,i=t.margin,r=i===void 0?Lg:i,o=t.border,a=o===void 0?Lg:o,c=t.padding,d=c===void 0?Lg:c,m=Hr(e0(n,r)),h=Hr(VS(n,a)),p=Hr(VS(h,d));return{marginBox:m,borderBox:Hr(n),paddingBox:h,contentBox:p,margin:r,border:a,padding:d}},Nr=function(t){var n=t.slice(0,-2),i=t.slice(-2);if(i!=="px")return 0;var r=Number(n);return isNaN(r)&&M5(),r},O5=function(){return{x:window.pageXOffset,y:window.pageYOffset}},im=function(t,n){var i=t.borderBox,r=t.border,o=t.margin,a=t.padding,c=D5(i,n);return t0({borderBox:c,border:r,margin:o,padding:a})},rm=function(t,n){return n===void 0&&(n=O5()),im(t,n)},zE=function(t,n){var i={top:Nr(n.marginTop),right:Nr(n.marginRight),bottom:Nr(n.marginBottom),left:Nr(n.marginLeft)},r={top:Nr(n.paddingTop),right:Nr(n.paddingRight),bottom:Nr(n.paddingBottom),left:Nr(n.paddingLeft)},o={top:Nr(n.borderTopWidth),right:Nr(n.borderRightWidth),bottom:Nr(n.borderBottomWidth),left:Nr(n.borderLeftWidth)};return t0({borderBox:t,margin:i,padding:r,border:o})},PE=function(t){var n=t.getBoundingClientRect(),i=window.getComputedStyle(t);return zE(n,i)},ku=function(t){var n=[],i=null,r=function(){for(var a=arguments.length,c=new Array(a),d=0;d{const o=L5(n,r.options);return e.addEventListener(r.eventName,r.fn,o),function(){e.removeEventListener(r.eventName,r.fn,o)}});return function(){i.forEach(o=>{o()})}}const z5="Invariant failed";class om extends Error{}om.prototype.toString=function(){return this.message};function He(e,t){throw new om(z5)}let P5=class extends Mt.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=ko,this.onWindowError=n=>{const i=this.getCallbacks();i.isDragging()&&i.tryAbort(),n.error instanceof om&&n.preventDefault()},this.getCallbacks=()=>{if(!this.callbacks)throw new Error("Unable to find AppCallbacks in ");return this.callbacks},this.setCallbacks=n=>{this.callbacks=n}}componentDidMount(){this.unbind=Ar(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof om){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const B5=` - Press space bar to start a drag. - When dragging you can use the arrow keys to move the item around and escape to cancel. - Some screen readers may require you to be in focus mode or to use your pass through key -`,am=e=>e+1,$5=e=>` - You have lifted an item in position ${am(e.source.index)} -`,$E=(e,t)=>{const n=e.droppableId===t.droppableId,i=am(e.index),r=am(t.index);return n?` - You have moved the item from position ${i} - to position ${r} - `:` - You have moved the item from position ${i} - in list ${e.droppableId} - to list ${t.droppableId} - in position ${r} - `},HE=(e,t,n)=>t.droppableId===n.droppableId?` - The item ${e} - has been combined with ${n.draggableId}`:` - The item ${e} - in list ${t.droppableId} - has been combined with ${n.draggableId} - in list ${n.droppableId} - `,H5=e=>{const t=e.destination;if(t)return $E(e.source,t);const n=e.combine;return n?HE(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},US=e=>` - The item has returned to its starting position - of ${am(e.index)} -`,F5=e=>{if(e.reason==="CANCEL")return` - Movement cancelled. - ${US(e.source)} - `;const t=e.destination,n=e.combine;return t?` - You have dropped the item. - ${$E(e.source,t)} - `:n?` - You have dropped the item. - ${HE(e.draggableId,e.source,n)} - `:` - The item has been dropped while not over a drop area. - ${US(e.source)} - `},Bf={dragHandleUsageInstructions:B5,onDragStart:$5,onDragUpdate:H5,onDragEnd:F5};function V5(e,t){return!!(e===t||Number.isNaN(e)&&Number.isNaN(t))}function FE(e,t){if(e.length!==t.length)return!1;for(let n=0;n({inputs:t,result:e()}))[0],i=C.useRef(!0),r=C.useRef(n),a=i.current||!!(t&&r.current.inputs&&FE(t,r.current.inputs))?r.current:{inputs:t,result:e()};return C.useEffect(()=>{i.current=!1,r.current=a},[a]),a.result}function st(e,t){return rn(()=>e,t)}const ji={x:0,y:0},Di=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),pr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),So=(e,t)=>e.x===t.x&&e.y===t.y,Fl=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),aa=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},Su=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),qS=(e,t)=>Math.min(...t.map(n=>Su(e,n))),VE=e=>t=>({x:e(t.x),y:e(t.y)});var U5=(e,t)=>{const n=Hr({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n};const Vu=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),GS=e=>[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}],q5={top:0,right:0,bottom:0,left:0},G5=(e,t)=>t?Vu(e,t.scroll.diff.displacement):e,W5=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,Y5=(e,t)=>t&&t.shouldClipSubject?U5(t.pageMarginBox,e):Hr(e);var Sl=({page:e,withPlaceholder:t,axis:n,frame:i})=>{const r=G5(e.marginBox,i),o=W5(r,n,t),a=Y5(o,i);return{page:e,withPlaceholder:t,active:a}},n0=(e,t)=>{e.frame||He();const n=e.frame,i=pr(t,n.scroll.initial),r=Fl(i),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:i,displacement:r},max:n.scroll.max}},a=Sl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function Ci(e,t=FE){let n=null;function i(...r){if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;const o=e.apply(this,r);return n={lastResult:o,lastArgs:r,lastThis:this},o}return i.clear=function(){n=null},i}const UE=Ci(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),qE=Ci(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),Hm=Ci(e=>Object.values(e)),X5=Ci(e=>Object.values(e));var Vl=Ci((e,t)=>X5(t).filter(i=>e===i.descriptor.droppableId).sort((i,r)=>i.descriptor.index-r.descriptor.index));function i0(e){return e.at&&e.at.type==="REORDER"?e.at.destination:null}function Fm(e){return e.at&&e.at.type==="COMBINE"?e.at.combine:null}var Vm=Ci((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),K5=({isMovingForward:e,draggable:t,destination:n,insideDestination:i,previousImpact:r})=>{if(!n.isCombineEnabled||!i0(r))return null;function a(x){const v={type:"COMBINE",combine:{draggableId:x,droppableId:n.descriptor.id}};return{...r,at:v}}const c=r.displaced.all,d=c.length?c[0]:null;if(e)return d?a(d):null;const m=Vm(t,i);if(!d){if(!m.length)return null;const x=m[m.length-1];return a(x.descriptor.id)}const h=m.findIndex(x=>x.descriptor.id===d);h===-1&&He();const p=h-1;if(p<0)return null;const g=m[p];return a(g.descriptor.id)},Ul=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const GE={point:ji,value:0},wu={invisible:{},visible:{},all:[]},Z5={displaced:wu,displacedBy:GE,at:null};var Mr=(e,t)=>n=>e<=n&&n<=t,WE=e=>{const t=Mr(e.top,e.bottom),n=Mr(e.left,e.right);return i=>{if(t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right))return!0;const o=t(i.top)||t(i.bottom),a=n(i.left)||n(i.right);if(o&&a)return!0;const d=i.tope.bottom,m=i.lefte.right;return d&&m?!0:d&&a||m&&o}},Q5=e=>{const t=Mr(e.top,e.bottom),n=Mr(e.left,e.right);return i=>t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right)};const r0={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},YE={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"};var J5=e=>t=>{const n=Mr(t.top,t.bottom),i=Mr(t.left,t.right);return r=>e===r0?n(r.top)&&n(r.bottom):i(r.left)&&i(r.right)};const eO=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:ji;return Vu(e,n)},tO=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,nO=(e,t,n)=>n(t)(e),s0=({target:e,destination:t,viewport:n,withDroppableDisplacement:i,isVisibleThroughFrameFn:r})=>{const o=i?eO(e,t):e;return tO(o,t,r)&&nO(o,n,r)},iO=e=>s0({...e,isVisibleThroughFrameFn:WE}),XE=e=>s0({...e,isVisibleThroughFrameFn:Q5}),rO=e=>s0({...e,isVisibleThroughFrameFn:J5(e.destination.axis)}),sO=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:i,visible:r}=t;if(i[e])return!1;const o=r[e];return o?o.shouldAnimate:!0};function oO(e,t){const n=e.page.marginBox,i={top:t.point.y,right:0,bottom:0,left:t.point.x};return Hr(e0(n,i))}function Cu({afterDragging:e,destination:t,displacedBy:n,viewport:i,forceShouldAnimate:r,last:o}){return e.reduce(function(c,d){const m=oO(d,n),h=d.descriptor.id;if(c.all.push(h),!iO({target:m,destination:t,viewport:i,withDroppableDisplacement:!0}))return c.invisible[d.descriptor.id]=!0,c;const g=sO(h,o,r),x={draggableId:h,shouldAnimate:g};return c.visible[h]=x,c},{all:[],visible:{},invisible:{}})}function aO(e,t){if(!e.length)return 0;const n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}function WS({insideDestination:e,inHomeList:t,displacedBy:n,destination:i}){const r=aO(e,{inHomeList:t});return{displaced:wu,displacedBy:n,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:r}}}}function lm({draggable:e,insideDestination:t,destination:n,viewport:i,displacedBy:r,last:o,index:a,forceShouldAnimate:c}){const d=Ul(e,n);if(a==null)return WS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return WS({insideDestination:t,inHomeList:d,displacedBy:r,destination:n});const h=Vm(e,t),p=t.indexOf(m),g=h.slice(p);return{displaced:Cu({afterDragging:g,destination:n,displacedBy:r,last:o,viewport:i.frame,forceShouldAnimate:c}),displacedBy:r,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function jo(e,t){return!!t.effected[e]}var lO=({isMovingForward:e,destination:t,draggables:n,combine:i,afterCritical:r})=>{if(!t.isCombineEnabled)return null;const o=i.draggableId,c=n[o].descriptor.index;return jo(o,r)?e?c:c-1:e?c+1:c},cO=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:i})=>{if(!n.length)return null;const r=i.index,o=e?r+1:r-1,a=n[0].descriptor.index,c=n[n.length-1].descriptor.index,d=t?c:c+1;return od?null:o},uO=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:i,destination:r,insideDestination:o,previousImpact:a,viewport:c,afterCritical:d})=>{const m=a.at;if(m||He(),m.type==="REORDER"){const p=cO({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return p==null?null:lm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:p})}const h=lO({isMovingForward:e,destination:r,displaced:a.displaced,draggables:i,combine:m.combine,afterCritical:d});return h==null?null:lm({draggable:n,insideDestination:o,destination:r,viewport:c,last:a.displaced,displacedBy:a.displacedBy,index:h})},dO=({displaced:e,afterCritical:t,combineWith:n,displacedBy:i})=>{const r=!!(e.visible[n]||e.invisible[n]);return jo(n,t)?r?ji:Fl(i.point):r?i.point:ji},fO=({afterCritical:e,impact:t,draggables:n})=>{const i=Fm(t);i||He();const r=i.draggableId,o=n[r].page.borderBox.center,a=dO({displaced:t.displaced,afterCritical:e,combineWith:r,displacedBy:t.displacedBy});return Di(o,a)};const KE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,mO=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,o0=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,YS=({axis:e,moveRelativeTo:t,isMoving:n})=>aa(e.line,t.marginBox[e.end]+KE(e,n),o0(e,t.marginBox,n)),XS=({axis:e,moveRelativeTo:t,isMoving:n})=>aa(e.line,t.marginBox[e.start]-mO(e,n),o0(e,t.marginBox,n)),pO=({axis:e,moveInto:t,isMoving:n})=>aa(e.line,t.contentBox[e.start]+KE(e,n),o0(e,t.contentBox,n));var hO=({impact:e,draggable:t,draggables:n,droppable:i,afterCritical:r})=>{const o=Vl(i.descriptor.id,n),a=t.page,c=i.axis;if(!o.length)return pO({axis:c,moveInto:i.page,isMoving:a});const{displaced:d,displacedBy:m}=e,h=d.all[0];if(h){const g=n[h];if(jo(h,r))return XS({axis:c,moveRelativeTo:g.page,isMoving:a});const x=im(g.page,m.point);return XS({axis:c,moveRelativeTo:x,isMoving:a})}const p=o[o.length-1];if(p.descriptor.id===t.descriptor.id)return a.borderBox.center;if(jo(p.descriptor.id,r)){const g=im(p.page,Fl(r.displacedBy.point));return YS({axis:c,moveRelativeTo:g,isMoving:a})}return YS({axis:c,moveRelativeTo:p.page,isMoving:a})},tv=(e,t)=>{const n=e.frame;return n?Di(t,n.scroll.diff.displacement):t};const gO=({impact:e,draggable:t,droppable:n,draggables:i,afterCritical:r})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?hO({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:r}):fO({impact:e,draggables:i,afterCritical:r})};var Um=e=>{const t=gO(e),n=e.droppable;return n?tv(n,t):t},ZE=(e,t)=>{const n=pr(t,e.scroll.initial),i=Fl(n);return{frame:Hr({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:i}}}};function KS(e,t){return e.map(n=>t[n])}function yO(e,t){for(let n=0;n{const o=ZE(t,Di(t.scroll.current,r)),a=n.frame?n0(n,Di(n.frame.scroll.current,r)):n,c=e.displaced,d=Cu({afterDragging:KS(c.all,i),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:c,forceShouldAnimate:!1}),m=Cu({afterDragging:KS(c.all,i),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:c,forceShouldAnimate:!1}),h={},p={},g=[c,d,m];return c.all.forEach(v=>{const b=yO(v,g);if(b){p[v]=b;return}h[v]=!0}),{...e,displaced:{all:c.all,invisible:h,visible:p}}},vO=(e,t)=>Di(e.scroll.diff.displacement,t),a0=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const i=vO(n,e),r=pr(i,t.page.borderBox.center);return Di(t.client.borderBox.center,r)},QE=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:i,withDroppableDisplacement:r,onlyOnMainAxis:o=!1})=>{const a=pr(n,e.page.borderBox.center),d={target:Vu(e.page.borderBox,a),destination:t,withDroppableDisplacement:r,viewport:i};return o?rO(d):XE(d)},bO=({isMovingForward:e,draggable:t,destination:n,draggables:i,previousImpact:r,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:c,afterCritical:d})=>{if(!n.isEnabled)return null;const m=Vl(n.descriptor.id,i),h=Ul(t,n),p=K5({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:r})||uO({isMovingForward:e,isInHomeList:h,draggable:t,draggables:i,destination:n,insideDestination:m,previousImpact:r,viewport:o,afterCritical:d});if(!p)return null;const g=Um({impact:p,draggable:t,droppable:n,draggables:i,afterCritical:d});if(QE({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:a0({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:p,scrollJumpRequest:null};const v=pr(g,a),b=xO({impact:p,viewport:o,destination:n,draggables:i,maxScrollChange:v});return{clientSelection:c,impact:b,scrollJumpRequest:v}};const Hi=e=>{const t=e.subject.active;return t||He(),t};var _O=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:i,viewport:r})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,c=Mr(o[a.start],o[a.end]),d=Hm(i).filter(h=>h!==n).filter(h=>h.isEnabled).filter(h=>!!h.subject.active).filter(h=>WE(r.frame)(Hi(h))).filter(h=>{const p=Hi(h);return e?o[a.crossAxisEnd]{const p=Hi(h),g=Mr(p[a.start],p[a.end]);return c(p[a.start])||c(p[a.end])||g(o[a.start])||g(o[a.end])}).sort((h,p)=>{const g=Hi(h)[a.crossAxisStart],x=Hi(p)[a.crossAxisStart];return e?g-x:x-g}).filter((h,p,g)=>Hi(h)[a.crossAxisStart]===Hi(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(h=>Mr(Hi(h)[a.start],Hi(h)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((h,p)=>Hi(h)[a.start]-Hi(p)[a.start])[0]:d.sort((h,p)=>{const g=qS(t,GS(Hi(h))),x=qS(t,GS(Hi(p)));return g!==x?g-x:Hi(h)[a.start]-Hi(p)[a.start]})[0]};const ZS=(e,t)=>{const n=e.page.borderBox.center;return jo(e.descriptor.id,t)?pr(n,t.displacedBy.point):n},kO=(e,t)=>{const n=e.page.borderBox;return jo(e.descriptor.id,t)?Vu(n,Fl(t.displacedBy.point)):n};var SO=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:i,afterCritical:r})=>i.filter(a=>XE({target:kO(a,r),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,c)=>{const d=Su(e,tv(n,ZS(a,r))),m=Su(e,tv(n,ZS(c,r)));return d{const i=e.axis;if(e.descriptor.mode==="virtual")return aa(i.line,t[i.line]);const r=e.subject.page.contentBox[i.size],d=Vl(e.descriptor.id,n).reduce((m,h)=>m+h.client.marginBox[i.size],0)+t[i.line]-r;return d<=0?null:aa(i.line,d)},JE=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),eN=(e,t,n)=>{const i=e.frame;Ul(t,e)&&He(),e.subject.withPlaceholder&&He();const r=Uu(e.axis,t.displaceBy).point,o=wO(e,r,n),a={placeholderSize:r,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!i){const h=Sl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:h}}const c=o?Di(i.scroll.max,o):i.scroll.max,d=JE(i,c),m=Sl({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},CO=e=>{const t=e.subject.withPlaceholder;t||He();const n=e.frame;if(!n){const a=Sl({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const i=t.oldFrameMaxScroll;i||He();const r=JE(n,i),o=Sl({page:e.subject.page,axis:e.axis,frame:r,withPlaceholder:null});return{...e,subject:o,frame:r}};var jO=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:i,draggables:r,destination:o,viewport:a,afterCritical:c})=>{if(!t){if(n.length)return null;const p={displaced:wu,displacedBy:GE,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=Um({impact:p,draggable:i,droppable:o,draggables:r,afterCritical:c}),x=Ul(i,o)?o:eN(o,i,r);return QE({draggable:i,destination:x,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?p:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const p=t.descriptor.index;return t.descriptor.id===i.descriptor.id||d?p:p+1})(),h=Uu(o.axis,i.displaceBy);return lm({draggable:i,insideDestination:n,destination:o,viewport:a,displacedBy:h,last:wu,index:m})},EO=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:i,draggables:r,droppables:o,viewport:a,afterCritical:c})=>{const d=_O({isMovingForward:e,pageBorderBoxCenter:t,source:i,droppables:o,viewport:a});if(!d)return null;const m=Vl(d.descriptor.id,r),h=SO({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:c}),p=jO({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:r,moveRelativeTo:h,insideDestination:m,viewport:a,afterCritical:c});if(!p)return null;const g=Um({impact:p,draggable:n,droppable:d,draggables:r,afterCritical:c});return{clientSelection:a0({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null}},hr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const NO=(e,t)=>{const n=hr(e);return n?t[n]:null};var IO=({state:e,type:t})=>{const n=NO(e.impact,e.dimensions.droppables),i=!!n,r=e.dimensions.droppables[e.critical.droppable.id],o=n||r,a=o.axis.direction,c=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(c&&!i)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],h=e.current.page.borderBoxCenter,{draggables:p,droppables:g}=e.dimensions;return c?bO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,destination:o,draggables:p,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):EO({isMovingForward:d,previousPageBorderBoxCenter:h,draggable:m,isOver:o,draggables:p,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function ea(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function tN(e){const t=Mr(e.top,e.bottom),n=Mr(e.left,e.right);return function(r){return t(r.y)&&n(r.x)}}function TO(e,t){return e.leftt.left&&e.topt.top}function RO({pageBorderBox:e,draggable:t,candidates:n}){const i=t.page.borderBox.center,r=n.map(o=>{const a=o.axis,c=aa(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:Su(i,c)}}).sort((o,a)=>a.distance-o.distance);return r[0]?r[0].id:null}function AO({pageBorderBox:e,draggable:t,droppables:n}){const i=Hm(n).filter(r=>{if(!r.isEnabled)return!1;const o=r.subject.active;if(!o||!TO(e,o))return!1;if(tN(o)(e.center))return!0;const a=r.axis,c=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],h=Mr(o[a.crossAxisStart],o[a.crossAxisEnd]),p=h(d),g=h(m);return!p&&!g?!0:p?dc});return i.length?i.length===1?i[0].descriptor.id:RO({pageBorderBox:e,draggable:t,candidates:i}):null}const nN=(e,t)=>Hr(Vu(e,t));var MO=(e,t)=>{const n=e.frame;return n?nN(t,n.scroll.diff.value):t};function iN({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function DO({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var OO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:i,last:r,viewport:o,afterCritical:a})=>{const c=n.axis,d=Uu(n.axis,t.displaceBy),m=d.value,h=e[c.start],p=e[c.end],x=Vm(t,i).find(b=>{const S=b.descriptor.id,w=b.page.borderBox.center[c.line],k=jo(S,a),j=iN({displaced:r,id:S});return k?j?p<=w:h{if(!i.isCombineEnabled)return null;const a=i.axis,c=Uu(i.axis,e.displaceBy),d=c.value,m=t[a.start],h=t[a.end],g=Vm(e,r).find(v=>{const b=v.descriptor.id,S=v.page.borderBox,k=S[a.size]/LO,j=jo(b,o),N=iN({displaced:n.displaced,id:b});return j?N?h>S[a.start]+k&&hS[a.start]-d+k&&mS[a.start]+d+k&&hS[a.start]+k&&m{const c=nN(t.page.borderBox,e),d=AO({pageBorderBox:c,draggable:t,droppables:i});if(!d)return Z5;const m=i[d],h=Vl(m.descriptor.id,n),p=MO(m,c);return zO({pageBorderBoxWithDroppableScroll:p,draggable:t,previousImpact:r,destination:m,insideDestination:h,afterCritical:a})||OO({pageBorderBoxWithDroppableScroll:p,draggable:t,destination:m,insideDestination:h,last:r.displaced,viewport:o,afterCritical:a})},l0=(e,t)=>({...e,[t.descriptor.id]:t});const PO=({previousImpact:e,impact:t,droppables:n})=>{const i=hr(e),r=hr(t);if(!i||i===r)return n;const o=n[i];if(!o.subject.withPlaceholder)return n;const a=CO(o);return l0(n,a)};var BO=({draggable:e,draggables:t,droppables:n,previousImpact:i,impact:r})=>{const o=PO({previousImpact:i,impact:r,droppables:n}),a=hr(r);if(!a)return o;const c=n[a];if(Ul(e,c)||c.subject.withPlaceholder)return o;const d=eN(c,e,t);return l0(o,d)},fu=({state:e,clientSelection:t,dimensions:n,viewport:i,impact:r,scrollJumpRequest:o})=>{const a=i||e.viewport,c=n||e.dimensions,d=t||e.current.client.selection,m=pr(d,e.initial.client.selection),h={offset:m,selection:d,borderBoxCenter:Di(e.initial.client.borderBoxCenter,m)},p={selection:Di(h.selection,a.scroll.current),borderBoxCenter:Di(h.borderBoxCenter,a.scroll.current),offset:Di(h.offset,a.scroll.diff.value)},g={client:h,page:p};if(e.phase==="COLLECTING")return{...e,dimensions:c,viewport:a,current:g};const x=c.draggables[e.critical.draggable.id],v=r||rN({pageOffset:p.offset,draggable:x,draggables:c.draggables,droppables:c.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),b=BO({draggable:x,impact:v,previousImpact:e.impact,draggables:c.draggables,droppables:c.droppables});return{...e,current:g,dimensions:{draggables:c.draggables,droppables:b},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function $O(e,t){return e.map(n=>t[n])}var sN=({impact:e,viewport:t,draggables:n,destination:i,forceShouldAnimate:r})=>{const o=e.displaced,a=$O(o.all,n),c=Cu({afterDragging:a,destination:i,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:r,last:o});return{...e,displaced:c}},oN=({impact:e,draggable:t,droppable:n,draggables:i,viewport:r,afterCritical:o})=>{const a=Um({impact:e,draggable:t,draggables:i,droppable:n,afterCritical:o});return a0({pageBorderBoxCenter:a,draggable:t,viewport:r})},aN=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&He();const i=e.impact,r=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:c}=o,d=a[e.critical.draggable.id],m=hr(i);m||He();const h=c[m],p=sN({impact:i,viewport:r,destination:h,draggables:a}),g=oN({impact:p,draggable:d,droppable:h,draggables:a,viewport:r,afterCritical:e.afterCritical});return fu({impact:p,clientSelection:g,state:e,dimensions:o,viewport:r})},HO=e=>({index:e.index,droppableId:e.droppableId}),lN=({draggable:e,home:t,draggables:n,viewport:i})=>{const r=Uu(t.axis,e.displaceBy),o=Vl(t.descriptor.id,n),a=o.indexOf(e);a===-1&&He();const c=o.slice(a+1),d=c.reduce((g,x)=>(g[x.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:r,effected:d};return{impact:{displaced:Cu({afterDragging:c,destination:t,displacedBy:r,last:null,viewport:i.frame,forceShouldAnimate:!1}),displacedBy:r,at:{type:"REORDER",destination:HO(e.descriptor)}},afterCritical:m}},FO=(e,t)=>({draggables:e.draggables,droppables:l0(e.droppables,t)}),VO=({draggable:e,offset:t,initialWindowScroll:n})=>{const i=im(e.client,t),r=rm(i,n);return{...e,placeholder:{...e.placeholder,client:i},client:i,page:r}},UO=e=>{const t=e.frame;return t||He(),t},qO=({additions:e,updatedDroppables:t,viewport:n})=>{const i=n.scroll.diff.value;return e.map(r=>{const o=r.descriptor.droppableId,a=t[o],d=UO(a).scroll.diff.value,m=Di(i,d);return VO({draggable:r,offset:m,initialWindowScroll:n.scroll.initial})})},GO=({state:e,published:t})=>{const n=t.modified.map(w=>{const k=e.dimensions.droppables[w.droppableId];return n0(k,w.scroll)}),i={...e.dimensions.droppables,...UE(n)},r=qE(qO({additions:t.additions,updatedDroppables:i,viewport:e.viewport})),o={...e.dimensions.draggables,...r};t.removals.forEach(w=>{delete o[w]});const a={droppables:i,draggables:o},c=hr(e.impact),d=c?a.droppables[c]:null,m=a.draggables[e.critical.draggable.id],h=a.droppables[e.critical.droppable.id],{impact:p,afterCritical:g}=lN({draggable:m,home:h,draggables:o,viewport:e.viewport}),x=d&&d.isCombineEnabled?e.impact:p,v=rN({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:x,viewport:e.viewport,afterCritical:g}),b={...e,phase:"DRAGGING",impact:v,onLiftImpact:p,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?b:{...b,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const nv=e=>e.movementMode==="SNAP",zg=(e,t,n)=>{const i=FO(e.dimensions,t);return!nv(e)||n?fu({state:e,dimensions:i}):aN({state:e,dimensions:i})};function Pg(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const QS={phase:"IDLE",completed:null,shouldFlush:!1};var WO=(e=QS,t)=>{if(t.type==="FLUSH")return{...QS,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&He();const{critical:n,clientSelection:i,viewport:r,dimensions:o,movementMode:a}=t.payload,c=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:i,borderBoxCenter:c.client.borderBox.center,offset:ji},h={client:m,page:{selection:Di(m.selection,r.scroll.initial),borderBoxCenter:Di(m.selection,r.scroll.initial),offset:Di(m.selection,r.scroll.diff.value)}},p=Hm(o.droppables).every(b=>!b.isFixedOnPage),{impact:g,afterCritical:x}=lN({draggable:c,home:d,draggables:o.draggables,viewport:r});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:h,current:h,isWindowScrollAllowed:p,impact:g,afterCritical:x,onLiftImpact:g,viewport:r,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&He(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||He(),GO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;ea(e)||He();const{client:n}=t.payload;return So(n,e.current.client.selection)?e:fu({state:e,clientSelection:n,impact:nv(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return Pg(e);ea(e)||He();const{id:n,newScroll:i}=t.payload,r=e.dimensions.droppables[n];if(!r)return e;const o=n0(r,i);return zg(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;ea(e)||He();const{id:n,isEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||He(),r.isEnabled===i&&He();const o={...r,isEnabled:i};return zg(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;ea(e)||He();const{id:n,isCombineEnabled:i}=t.payload,r=e.dimensions.droppables[n];r||He(),r.isCombineEnabled===i&&He();const o={...r,isCombineEnabled:i};return zg(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;ea(e)||He(),e.isWindowScrollAllowed||He();const n=t.payload.newScroll;if(So(e.viewport.scroll.current,n))return Pg(e);const i=ZE(e.viewport,n);return nv(e)?aN({state:e,viewport:i}):fu({state:e,viewport:i})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!ea(e))return e;const n=t.payload.maxScroll;if(So(n,e.viewport.scroll.max))return e;const i={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:i}}if(t.type==="MOVE_UP"||t.type==="MOVE_DOWN"||t.type==="MOVE_LEFT"||t.type==="MOVE_RIGHT"){if(e.phase==="COLLECTING"||e.phase==="DROP_PENDING")return e;e.phase!=="DRAGGING"&&He();const n=IO({state:e,type:t.type});return n?fu({state:e,impact:n.impact,clientSelection:n.clientSelection,scrollJumpRequest:n.scrollJumpRequest}):e}if(t.type==="DROP_PENDING"){const n=t.payload.reason;return e.phase!=="COLLECTING"&&He(),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:n}}if(t.type==="DROP_ANIMATE"){const{completed:n,dropDuration:i,newHomeClientOffset:r}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||He(),{phase:"DROP_ANIMATING",completed:n,dropDuration:i,newHomeClientOffset:r,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function yn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const YO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),XO=e=>({type:"LIFT",payload:e}),KO=e=>({type:"INITIAL_PUBLISH",payload:e}),ZO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),QO=()=>({type:"COLLECTION_STARTING",payload:null}),JO=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),eL=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),tL=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),cN=e=>({type:"MOVE",payload:e}),nL=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),iL=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),rL=()=>({type:"MOVE_UP",payload:null}),sL=()=>({type:"MOVE_DOWN",payload:null}),oL=()=>({type:"MOVE_RIGHT",payload:null}),aL=()=>({type:"MOVE_LEFT",payload:null}),c0=()=>({type:"FLUSH",payload:null}),lL=e=>({type:"DROP_ANIMATE",payload:e}),u0=e=>({type:"DROP_COMPLETE",payload:e}),uN=e=>({type:"DROP",payload:e}),cL=e=>({type:"DROP_PENDING",payload:e}),dN=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var uL=e=>({getState:t,dispatch:n})=>i=>r=>{if(!yn(r,"LIFT")){i(r);return}const{id:o,clientSelection:a,movementMode:c}=r.payload,d=t();d.phase==="DROP_ANIMATING"&&n(u0({completed:d.completed})),t().phase!=="IDLE"&&He(),n(c0()),n(YO({draggableId:o,movementMode:c}));const h={draggableId:o,scrollOptions:{shouldPublishImmediately:c==="SNAP"}},{critical:p,dimensions:g,viewport:x}=e.startPublishing(h);n(KO({critical:p,dimensions:g,clientSelection:a,movementMode:c,viewport:x}))},dL=e=>()=>t=>n=>{yn(n,"INITIAL_PUBLISH")&&e.dragging(),yn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(yn(n,"FLUSH")||yn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const d0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},ju={opacity:{drop:0,combining:.7},scale:{drop:.75}},fN={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Xo=`${fN.outOfTheWay}s ${d0.outOfTheWay}`,mu={fluid:`opacity ${Xo}`,snap:`transform ${Xo}, opacity ${Xo}`,drop:e=>{const t=`${e}s ${d0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Xo}`,placeholder:`height ${Xo}, width ${Xo}, margin ${Xo}`},JS=e=>So(e,ji)?void 0:`translate(${e.x}px, ${e.y}px)`,iv={moveTo:JS,drop:(e,t)=>{const n=JS(e);if(n)return t?`${n} scale(${ju.scale.drop})`:n}},{minDropTime:rv,maxDropTime:mN}=fN,fL=mN-rv,ew=1500,mL=.6;var pL=({current:e,destination:t,reason:n})=>{const i=Su(e,t);if(i<=0)return rv;if(i>=ew)return mN;const r=i/ew,o=rv+fL*r,a=n==="CANCEL"?o*mL:o;return Number(a.toFixed(2))},hL=({impact:e,draggable:t,dimensions:n,viewport:i,afterCritical:r})=>{const{draggables:o,droppables:a}=n,c=hr(e),d=c?a[c]:null,m=a[t.descriptor.droppableId],h=oN({impact:e,draggable:t,draggables:o,afterCritical:r,droppable:d||m,viewport:i});return pr(h,t.client.borderBox.center)},gL=({draggables:e,reason:t,lastImpact:n,home:i,viewport:r,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:sN({draggables:e,impact:o,destination:i,viewport:r,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:wu},didDropInsideDroppable:!0};const yL=({getState:e,dispatch:t})=>n=>i=>{if(!yn(i,"DROP")){n(i);return}const r=e(),o=i.payload.reason;if(r.phase==="COLLECTING"){t(cL({reason:o}));return}if(r.phase==="IDLE")return;r.phase==="DROP_PENDING"&&r.isWaiting&&He(),r.phase==="DRAGGING"||r.phase==="DROP_PENDING"||He();const c=r.critical,d=r.dimensions,m=d.draggables[r.critical.draggable.id],{impact:h,didDropInsideDroppable:p}=gL({reason:o,lastImpact:r.impact,afterCritical:r.afterCritical,onLiftImpact:r.onLiftImpact,home:r.dimensions.droppables[r.critical.droppable.id],viewport:r.viewport,draggables:r.dimensions.draggables}),g=p?i0(h):null,x=p?Fm(h):null,v={index:c.draggable.index,droppableId:c.droppable.id},b={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:r.movementMode,destination:g,combine:x},S=hL({impact:h,draggable:m,dimensions:d,viewport:r.viewport,afterCritical:r.afterCritical}),w={critical:r.critical,afterCritical:r.afterCritical,result:b,impact:h};if(!(!So(r.current.client.offset,S)||!!b.combine)){t(u0({completed:w}));return}const j=pL({current:r.current.client.offset,destination:S,reason:o});t(lL({newHomeClientOffset:S,dropDuration:j,completed:w}))};var pN=()=>({x:window.pageXOffset,y:window.pageYOffset});function xL(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function vL({onWindowScroll:e}){function t(){e(pN())}const n=ku(t),i=xL(n);let r=ko;function o(){return r!==ko}function a(){o()&&He(),r=Ar(window,[i])}function c(){o()||He(),n.cancel(),r(),r=ko}return{start:a,stop:c,isActive:o}}const bL=e=>yn(e,"DROP_COMPLETE")||yn(e,"DROP_ANIMATE")||yn(e,"FLUSH"),_L=e=>{const t=vL({onWindowScroll:n=>{e.dispatch(nL({newScroll:n}))}});return n=>i=>{!t.isActive()&&yn(i,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&bL(i)&&t.stop(),n(i)}};var kL=e=>{let t=!1,n=!1;const i=setTimeout(()=>{n=!0}),r=o=>{t||n||(t=!0,e(o),clearTimeout(i))};return r.wasCalled=()=>t,r},SL=()=>{const e=[],t=r=>{const o=e.findIndex(c=>c.timerId===r);o===-1&&He();const[a]=e.splice(o,1);a.callback()};return{add:r=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:r};e.push(a)},flush:()=>{if(!e.length)return;const r=[...e];e.length=0,r.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const wL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,CL=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,jL=(e,t)=>{if(e===t)return!0;const n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,i=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&i},Vc=(e,t)=>{t()},uf=(e,t)=>({draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t});function Bg(e,t,n,i){if(!e){n(i(t));return}const r=kL(n);e(t,{announce:r}),r.wasCalled()||n(i(t))}var EL=(e,t)=>{const n=SL();let i=null;const r=(p,g)=>{i&&He(),Vc("onBeforeCapture",()=>{const x=e().onBeforeCapture;x&&x({draggableId:p,mode:g})})},o=(p,g)=>{i&&He(),Vc("onBeforeDragStart",()=>{const x=e().onBeforeDragStart;x&&x(uf(p,g))})},a=(p,g)=>{i&&He();const x=uf(p,g);i={mode:g,lastCritical:p,lastLocation:x.source,lastCombine:null},n.add(()=>{Vc("onDragStart",()=>Bg(e().onDragStart,x,t,Bf.onDragStart))})},c=(p,g)=>{const x=i0(g),v=Fm(g);i||He();const b=!jL(p,i.lastCritical);b&&(i.lastCritical=p);const S=!wL(i.lastLocation,x);S&&(i.lastLocation=x);const w=!CL(i.lastCombine,v);if(w&&(i.lastCombine=v),!b&&!S&&!w)return;const k={...uf(p,i.mode),combine:v,destination:x};n.add(()=>{Vc("onDragUpdate",()=>Bg(e().onDragUpdate,k,t,Bf.onDragUpdate))})},d=()=>{i||He(),n.flush()},m=p=>{i||He(),i=null,Vc("onDragEnd",()=>Bg(e().onDragEnd,p,t,Bf.onDragEnd))};return{beforeCapture:r,beforeStart:o,start:a,update:c,flush:d,drop:m,abort:()=>{if(!i)return;const p={...uf(i.lastCritical,i.mode),combine:null,destination:null,reason:"CANCEL"};m(p)}}},NL=(e,t)=>{const n=EL(e,t);return i=>r=>o=>{if(yn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(yn(o,"INITIAL_PUBLISH")){const c=o.payload.critical;n.beforeStart(c,o.payload.movementMode),r(o),n.start(c,o.payload.movementMode);return}if(yn(o,"DROP_COMPLETE")){const c=o.payload.completed.result;n.flush(),r(o),n.drop(c);return}if(r(o),yn(o,"FLUSH")){n.abort();return}const a=i.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const IL=e=>t=>n=>{if(!yn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const i=e.getState();i.phase!=="DROP_ANIMATING"&&He(),e.dispatch(u0({completed:i.completed}))},TL=e=>{let t=null,n=null;function i(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return r=>o=>{if((yn(o,"FLUSH")||yn(o,"DROP_COMPLETE")||yn(o,"DROP_ANIMATION_FINISHED"))&&i(),r(o),!yn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(dN())}};n=requestAnimationFrame(()=>{n=null,t=Ar(window,[a])})}};var RL=e=>()=>t=>n=>{(yn(n,"DROP_COMPLETE")||yn(n,"FLUSH")||yn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},AL=e=>{let t=!1;return()=>n=>i=>{if(yn(i,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(i.payload.critical.draggable.id),n(i),e.tryRestoreFocusRecorded();return}if(n(i),!!t){if(yn(i,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(yn(i,"DROP_COMPLETE")){t=!1;const r=i.payload.completed.result;r.combine&&e.tryShiftRecord(r.draggableId,r.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const ML=e=>yn(e,"DROP_COMPLETE")||yn(e,"DROP_ANIMATE")||yn(e,"FLUSH");var DL=e=>t=>n=>i=>{if(ML(i)){e.stop(),n(i);return}if(yn(i,"INITIAL_PUBLISH")){n(i);const r=t.getState();r.phase!=="DRAGGING"&&He(),e.start(r);return}n(i),e.scroll(t.getState())};const OL=e=>t=>n=>{if(t(n),!yn(n,"PUBLISH_WHILE_DRAGGING"))return;const i=e.getState();i.phase==="DROP_PENDING"&&(i.isWaiting||e.dispatch(uN({reason:i.reason})))},LL=TE;var zL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:i,announce:r,autoScroller:o})=>IE(WO,LL(DD(dL(n),RL(e),uL(e),yL,IL,TL,OL,DL(o),_L,AL(t),NL(i,r))));const $g=()=>({additions:{},removals:{},modified:{}});function PL({registry:e,callbacks:t}){let n=$g(),i=null;const r=()=>{i||(t.collectionStarting(),i=requestAnimationFrame(()=>{i=null;const{additions:d,removals:m,modified:h}=n,p=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(ji)).sort((v,b)=>v.descriptor.index-b.descriptor.index),g=Object.keys(h).map(v=>{const S=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:S}}),x={additions:p,removals:Object.keys(m),modified:g};n=$g(),t.publish(x)}))};return{add:d=>{const m=d.descriptor.id;n.additions[m]=d,n.modified[d.descriptor.droppableId]=!0,n.removals[m]&&delete n.removals[m],r()},remove:d=>{const m=d.descriptor;n.removals[m.id]=!0,n.modified[m.droppableId]=!0,n.additions[m.id]&&delete n.additions[m.id],r()},stop:()=>{i&&(cancelAnimationFrame(i),i=null,n=$g())}}}var hN=({scrollHeight:e,scrollWidth:t,height:n,width:i})=>{const r=pr({x:t,y:e},{x:i,y:n});return{x:Math.max(0,r.x),y:Math.max(0,r.y)}},gN=()=>{const e=document.documentElement;return e||He(),e},yN=()=>{const e=gN();return hN({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},BL=()=>{const e=pN(),t=yN(),n=e.y,i=e.x,r=gN(),o=r.clientWidth,a=r.clientHeight,c=i+o,d=n+a;return{frame:Hr({top:n,left:i,right:c,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:ji,displacement:ji}}}},$L=({critical:e,scrollOptions:t,registry:n})=>{const i=BL(),r=i.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(h=>h.callbacks.getDimensionAndWatchScroll(r,t)),c=n.draggable.getAllByType(e.draggable.type).map(h=>h.getDimension(r));return{dimensions:{draggables:qE(c),droppables:UE(a)},critical:e,viewport:i}};function tw(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var HL=(e,t)=>{let n=null;const i=PL({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),r=(g,x)=>{e.droppable.exists(g)||He(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:x})},o=(g,x)=>{n&&(e.droppable.exists(g)||He(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:x}))},a=(g,x)=>{n&&(e.droppable.exists(g)||He(),t.updateDroppableScroll({id:g,newScroll:x}))},c=(g,x)=>{n&&e.droppable.getById(g).callbacks.scroll(x)},d=()=>{if(!n)return;i.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(x=>x.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||He();const x=n.critical.draggable;g.type==="ADDITION"&&tw(e,x,g.value)&&i.add(g.value),g.type==="REMOVAL"&&tw(e,x,g.value)&&i.remove(g.value)};return{updateDroppableIsEnabled:r,updateDroppableIsCombineEnabled:o,scrollDroppable:c,updateDroppableScroll:a,startPublishing:g=>{n&&He();const x=e.draggable.getById(g.draggableId),v=e.droppable.getById(x.descriptor.droppableId),b={draggable:x.descriptor,droppable:v.descriptor},S=e.subscribe(m);return n={critical:b,unsubscribe:S},$L({critical:b,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},xN=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",FL=e=>{window.scrollBy(e.x,e.y)};const VL=Ci(e=>Hm(e).filter(t=>!(!t.isEnabled||!t.frame))),UL=(e,t)=>VL(t).find(i=>(i.frame||He(),tN(i.frame.pageMarginBox)(e)))||null;var qL=({center:e,destination:t,droppables:n})=>{if(t){const r=n[t];return r.frame?r:null}return UL(e,n)};const Eu={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var GL=(e,t,n=()=>Eu)=>{const i=n(),r=e[t.size]*i.startFromPercentage,o=e[t.size]*i.maxScrollAtPercentage;return{startScrollingFrom:r,maxScrollValueAt:o}},vN=({startOfRange:e,endOfRange:t,current:n})=>{const i=t-e;return i===0?0:(n-e)/i},f0=1,WL=(e,t,n=()=>Eu)=>{const i=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return i.maxPixelScroll;if(e===t.startScrollingFrom)return f0;const o=1-vN({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=i.maxPixelScroll*i.ease(o);return Math.ceil(a)},YL=(e,t,n)=>{const i=n(),r=i.durationDampening.accelerateAt,o=i.durationDampening.stopDampeningAt,a=t,c=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=WL(e,t,r);return o===0?0:i?Math.max(YL(o,n,r),f0):o},iw=({container:e,distanceToEdges:t,dragStartTime:n,axis:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=GL(e,i,o);return t[i.end]{const i=t.height>e.height,r=t.width>e.width;return!r&&!i?n:r&&i?null:{x:r?0:n.x,y:i?0:n.y}};const KL=VE(e=>e===0?0:e);var bN=({dragStartTime:e,container:t,subject:n,center:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a={top:i.y-t.top,right:t.right-i.x,bottom:t.bottom-i.y,left:i.x-t.left},c=iw({container:t,distanceToEdges:a,dragStartTime:e,axis:r0,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),d=iw({container:t,distanceToEdges:a,dragStartTime:e,axis:YE,shouldUseTimeDampening:r,getAutoScrollerOptions:o}),m=KL({x:d,y:c});if(So(m,ji))return null;const h=XL({container:t,subject:n,proposedScroll:m});return h?So(h,ji)?null:h:null};const ZL=VE(e=>e===0?0:e>0?1:-1),m0=(()=>{const e=(t,n)=>t<0?t:t>n?t-n:0;return({current:t,max:n,change:i})=>{const r=Di(t,i),o={x:e(r.x,n.x),y:e(r.y,n.y)};return So(o,ji)?null:o}})(),_N=({max:e,current:t,change:n})=>{const i={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},r=ZL(n),o=m0({max:i,current:t,change:r});return!o||r.x!==0&&o.x===0||r.y!==0&&o.y===0},p0=(e,t)=>_N({current:e.scroll.current,max:e.scroll.max,change:t}),QL=(e,t)=>{if(!p0(e,t))return null;const n=e.scroll.max,i=e.scroll.current;return m0({current:i,max:n,change:t})},h0=(e,t)=>{const n=e.frame;return n?_N({current:n.scroll.current,max:n.scroll.max,change:t}):!1},JL=(e,t)=>{const n=e.frame;return!n||!h0(e,t)?null:m0({current:n.scroll.current,max:n.scroll.max,change:t})};var e6=({viewport:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=bN({dragStartTime:i,container:e.frame,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return a&&p0(e,a)?a:null},t6=({droppable:e,subject:t,center:n,dragStartTime:i,shouldUseTimeDampening:r,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const c=bN({dragStartTime:i,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:r,getAutoScrollerOptions:o});return c&&h0(e,c)?c:null},rw=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:i,scrollDroppable:r,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const p=e.viewport,g=e6({dragStartTime:t,viewport:p,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){i(g);return}}const m=qL({center:a,destination:hr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const h=t6({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});h&&r(m.descriptor.id,h)},n6=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>Eu})=>{const i=ku(e),r=ku(t);let o=null;const a=m=>{o||He();const{shouldUseTimeDampening:h,dragStartTime:p}=o;rw({state:m,scrollWindow:i,scrollDroppable:r,dragStartTime:p,shouldUseTimeDampening:h,getAutoScrollerOptions:n})};return{start:m=>{o&&He();const h=Date.now();let p=!1;const g=()=>{p=!0};rw({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:h,shouldUseTimeDampening:p},p&&a(m)},stop:()=>{o&&(i.cancel(),r.cancel(),o=null)},scroll:a}},i6=({move:e,scrollDroppable:t,scrollWindow:n})=>{const i=(c,d)=>{const m=Di(c.current.client.selection,d);e({client:m})},r=(c,d)=>{if(!h0(c,d))return d;const m=JL(c,d);if(!m)return t(c.descriptor.id,d),null;const h=pr(d,m);return t(c.descriptor.id,h),pr(d,h)},o=(c,d,m)=>{if(!c||!p0(d,m))return m;const h=QL(d,m);if(!h)return n(m),null;const p=pr(m,h);return n(p),pr(m,p)};return c=>{const d=c.scrollJumpRequest;if(!d)return;const m=hr(c.impact);m||He();const h=r(c.dimensions.droppables[m],d);if(!h)return;const p=c.viewport,g=o(c.isWindowScrollAllowed,p,h);g&&i(c,g)}},r6=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:i})=>{const r=n6({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:i}),o=i6({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(i().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){r.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:r.start,stop:r.stop}};const wl="data-rfd",Cl=(()=>{const e=`${wl}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),sv=(()=>{const e=`${wl}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),s6=(()=>{const e=`${wl}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),sw={contextId:`${wl}-scroll-container-context-id`},o6=e=>t=>`[${t}="${e}"]`,Uc=(e,t)=>e.map(n=>{const i=n.styles[t];return i?`${n.selector} { ${i} }`:""}).join(" "),a6="pointer-events: none;";var l6=e=>{const t=o6(e),n=(()=>{const c=` - cursor: -webkit-grab; - cursor: grab; - `;return{selector:t(Cl.contextId),styles:{always:` - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - touch-action: manipulation; - `,resting:c,dragging:a6,dropAnimating:c}}})(),i=(()=>{const c=` - transition: ${mu.outOfTheWay}; - `;return{selector:t(sv.contextId),styles:{dragging:c,dropAnimating:c,userCancel:c}}})(),r={selector:t(s6.contextId),styles:{always:"overflow-anchor: none;"}},a=[i,n,r,{selector:"body",styles:{dragging:` - cursor: grabbing; - cursor: -webkit-grabbing; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - overflow-anchor: none; - `}}];return{always:Uc(a,"always"),resting:Uc(a,"resting"),dragging:Uc(a,"dragging"),dropAnimating:Uc(a,"dropAnimating"),userCancel:Uc(a,"userCancel")}};const gr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?C.useLayoutEffect:C.useEffect,Hg=()=>{const e=document.querySelector("head");return e||He(),e},ow=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function c6(e,t){const n=rn(()=>l6(e),[e]),i=C.useRef(null),r=C.useRef(null),o=st(Ci(p=>{const g=r.current;g||He(),g.textContent=p}),[]),a=st(p=>{const g=i.current;g||He(),g.textContent=p},[]);gr(()=>{!i.current&&!r.current||He();const p=ow(t),g=ow(t);return i.current=p,r.current=g,p.setAttribute(`${wl}-always`,e),g.setAttribute(`${wl}-dynamic`,e),Hg().appendChild(p),Hg().appendChild(g),a(n.always),o(n.resting),()=>{const x=v=>{const b=v.current;b||He(),Hg().removeChild(b),v.current=null};x(i),x(r)}},[t,a,o,n.always,n.resting,e]);const c=st(()=>o(n.dragging),[o,n.dragging]),d=st(p=>{if(p==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=st(()=>{r.current&&o(n.resting)},[o,n.resting]);return rn(()=>({dragging:c,dropping:d,resting:m}),[c,d,m])}function kN(e,t){return Array.from(e.querySelectorAll(t))}var SN=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function qm(e){return e instanceof SN(e).HTMLElement}function u6(e,t){const n=`[${Cl.contextId}="${e}"]`,i=kN(document,n);if(!i.length)return null;const r=i.find(o=>o.getAttribute(Cl.draggableId)===t);return!r||!qm(r)?null:r}function d6(e){const t=C.useRef({}),n=C.useRef(null),i=C.useRef(null),r=C.useRef(!1),o=st(function(g,x){const v={id:g,focus:x};return t.current[g]=v,function(){const S=t.current;S[g]!==v&&delete S[g]}},[]),a=st(function(g){const x=u6(e,g);x&&x!==document.activeElement&&x.focus()},[e]),c=st(function(g,x){n.current===g&&(n.current=x)},[]),d=st(function(){i.current||r.current&&(i.current=requestAnimationFrame(()=>{i.current=null;const g=n.current;g&&a(g)}))},[a]),m=st(function(g){n.current=null;const x=document.activeElement;x&&x.getAttribute(Cl.draggableId)===g&&(n.current=g)},[]);return gr(()=>(r.current=!0,function(){r.current=!1;const g=i.current;g&&cancelAnimationFrame(g)}),[]),rn(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:c}),[o,m,d,c])}function f6(){const e={draggables:{},droppables:{}},t=[];function n(p){return t.push(p),function(){const x=t.indexOf(p);x!==-1&&t.splice(x,1)}}function i(p){t.length&&t.forEach(g=>g(p))}function r(p){return e.draggables[p]||null}function o(p){const g=r(p);return g||He(),g}const a={register:p=>{e.draggables[p.descriptor.id]=p,i({type:"ADDITION",value:p})},update:(p,g)=>{const x=e.draggables[g.descriptor.id];x&&x.uniqueId===p.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[p.descriptor.id]=p)},unregister:p=>{const g=p.descriptor.id,x=r(g);x&&p.uniqueId===x.uniqueId&&(delete e.draggables[g],e.droppables[p.descriptor.droppableId]&&i({type:"REMOVAL",value:p}))},getById:o,findById:r,exists:p=>!!r(p),getAllByType:p=>Object.values(e.draggables).filter(g=>g.descriptor.type===p)};function c(p){return e.droppables[p]||null}function d(p){const g=c(p);return g||He(),g}const m={register:p=>{e.droppables[p.descriptor.id]=p},unregister:p=>{const g=c(p.descriptor.id);g&&p.uniqueId===g.uniqueId&&delete e.droppables[p.descriptor.id]},getById:d,findById:c,exists:p=>!!c(p),getAllByType:p=>Object.values(e.droppables).filter(g=>g.descriptor.type===p)};function h(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:h}}function m6(){const e=rn(f6,[]);return C.useEffect(()=>function(){e.clean()},[e]),e}var g0=Mt.createContext(null),cm=()=>{const e=document.body;return e||He(),e};const p6={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},h6=e=>`rfd-announcement-${e}`;function g6(e){const t=rn(()=>h6(e),[e]),n=C.useRef(null);return C.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),sm(o.style,p6),cm().appendChild(o),function(){setTimeout(function(){const d=cm();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),st(r=>{const o=n.current;if(o){o.textContent=r;return}},[])}const y6={separator:"::"};function y0(e,t=y6){const n=Mt.useId();return rn(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function x6({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function v6({contextId:e,text:t}){const n=y0("hidden-text",{separator:"-"}),i=rn(()=>x6({contextId:e,uniqueId:n}),[n,e]);return C.useEffect(function(){const o=document.createElement("div");return o.id=i,o.textContent=t,o.style.display="none",cm().appendChild(o),function(){const c=cm();c.contains(o)&&c.removeChild(o)}},[i,t]),i}var Gm=Mt.createContext(null);function wN(e){const t=C.useRef(e);return C.useEffect(()=>{t.current=e}),t}function b6(){let e=null;function t(){return!!e}function n(a){return a===e}function i(a){e&&He();const c={abandon:a};return e=c,c}function r(){e||He(),e=null}function o(){e&&(e.abandon(),r())}return{isClaimed:t,isActive:n,claim:i,release:r,tryAbandon:o}}function Nu(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const _6=9,k6=13,x0=27,CN=32,S6=33,w6=34,C6=35,j6=36,E6=37,N6=38,I6=39,T6=40,R6={[k6]:!0,[_6]:!0};var jN=e=>{R6[e.keyCode]&&e.preventDefault()};const Wm=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(i=>`on${i}`in document)||e})(),EN=0,aw=5;function A6(e,t){return Math.abs(t.x-e.x)>=aw||Math.abs(t.y-e.y)>=aw}const lw={type:"IDLE"};function M6({cancel:e,completed:t,getPhase:n,setPhase:i}){return[{eventName:"mousemove",fn:r=>{const{button:o,clientX:a,clientY:c}=r;if(o!==EN)return;const d={x:a,y:c},m=n();if(m.type==="DRAGGING"){r.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&He();const h=m.point;if(!A6(h,d))return;r.preventDefault();const p=m.actions.fluidLift(d);i({type:"DRAGGING",actions:p})}},{eventName:"mouseup",fn:r=>{const o=n();if(o.type!=="DRAGGING"){e();return}r.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:r=>{n().type==="DRAGGING"&&r.preventDefault(),e()}},{eventName:"keydown",fn:r=>{if(n().type==="PENDING"){e();return}if(r.keyCode===x0){r.preventDefault(),e();return}jN(r)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:r=>{const o=n();if(o.type==="IDLE"&&He(),o.actions.shouldRespectForcePress()){e();return}r.preventDefault()}},{eventName:Wm,fn:e}]}function D6(e){const t=C.useRef(lw),n=C.useRef(ko),i=rn(()=>({eventName:"mousedown",fn:function(p){if(p.defaultPrevented||p.button!==EN||p.ctrlKey||p.metaKey||p.shiftKey||p.altKey)return;const g=e.findClosestDraggableId(p);if(!g)return;const x=e.tryGetLock(g,a,{sourceEvent:p});if(!x)return;p.preventDefault();const v={x:p.clientX,y:p.clientY};n.current(),m(x,v)}}),[e]),r=rn(()=>({eventName:"webkitmouseforcewillbegin",fn:h=>{if(h.defaultPrevented)return;const p=e.findClosestDraggableId(h);if(!p)return;const g=e.findOptionsForDraggable(p);g&&(g.shouldRespectForcePress||e.canGetLock(p)&&h.preventDefault())}}),[e]),o=st(function(){const p={passive:!1,capture:!0};n.current=Ar(window,[r,i],p)},[r,i]),a=st(()=>{t.current.type!=="IDLE"&&(t.current=lw,n.current(),o())},[o]),c=st(()=>{const h=t.current;a(),h.type==="DRAGGING"&&h.actions.cancel({shouldBlockNextClick:!0}),h.type==="PENDING"&&h.actions.abort()},[a]),d=st(function(){const p={capture:!0,passive:!1},g=M6({cancel:c,completed:a,getPhase:()=>t.current,setPhase:x=>{t.current=x}});n.current=Ar(window,g,p)},[c,a]),m=st(function(p,g){t.current.type!=="IDLE"&&He(),t.current={type:"PENDING",point:g,actions:p},d()},[d]);gr(function(){return o(),function(){n.current()}},[o])}function O6(){}const L6={[w6]:!0,[S6]:!0,[j6]:!0,[C6]:!0};function z6(e,t){function n(){t(),e.cancel()}function i(){t(),e.drop()}return[{eventName:"keydown",fn:r=>{if(r.keyCode===x0){r.preventDefault(),n();return}if(r.keyCode===CN){r.preventDefault(),i();return}if(r.keyCode===T6){r.preventDefault(),e.moveDown();return}if(r.keyCode===N6){r.preventDefault(),e.moveUp();return}if(r.keyCode===I6){r.preventDefault(),e.moveRight();return}if(r.keyCode===E6){r.preventDefault(),e.moveLeft();return}if(L6[r.keyCode]){r.preventDefault();return}jN(r)}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Wm,fn:n}]}function P6(e){const t=C.useRef(O6),n=rn(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==CN)return;const a=e.findClosestDraggableId(o);if(!a)return;const c=e.tryGetLock(a,h,{sourceEvent:o});if(!c)return;o.preventDefault();let d=!0;const m=c.snapLift();t.current();function h(){d||He(),d=!1,t.current(),i()}t.current=Ar(window,z6(m,h),{capture:!0,passive:!1})}}),[e]),i=st(function(){const o={passive:!1,capture:!0};t.current=Ar(window,[n],o)},[n]);gr(function(){return i(),function(){t.current()}},[i])}const Fg={type:"IDLE"},B6=120,$6=.15;function H6({cancel:e,getPhase:t}){return[{eventName:"orientationchange",fn:e},{eventName:"resize",fn:e},{eventName:"contextmenu",fn:n=>{n.preventDefault()}},{eventName:"keydown",fn:n=>{if(t().type!=="DRAGGING"){e();return}n.keyCode===x0&&n.preventDefault(),e()}},{eventName:Wm,fn:e}]}function F6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}r.hasMoved=!0;const{clientX:o,clientY:a}=i.touches[0],c={x:o,y:a};i.preventDefault(),r.actions.move(c)}},{eventName:"touchend",fn:i=>{const r=n();if(r.type!=="DRAGGING"){e();return}i.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:i=>{if(n().type!=="DRAGGING"){e();return}i.preventDefault(),e()}},{eventName:"touchforcechange",fn:i=>{const r=n();r.type==="IDLE"&&He();const o=i.touches[0];if(!o||!(o.force>=$6))return;const c=r.actions.shouldRespectForcePress();if(r.type==="PENDING"){c&&e();return}if(c){if(r.hasMoved){i.preventDefault();return}e();return}i.preventDefault()}},{eventName:Wm,fn:e}]}function V6(e){const t=C.useRef(Fg),n=C.useRef(ko),i=st(function(){return t.current},[]),r=st(function(x){t.current=x},[]),o=rn(()=>({eventName:"touchstart",fn:function(x){if(x.defaultPrevented)return;const v=e.findClosestDraggableId(x);if(!v)return;const b=e.tryGetLock(v,c,{sourceEvent:x});if(!b)return;const S=x.touches[0],{clientX:w,clientY:k}=S,j={x:w,y:k};n.current(),p(b,j)}}),[e]),a=st(function(){const x={capture:!0,passive:!1};n.current=Ar(window,[o],x)},[o]),c=st(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),r(Fg),n.current(),a())},[a,r]),d=st(()=>{const g=t.current;c(),g.type==="DRAGGING"&&g.actions.cancel({shouldBlockNextClick:!0}),g.type==="PENDING"&&g.actions.abort()},[c]),m=st(function(){const x={capture:!0,passive:!1},v={cancel:d,completed:c,getPhase:i},b=Ar(window,F6(v),x),S=Ar(window,H6(v),x);n.current=function(){b(),S()}},[d,i,c]),h=st(function(){const x=i();x.type!=="PENDING"&&He();const v=x.actions.fluidLift(x.point);r({type:"DRAGGING",actions:v,hasMoved:!1})},[i,r]),p=st(function(x,v){i().type!=="IDLE"&&He();const b=setTimeout(h,B6);r({type:"PENDING",point:v,actions:x,longPressTimerId:b}),m()},[m,i,r,h]);gr(function(){return a(),function(){n.current();const v=i();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),r(Fg))}},[i,a,r]),gr(function(){return Ar(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const U6=["input","button","textarea","select","option","optgroup","video","audio"];function NN(e,t){if(t==null)return!1;if(U6.includes(t.tagName.toLowerCase()))return!0;const i=t.getAttribute("contenteditable");return i==="true"||i===""?!0:t===e?!1:NN(e,t.parentElement)}function q6(e,t){const n=t.target;return qm(n)?NN(e,n):!1}var G6=e=>Hr(e.getBoundingClientRect()).center;function W6(e){return e instanceof SN(e).Element}const Y6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(i=>i in Element.prototype)||e})();function IN(e,t){return e==null?null:e[Y6](t)?e:IN(e.parentElement,t)}function X6(e,t){return e.closest?e.closest(t):IN(e,t)}function K6(e){return`[${Cl.contextId}="${e}"]`}function Z6(e,t){const n=t.target;if(!W6(n))return null;const i=K6(e),r=X6(n,i);return!r||!qm(r)?null:r}function Q6(e,t){const n=Z6(e,t);return n?n.getAttribute(Cl.draggableId):null}function J6(e,t){const n=`[${sv.contextId}="${e}"]`,r=kN(document,n).find(o=>o.getAttribute(sv.id)===t);return!r||!qm(r)?null:r}function ez(e){e.preventDefault()}function df({expected:e,phase:t,isLockActive:n,shouldWarn:i}){return!(!n()||e!==t)}function TN({lockAPI:e,store:t,registry:n,draggableId:i}){if(e.isClaimed())return!1;const r=n.draggable.findById(i);return!(!r||!r.options.isEnabled||!xN(t.getState(),i))}function tz({lockAPI:e,contextId:t,store:n,registry:i,draggableId:r,forceSensorStop:o,sourceEvent:a}){if(!TN({lockAPI:e,store:n,registry:i,draggableId:r}))return null;const d=i.draggable.getById(r),m=J6(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&q6(m,a))return null;const h=e.claim(o||ko);let p="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function x(){return e.isActive(h)}function v(z,T){df({expected:z,phase:p,isLockActive:x,shouldWarn:!0})&&n.dispatch(T())}const b=v.bind(null,"DRAGGING");function S(z){function T(){e.release(),p="COMPLETED"}p!=="PRE_DRAG"&&(T(),He()),n.dispatch(XO(z.liftActionArgs)),p="DRAGGING";function M(L,A={shouldBlockNextClick:!1}){if(z.cleanup(),A.shouldBlockNextClick){const O=Ar(window,[{eventName:"click",fn:ez,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(O)}T(),n.dispatch(uN({reason:L}))}return{isActive:()=>df({expected:"DRAGGING",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,drop:L=>M("DROP",L),cancel:L=>M("CANCEL",L),...z.actions}}function w(z){const T=ku(L=>{b(()=>cN({client:L}))});return{...S({liftActionArgs:{id:r,clientSelection:z,movementMode:"FLUID"},cleanup:()=>T.cancel(),actions:{move:T}}),move:T}}function k(){const z={moveUp:()=>b(rL),moveRight:()=>b(oL),moveDown:()=>b(sL),moveLeft:()=>b(aL)};return S({liftActionArgs:{id:r,clientSelection:G6(m),movementMode:"SNAP"},cleanup:ko,actions:z})}function j(){df({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!0})&&e.release()}return{isActive:()=>df({expected:"PRE_DRAG",phase:p,isLockActive:x,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:w,snapLift:k,abort:j}}const nz=[D6,P6,V6];function iz({contextId:e,store:t,registry:n,customSensors:i,enableDefaultSensors:r}){const o=[...r?nz:[],...i||[]],a=C.useState(()=>b6())[0],c=st(function(S,w){Nu(S)&&!Nu(w)&&a.tryAbandon()},[a]);gr(function(){let S=t.getState();return t.subscribe(()=>{const k=t.getState();c(S,k),S=k})},[a,t,c]),gr(()=>a.tryAbandon,[a.tryAbandon]);const d=st(b=>TN({lockAPI:a,registry:n,store:t,draggableId:b}),[a,n,t]),m=st((b,S,w)=>tz({lockAPI:a,registry:n,contextId:e,store:t,draggableId:b,forceSensorStop:S||null,sourceEvent:w&&w.sourceEvent?w.sourceEvent:null}),[e,a,n,t]),h=st(b=>Q6(e,b),[e]),p=st(b=>{const S=n.draggable.findById(b);return S?S.options:null},[n.draggable]),g=st(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(c0()))},[a,t]),x=st(()=>a.isClaimed(),[a]),v=rn(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:h,findOptionsForDraggable:p,tryReleaseLock:g,isLockClaimed:x}),[d,m,h,p,g,x]);for(let b=0;b({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};Dm.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),sz=e=>({...Eu,...e.autoScrollerOptions,durationDampening:{...Eu.durationDampening,...e.autoScrollerOptions}});function qc(e){return e.current||He(),e.current}function oz(e){const{contextId:t,setCallbacks:n,sensors:i,nonce:r,dragHandleUsageInstructions:o}=e,a=C.useRef(null),c=wN(e),d=st(()=>rz(c.current),[c]),m=st(()=>sz(c.current),[c]),h=g6(t),p=v6({contextId:t,text:o}),g=c6(t,r),x=st(O=>{qc(a).dispatch(O)},[]),v=rn(()=>DS({publishWhileDragging:ZO,updateDroppableScroll:JO,updateDroppableIsEnabled:eL,updateDroppableIsCombineEnabled:tL,collectionStarting:QO},x),[x]),b=m6(),S=rn(()=>HL(b,v),[b,v]),w=rn(()=>r6({scrollWindow:FL,scrollDroppable:S.scrollDroppable,getAutoScrollerOptions:m,...DS({move:cN},x)}),[S.scrollDroppable,x,m]),k=d6(t),j=rn(()=>zL({announce:h,autoScroller:w,dimensionMarshal:S,focusMarshal:k,getResponders:d,styleMarshal:g}),[h,w,S,k,d,g]);a.current=j;const N=st(()=>{const O=qc(a);O.getState().phase!=="IDLE"&&O.dispatch(c0())},[]),z=st(()=>{const O=qc(a).getState();return O.phase==="DROP_ANIMATING"?!0:O.phase==="IDLE"?!1:O.isDragging},[]),T=rn(()=>({isDragging:z,tryAbort:N}),[z,N]);n(T);const M=st(O=>xN(qc(a).getState(),O),[]),L=st(()=>ea(qc(a).getState()),[]),A=rn(()=>({marshal:S,focus:k,contextId:t,canLift:M,isMovementAllowed:L,dragHandleUsageInstructionsId:p,registry:b}),[t,S,p,k,M,L,b]);return iz({contextId:t,store:j,registry:b,customSensors:i||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),C.useEffect(()=>N,[N]),Mt.createElement(Gm.Provider,{value:A},Mt.createElement(R5,{context:g0,store:j},e.children))}function az(){return Mt.useId()}function lz(e){const t=az(),n=e.dragHandleUsageInstructions||Bf.dragHandleUsageInstructions;return Mt.createElement(P5,null,i=>Mt.createElement(oz,{nonce:e.nonce,contextId:t,setCallbacks:i,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd,autoScrollerOptions:e.autoScrollerOptions},e.children))}const cw={dragging:5e3,dropAnimating:4500},cz=(e,t)=>t?mu.drop(t.duration):e?mu.snap:mu.fluid,uz=(e,t)=>{if(e)return t?ju.opacity.drop:ju.opacity.combining},dz=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function fz(e){const n=e.dimension.client,{offset:i,combineWith:r,dropping:o}=e,a=!!r,c=dz(e),d=!!o,m=d?iv.drop(i,a):iv.moveTo(i);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:cz(c,o),transform:m,opacity:uz(a,d),zIndex:d?cw.dropAnimating:cw.dragging,pointerEvents:"none"}}function mz(e){return{transform:iv.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function pz(e){return e.type==="DRAGGING"?fz(e):mz(e)}function hz(e,t,n=ji){const i=window.getComputedStyle(t),r=t.getBoundingClientRect(),o=zE(r,i),a=rm(o,n),c={client:o,tagName:t.tagName.toLowerCase(),display:i.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:c,displaceBy:d,client:o,page:a}}function gz(e){const t=y0("draggable"),{descriptor:n,registry:i,getDraggableRef:r,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}=e,d=rn(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:c}),[o,c,a]),m=st(x=>{const v=r();return v||He(),hz(n,v,x)},[n,r]),h=rn(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),p=C.useRef(h),g=C.useRef(!0);gr(()=>(i.draggable.register(p.current),()=>i.draggable.unregister(p.current)),[i.draggable]),gr(()=>{if(g.current){g.current=!1;return}const x=p.current;p.current=h,i.draggable.update(h,x)},[h,i.draggable])}var v0=Mt.createContext(null);function um(e){const t=C.useContext(e);return t||He(),t}function yz(e){e.preventDefault()}const xz=e=>{const t=C.useRef(null),n=st((T=null)=>{t.current=T},[]),i=st(()=>t.current,[]),{contextId:r,dragHandleUsageInstructionsId:o,registry:a}=um(Gm),{type:c,droppableId:d}=um(v0),m=rn(()=>({id:e.draggableId,index:e.index,type:c,droppableId:d}),[e.draggableId,e.index,c,d]),{children:h,draggableId:p,isEnabled:g,shouldRespectForcePress:x,canDragInteractiveElements:v,isClone:b,mapped:S,dropAnimationFinished:w}=e;if(!b){const T=rn(()=>({descriptor:m,registry:a,getDraggableRef:i,canDragInteractiveElements:v,shouldRespectForcePress:x,isEnabled:g}),[m,a,i,v,x,g]);gz(T)}const k=rn(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":p,"data-rfd-drag-handle-context-id":r,draggable:!1,onDragStart:yz}:null,[r,o,p,g]),j=st(T=>{S.type==="DRAGGING"&&S.dropping&&T.propertyName==="transform"&&Dm.flushSync(w)},[w,S]),N=rn(()=>{const T=pz(S),M=S.type==="DRAGGING"&&S.dropping?j:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":r,"data-rfd-draggable-id":p,style:T,onTransitionEnd:M},dragHandleProps:k}},[r,k,p,S,j,n]),z=rn(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return Mt.createElement(Mt.Fragment,null,h(N,S.snapshot,z))};var RN=(e,t)=>e===t,AN=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const vz=e=>e.combine?e.combine.draggableId:null,bz=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function _z(){const e=Ci((r,o)=>({x:r,y:o})),t=Ci((r,o,a=null,c=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:r,draggingOver:a,combineWith:c,combineTargetFor:null})),n=Ci((r,o,a,c,d=null,m=null,h=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:r,dimension:a,forceShouldAnimate:h,snapshot:t(o,c,d,m,null)}}));return(r,o)=>{if(Nu(r)){if(r.critical.draggable.id!==o.draggableId)return null;const a=r.current.client.offset,c=r.dimensions.draggables[o.draggableId],d=hr(r.impact),m=bz(r.impact),h=r.forceShouldAnimate;return n(e(a.x,a.y),r.movementMode,c,o.isClone,d,m,h)}if(r.phase==="DROP_ANIMATING"){const a=r.completed;if(a.result.draggableId!==o.draggableId)return null;const c=o.isClone,d=r.dimensions.draggables[o.draggableId],m=a.result,h=m.mode,p=AN(m),g=vz(m),v={duration:r.dropDuration,curve:d0.drop,moveTo:r.newHomeClientOffset,opacity:g?ju.opacity.drop:null,scale:g?ju.scale.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:d,dropping:v,draggingOver:p,combineWith:g,mode:h,forceShouldAnimate:null,snapshot:t(h,c,p,g,v)}}}return null}}function MN(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const kz={mapped:{type:"SECONDARY",offset:ji,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:MN(null)}};function Sz(){const e=Ci((a,c)=>({x:a,y:c})),t=Ci(MN),n=Ci((a,c=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:c,shouldAnimateDisplacement:d,snapshot:t(c)}})),i=a=>a?n(ji,a,!0):null,r=(a,c,d,m)=>{const h=d.displaced.visible[a],p=!!(m.inVirtualList&&m.effected[a]),g=Fm(d),x=g&&g.draggableId===a?c:null;if(!h){if(!p)return i(x);if(d.displaced.invisible[a])return null;const S=Fl(m.displacedBy.point),w=e(S.x,S.y);return n(w,x,!0)}if(p)return i(x);const v=d.displacedBy.point,b=e(v.x,v.y);return n(b,x,h.shouldAnimate)};return(a,c)=>{if(Nu(a))return a.critical.draggable.id===c.draggableId?null:r(c.draggableId,a.critical.draggable.id,a.impact,a.afterCritical);if(a.phase==="DROP_ANIMATING"){const d=a.completed;return d.result.draggableId===c.draggableId?null:r(c.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const wz=()=>{const e=_z(),t=Sz();return(i,r)=>e(i,r)||t(i,r)||kz},Cz={dropAnimationFinished:dN},jz=LE(wz,Cz,null,{context:g0,areStatePropsEqual:RN})(xz);function DN(e){return um(v0).isUsingCloneFor===e.draggableId&&!e.isClone?null:Mt.createElement(jz,e)}function Ez(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,i=!!e.shouldRespectForcePress;return Mt.createElement(DN,sm({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:i}))}const ON=e=>t=>e===t,Nz=ON("scroll"),Iz=ON("auto"),uw=(e,t)=>t(e.overflowX)||t(e.overflowY),Tz=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return uw(n,Nz)||uw(n,Iz)},Rz=()=>!1,LN=e=>e==null?null:e===document.body?Rz()?e:null:e===document.documentElement?null:Tz(e)?e:LN(e.parentElement);var ov=e=>({x:e.scrollLeft,y:e.scrollTop});const zN=e=>e?window.getComputedStyle(e).position==="fixed"?!0:zN(e.parentElement):!1;var Az=e=>{const t=LN(e),n=zN(e);return{closestScrollable:t,isFixedOnPage:n}},Mz=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:i,direction:r,client:o,page:a,closest:c})=>{const d=(()=>{if(!c)return null;const{scrollSize:g,client:x}=c,v=hN({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:x.paddingBox.height,width:x.paddingBox.width});return{pageMarginBox:c.page.marginBox,frameClient:x,scrollSize:g,shouldClipSubject:c.shouldClipSubject,scroll:{initial:c.scroll,current:c.scroll,max:v,diff:{value:ji,displacement:ji}}}})(),m=r==="vertical"?r0:YE,h=Sl({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:i,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:h}};const Dz=(e,t)=>{const n=PE(e);if(!t||e!==t)return n;const i=n.paddingBox.top-t.scrollTop,r=n.paddingBox.left-t.scrollLeft,o=i+t.scrollHeight,a=r+t.scrollWidth,d=e0({top:i,right:a,bottom:o,left:r},n.border);return t0({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var Oz=({ref:e,descriptor:t,env:n,windowScroll:i,direction:r,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:c})=>{const d=n.closestScrollable,m=Dz(e,d),h=rm(m,i),p=(()=>{if(!d)return null;const x=PE(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:x,page:rm(x,i),scroll:ov(d),scrollSize:v,shouldClipSubject:c}})();return Mz({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:r,client:m,page:h,closest:p})};const Lz={passive:!1},zz={passive:!0};var dw=e=>e.shouldPublishImmediately?Lz:zz;const ff=e=>e&&e.env.closestScrollable||null;function Pz(e){const t=C.useRef(null),n=um(Gm),i=y0("droppable"),{registry:r,marshal:o}=n,a=wN(e),c=rn(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=C.useRef(c),m=rn(()=>Ci((N,z)=>{t.current||He();const T={x:N,y:z};o.updateDroppableScroll(c.id,T)}),[c.id,o]),h=st(()=>{const N=t.current;return!N||!N.env.closestScrollable?ji:ov(N.env.closestScrollable)},[]),p=st(()=>{const N=h();m(N.x,N.y)},[h,m]),g=rn(()=>ku(p),[p]),x=st(()=>{const N=t.current,z=ff(N);if(N&&z||He(),N.scrollOptions.shouldPublishImmediately){p();return}g()},[g,p]),v=st((N,z)=>{t.current&&He();const T=a.current,M=T.getDroppableRef();M||He();const L=Az(M),A={ref:M,descriptor:c,env:L,scrollOptions:z};t.current=A;const O=Oz({ref:M,descriptor:c,env:L,windowScroll:N,direction:T.direction,isDropDisabled:T.isDropDisabled,isCombineEnabled:T.isCombineEnabled,shouldClipSubject:!T.ignoreContainerClipping}),I=L.closestScrollable;return I&&(I.setAttribute(sw.contextId,n.contextId),I.addEventListener("scroll",x,dw(A.scrollOptions))),O},[n.contextId,c,x,a]),b=st(()=>{const N=t.current,z=ff(N);return N&&z||He(),ov(z)},[]),S=st(()=>{const N=t.current;N||He();const z=ff(N);t.current=null,z&&(g.cancel(),z.removeAttribute(sw.contextId),z.removeEventListener("scroll",x,dw(N.scrollOptions)))},[x,g]),w=st(N=>{const z=t.current;z||He();const T=ff(z);T||He(),T.scrollTop+=N.y,T.scrollLeft+=N.x},[]),k=rn(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:b,dragStopped:S,scroll:w}),[S,v,b,w]),j=rn(()=>({uniqueId:i,descriptor:c,callbacks:k}),[k,c,i]);gr(()=>(d.current=j.descriptor,r.droppable.register(j),()=>{t.current&&S(),r.droppable.unregister(j)}),[k,c,S,j,o,r.droppable]),gr(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),gr(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function Vg(){}const fw={width:0,height:0,margin:q5},Bz=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?fw:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},$z=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const i=Bz({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:i.width,height:i.height,marginTop:i.margin.top,marginRight:i.margin.right,marginBottom:i.margin.bottom,marginLeft:i.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?mu.placeholder:null}},Hz=e=>{const t=C.useRef(null),n=st(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:i,onTransitionEnd:r,onClose:o,contextId:a}=e,[c,d]=C.useState(e.animate==="open");C.useEffect(()=>c?i!=="open"?(n(),d(!1),Vg):t.current?Vg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):Vg,[i,c,n]);const m=st(p=>{p.propertyName==="height"&&(r(),i==="close"&&o())},[i,o,r]),h=$z({isAnimatingOpenOnMount:c,animate:e.animate,placeholder:e.placeholder});return Mt.createElement(e.placeholder.tagName,{style:h,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var Fz=Mt.memo(Hz);class Vz extends Mt.PureComponent{constructor(...t){super(...t),this.state={isVisible:!!this.props.on,data:this.props.on,animate:this.props.shouldAnimate&&this.props.on?"open":"none"},this.onClose=()=>{this.state.animate==="close"&&this.setState({isVisible:!1})}}static getDerivedStateFromProps(t,n){return t.shouldAnimate?t.on?{isVisible:!0,data:t.on,animate:"open"}:n.isVisible?{isVisible:!0,data:n.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:!!t.on,data:t.on,animate:"none"}}render(){if(!this.state.isVisible)return null;const t={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(t)}}const Uz=e=>{const t=C.useContext(Gm);t||He();const{contextId:n,isMovementAllowed:i}=t,r=C.useRef(null),o=C.useRef(null),{children:a,droppableId:c,type:d,mode:m,direction:h,ignoreContainerClipping:p,isDropDisabled:g,isCombineEnabled:x,snapshot:v,useClone:b,updateViewportMaxScroll:S,getContainerForClone:w}=e,k=st(()=>r.current,[]),j=st((I=null)=>{r.current=I},[]);st(()=>o.current,[]);const N=st((I=null)=>{o.current=I},[]),z=st(()=>{i()&&S({maxScroll:yN()})},[i,S]);Pz({droppableId:c,type:d,mode:m,direction:h,isDropDisabled:g,isCombineEnabled:x,ignoreContainerClipping:p,getDroppableRef:k});const T=rn(()=>Mt.createElement(Vz,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:I,data:$,animate:G})=>Mt.createElement(Fz,{placeholder:$,onClose:I,innerRef:N,animate:G,contextId:n,onTransitionEnd:z})),[n,z,e.placeholder,e.shouldAnimatePlaceholder,N]),M=rn(()=>({innerRef:j,placeholder:T,droppableProps:{"data-rfd-droppable-id":c,"data-rfd-droppable-context-id":n}}),[n,c,T,j]),L=b?b.dragging.draggableId:null,A=rn(()=>({droppableId:c,type:d,isUsingCloneFor:L}),[c,L,d]);function O(){if(!b)return null;const{dragging:I,render:$}=b,G=Mt.createElement(DN,{draggableId:I.draggableId,index:I.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(P,F)=>$(P,F,I));return R4.createPortal(G,w())}return Mt.createElement(v0.Provider,{value:A},a(M,v),O())};function qz(){return document.body||He(),document.body}const mw={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:qz},PN=e=>{let t={...e},n;for(n in mw)e[n]===void 0&&(t={...t,[n]:mw[n]});return t},Ug=(e,t)=>e===t.droppable.type,pw=(e,t)=>t.draggables[e.draggable.id],Gz=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=Ci(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),i=Ci((o,a,c,d,m,h)=>{const p=m.descriptor.id;if(m.descriptor.droppableId===o){const v=h?{render:h,dragging:n(m.descriptor)}:null,b={isDraggingOver:c,draggingOverWith:c?p:null,draggingFromThisWith:p,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:b,useClone:v}}if(!a)return t;if(!d)return e;const x={isDraggingOver:c,draggingOverWith:p,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:x,useClone:null}});return(o,a)=>{const c=PN(a),d=c.droppableId,m=c.type,h=!c.isDropDisabled,p=c.renderClone;if(Nu(o)){const g=o.critical;if(!Ug(m,g))return t;const x=pw(g,o.dimensions),v=hr(o.impact)===d;return i(d,h,v,v,x,p)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!Ug(m,g.critical))return t;const x=pw(g.critical,o.dimensions);return i(d,h,AN(g.result)===d,hr(g.impact)===d,x,p)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!Ug(m,g.critical))return t;const x=hr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),b=g.critical.droppable.id===d;return x?v?e:t:b?e:t}return t}},Wz={updateViewportMaxScroll:iL},Yz=LE(Gz,Wz,(e,t,n)=>({...PN(n),...e,...t}),{context:g0,areStatePropsEqual:RN})(Uz),dm={urgent:{label:"Urgent",color:"var(--red)",symbol:"▲▲"},high:{label:"High",color:"var(--yellow)",symbol:"▲"},medium:{label:"Medium",color:"var(--accent)",symbol:"■"},low:{label:"Low",color:"var(--text-secondary)",symbol:"▽"}},b0={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function _0(e){const t=(e??"").trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function jl(e){const t=(e.workItemRoleName??"").trim();return t||_0(e.workItemRoleId)}function Xz(e){return(e.employeeAssignment?.name??"").trim()}function qg(e){const t=jl(e),n=Xz(e);return t&&n?`${t} · ${n}`:t||n}function ml(e){return typeof e=="string"?e.trim():""}function vo(e){if(!e)return"";const t=e;return ml(t.executionTurnId)||ml(t.runtimeTaskId)||ml(t.taskId)}function Ym(e){return ml(e?.workItemId)?ml(e?.executionTurnId)||ml(e?.runtimeTaskId):""}const Kz={todo:{label:"To do",color:"#9ca3af"},in_progress:{label:"In progress",color:"#f59e0b"},in_review:{label:"In review",color:"#fbbf24"},done:{label:"Done",color:"#34d399"},running:{label:"Running",color:"#34d399"},idle:{label:"Idle",color:"#6366f1"},blocked:{label:"Blocked",color:"#f97316"},awaiting_peer:{label:"Awaiting",color:"#fbbf24"},awaiting_manager_review:{label:"Mgr Review",color:"#fbbf24"},awaiting_human:{label:"Human Review",color:"#fbbf24"},awaiting_review:{label:"In Review",color:"#fbbf24"},failed:{label:"Failed",color:"#ef4444"},cancelled:{label:"Cancelled",color:"#9ca3af"}};function Zz({task:e,index:t,agents:n,officeMap:i,companyMode:r,isSelected:o,onClick:a,onStart:c}){const{t:d,translateMaybe:m}=Wr(),h=e.assigneeIds.map(A=>n.find(O=>O.agent_id===A)).filter(Boolean),p=e.priority?dm[e.priority]:null,g=i&&h.length>1&&new Set(h.map(A=>i[A.agent_id]).filter(Boolean)).size>1,x=e.agentStatus&&e.agentStatus!=="idle",v=e.dependencies?.length??0,b=e.phase,S=!x&&b&&b!=="ready"?Kz[b]??null:null,w=e.employeeAssignment,k=jl(e),j=e.workItemGate,N=_0(e.managerRoleId),z=(e.blockedReason??"").trim(),T=(e.reworkFeedback??"").trim(),M=Ym(e),L=e.agentStatus?m("agent.status",e.agentStatus)||b0[e.agentStatus]||e.agentStatus:"";return u.jsx(Ez,{draggableId:e.id,index:t,isDragDisabled:!!r,children:(A,O)=>u.jsxs("div",{ref:A.innerRef,...A.draggableProps,...A.dragHandleProps,className:`kanban-card${O.isDragging?" is-dragging":""}${x?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:I=>{I.button===0&&!O.isDragging&&a(e)},children:[u.jsxs("div",{className:"kanban-card-top",children:[u.jsx("span",{className:"kanban-card-id",children:e.displayId}),S&&u.jsxs("span",{className:"kanban-status-badge",style:{color:S.color},children:[u.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:S.color,marginRight:3}}),m("kanban.status",b)||S.label]}),v>0&&u.jsx("span",{className:"kanban-dep-badge",title:d("kanban.upstreamDeps",{count:v}),children:d("kanban.dep",{count:v})}),g&&u.jsx("span",{className:"kanban-cross-badge",title:d("kanban.crossOffice"),children:"⇄"}),c&&u.jsx("button",{className:"kanban-start-btn",title:d(r?"kanban.startWorkItem":"kanban.startTask"),onClick:I=>{I.stopPropagation(),c(e.id)},children:"▶"})]}),u.jsx("p",{className:"kanban-card-title",children:e.title}),(k||w?.name||j?.type||e.originChannel||e.workItemProjectionId)&&u.jsxs("div",{className:"kanban-card-meta-row",children:[k&&u.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`${d("common.role")}: ${k}`,children:k}),w?.name&&u.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`${d("common.employee")}: ${w.name}${w.category?` (${w.category})`:""}`,children:[u.jsx("span",{className:"kanban-meta-icon",children:"👤"}),w.name]}),e.workItemProjectionId&&u.jsx("span",{className:"kanban-meta-badge kanban-projection-badge",title:`${d("common.projection")}: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),j?.type&&u.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${j.type}`,title:`${d("common.gate")}: ${j.type}${j.reviewerRole?` by ${j.reviewerRole}`:""}`,children:[j.type==="review"?"✉":j.type==="approval"?"✓":"✋",j.type]}),e.originChannel&&u.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`${d("common.origin")}: ${e.originChannel}`,children:["#",e.originChannel]}),N&&u.jsx("span",{className:"kanban-meta-badge",title:`${d("common.manager")}: ${N}`,children:N})]}),(z||T||M)&&u.jsxs("div",{className:"kanban-card-tags",children:[z&&u.jsx("span",{className:"kanban-tag",children:z}),T&&u.jsx("span",{className:"kanban-tag",children:T}),M&&u.jsx("span",{className:"kanban-tag",title:d("kanban.executionTurn",{id:M}),children:d("common.runtime")})]}),x&&u.jsxs("div",{className:`kanban-card-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"kanban-runtime-label",children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:L})]}),e.tags.length>0&&u.jsx("div",{className:"kanban-card-tags",children:e.tags.slice(0,3).map(I=>u.jsx("span",{className:"kanban-tag",children:I},I))}),(p||h.length>0)&&u.jsxs("div",{className:"kanban-card-footer",children:[u.jsx("div",{className:"kanban-card-footer-left",children:p&&u.jsx("span",{className:"kanban-priority",style:{color:p.color},title:p.label,children:p.symbol})}),u.jsxs("div",{className:"kanban-assignee-group",children:[h.slice(0,3).map(I=>u.jsx("span",{className:"kanban-assignee-badge",title:I.name,children:I.name.charAt(0).toUpperCase()},I.agent_id)),h.length>3&&u.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",h.length-3]})]})]})]})})}function Qz({column:e,tasks:t,agents:n,officeMap:i,companyMode:r,selectedTaskId:o,onCardClick:a,onStartTask:c,onQuickCreate:d}){const{t:m,translateMaybe:h}=Wr(),[p,g]=C.useState(!1),[x,v]=C.useState(""),b=C.useRef(!1),S=C.useCallback(()=>{if(b.current)return;b.current=!0;const w=x.trim();w&&d&&d(w),v(""),g(!1)},[x,d]);return u.jsxs("div",{className:"kanban-column",children:[u.jsxs("div",{className:"kanban-column-header",children:[u.jsx("span",{className:"kanban-col-dot",style:{background:e.color}}),u.jsx("span",{className:"kanban-col-label",children:h("kanban.column",e.name)||e.name}),u.jsx("span",{className:"kanban-col-count",children:t.length}),d&&u.jsx("button",{className:"kanban-col-add",title:m("kanban.addTask"),onClick:()=>{b.current=!1,g(!0)},children:"+"})]}),p&&u.jsx("div",{className:"kanban-quick-add",children:u.jsx("input",{className:"kanban-quick-input",value:x,onChange:w=>v(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),S()),w.key==="Escape"&&(b.current=!0,v(""),g(!1))},onBlur:S,placeholder:m("kanban.taskTitle"),autoFocus:!0})}),u.jsx(Yz,{droppableId:e.id,isDropDisabled:!!r,children:w=>u.jsxs("div",{ref:w.innerRef,...w.droppableProps,className:"kanban-col-body",children:[t.length===0&&!p&&u.jsx("div",{className:"kanban-empty",children:u.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((k,j)=>u.jsx(Zz,{task:k,index:j,agents:n,officeMap:i,companyMode:r,isSelected:k.id===o,onClick:a,onStart:c},k.id)),w.placeholder]})})]})}function Jz({columns:e,tasksByColumn:t,agents:n,officeMap:i,store:r,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:d,onQuickCreate:m,onMoveTask:h}){const p=g=>{if(o||!g.destination)return;const x=g.source.droppableId,v=g.destination.droppableId;if(x!==v)return;const b=g.destination.index,S=g.draggableId,w=[...t[v]??[]].filter(j=>j.id!==S),k=(t[v]??[]).find(j=>j.id===S);k&&w.splice(b,0,k),w.forEach((j,N)=>{r.moveTask(j.id,v,N)})};return u.jsx(lz,{onDragEnd:p,children:u.jsx("div",{className:"kanban-board",children:e.map(g=>u.jsx(Qz,{column:g,tasks:t[g.id]??[],agents:n,officeMap:i,companyMode:o,selectedTaskId:a,onCardClick:c,onStartTask:!o&&g.name==="Todo"?d:void 0,onQuickCreate:!o&&g.name==="Todo"?m:void 0},g.id))})})}function e8({agents:e,tasks:t}){const{t:n,translateMaybe:i}=Wr(),r=C.useMemo(()=>{const a=new Map(t.map(c=>[c.id,c]));return e.map(c=>{const d=t.find(h=>h.assigneeIds.includes(c.agent_id)&&h.agentStatus&&h.agentStatus!=="idle"),m=c.current_task_id?a.get(c.current_task_id):void 0;return{agent:c,status:d?.agentStatus??c.runtime_status??"idle",currentTool:d?.currentTool??c.current_tool,taskDisplayId:d?.displayId??m?.displayId}})},[e,t]);if(e.length===0)return null;const o=r.filter(a=>a.status!=="idle").length;return u.jsxs("div",{className:"agent-status-bar",children:[u.jsx("span",{className:"agent-status-summary",children:o>0?n("agent.summary.active",{active:o,total:e.length}):n(e.length!==1?"agent.summary.countPlural":"agent.summary.count",{count:e.length})}),u.jsx("div",{className:"agent-status-chips",children:r.map(({agent:a,status:c,currentTool:d,taskDisplayId:m})=>{const h=c==="tool_active"&&d?d:i("agent.status",c)||b0[c];return u.jsxs("div",{className:`agent-status-chip status-${c}`,title:`${a.name}: ${h}${m?` (${m})`:""}`,children:[u.jsx("span",{className:"agent-status-avatar",children:a.name.charAt(0).toUpperCase()}),u.jsx("span",{className:"agent-status-name",children:a.name}),c!=="idle"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{className:"agent-status-detail",children:h})]}),m&&u.jsx("span",{className:"agent-status-task",children:m})]},a.agent_id)})})]})}function t8({boards:e,activeBoardId:t,onSelect:n}){const{translateMaybe:i}=Wr();return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:e.map(r=>u.jsxs("button",{className:`board-tab${r.id===t?" active":""}`,style:{"--board-color":r.color},onClick:()=>n(r.id),children:[u.jsx("span",{className:"board-tab-dot",style:{background:r.color}}),i("kanban.column",r.name)||r.name]},r.id))})})}function _i(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Tr(e){return Array.isArray(e)?e.filter(_i):[]}function El(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function n8(e){return _i(e)?{run_id:typeof e.run_id=="string"?e.run_id:void 0,status:typeof e.status=="string"?e.status:void 0,total_cells:typeof e.total_cells=="number"?e.total_cells:void 0,total_role_sessions:typeof e.total_role_sessions=="number"?e.total_role_sessions:void 0,total_work_items:typeof e.total_work_items=="number"?e.total_work_items:void 0,ready_count:typeof e.ready_count=="number"?e.ready_count:void 0,running_count:typeof e.running_count=="number"?e.running_count:void 0,blocked_count:typeof e.blocked_count=="number"?e.blocked_count:void 0,waiting_count:typeof e.waiting_count=="number"?e.waiting_count:void 0,done_count:typeof e.done_count=="number"?e.done_count:void 0,failed_count:typeof e.failed_count=="number"?e.failed_count:void 0}:{}}function i8(e){return{cell_id:String(e.cell_id??e.team_id??e.id??"").trim(),team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,team_id:typeof e.team_id=="string"?e.team_id:void 0,manager_role_id:String(e.manager_role_id??"").trim(),member_role_ids:El(e.member_role_ids),seat_ids:El(e.seat_ids),parent_team_id:typeof e.parent_team_id=="string"?e.parent_team_id:void 0,status:String(e.status??"idle"),is_final_decider_cell:typeof e.is_final_decider_cell=="boolean"?e.is_final_decider_cell:void 0}}function r8(e){return{role_session_id:String(e.role_session_id??e.id??"").trim(),role_id:String(e.role_id??"").trim(),employee_id:String(e.employee_id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,seat_id:typeof e.seat_id=="string"?e.seat_id:void 0,focused_work_item_id:typeof e.focused_work_item_id=="string"?e.focused_work_item_id:void 0,current_work_item_id:typeof e.current_work_item_id=="string"?e.current_work_item_id:void 0,background_work_item_ids:El(e.background_work_item_ids),manager_role_ids:El(e.manager_role_ids),manager_seat_id:typeof e.manager_seat_id=="string"?e.manager_seat_id:void 0,resident_status:typeof e.resident_status=="string"?e.resident_status:void 0,latest_notification:_i(e.latest_notification)?e.latest_notification:void 0,manager_digest:_i(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function s8(e){const t=_i(e.metadata)?e.metadata:void 0,n=_i(e.adaptive)?e.adaptive:t&&_i(t.adaptive)?t.adaptive:void 0;return{work_item_id:String(e.work_item_id??e.id??"").trim(),role_id:String(e.role_id??"").trim(),cell_id:String(e.cell_id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,team_instance_id:typeof e.team_instance_id=="string"?e.team_instance_id:void 0,seat_id:typeof e.seat_id=="string"?e.seat_id:void 0,title:String(e.title??""),kind:String(e.kind??"execute"),phase:String(e.phase??"ready"),kanban_column:String(e.kanban_column??"todo"),batch_id:typeof e.batch_id=="string"?e.batch_id:void 0,batch_index:typeof e.batch_index=="number"?e.batch_index:void 0,deliverable_summary:typeof e.deliverable_summary=="string"?e.deliverable_summary:void 0,blocked_reason:typeof e.blocked_reason=="string"?e.blocked_reason:void 0,handoff_status:typeof e.handoff_status=="string"?e.handoff_status:void 0,parent_work_item_id:typeof e.parent_work_item_id=="string"?e.parent_work_item_id:void 0,work_item_projection_id:typeof e.work_item_projection_id=="string"?e.work_item_projection_id:void 0,metadata:t,adaptive:n}}function o8(e){if(_i(e))return{run_id:typeof e.run_id=="string"?e.run_id:void 0,project_id:typeof e.project_id=="string"?e.project_id:void 0,session_id:typeof e.session_id=="string"?e.session_id:void 0,status:typeof e.status=="string"?e.status:void 0,lifecycle_status:typeof e.lifecycle_status=="string"?e.lifecycle_status:void 0,company_profile:typeof e.company_profile=="string"?e.company_profile:void 0,execution_model:typeof e.execution_model=="string"?e.execution_model:void 0,current_revision:typeof e.current_revision=="number"?e.current_revision:void 0,latest_deliverable_summary:typeof e.latest_deliverable_summary=="string"?e.latest_deliverable_summary:void 0,recovery_pointer:_i(e.recovery_pointer)?e.recovery_pointer:void 0}}function a8(e){if(_i(e))return{project_id:typeof e.project_id=="string"?e.project_id:void 0,run_id:typeof e.run_id=="string"?e.run_id:void 0,latest_deliverable_summary:typeof e.latest_deliverable_summary=="string"?e.latest_deliverable_summary:void 0,architecture_decisions:Tr(e.architecture_decisions),completed_work_items:Tr(e.completed_work_items),open_issues:El(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:Tr(e.artifact_index),handoff_summaries:Tr(e.handoff_summaries),last_failure_summary:typeof e.last_failure_summary=="string"?e.last_failure_summary:void 0,project_memory_excerpt:typeof e.project_memory_excerpt=="string"?e.project_memory_excerpt:void 0,session_memory_excerpt:typeof e.session_memory_excerpt=="string"?e.session_memory_excerpt:void 0}}function l8(e){return{seat_id:String(e.seat_id??e.id??"").trim(),team_id:typeof e.team_id=="string"?e.team_id:void 0,role_id:typeof e.role_id=="string"?e.role_id:void 0,employee_id:typeof e.employee_id=="string"?e.employee_id:void 0,role_session_id:typeof e.role_session_id=="string"?e.role_session_id:void 0,resident_status:typeof e.resident_status=="string"?e.resident_status:void 0,current_work_item:_i(e.current_work_item)?e.current_work_item:void 0,latest_notification:_i(e.latest_notification)?e.latest_notification:void 0,manager_digest:_i(e.manager_digest)?e.manager_digest:void 0}}function c8(e){return{link_id:typeof e.link_id=="string"?e.link_id:void 0,session_id:typeof e.session_id=="string"?e.session_id:void 0,linked_session_id:typeof e.linked_session_id=="string"?e.linked_session_id:void 0,link_type:typeof e.link_type=="string"?e.link_type:void 0,metadata:_i(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function BN(e){const t=_i(e)?e:{},n=Tr(t.runtime_teams).map(i8),i=Tr(t.runtime_seats).map(r8),r=Tr(t.work_items).map(s8);return{roles:Array.isArray(t.roles)?t.roles:[],employees:Array.isArray(t.employees)?t.employees:[],company_profile:typeof t.company_profile=="string"?t.company_profile:"",organization_id:typeof t.organization_id=="string"?t.organization_id:void 0,organization_name:typeof t.organization_name=="string"?t.organization_name:void 0,organization_config_file:typeof t.organization_config_file=="string"?t.organization_config_file:void 0,final_decider_role_id:typeof t.final_decider_role_id=="string"?t.final_decider_role_id:null,top_level_role_ids:El(t.top_level_role_ids),runtime_teams:n,runtime_seats:i,work_items:r,frontier:n8(t.frontier),project_run:o8(t.project_run),project_dossier:a8(t.project_dossier),seat_digests:Tr(t.seat_digests).map(l8),revision_links:Tr(t.revision_links).map(c8),project_recovery:_i(t.project_recovery)?t.project_recovery:void 0,channels:Array.isArray(t.channels)?t.channels:[],connectors:Array.isArray(t.connectors)?t.connectors:[],org_version:typeof t.org_version=="number"?t.org_version:0,runtime_topology_version:typeof t.runtime_topology_version=="number"?t.runtime_topology_version:0,installed_packages:Array.isArray(t.installed_packages)?t.installed_packages:[],runtime_policy:_i(t.runtime_policy)?t.runtime_policy:void 0,runtime_topology_preview:_i(t.runtime_topology_preview)?t.runtime_topology_preview:void 0,work_item_runtime_preview:_i(t.work_item_runtime_preview)?t.work_item_runtime_preview:void 0,external_team_bindings:Tr(t.external_team_bindings),external_execution_units:Tr(t.external_execution_units),external_agent_profiles:Tr(t.external_agent_profiles)}}function Xm(e){const t=BN(e);return{runtimeTeams:t.runtime_teams??[],runtimeSeats:t.runtime_seats??[],workItems:t.work_items??[],frontier:t.frontier??{},projectRun:t.project_run,projectDossier:t.project_dossier,seatDigests:t.seat_digests??[],revisionLinks:t.revision_links??[],projectRecovery:t.project_recovery}}function u8({state:e,message:t,onRefresh:n,onReadMessage:i,pollIntervalMs:r=3e4,embedded:o=!1}){const[a,c]=C.useState(null),d=C.useRef(n);d.current=n,C.useEffect(()=>{if(!r)return;d.current();const g=window.setInterval(()=>d.current(),r);return()=>window.clearInterval(g)},[r]);const m=C.useMemo(()=>e?.roles?e.roles.reduce((g,x)=>g+x.unread_count,0):0,[e?.roles]),h=g=>{c(g),i(g)},p=o?{fontSize:13,color:"var(--text)"}:{border:"1px solid var(--border, #333)",borderRadius:6,background:"var(--bg-primary, #1e1e1e)",fontSize:13};return u.jsxs("div",{className:"comms-panel",style:p,children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid var(--border, #333)"},children:[u.jsx("span",{style:{fontWeight:600,fontSize:13,flex:1},children:"Agent Communications"}),m>0&&u.jsxs(Iu,{color:"var(--accent, #3498db)",children:[m," unread"]}),u.jsx("button",{onClick:n,style:{background:"var(--surface, #2a2a2a)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4},children:"Refresh"})]}),e?e.available?e.empty?u.jsx($f,{children:"No communications yet. They will appear once agents start collaborating."}):u.jsx(d8,{state:e,selectedPath:a,onSelectMessage:h}):u.jsxs($f,{children:["Not available",e.reason?`: ${e.reason}`:""]}):u.jsx($f,{children:"Loading communications..."}),t&&u.jsx(p8,{message:t,onClose:()=>c(null)})]})}function d8({state:e,selectedPath:t,onSelectMessage:n}){const i=(e.roles?.length??0)>0,r=(e.meetings?.length??0)>0,o=(e.recent_failures?.length??0)>0;return u.jsxs("div",{style:{padding:"4px 0"},children:[o&&u.jsx(Gg,{title:"Failures",children:(e.recent_failures||[]).map((a,c)=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,background:"color-mix(in srgb, var(--red, #e74c3c) 6%, transparent)",borderLeft:"3px solid var(--red, #e74c3c)"},children:[u.jsxs("div",{style:{fontWeight:600,fontSize:12},children:[a.operation," · ",a.from_role," → ",a.to_role]}),u.jsx("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:2},children:a.reason})]},`${a.recorded_at||"f"}-${c}`))}),i&&u.jsx(Gg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>u.jsx(f8,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),r&&u.jsx(Gg,{title:"Meetings",children:(e.meetings||[]).map(a=>u.jsxs("div",{style:{padding:"6px 12px",marginBottom:4,borderLeft:`3px solid ${a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)"}`},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx(Iu,{color:a.status==="open"?"var(--accent, #3498db)":"var(--text-dim, #555)",children:a.status}),u.jsx("strong",{style:{fontSize:12,flex:1},children:a.topic}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #888)"},children:[a.entry_count," entries"]})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginTop:3},children:["by ",a.organizer," · ",a.participants.join(", ")]}),a.decision&&u.jsxs("div",{style:{fontSize:11,marginTop:3,color:"var(--green, #27ae60)"},children:["Decision: ",a.decision]})]},a.meeting_id))}),!i&&!r&&!o&&u.jsx($f,{children:"No communication activity yet."})]})}function f8({role:e,selectedPath:t,onSelectMessage:n}){const[i,r]=C.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,c]=C.useState(e.unread_count>0?"unread":"history"),d=C.useMemo(()=>{switch(a){case"unread":return e.recent_unread||[];case"history":return e.recent_seen||[];case"sent":return e.recent_outbox||[];default:return[]}},[a,e.recent_unread,e.recent_seen,e.recent_outbox]),m=e.role_id.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase());return u.jsxs("div",{style:{marginBottom:2},children:[u.jsxs("div",{onClick:()=>r(h=>!h),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:i?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[u.jsx("span",{style:{fontSize:10,width:10},children:i?"▼":"▶"}),u.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&u.jsx(Iu,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&u.jsxs(Iu,{color:"var(--accent, #3498db)",children:[e.unread_count," new"]}),u.jsxs("span",{style:{fontSize:11,color:"var(--text-dim, #666)"},children:[e.seen_count," read · ",e.outbox_count," sent"]})]}),i&&o&&u.jsxs("div",{style:{paddingLeft:12},children:[u.jsxs("div",{style:{display:"flex",gap:2,padding:"4px 0",borderBottom:"1px solid var(--border, #333)",marginBottom:4},children:[u.jsxs(Wg,{active:a==="unread",onClick:()=>c("unread"),children:["Unread (",e.unread_count,")"]}),u.jsxs(Wg,{active:a==="history",onClick:()=>c("history"),children:["Read (",e.recent_seen?.length??0,")"]}),u.jsxs(Wg,{active:a==="sent",onClick:()=>c("sent"),children:["Sent (",e.recent_outbox?.length??0,")"]})]}),d.length===0?u.jsx("div",{style:{padding:"8px 0",fontSize:11,color:"var(--text-dim, #666)"},children:"No messages."}):u.jsx("div",{style:{maxHeight:280,overflow:"auto"},children:d.map(h=>u.jsx(m8,{message:h,selected:h.path===t,onClick:()=>n(h.path)},h.message_id))})]})]})}function m8({message:e,selected:t,onClick:n}){const r=e.bucket==="sent"?`To: ${e.to||"?"}`:`From: ${e.from}`;return u.jsx("div",{onClick:n,style:{padding:"5px 8px",marginBottom:2,background:t?"var(--accent-soft, #2c4a6b)":"transparent",cursor:"pointer",borderRadius:4,borderLeft:e.blocking?"3px solid var(--red, #e74c3c)":"3px solid transparent",transition:"background 0.1s"},children:u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[u.jsxs("span",{style:{fontSize:11,color:"var(--text-secondary, #aaa)",minWidth:0,flex:1},children:[u.jsx("strong",{children:r})," ",u.jsx("span",{style:{color:"var(--text, #ddd)"},children:e.subject})]}),e.blocking&&u.jsx("span",{style:{fontSize:9,color:"var(--red, #e74c3c)",fontWeight:700},children:"BLK"}),u.jsx("span",{style:{fontSize:10,color:"var(--text-dim, #666)",flexShrink:0},children:e.sent_at?.slice(11,19)||""})]})})}function p8({message:e,onClose:t}){return u.jsxs("div",{style:{margin:"8px 12px 12px",padding:12,border:"1px solid var(--border, #444)",borderRadius:6,background:"var(--bg-secondary, #262626)",maxHeight:400,overflow:"auto"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[u.jsx("strong",{style:{flex:1,fontSize:13},children:e.header.subject||"(no subject)"}),u.jsx("button",{onClick:t,style:{background:"var(--surface, #333)",border:"1px solid var(--border, #444)",color:"var(--text-secondary, #aaa)",fontSize:11,padding:"2px 10px",cursor:"pointer",borderRadius:4},children:"Close"})]}),u.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary, #999)",marginBottom:8,display:"flex",gap:8,flexWrap:"wrap"},children:[u.jsxs("span",{children:["From: ",u.jsx("strong",{children:e.header.from||"?"})]}),u.jsxs("span",{children:["To: ",u.jsx("strong",{children:e.header.to||"?"})]}),u.jsx("span",{children:e.header.sent_at||""}),e.header.blocking&&u.jsx(Iu,{color:"var(--red, #e74c3c)",children:"BLOCKING"})]}),u.jsx("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text, #ddd)",lineHeight:1.5},children:e.body})]})}function Gg({title:e,children:t}){return u.jsxs("div",{style:{marginBottom:4},children:[u.jsx("div",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:.6,fontWeight:700,color:"var(--text-dim, #777)",padding:"8px 12px 4px"},children:e}),t]})}function Iu({color:e,children:t}){return u.jsx("span",{style:{background:e,color:"white",borderRadius:10,padding:"1px 7px",fontSize:10,fontWeight:600,whiteSpace:"nowrap"},children:t})}function Wg({active:e,onClick:t,children:n}){return u.jsx("button",{onClick:t,style:{background:e?"var(--accent-soft, #2c4a6b)":"transparent",border:"none",color:e?"var(--text, #ddd)":"var(--text-secondary, #999)",fontSize:11,padding:"3px 10px",cursor:"pointer",borderRadius:4,fontWeight:e?600:400},children:n})}function $f({children:e}){return u.jsx("div",{style:{padding:"20px 16px",fontSize:12,color:"var(--text-secondary, #888)",textAlign:"center"},children:e})}function Qa(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function Ja(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function Ir(e,t="Pending"){return String(e??"").trim()||t}function Gc(e,t="Team"){const n=String(e??"").trim();return n?n.replace(/[_-]+/g," ").replace(/\b\w/g,i=>i.toUpperCase()):t}function hw(e){return Ir(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function h8({orgInfoData:e,commsState:t,onStopRun:n,embedded:i=!1}){const r=C.useMemo(()=>Xm(e??null),[e]),o=r.projectRun,a=r.seatDigests,c=a.reduce((b,S)=>{const w=Qa(S.manager_digest);return b+Ja(w.pending_decisions).length},0),d=a.reduce((b,S)=>b+Ja(Qa(S.manager_digest).actionable_chat).length,0),m=a.reduce((b,S)=>b+Ja(Qa(S.manager_digest).protocol_backlog).length,0),h=a.reduce((b,S)=>b+Ja(Qa(S.manager_digest).notification_backlog).length,0),p=d+m+h,g=[{label:"Actionable",value:d},{label:"Protocol",value:m},{label:"Notifications",value:h},{label:"Meetings",value:t?.meetings?.length??0},{label:"Failures",value:t?.recent_failures?.length??0}],x=C.useMemo(()=>{const b=new Map;for(const k of a){const j=String(k.seat_id??"").trim();j&&b.set(j,Qa(k.manager_digest))}const S=r.runtimeTeams.map(k=>{const j=[String(k.cell_id??"").trim(),String(k.team_id??"").trim(),String(k.team_instance_id??"").trim()].filter(Boolean),N=r.runtimeSeats.filter(M=>j.includes(String(M.team_id??"").trim())||j.includes(String(M.team_instance_id??"").trim())),z=N.reduce((M,L)=>{const A=b.get(String(L.seat_id??"").trim())??{};return M+Ja(A.pending_decisions).length},0),T=N.map(M=>Ir(M.latest_notification?.subject??M.latest_notification?.summary,"")).find(Boolean);return{key:String(k.cell_id??k.team_id??k.team_instance_id??k.manager_role_id??"team"),label:Gc(k.team_id??k.cell_id,"Team"),managerLabel:Gc(k.manager_role_id,"Unassigned manager"),status:Ir(k.status,"idle"),seatCount:N.length||k.member_role_ids.length,pendingApprovals:z,latestAlert:T,seats:N.map(M=>({key:String(M.seat_id??M.role_session_id??M.role_id),roleLabel:Gc(M.role_id,"Seat"),seatLabel:Ir(M.seat_id??M.role_session_id,"Seat"),status:Ir(M.resident_status??M.status,"idle")}))}}),w=new Set(S.flatMap(k=>k.seats.map(j=>j.key)));for(const k of r.runtimeSeats){const j=String(k.seat_id??k.role_session_id??k.role_id).trim();if(!j||w.has(j))continue;const N=String(k.team_id??k.team_instance_id??"unassigned").trim()||"unassigned";let z=S.find(M=>M.key===N);z||(z={key:N,label:Gc(N,"Unassigned Team"),managerLabel:"Unassigned manager",status:Ir(k.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},S.push(z));const T=b.get(String(k.seat_id??"").trim())??{};z.pendingApprovals+=Ja(T.pending_decisions).length,z.latestAlert||(z.latestAlert=Ir(k.latest_notification?.subject??k.latest_notification?.summary,"")),z.seats.push({key:j,roleLabel:Gc(k.role_id,"Seat"),seatLabel:Ir(k.seat_id??k.role_session_id,"Seat"),status:Ir(k.resident_status??k.status,"idle")}),z.seatCount=z.seats.length}return S.sort((k,j)=>k.label.localeCompare(j.label))},[r.runtimeTeams,r.runtimeSeats,a]),v=x.map(b=>b.latestAlert).find(Boolean)||"No current alerts";return!o?.run_id&&x.length===0?null:u.jsxs("section",{className:`project-cockpit${i?" embedded":""}`,"aria-label":"Team",children:[u.jsxs("div",{className:"project-cockpit-overview",children:[u.jsxs("div",{className:"project-cockpit-title",children:[u.jsx("span",{className:"project-cockpit-label",children:"Team"}),u.jsx("strong",{children:Ir(o?.run_id,"Runtime Team Status")}),n&&u.jsx("button",{className:"project-cockpit-stop-btn",onClick:n,title:"Stop this run",children:"Stop"})]}),u.jsxs("div",{className:"project-cockpit-metrics",children:[u.jsx("span",{children:Ir(o?.lifecycle_status,"active")}),u.jsxs("span",{children:["Teams ",x.length]}),u.jsxs("span",{children:["Seats ",r.runtimeSeats.length]}),u.jsxs("span",{children:["Approvals ",c]}),u.jsxs("span",{children:["Unread ",p]}),u.jsxs("span",{children:["Run state ",Ir(Qa(o?.recovery_pointer).status,"clean")]})]})]}),u.jsxs("div",{className:"project-cockpit-grid project-cockpit-grid--team",children:[u.jsxs("section",{className:"project-cockpit-panel",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Communication"}),u.jsx("span",{children:g.length})]}),u.jsxs("div",{className:"project-cockpit-summary",children:[g.map(b=>u.jsxs("span",{children:[b.label," ",b.value]},b.label)),u.jsx("div",{className:"project-cockpit-inline-text",children:v})]})]}),u.jsxs("section",{className:"project-cockpit-panel project-cockpit-panel--wide",children:[u.jsxs("header",{children:[u.jsx("h3",{children:"Teams"}),u.jsx("span",{children:x.length})]}),u.jsx("div",{className:"project-cockpit-team-grid",children:x.map(b=>u.jsxs("article",{className:"project-cockpit-team-card",children:[u.jsxs("div",{className:"project-cockpit-team-head",children:[u.jsxs("div",{className:"project-cockpit-team-title",children:[u.jsx("strong",{children:b.label}),u.jsx("span",{children:b.managerLabel})]}),u.jsx("span",{className:`project-cockpit-team-status status-${hw(b.status)}`,children:b.status})]}),u.jsxs("div",{className:"project-cockpit-team-meta",children:[u.jsxs("span",{children:["Seats ",b.seatCount]}),u.jsxs("span",{children:["Approvals ",b.pendingApprovals]}),b.latestAlert&&u.jsx("span",{children:b.latestAlert})]}),u.jsx("div",{className:"project-cockpit-seat-list",children:b.seats.length>0?b.seats.map(S=>u.jsxs("div",{className:"project-cockpit-seat-row",children:[u.jsx("span",{className:"project-cockpit-seat-role",children:S.roleLabel}),u.jsx("span",{className:"project-cockpit-seat-id",children:S.seatLabel}),u.jsx("span",{className:`project-cockpit-seat-status status-${hw(S.status)}`,children:S.status})]},S.key)):u.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},b.key))})]})]})]})}const Os={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode",jiuwen:"Jiuwen",jiuwenswarm:"JiuwenSwarm Team"},Km=["codex","jiuwen","jiuwenswarm","native","claude_code","cursor","opencode"],$N=["native","codex","jiuwen","jiuwenswarm","claude_code","cursor","opencode"];function la(e){const t=String(e??"").trim().toLowerCase().replaceAll("-","_");return Os[t]??String(e??"").trim()}function g8(e){const t=Date.now()-e;return t<6e4?"just now":t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}const gw={running:{color:"var(--green)",label:"Running"},idle:{color:"var(--accent)",label:"Idle"},done:{color:"var(--green)",label:"Done"},pending:{color:"var(--text-secondary)",label:"Pending"},failed:{color:"var(--red)",label:"Failed"},cancelled:{color:"var(--text-secondary)",label:"Cancelled"},blocked:{color:"var(--yellow)",label:"Blocked"},awaiting_human:{color:"var(--yellow)",label:"Waiting for review"},awaiting_manager_review:{color:"var(--yellow)",label:"Manager review"},awaiting_review:{color:"var(--yellow)",label:"Waiting for review"},awaiting_peer:{color:"var(--yellow)",label:"Waiting for peer"}},y8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function x8({session:e,agents:t,onTitleChange:n,onViewOnBoard:i,onStop:r,onComplete:o,onResume:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(e.title),p=C.useRef(null);C.useEffect(()=>{c||h(e.title)},[e.title,c]);const g=C.useCallback(()=>{const q=m.trim();q&&q!==e.title?n(e.taskId,q):h(e.title),d(!1)},[m,e.title,e.taskId,n]),x=C.useCallback(()=>{h(e.title),d(!0),setTimeout(()=>p.current?.select(),0)},[e.title]),v=e.assigneeIds.map(q=>t.find(Q=>Q.agent_id===q)).filter(Boolean),b=String(e.execMode??"").trim().toLowerCase(),S=b==="company"||b==="org"||b==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,w=v.length>0&&!S,k=e.runtimeControlState??(e.status==="running"?"running":"idle"),j=k==="suspending",N=k==="resuming",z=k==="suspended",T=e.status==="running"&&!j&&!z&&!N,M=y8.has(e.status),L=(e.canStop??e.status==="running")&&!j&&!z&&!N,A=(e.canResume??(z||!M&&!T&&e.status!=="done"&&e.status!=="pending"))&&!j&&!N,O=gw[e.status]??gw.pending,I=j?"Stopping":z?"Suspended":N?"Resuming":O.label,$=jl(e),G=Bm(e),P=ls(e),F=e.displayTool||e.currentTool,[V,Y]=C.useState(F||void 0);C.useEffect(()=>{if(!T){Y(void 0);return}F&&Y(F)},[T,F]);const U=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,Z=U,W=j?"var(--yellow)":z?"var(--text-secondary)":G==="tool_active"?"var(--green)":G==="reflecting"?"var(--yellow)":O.color;return u.jsxs("div",{className:"task-header-shell",children:[u.jsxs("div",{className:"task-header-bar",children:[u.jsxs("div",{className:"task-header-left",children:[c?u.jsx("input",{ref:p,className:"task-title-input",value:m,onChange:q=>h(q.target.value),onBlur:g,onKeyDown:q=>{q.key==="Enter"&&g(),q.key==="Escape"&&(h(e.title),d(!1))}}):u.jsx("span",{className:"task-title",onClick:x,title:"Click to edit",children:e.title}),u.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":P?"true":"false",children:[u.jsx("span",{className:"task-status-dot",style:{background:W}}),I]}),T&&V&&u.jsxs("span",{className:"task-tool-pill",children:[u.jsx(Om,{}),u.jsx("code",{children:V}),e.currentTool&&typeof e.toolElapsedMs=="number"&&e.toolElapsedMs>0&&u.jsxs("span",{children:[e.toolElapsedMs,"ms"]})]}),e.lastToolSummary&&u.jsx("span",{className:"task-projection-pill",title:e.lastToolSummary,children:e.lastToolSummary.slice(0,48)}),$&&u.jsx("span",{className:"task-role-pill",title:`Role: ${$}`,children:$}),e.employeeAssignment?.name&&u.jsxs("span",{className:"task-employee-pill",title:`Employee: ${e.employeeAssignment.name}${e.employeeAssignment.category?` (${e.employeeAssignment.category})`:""}`,children:[u.jsx("span",{className:"task-employee-icon",children:"👤"}),e.employeeAssignment.name]}),e.selectedExecutionAgent&&u.jsxs("span",{className:"task-agent-pill",title:`Execution Agent: ${la(e.selectedExecutionAgent)}`,children:[u.jsx("span",{className:"task-agent-icon",children:"⚙"}),la(e.selectedExecutionAgent)]})]}),u.jsxs("div",{className:"task-header-right",children:[w&&u.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(q=>u.jsx("span",{className:"task-header-avatar",title:q.name,children:q.name.charAt(0).toUpperCase()},q.agent_id))}),u.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:g8(e.createdAt)}),(L||j)&&r&&u.jsxs("button",{className:"task-stop-btn",onClick:r,title:"Stop task",disabled:!L,children:[u.jsx(bE,{}),u.jsx("span",{children:j?"Stopping...":"Stop"})]}),A&&a&&e.status!=="done"&&u.jsx("button",{className:"task-resume-btn",onClick:a,title:"Resume prior runtime (re-awaken original team, no new plan)",children:u.jsx("span",{children:"Continue"})}),o&&u.jsxs("button",{className:"task-done-btn",onClick:o,title:"Mark task as done",children:[u.jsx(Hl,{}),u.jsx("span",{children:"Done"})]}),i&&u.jsx("button",{className:"task-board-btn",onClick:i,title:"View on Board",children:u.jsx(K4,{})})]})]}),Z&&u.jsx("div",{className:"task-header-metrics",children:U&&u.jsxs("div",{className:"task-runtime-metric task-runtime-metric-approval",title:"Pending approvals",children:[u.jsx("span",{className:"task-runtime-metric-label",children:"Approvals"}),u.jsx("span",{className:"task-runtime-metric-value",children:e.pendingPermissionCount})]})})]})}function ts(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function HN(e){const t=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;if(t)return`${e.type}:${ts(e.turnId)}:${ts(t)}`;if(e.type==="thinking"||e.type==="assistant")return`${e.type}:${ts(e.turnId)||ts(e.executionMode)||"stream"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.type==="tool_call")return`tool:${ts(e.turnId)||"turnless"}:${ts(e.summary)||"tool"}:${Number.isFinite(e.timestamp)?e.timestamp:""}`;if(e.turnId&&typeof e.seq=="number")return`${e.type}:${ts(e.turnId)}:seq:${e.seq}`;const n=[e.type,ts(e.turnId)];return typeof e.seq=="number"&&Number.isFinite(e.seq)&&n.push(`seq-${e.seq}`),n.push(Number.isFinite(e.timestamp)?e.timestamp:"",ts(e.summary),ts(e.detail)),n.join(":")}const v8=new Set(["done","failed","cancelled"]),yw=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),fm={thinking:{icon:u.jsx(U4,{}),color:"var(--accent)",label:"Thinking"},assistant:{icon:u.jsx(bl,{}),color:"var(--accent)",label:"Reply"},tool_call:{icon:u.jsx(Om,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:u.jsx(_u,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:u.jsx(kE,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:u.jsx(Z4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:u.jsx(yS,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:u.jsx(zm,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:u.jsx(Q4,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:u.jsx(J4,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:u.jsx(Fc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:u.jsx(Fc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:u.jsx(Fc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:u.jsx(Fc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:u.jsx(yS,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:u.jsx(Kf,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:u.jsx(Fc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:u.jsx(_u,{}),color:"var(--accent)",label:"Verification"}},Yg=5;function Wc(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"just now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);return n<60?`${n}m ago`:`${Math.floor(n/60)}h ago`}function Hf(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return Hf(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(Hf):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Hf(n)])):e}function b8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(Hf(JSON.parse(t)),null,2)}catch{return e}}function Nl({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:i,lastToolSummary:r,sessionStatus:o,expandedByDefault:a}){const[c,d]=C.useState(!!a),m=!!o&&v8.has(o),h=!m&&t==="reflecting",p=!m&&t==="tool_active",g=h||p,x=C.useMemo(()=>e,[e]),v=C.useMemo(()=>c||x.length<=Yg?x:x.slice(-Yg),[x,c]),b=x.length-v.length;return x.length===0&&!g&&!m?null:u.jsxs("div",{className:"ptl-block",children:[g&&u.jsxs("div",{className:`ptl-live ${p?"ptl-live-tool":"ptl-live-think"}`,children:[u.jsx("span",{className:"ptl-live-icon",children:p?u.jsx(Om,{}):u.jsx(bl,{})}),u.jsx("span",{className:"ptl-live-text",children:p?"Running":"Thinking"}),p&&n&&u.jsx("code",{className:"ptl-live-tool-name",children:n}),p&&typeof i=="number"&&i>0&&u.jsx("span",{className:"ptl-live-elapsed",children:i<1e3?`${i}ms`:`${(i/1e3).toFixed(1)}s`}),u.jsx("span",{className:"ptl-live-shimmer"})]}),r&&!p&&u.jsxs("div",{className:"ptl-last-tool-summary",children:[u.jsx("span",{className:"ptl-last-tool-label",children:"Last tool result:"}),u.jsx("span",{className:"ptl-last-tool-text",children:r})]}),b>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(as,{}),u.jsxs("span",{children:[b," earlier step",b>1?"s":""]})]}),v.length>0&&u.jsx("div",{className:"ptl-timeline",children:v.map((S,w)=>{const k=w===v.length-1,j=fm[S.type]||fm.status_change;return u.jsxs("div",{className:`ptl-entry${k?" ptl-entry-last":""}`,children:[u.jsxs("div",{className:"ptl-connector",children:[u.jsx("div",{className:"ptl-dot",style:{color:j.color},children:j.icon}),!k&&u.jsx("div",{className:"ptl-line"})]}),u.jsx("div",{className:"ptl-content",children:u.jsx(FN,{entry:S})})]},HN(S))})}),m&&!g&&u.jsxs("div",{className:`ptl-completion ptl-completion-${o}`,children:[u.jsx("span",{className:"ptl-completion-icon",children:o==="done"?"✓":o==="failed"?"✗":"—"}),u.jsx("span",{className:"ptl-completion-text",children:o==="done"?"Completed":o==="failed"?"Failed":"Cancelled"})]}),c&&x.length>Yg&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[u.jsx(as,{down:!0}),u.jsx("span",{children:"Show less"})]}),!c&&b>0&&u.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[u.jsx(as,{}),u.jsxs("span",{children:["Show more (",b," earlier step",b>1?"s":"",")"]})]})]})}const FN=Mt.memo(function({entry:t}){const[n,i]=C.useState(!1),r=fm[t.type]||fm.status_change,o=t.type==="tool_call"&&!!t.detail;if(t.type==="tool_call")return u.jsxs("div",{className:`ptl-tool-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${o?" clickable":""}`,onClick:()=>{o&&i(a=>!a)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Wc(t.timestamp)}),o&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(as,{down:n})})]}),n&&t.detail&&u.jsx("pre",{className:"ptl-tool-card-detail",children:b8(t.detail)})]});if(t.type==="autonomy"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-autonomy-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("code",{className:"ptl-tool-badge",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Wc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(as,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking"||t.type==="assistant")return u.jsxs("div",{className:"ptl-tool-card",children:[u.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>i(a=>!a),type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Wc(t.timestamp)}),u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(as,{down:n})})]}),n&&u.jsx("div",{className:"ptl-tool-card-detail ptl-thinking-detail",children:t.detail||t.summary})]});if(t.type==="verification"){const a=!!t.detail;return u.jsxs("div",{className:`ptl-tool-card ptl-verification-card${n?" expanded":""}`,children:[u.jsxs("button",{className:`ptl-row ptl-tool-toggle${a?" clickable":""}`,onClick:()=>{a&&i(c=>!c)},type:"button",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),u.jsx("span",{className:"ptl-time",children:Wc(t.timestamp)}),a&&u.jsx("span",{className:"ptl-tool-chevron",children:u.jsx(as,{down:n})})]}),n&&t.detail&&u.jsx("div",{className:"ptl-tool-card-detail ptl-verification-detail",children:t.detail})]})}return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"ptl-row",children:[u.jsx("span",{className:"ptl-label",style:{color:r.color},children:r.label}),u.jsx("span",{className:"ptl-summary",children:t.summary}),u.jsx("span",{className:"ptl-time",children:Wc(t.timestamp)})]}),t.detail&&u.jsx("div",{className:"ptl-detail",children:t.detail})]})});function _8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const k8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,S8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,w8={};function xw(e,t){return(w8.jsx?S8:k8).test(e)}const C8=/[ \t\n\f\r]/g;function j8(e){return typeof e=="object"?e.type==="text"?vw(e.value):!1:vw(e)}function vw(e){return e.replace(C8,"")===""}class qu{constructor(t,n,i){this.normal=n,this.property=t,i&&(this.space=i)}}qu.prototype.normal={};qu.prototype.property={};qu.prototype.space=void 0;function VN(e,t){const n={},i={};for(const r of e)Object.assign(n,r.property),Object.assign(i,r.normal);return new qu(n,i,t)}function av(e){return e.toLowerCase()}class er{constructor(t,n){this.attribute=n,this.property=t}}er.prototype.attribute="";er.prototype.booleanish=!1;er.prototype.boolean=!1;er.prototype.commaOrSpaceSeparated=!1;er.prototype.commaSeparated=!1;er.prototype.defined=!1;er.prototype.mustUseProperty=!1;er.prototype.number=!1;er.prototype.overloadedBoolean=!1;er.prototype.property="";er.prototype.spaceSeparated=!1;er.prototype.space=void 0;let E8=0;const zt=ha(),di=ha(),lv=ha(),ze=ha(),Tn=ha(),pl=ha(),dr=ha();function ha(){return 2**++E8}const cv=Object.freeze(Object.defineProperty({__proto__:null,boolean:zt,booleanish:di,commaOrSpaceSeparated:dr,commaSeparated:pl,number:ze,overloadedBoolean:lv,spaceSeparated:Tn},Symbol.toStringTag,{value:"Module"})),Xg=Object.keys(cv);class k0 extends er{constructor(t,n,i,r){let o=-1;if(super(t,n),bw(this,"space",r),typeof i=="number")for(;++o4&&n.slice(0,4)==="data"&&A8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(_w,O8);i="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!_w.test(o)){let a=o.replace(R8,D8);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}r=k0}return new r(i,t)}function D8(e){return"-"+e.toLowerCase()}function O8(e){return e.charAt(1).toUpperCase()}const L8=VN([UN,N8,WN,YN,XN],"html"),S0=VN([UN,I8,WN,YN,XN],"svg");function z8(e){return e.join(" ").trim()}var el={},Kg,kw;function P8(){if(kw)return Kg;kw=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,c=/^\s+|\s+$/g,d=` -`,m="/",h="*",p="",g="comment",x="declaration";function v(S,w){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];w=w||{};var k=1,j=1;function N(P){var F=P.match(t);F&&(k+=F.length);var V=P.lastIndexOf(d);j=~V?P.length-V:j+P.length}function z(){var P={line:k,column:j};return function(F){return F.position=new T(P),A(),F}}function T(P){this.start=P,this.end={line:k,column:j},this.source=w.source}T.prototype.content=S;function M(P){var F=new Error(w.source+":"+k+":"+j+": "+P);if(F.reason=P,F.filename=w.source,F.line=k,F.column=j,F.source=S,!w.silent)throw F}function L(P){var F=P.exec(S);if(F){var V=F[0];return N(V),S=S.slice(V.length),F}}function A(){L(n)}function O(P){var F;for(P=P||[];F=I();)F!==!1&&P.push(F);return P}function I(){var P=z();if(!(m!=S.charAt(0)||h!=S.charAt(1))){for(var F=2;p!=S.charAt(F)&&(h!=S.charAt(F)||m!=S.charAt(F+1));)++F;if(F+=2,p===S.charAt(F-1))return M("End of comment missing");var V=S.slice(2,F-2);return j+=2,N(V),S=S.slice(F),j+=2,P({type:g,comment:V})}}function $(){var P=z(),F=L(i);if(F){if(I(),!L(r))return M("property missing ':'");var V=L(o),Y=P({type:x,property:b(F[0].replace(e,p)),value:V?b(V[0].replace(e,p)):p});return L(a),Y}}function G(){var P=[];O(P);for(var F;F=$();)F!==!1&&(P.push(F),O(P));return P}return A(),G()}function b(S){return S?S.replace(c,p):p}return Kg=v,Kg}var Sw;function B8(){if(Sw)return el;Sw=1;var e=el&&el.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(el,"__esModule",{value:!0}),el.default=n;const t=e(P8());function n(i,r){let o=null;if(!i||typeof i!="string")return o;const a=(0,t.default)(i),c=typeof r=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:h}=d;c?r(m,h,d):h&&(o=o||{},o[m]=h)}),o}return el}var Yc={},ww;function $8(){if(ww)return Yc;ww=1,Object.defineProperty(Yc,"__esModule",{value:!0}),Yc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,r=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,h){return h.toUpperCase()},c=function(m,h){return"".concat(h,"-")},d=function(m,h){return h===void 0&&(h={}),o(m)?m:(m=m.toLowerCase(),h.reactCompat?m=m.replace(r,c):m=m.replace(i,c),m.replace(t,a))};return Yc.camelCase=d,Yc}var Xc,Cw;function H8(){if(Cw)return Xc;Cw=1;var e=Xc&&Xc.__importDefault||function(r){return r&&r.__esModule?r:{default:r}},t=e(B8()),n=$8();function i(r,o){var a={};return!r||typeof r!="string"||(0,t.default)(r,function(c,d){c&&d&&(a[(0,n.camelCase)(c,o)]=d)}),a}return i.default=i,Xc=i,Xc}var F8=H8();const V8=pa(F8),KN=ZN("end"),w0=ZN("start");function ZN(e){return t;function t(n){const i=n&&n.position&&n.position[e]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function U8(e){const t=w0(e),n=KN(e);if(t&&n)return{start:t,end:n}}function pu(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?jw(e.position):"start"in e||"end"in e?jw(e):"line"in e||"column"in e?uv(e):""}function uv(e){return Ew(e&&e.line)+":"+Ew(e&&e.column)}function jw(e){return uv(e&&e.start)+"-"+uv(e&&e.end)}function Ew(e){return e&&typeof e=="number"?e:1}class Bi extends Error{constructor(t,n,i){super(),typeof n=="string"&&(i=n,n=void 0);let r="",o={},a=!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"?r=t:!o.cause&&t&&(a=!0,r=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof i=="string"){const d=i.indexOf(":");d===-1?o.ruleId=i:(o.source=i.slice(0,d),o.ruleId=i.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=r,this.line=c?c.line:void 0,this.name=pu(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=a&&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}}Bi.prototype.file="";Bi.prototype.name="";Bi.prototype.reason="";Bi.prototype.message="";Bi.prototype.stack="";Bi.prototype.column=void 0;Bi.prototype.line=void 0;Bi.prototype.ancestors=void 0;Bi.prototype.cause=void 0;Bi.prototype.fatal=void 0;Bi.prototype.place=void 0;Bi.prototype.ruleId=void 0;Bi.prototype.source=void 0;const C0={}.hasOwnProperty,q8=new Map,G8=/[A-Z]/g,W8=new Set(["table","tbody","thead","tfoot","tr"]),Y8=new Set(["td","th"]),QN="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function X8(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let i;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=iP(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");i=nP(n,t.jsx,t.jsxs)}const r={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:i,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"?S0:L8,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=JN(r,e,void 0);return o&&typeof o!="string"?o:r.create(e,r.Fragment,{children:o||void 0},void 0)}function JN(e,t,n){if(t.type==="element")return K8(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Z8(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return J8(e,t,n);if(t.type==="mdxjsEsm")return Q8(e,t);if(t.type==="root")return eP(e,t,n);if(t.type==="text")return tP(e,t)}function K8(e,t,n){const i=e.schema;let r=i;t.tagName.toLowerCase()==="svg"&&i.space==="html"&&(r=S0,e.schema=r),e.ancestors.push(t);const o=tI(e,t.tagName,!1),a=rP(e,t);let c=E0(e,t);return W8.has(t.tagName)&&(c=c.filter(function(d){return typeof d=="string"?!j8(d):!0})),eI(e,a,o,t),j0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function Z8(e,t){if(t.data&&t.data.estree&&e.evaluater){const i=t.data.estree.body[0];return i.type,e.evaluater.evaluateExpression(i.expression)}Tu(e,t.position)}function Q8(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Tu(e,t.position)}function J8(e,t,n){const i=e.schema;let r=i;t.name==="svg"&&i.space==="html"&&(r=S0,e.schema=r),e.ancestors.push(t);const o=t.name===null?e.Fragment:tI(e,t.name,!0),a=sP(e,t),c=E0(e,t);return eI(e,a,o,t),j0(a,c),e.ancestors.pop(),e.schema=i,e.create(t,o,a,n)}function eP(e,t,n){const i={};return j0(i,E0(e,t)),e.create(t,e.Fragment,i,n)}function tP(e,t){return t.value}function eI(e,t,n,i){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=i)}function j0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function nP(e,t,n){return i;function i(r,o,a,c){const m=Array.isArray(a.children)?n:t;return c?m(o,a,c):m(o,a)}}function iP(e,t){return n;function n(i,r,o,a){const c=Array.isArray(o.children),d=w0(i);return t(r,o,a,c,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function rP(e,t){const n={};let i,r;for(r in t.properties)if(r!=="children"&&C0.call(t.properties,r)){const o=oP(e,r,t.properties[r]);if(o){const[a,c]=o;e.tableCellAlignToStyle&&a==="align"&&typeof c=="string"&&Y8.has(t.tagName)?i=c:n[a]=c}}if(i){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return n}function sP(e,t){const n={};for(const i of t.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&e.evaluater){const o=i.data.estree.body[0];o.type;const a=o.expression;a.type;const c=a.properties[0];c.type,Object.assign(n,e.evaluater.evaluateExpression(c.argument))}else Tu(e,t.position);else{const r=i.name;let o;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&e.evaluater){const c=i.value.data.estree.body[0];c.type,o=e.evaluater.evaluateExpression(c.expression)}else Tu(e,t.position);else o=i.value===null?!0:i.value;n[r]=o}return n}function E0(e,t){const n=[];let i=-1;const r=e.passKeys?new Map:q8;for(;++ir?0:r+t:t=t>r?r:t,n=n>0?n:0,i.length<1e4)a=Array.from(i),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(yr(e,e.length,0,t),e):t}const Tw={}.hasOwnProperty;function iI(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 Ur(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vi=Io(/[A-Za-z]/),Pi=Io(/[\dA-Za-z]/),hP=Io(/[#-'*+\--9=?A-Z^-~]/);function mm(e){return e!==null&&(e<32||e===127)}const dv=Io(/\d/),gP=Io(/[\dA-Fa-f]/),yP=Io(/[!-/:-@[-`{-~]/);function mt(e){return e!==null&&e<-2}function En(e){return e!==null&&(e<0||e===32)}function Yt(e){return e===-2||e===-1||e===32}const Zm=Io(new RegExp("\\p{P}|\\p{S}","u")),ca=Io(/\s/);function Io(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Gl(e){const t=[];let n=-1,i=0,r=0;for(;++n55295&&o<57344){const c=e.charCodeAt(n+1);o<56320&&c>56319&&c<57344?(a=String.fromCharCode(o,c),r=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(i,n),encodeURIComponent(a)),i=n+r+1,a=""),r&&(n+=r,r=0)}return t.join("")+e.slice(i)}function sn(e,t,n,i){const r=i?i-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Yt(d)?(e.enter(n),c(d)):t(d)}function c(d){return Yt(d)&&o++a))return;const M=t.events.length;let L=M,A,O;for(;L--;)if(t.events[L][0]==="exit"&&t.events[L][1].type==="chunkFlow"){if(A){O=t.events[L][1].end;break}A=!0}for(w(i),T=M;Tj;){const z=n[N];t.containerState=z[1],z[0].exit.call(t,e)}n.length=j}function k(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}function kP(e,t,n){return sn(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Il(e){if(e===null||En(e)||ca(e))return 1;if(Zm(e))return 2}function Qm(e,t,n){const i=[];let r=-1;for(;++r1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[i][1].end},g={...e[n][1].start};Aw(p,-d),Aw(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:p,end:{...e[i][1].end}},c={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},r={type:d>1?"strong":"emphasis",start:{...a.start},end:{...c.end}},e[i][1].end={...a.start},e[n][1].start={...c.end},m=[],e[i][1].end.offset-e[i][1].start.offset&&(m=Rr(m,[["enter",e[i][1],t],["exit",e[i][1],t]])),m=Rr(m,[["enter",r,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=Rr(m,Qm(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),m=Rr(m,[["exit",o,t],["enter",c,t],["exit",c,t],["exit",r,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,m=Rr(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,yr(e,i-1,n-i+3,m),n=i+m.length-h-2;break}}for(n=-1;++n0&&Yt(T)?sn(e,k,"linePrefix",o+1)(T):k(T)}function k(T){return T===null||mt(T)?e.check(Mw,b,N)(T):(e.enter("codeFlowValue"),j(T))}function j(T){return T===null||mt(T)?(e.exit("codeFlowValue"),k(T)):(e.consume(T),j)}function N(T){return e.exit("codeFenced"),t(T)}function z(T,M,L){let A=0;return O;function O(F){return T.enter("lineEnding"),T.consume(F),T.exit("lineEnding"),I}function I(F){return T.enter("codeFencedFence"),Yt(F)?sn(T,$,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):$(F)}function $(F){return F===c?(T.enter("codeFencedFenceSequence"),G(F)):L(F)}function G(F){return F===c?(A++,T.consume(F),G):A>=a?(T.exit("codeFencedFenceSequence"),Yt(F)?sn(T,P,"whitespace")(F):P(F)):L(F)}function P(F){return F===null||mt(F)?(T.exit("codeFencedFence"),M(F)):L(F)}}}function DP(e,t,n){const i=this;return r;function r(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}const Qg={name:"codeIndented",tokenize:LP},OP={partial:!0,tokenize:zP};function LP(e,t,n){const i=this;return r;function r(m){return e.enter("codeIndented"),sn(e,o,"linePrefix",5)(m)}function o(m){const h=i.events[i.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):mt(m)?e.attempt(OP,a,d)(m):(e.enter("codeFlowValue"),c(m))}function c(m){return m===null||mt(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),c)}function d(m){return e.exit("codeIndented"),t(m)}}function zP(e,t,n){const i=this;return r;function r(a){return i.parser.lazy[i.now().line]?n(a):mt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r):sn(e,o,"linePrefix",5)(a)}function o(a){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?t(a):mt(a)?r(a):n(a)}}const PP={name:"codeText",previous:$P,resolve:BP,tokenize:HP};function BP(e){let t=e.length-4,n=3,i,r;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=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-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const r=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return i&&Kc(this.left,i),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),Kc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Kc(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(a):e.interrupt(i.parser.constructs.flow,n,t)(a)}}function cI(e,t,n,i,r,o,a,c,d){const m=d||Number.POSITIVE_INFINITY;let h=0;return p;function p(w){return w===60?(e.enter(i),e.enter(r),e.enter(o),e.consume(w),e.exit(o),g):w===null||w===32||w===41||mm(w)?n(w):(e.enter(i),e.enter(a),e.enter(c),e.enter("chunkString",{contentType:"string"}),b(w))}function g(w){return w===62?(e.enter(o),e.consume(w),e.exit(o),e.exit(r),e.exit(i),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),x(w))}function x(w){return w===62?(e.exit("chunkString"),e.exit(c),g(w)):w===null||w===60||mt(w)?n(w):(e.consume(w),w===92?v:x)}function v(w){return w===60||w===62||w===92?(e.consume(w),x):x(w)}function b(w){return!h&&(w===null||w===41||En(w))?(e.exit("chunkString"),e.exit(c),e.exit(a),e.exit(i),t(w)):h999||x===null||x===91||x===93&&!d||x===94&&!c&&"_hiddenFootnoteSupport"in a.parser.constructs?n(x):x===93?(e.exit(o),e.enter(r),e.consume(x),e.exit(r),e.exit(i),t):mt(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===null||x===91||x===93||mt(x)||c++>999?(e.exit("chunkString"),h(x)):(e.consume(x),d||(d=!Yt(x)),x===92?g:p)}function g(x){return x===91||x===92||x===93?(e.consume(x),c++,p):p(x)}}function dI(e,t,n,i,r,o){let a;return c;function c(g){return g===34||g===39||g===40?(e.enter(i),e.enter(r),e.consume(g),e.exit(r),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(r),e.consume(g),e.exit(r),e.exit(i),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):mt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),sn(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(g))}function h(g){return g===a||g===null||mt(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?p:h)}function p(g){return g===a||g===92?(e.consume(g),h):h(g)}}function hu(e,t){let n;return i;function i(r){return mt(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,i):Yt(r)?sn(e,i,n?"linePrefix":"lineSuffix")(r):t(r)}}const XP={name:"definition",tokenize:ZP},KP={partial:!0,tokenize:QP};function ZP(e,t,n){const i=this;let r;return o;function o(x){return e.enter("definition"),a(x)}function a(x){return uI.call(i,e,c,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(x)}function c(x){return r=Ur(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),x===58?(e.enter("definitionMarker"),e.consume(x),e.exit("definitionMarker"),d):n(x)}function d(x){return En(x)?hu(e,m)(x):m(x)}function m(x){return cI(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(x)}function h(x){return e.attempt(KP,p,p)(x)}function p(x){return Yt(x)?sn(e,g,"whitespace")(x):g(x)}function g(x){return x===null||mt(x)?(e.exit("definition"),i.parser.defined.push(r),t(x)):n(x)}}function QP(e,t,n){return i;function i(c){return En(c)?hu(e,r)(c):n(c)}function r(c){return dI(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(c)}function o(c){return Yt(c)?sn(e,a,"whitespace")(c):a(c)}function a(c){return c===null||mt(c)?t(c):n(c)}}const JP={name:"hardBreakEscape",tokenize:eB};function eB(e,t,n){return i;function i(o){return e.enter("hardBreakEscape"),e.consume(o),r}function r(o){return mt(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const tB={name:"headingAtx",resolve:nB,tokenize:iB};function nB(e,t){let n=e.length-2,i=3,r,o;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},o={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},yr(e,i,n-i+1,[["enter",r,t],["enter",o,t],["exit",o,t],["exit",r,t]])),e}function iB(e,t,n){let i=0;return r;function r(h){return e.enter("atxHeading"),o(h)}function o(h){return e.enter("atxHeadingSequence"),a(h)}function a(h){return h===35&&i++<6?(e.consume(h),a):h===null||En(h)?(e.exit("atxHeadingSequence"),c(h)):n(h)}function c(h){return h===35?(e.enter("atxHeadingSequence"),d(h)):h===null||mt(h)?(e.exit("atxHeading"),t(h)):Yt(h)?sn(e,c,"whitespace")(h):(e.enter("atxHeadingText"),m(h))}function d(h){return h===35?(e.consume(h),d):(e.exit("atxHeadingSequence"),c(h))}function m(h){return h===null||h===35||En(h)?(e.exit("atxHeadingText"),c(h)):(e.consume(h),m)}}const rB=["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"],Ow=["pre","script","style","textarea"],sB={concrete:!0,name:"htmlFlow",resolveTo:lB,tokenize:cB},oB={partial:!0,tokenize:dB},aB={partial:!0,tokenize:uB};function lB(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 cB(e,t,n){const i=this;let r,o,a,c,d;return m;function m(D){return h(D)}function h(D){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(D),p}function p(D){return D===33?(e.consume(D),g):D===47?(e.consume(D),o=!0,b):D===63?(e.consume(D),r=3,i.interrupt?t:W):Vi(D)?(e.consume(D),a=String.fromCharCode(D),S):n(D)}function g(D){return D===45?(e.consume(D),r=2,x):D===91?(e.consume(D),r=5,c=0,v):Vi(D)?(e.consume(D),r=4,i.interrupt?t:W):n(D)}function x(D){return D===45?(e.consume(D),i.interrupt?t:W):n(D)}function v(D){const K="CDATA[";return D===K.charCodeAt(c++)?(e.consume(D),c===K.length?i.interrupt?t:$:v):n(D)}function b(D){return Vi(D)?(e.consume(D),a=String.fromCharCode(D),S):n(D)}function S(D){if(D===null||D===47||D===62||En(D)){const K=D===47,ne=a.toLowerCase();return!K&&!o&&Ow.includes(ne)?(r=1,i.interrupt?t(D):$(D)):rB.includes(a.toLowerCase())?(r=6,K?(e.consume(D),w):i.interrupt?t(D):$(D)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(D):o?k(D):j(D))}return D===45||Pi(D)?(e.consume(D),a+=String.fromCharCode(D),S):n(D)}function w(D){return D===62?(e.consume(D),i.interrupt?t:$):n(D)}function k(D){return Yt(D)?(e.consume(D),k):O(D)}function j(D){return D===47?(e.consume(D),O):D===58||D===95||Vi(D)?(e.consume(D),N):Yt(D)?(e.consume(D),j):O(D)}function N(D){return D===45||D===46||D===58||D===95||Pi(D)?(e.consume(D),N):z(D)}function z(D){return D===61?(e.consume(D),T):Yt(D)?(e.consume(D),z):j(D)}function T(D){return D===null||D===60||D===61||D===62||D===96?n(D):D===34||D===39?(e.consume(D),d=D,M):Yt(D)?(e.consume(D),T):L(D)}function M(D){return D===d?(e.consume(D),d=null,A):D===null||mt(D)?n(D):(e.consume(D),M)}function L(D){return D===null||D===34||D===39||D===47||D===60||D===61||D===62||D===96||En(D)?z(D):(e.consume(D),L)}function A(D){return D===47||D===62||Yt(D)?j(D):n(D)}function O(D){return D===62?(e.consume(D),I):n(D)}function I(D){return D===null||mt(D)?$(D):Yt(D)?(e.consume(D),I):n(D)}function $(D){return D===45&&r===2?(e.consume(D),V):D===60&&r===1?(e.consume(D),Y):D===62&&r===4?(e.consume(D),q):D===63&&r===3?(e.consume(D),W):D===93&&r===5?(e.consume(D),Z):mt(D)&&(r===6||r===7)?(e.exit("htmlFlowData"),e.check(oB,Q,G)(D)):D===null||mt(D)?(e.exit("htmlFlowData"),G(D)):(e.consume(D),$)}function G(D){return e.check(aB,P,Q)(D)}function P(D){return e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),F}function F(D){return D===null||mt(D)?G(D):(e.enter("htmlFlowData"),$(D))}function V(D){return D===45?(e.consume(D),W):$(D)}function Y(D){return D===47?(e.consume(D),a="",U):$(D)}function U(D){if(D===62){const K=a.toLowerCase();return Ow.includes(K)?(e.consume(D),q):$(D)}return Vi(D)&&a.length<8?(e.consume(D),a+=String.fromCharCode(D),U):$(D)}function Z(D){return D===93?(e.consume(D),W):$(D)}function W(D){return D===62?(e.consume(D),q):D===45&&r===2?(e.consume(D),W):$(D)}function q(D){return D===null||mt(D)?(e.exit("htmlFlowData"),Q(D)):(e.consume(D),q)}function Q(D){return e.exit("htmlFlow"),t(D)}}function uB(e,t,n){const i=this;return r;function r(a){return mt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return i.parser.lazy[i.now().line]?n(a):t(a)}}function dB(e,t,n){return i;function i(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(Gu,t,n)}}const fB={name:"htmlText",tokenize:mB};function mB(e,t,n){const i=this;let r,o,a;return c;function c(W){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(W),d}function d(W){return W===33?(e.consume(W),m):W===47?(e.consume(W),z):W===63?(e.consume(W),j):Vi(W)?(e.consume(W),L):n(W)}function m(W){return W===45?(e.consume(W),h):W===91?(e.consume(W),o=0,v):Vi(W)?(e.consume(W),k):n(W)}function h(W){return W===45?(e.consume(W),x):n(W)}function p(W){return W===null?n(W):W===45?(e.consume(W),g):mt(W)?(a=p,Y(W)):(e.consume(W),p)}function g(W){return W===45?(e.consume(W),x):p(W)}function x(W){return W===62?V(W):W===45?g(W):p(W)}function v(W){const q="CDATA[";return W===q.charCodeAt(o++)?(e.consume(W),o===q.length?b:v):n(W)}function b(W){return W===null?n(W):W===93?(e.consume(W),S):mt(W)?(a=b,Y(W)):(e.consume(W),b)}function S(W){return W===93?(e.consume(W),w):b(W)}function w(W){return W===62?V(W):W===93?(e.consume(W),w):b(W)}function k(W){return W===null||W===62?V(W):mt(W)?(a=k,Y(W)):(e.consume(W),k)}function j(W){return W===null?n(W):W===63?(e.consume(W),N):mt(W)?(a=j,Y(W)):(e.consume(W),j)}function N(W){return W===62?V(W):j(W)}function z(W){return Vi(W)?(e.consume(W),T):n(W)}function T(W){return W===45||Pi(W)?(e.consume(W),T):M(W)}function M(W){return mt(W)?(a=M,Y(W)):Yt(W)?(e.consume(W),M):V(W)}function L(W){return W===45||Pi(W)?(e.consume(W),L):W===47||W===62||En(W)?A(W):n(W)}function A(W){return W===47?(e.consume(W),V):W===58||W===95||Vi(W)?(e.consume(W),O):mt(W)?(a=A,Y(W)):Yt(W)?(e.consume(W),A):V(W)}function O(W){return W===45||W===46||W===58||W===95||Pi(W)?(e.consume(W),O):I(W)}function I(W){return W===61?(e.consume(W),$):mt(W)?(a=I,Y(W)):Yt(W)?(e.consume(W),I):A(W)}function $(W){return W===null||W===60||W===61||W===62||W===96?n(W):W===34||W===39?(e.consume(W),r=W,G):mt(W)?(a=$,Y(W)):Yt(W)?(e.consume(W),$):(e.consume(W),P)}function G(W){return W===r?(e.consume(W),r=void 0,F):W===null?n(W):mt(W)?(a=G,Y(W)):(e.consume(W),G)}function P(W){return W===null||W===34||W===39||W===60||W===61||W===96?n(W):W===47||W===62||En(W)?A(W):(e.consume(W),P)}function F(W){return W===47||W===62||En(W)?A(W):n(W)}function V(W){return W===62?(e.consume(W),e.exit("htmlTextData"),e.exit("htmlText"),t):n(W)}function Y(W){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(W),e.exit("lineEnding"),U}function U(W){return Yt(W)?sn(e,Z,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(W):Z(W)}function Z(W){return e.enter("htmlTextData"),a(W)}}const T0={name:"labelEnd",resolveAll:yB,resolveTo:xB,tokenize:vB},pB={tokenize:bB},hB={tokenize:_B},gB={tokenize:kB};function yB(e){let t=-1;const n=[];for(;++t=3&&(m===null||mt(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===r?(e.consume(m),i++,d):(e.exit("thematicBreakSequence"),Yt(m)?sn(e,c,"whitespace")(m):c(m))}}const Zi={continuation:{tokenize:AB},exit:DB,name:"list",tokenize:RB},IB={partial:!0,tokenize:OB},TB={partial:!0,tokenize:MB};function RB(e,t,n){const i=this,r=i.events[i.events.length-1];let o=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,a=0;return c;function c(x){const v=i.containerState.type||(x===42||x===43||x===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!i.containerState.marker||x===i.containerState.marker:dv(x)){if(i.containerState.type||(i.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),x===42||x===45?e.check(Ff,n,m)(x):m(x);if(!i.interrupt||x===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(x)}return n(x)}function d(x){return dv(x)&&++a<10?(e.consume(x),d):(!i.interrupt||a<2)&&(i.containerState.marker?x===i.containerState.marker:x===41||x===46)?(e.exit("listItemValue"),m(x)):n(x)}function m(x){return e.enter("listItemMarker"),e.consume(x),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||x,e.check(Gu,i.interrupt?n:h,e.attempt(IB,g,p))}function h(x){return i.containerState.initialBlankLine=!0,o++,g(x)}function p(x){return Yt(x)?(e.enter("listItemPrefixWhitespace"),e.consume(x),e.exit("listItemPrefixWhitespace"),g):n(x)}function g(x){return i.containerState.size=o+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(x)}}function AB(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(Gu,r,o);function r(c){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,sn(e,t,"listItemIndent",i.containerState.size+1)(c)}function o(c){return i.containerState.furtherBlankLines||!Yt(c)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(c)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(TB,t,a)(c))}function a(c){return i.containerState._closeFlow=!0,i.interrupt=void 0,sn(e,e.attempt(Zi,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c)}}function MB(e,t,n){const i=this;return sn(e,r,"listItemIndent",i.containerState.size+1);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?t(o):n(o)}}function DB(e){e.exit(this.containerState.type)}function OB(e,t,n){const i=this;return sn(e,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(o){const a=i.events[i.events.length-1];return!Yt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Lw={name:"setextUnderline",resolveTo:LB,tokenize:zB};function LB(e,t){let n=e.length,i,r,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(r=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[i][1],t]),e[i][1].end={...e[o][1].end}):e[i][1]=a,e.push(["exit",a,t]),e}function zB(e,t,n){const i=this;let r;return o;function o(m){let h=i.events.length,p;for(;h--;)if(i.events[h][1].type!=="lineEnding"&&i.events[h][1].type!=="linePrefix"&&i.events[h][1].type!=="content"){p=i.events[h][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||p)?(e.enter("setextHeadingLine"),r=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),c(m)}function c(m){return m===r?(e.consume(m),c):(e.exit("setextHeadingLineSequence"),Yt(m)?sn(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||mt(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const PB={tokenize:BB};function BB(e){const t=this,n=e.attempt(Gu,i,e.attempt(this.parser.constructs.flowInitial,r,sn(e,e.attempt(this.parser.constructs.flow,r,e.attempt(UP,r)),"linePrefix")));return n;function i(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const $B={resolveAll:mI()},HB=fI("string"),FB=fI("text");function fI(e){return{resolveAll:mI(e==="text"?VB:void 0),tokenize:t};function t(n){const i=this,r=this.parser.constructs[e],o=n.attempt(r,a,c);return a;function a(h){return m(h)?o(h):c(h)}function c(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),d}function d(h){return m(h)?(n.exit("data"),o(h)):(n.consume(h),d)}function m(h){if(h===null)return!0;const p=r[h];let g=-1;if(p)for(;++g-1){const c=a[0];typeof c=="string"?a[0]=c.slice(i):a.shift()}o>0&&a.push(e[r].slice(0,o))}return a}function n9(e,t){let n=-1;const i=[];let r;for(;++n0){const wt=Le.tokenStack[Le.tokenStack.length-1];(wt[1]||Pw).call(Le,void 0,wt[0])}for(Ce.position={start:go(ce.length>0?ce[0][1].start:{line:1,column:1,offset:0}),end:go(ce.length>0?ce[ce.length-2][1].end:{line:1,column:1,offset:0})},Qe=-1;++Qe0&&(i.className=["language-"+r[0]]);let o={type:"element",tagName:"code",properties:i,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 g9(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function y9(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function x9(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),r=Gl(i.toLowerCase()),o=e.footnoteOrder.indexOf(i);let a,c=e.footnoteCounts.get(i);c===void 0?(c=0,e.footnoteOrder.push(i),a=e.footnoteOrder.length):a=o+1,c+=1,e.footnoteCounts.set(i,c);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+r,id:n+"fnref-"+r+(c>1?"-"+c:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,d);const m={type:"element",tagName:"sup",properties:{},children:[d]};return e.patch(t,m),e.applyData(t,m)}function v9(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 b9(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function gI(e,t){const n=t.referenceType;let i="]";if(n==="collapsed"?i+="[]":n==="full"&&(i+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+i}];const r=e.all(t),o=r[0];o&&o.type==="text"?o.value="["+o.value:r.unshift({type:"text",value:"["});const a=r[r.length-1];return a&&a.type==="text"?a.value+=i:r.push({type:"text",value:i}),r}function _9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return gI(e,t);const r={src:Gl(i.url||""),alt:t.alt};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)}function k9(e,t){const n={src:Gl(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 i={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,i),e.applyData(t,i)}function S9(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,i),e.applyData(t,i)}function w9(e,t){const n=String(t.identifier).toUpperCase(),i=e.definitionById.get(n);if(!i)return gI(e,t);const r={href:Gl(i.url||"")};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function C9(e,t){const n={href:Gl(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const i={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function j9(e,t,n){const i=e.all(t),r=n?E9(n):yI(t),o={},a=[];if(typeof t.checked=="boolean"){const h=i[0];let p;h&&h.type==="element"&&h.tagName==="p"?p=h:(p={type:"element",tagName:"p",properties:{},children:[]},i.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 N9(e,t){const n={},i=e.all(t);let r=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++r0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},c=w0(t.children[1]),d=KN(t.children[t.children.length-1]);c&&d&&(a.position={start:c,end:d}),r.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function M9(e,t,n){const i=n?n.children:void 0,o=(i?i.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,c=a?a.length:t.children.length;let d=-1;const m=[];for(;++d0,!0),i[0]),r=i.index+i[0].length,i=n.exec(t);return o.push(Hw(t.slice(r),r>0,!1)),o.join("")}function Hw(e,t,n){let i=0,r=e.length;if(t){let o=e.codePointAt(i);for(;o===Bw||o===$w;)i++,o=e.codePointAt(i)}if(n){let o=e.codePointAt(r-1);for(;o===Bw||o===$w;)r--,o=e.codePointAt(r-1)}return r>i?e.slice(i,r):""}function L9(e,t){const n={type:"text",value:O9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function z9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const P9={blockquote:m9,break:p9,code:h9,delete:g9,emphasis:y9,footnoteReference:x9,heading:v9,html:b9,imageReference:_9,image:k9,inlineCode:S9,linkReference:w9,link:C9,listItem:j9,list:N9,paragraph:I9,root:T9,strong:R9,table:A9,tableCell:D9,tableRow:M9,text:L9,thematicBreak:z9,toml:mf,yaml:mf,definition:mf,footnoteDefinition:mf};function mf(){}const xI=-1,Jm=0,gu=1,pm=2,R0=3,A0=4,M0=5,D0=6,vI=7,bI=8,Fw=typeof self=="object"?self:globalThis,B9=(e,t)=>{const n=(r,o)=>(e.set(o,r),r),i=r=>{if(e.has(r))return e.get(r);const[o,a]=t[r];switch(o){case Jm:case xI:return n(a,r);case gu:{const c=n([],r);for(const d of a)c.push(i(d));return c}case pm:{const c=n({},r);for(const[d,m]of a)c[i(d)]=i(m);return c}case R0:return n(new Date(a),r);case A0:{const{source:c,flags:d}=a;return n(new RegExp(c,d),r)}case M0:{const c=n(new Map,r);for(const[d,m]of a)c.set(i(d),i(m));return c}case D0:{const c=n(new Set,r);for(const d of a)c.add(i(d));return c}case vI:{const{name:c,message:d}=a;return n(new Fw[c](d),r)}case bI:return n(BigInt(a),r);case"BigInt":return n(Object(BigInt(a)),r);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:c}=new Uint8Array(a);return n(new DataView(c),a)}}return n(new Fw[o](a),r)};return i},Vw=e=>B9(new Map,e)(0),tl="",{toString:$9}={},{keys:H9}=Object,Zc=e=>{const t=typeof e;if(t!=="object"||!e)return[Jm,t];const n=$9.call(e).slice(8,-1);switch(n){case"Array":return[gu,tl];case"Object":return[pm,tl];case"Date":return[R0,tl];case"RegExp":return[A0,tl];case"Map":return[M0,tl];case"Set":return[D0,tl];case"DataView":return[gu,n]}return n.includes("Array")?[gu,n]:n.includes("Error")?[vI,n]:[pm,n]},pf=([e,t])=>e===Jm&&(t==="function"||t==="symbol"),F9=(e,t,n,i)=>{const r=(a,c)=>{const d=i.push(a)-1;return n.set(c,d),d},o=a=>{if(n.has(a))return n.get(a);let[c,d]=Zc(a);switch(c){case Jm:{let h=a;switch(d){case"bigint":c=bI,h=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);h=null;break;case"undefined":return r([xI],a)}return r([c,h],a)}case gu:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),r([d,[...g]],a)}const h=[],p=r([c,h],a);for(const g of a)h.push(o(g));return p}case pm:{if(d)switch(d){case"BigInt":return r([d,a.toString()],a);case"Boolean":case"Number":case"String":return r([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const h=[],p=r([c,h],a);for(const g of H9(a))(e||!pf(Zc(a[g])))&&h.push([o(g),o(a[g])]);return p}case R0:return r([c,a.toISOString()],a);case A0:{const{source:h,flags:p}=a;return r([c,{source:h,flags:p}],a)}case M0:{const h=[],p=r([c,h],a);for(const[g,x]of a)(e||!(pf(Zc(g))||pf(Zc(x))))&&h.push([o(g),o(x)]);return p}case D0:{const h=[],p=r([c,h],a);for(const g of a)(e||!pf(Zc(g)))&&h.push(o(g));return p}}const{message:m}=a;return r([c,{name:d,message:m}],a)};return o},Uw=(e,{json:t,lossy:n}={})=>{const i=[];return F9(!(t||n),!!t,new Map,i)(e),i},hm=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Vw(Uw(e,t)):structuredClone(e):(e,t)=>Vw(Uw(e,t));function V9(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 U9(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function q9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||V9,i=e.options.footnoteBackLabel||U9,r=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},c=[];let d=-1;for(;++d0&&v.push({type:"text",value:" "});let k=typeof n=="string"?n:n(d,x);typeof k=="string"&&(k={type:"text",value:k}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(x>1?"-"+x:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(d,x),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}const S=h[h.length-1];if(S&&S.type==="element"&&S.tagName==="p"){const k=S.children[S.children.length-1];k&&k.type==="text"?k.value+=" ":S.children.push({type:"text",value:" "}),S.children.push(...v)}else h.push(...v);const w={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(h,!0)};e.patch(m,w),c.push(w)}if(c.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...hm(a),id:"footnote-label"},children:[{type:"text",value:r}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(c,!0)},{type:"text",value:` -`}]}}const ep=(function(e){if(e==null)return X9;if(typeof e=="function")return tp(e);if(typeof e=="object")return Array.isArray(e)?G9(e):W9(e);if(typeof e=="string")return Y9(e);throw new Error("Expected function, string, or object as test")});function G9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let x=_I,v,b,S;if((!t||o(d,m,h[h.length-1]||void 0))&&(x=J9(n(d,h)),x[0]===mv))return x;if("children"in d&&d.children){const w=d;if(w.children&&x[0]!==Q9)for(b=(i?w.children.length:-1)+a,S=h.concat(w);b>-1&&b0&&n.push({type:"text",value:` -`}),n}function qw(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Gw(e,t){const n=t$(e,t),i=n.one(e,void 0),r=q9(n),o=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return r&&o.children.push({type:"text",value:` -`},r),o}function o$(e,t){return e&&"run"in e?async function(n,i){const r=Gw(n,{file:i,...t});await e.run(r,i)}:function(n,i){return Gw(n,{file:i,...e||t})}}function Ww(e){if(e)throw e}var ey,Yw;function a$(){if(Yw)return ey;Yw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=function(m){return typeof Array.isArray=="function"?Array.isArray(m):t.call(m)==="[object Array]"},o=function(m){if(!m||t.call(m)!=="[object Object]")return!1;var h=e.call(m,"constructor"),p=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!h&&!p)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,h){n&&h.name==="__proto__"?n(m,h.name,{enumerable:!0,configurable:!0,value:h.newValue,writable:!0}):m[h.name]=h.newValue},c=function(m,h){if(h==="__proto__")if(e.call(m,h)){if(i)return i(m,h).value}else return;return m[h]};return ey=function d(){var m,h,p,g,x,v,b=arguments[0],S=1,w=arguments.length,k=!1;for(typeof b=="boolean"&&(k=b,b=arguments[1]||{},S=2),(b==null||typeof b!="object"&&typeof b!="function")&&(b={});Sa.length;let d;c&&a.push(r);try{d=e.apply(this,a)}catch(m){const h=m;if(c&&n)throw h;return r(h)}c||(d&&d.then&&typeof d.then=="function"?d.then(o,r):d instanceof Error?r(d):o(d))}function r(a,...c){n||(n=!0,t(a,...c))}function o(a){r(null,a)}}const ns={basename:d$,dirname:f$,extname:m$,join:p$,sep:"/"};function d$(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Wu(e);let n=0,i=-1,r=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else i<0&&(o=!0,i=r+1);return i<0?"":e.slice(n,i)}if(t===e)return"";let a=-1,c=t.length-1;for(;r--;)if(e.codePointAt(r)===47){if(o){n=r+1;break}}else a<0&&(o=!0,a=r+1),c>-1&&(e.codePointAt(r)===t.codePointAt(c--)?c<0&&(i=r):(c=-1,i=a));return n===i?i=a:i<0&&(i=e.length),e.slice(n,i)}function f$(e){if(Wu(e),e.length===0)return".";let t=-1,n=e.length,i;for(;--n;)if(e.codePointAt(n)===47){if(i){t=n;break}}else i||(i=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function m$(e){Wu(e);let t=e.length,n=-1,i=0,r=-1,o=0,a;for(;t--;){const c=e.codePointAt(t);if(c===47){if(a){i=t+1;break}continue}n<0&&(a=!0,n=t+1),c===46?r<0?r=t:o!==1&&(o=1):r>-1&&(o=-1)}return r<0||n<0||o===0||o===1&&r===n-1&&r===i+1?"":e.slice(r,n)}function p$(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function g$(e,t){let n="",i=0,r=-1,o=0,a=-1,c,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",i=0):(n=n.slice(0,d),i=n.length-1-n.lastIndexOf("/")),r=a,o=0;continue}}else if(n.length>0){n="",i=0,r=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",i=2)}else n.length>0?n+="/"+e.slice(r+1,a):n=e.slice(r+1,a),i=a-r-1;r=a,o=0}else c===46&&o>-1?o++:o=-1}return n}function Wu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const y$={cwd:x$};function x$(){return"/"}function gv(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function v$(e){if(typeof e=="string")e=new URL(e);else if(!gv(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 b$(e)}function b$(e){if(e.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const t=e.pathname;let n=-1;for(;++n0){let[x,...v]=h;const b=i[g][1];hv(b)&&hv(x)&&(x=ty(!0,b,x)),i[g]=[m,x,...v]}}}}const w$=new L0().freeze();function sy(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function oy(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function ay(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 Kw(e){if(!hv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Zw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function hf(e){return C$(e)?e:new SI(e)}function C$(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function j$(e){return typeof e=="string"||E$(e)}function E$(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const N$="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Qw=[],Jw={allowDangerousHtml:!0},I$=/^(https?|ircs?|mailto|xmpp)$/i,T$=[{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 R$(e){const t=A$(e),n=M$(e);return D$(t.runSync(t.parse(n),n),e)}function A$(e){const t=e.rehypePlugins||Qw,n=e.remarkPlugins||Qw,i=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Jw}:Jw;return w$().use(f9).use(n).use(o$,i).use(t)}function M$(e){const t=e.children||"",n=new SI;return typeof t=="string"&&(n.value=t),n}function D$(e,t){const n=t.allowedElements,i=t.allowElement,r=t.components,o=t.disallowedElements,a=t.skipHtml,c=t.unwrapDisallowed,d=t.urlTransform||O$;for(const h of T$)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+N$+h.id,void 0);return O0(e,m),X8(e,{Fragment:u.Fragment,components:r,ignoreInvalidStyle:!0,jsx:u.jsx,jsxs:u.jsxs,passKeys:!0,passNode:!0});function m(h,p,g){if(h.type==="raw"&&g&&typeof p=="number")return a?g.children.splice(p,1):g.children[p]={type:"text",value:h.value},p;if(h.type==="element"){let x;for(x in Zg)if(Object.hasOwn(Zg,x)&&Object.hasOwn(h.properties,x)){const v=h.properties[x],b=Zg[x];(b===null||b.includes(h.tagName))&&(h.properties[x]=d(String(v||""),x,h))}}if(h.type==="element"){let x=n?!n.includes(h.tagName):o?o.includes(h.tagName):!1;if(!x&&i&&typeof p=="number"&&(x=!i(h,p,g)),x&&g&&typeof p=="number")return c&&h.children?g.children.splice(p,1,...h.children):g.children.splice(p,1),p}}}function O$(e){const t=e.indexOf(":"),n=e.indexOf("?"),i=e.indexOf("#"),r=e.indexOf("/");return t===-1||r!==-1&&t>r||n!==-1&&t>n||i!==-1&&t>i||I$.test(e.slice(0,t))?e:""}function eC(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let i=0,r=n.indexOf(t);for(;r!==-1;)i++,r=n.indexOf(t,r+t.length);return i}function L$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function z$(e,t,n){const r=ep((n||{}).ignore||[]),o=P$(t);let a=-1;for(;++a0?{type:"text",value:T}:void 0),T===!1?g.lastIndex=N+1:(v!==N&&k.push({type:"text",value:m.value.slice(v,N)}),Array.isArray(T)?k.push(...T):T&&k.push(T),v=N+j[0].length,w=!0),!g.global)break;j=g.exec(m.value)}return w?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],i=n.indexOf(")");const r=eC(e,"(");let o=eC(e,")");for(;i!==-1&&r>o;)e+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),o++;return[e,n]}function wI(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||ca(n)||Zm(n))&&(!t||n!==47)}CI.peek=a7;function J$(){this.buffer()}function e7(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function t7(){this.buffer()}function n7(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function i7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ur(this.sliceSerialize(e)).toLowerCase(),n.label=t}function r7(e){this.exit(e)}function s7(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ur(this.sliceSerialize(e)).toLowerCase(),n.label=t}function o7(e){this.exit(e)}function a7(){return"["}function CI(e,t,n,i){const r=n.createTracker(i);let o=r.move("[^");const a=n.enter("footnoteReference"),c=n.enter("reference");return o+=r.move(n.safe(n.associationId(e),{after:"]",before:o})),c(),a(),o+=r.move("]"),o}function l7(){return{enter:{gfmFootnoteCallString:J$,gfmFootnoteCall:e7,gfmFootnoteDefinitionLabelString:t7,gfmFootnoteDefinition:n7},exit:{gfmFootnoteCallString:i7,gfmFootnoteCall:r7,gfmFootnoteDefinitionLabelString:s7,gfmFootnoteDefinition:o7}}}function c7(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:CI},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(i,r,o,a){const c=o.createTracker(a);let d=c.move("[^");const m=o.enter("footnoteDefinition"),h=o.enter("label");return d+=c.move(o.safe(o.associationId(i),{before:d,after:"]"})),h(),d+=c.move("]:"),i.children&&i.children.length>0&&(c.shift(4),d+=c.move((t?` -`:" ")+o.indentLines(o.containerFlow(i,c.current()),t?jI:u7))),m(),d}}function u7(e,t,n){return t===0?e:jI(e,t,n)}function jI(e,t,n){return(n?"":" ")+e}const d7=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];EI.peek=g7;function f7(){return{canContainEols:["delete"],enter:{strikethrough:p7},exit:{strikethrough:h7}}}function m7(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:d7}],handlers:{delete:EI}}}function p7(e){this.enter({type:"delete",children:[]},e)}function h7(e){this.exit(e)}function EI(e,t,n,i){const r=n.createTracker(i),o=n.enter("strikethrough");let a=r.move("~~");return a+=n.containerPhrasing(e,{...r.current(),before:a,after:"~"}),a+=r.move("~~"),o(),a}function g7(){return"~"}function y7(e){return e.length}function x7(e,t){const n=t||{},i=(n.align||[]).concat(),r=n.stringLength||y7,o=[],a=[],c=[],d=[];let m=0,h=-1;for(;++hm&&(m=e[h].length);++wd[w])&&(d[w]=j)}b.push(k)}a[h]=b,c[h]=S}let p=-1;if(typeof i=="object"&&"length"in i)for(;++pd[p]&&(d[p]=k),x[p]=k),g[p]=j}a.splice(1,0,g),c.splice(1,0,x),h=-1;const v=[];for(;++h "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),_7);return r(),a}function _7(e,t,n){return">"+(n?"":" ")+e}function k7(e,t){return nC(e,t.inConstruct,!0)&&!nC(e,t.notInConstruct,!1)}function nC(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let i=-1;for(;++ia&&(a=o):o=1,r=i+t.length,i=n.indexOf(t,r);return a}function w7(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 C7(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 j7(e,t,n,i){const r=C7(n),o=e.value||"",a=r==="`"?"GraveAccent":"Tilde";if(w7(e,n)){const p=n.enter("codeIndented"),g=n.indentLines(o,E7);return p(),g}const c=n.createTracker(i),d=r.repeat(Math.max(S7(o,r)+1,3)),m=n.enter("codeFenced");let h=c.move(d);if(e.lang){const p=n.enter(`codeFencedLang${a}`);h+=c.move(n.safe(e.lang,{before:h,after:" ",encode:["`"],...c.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${a}`);h+=c.move(" "),h+=c.move(n.safe(e.meta,{before:h,after:` -`,encode:["`"],...c.current()})),p()}return h+=c.move(` -`),o&&(h+=c.move(o+` -`)),h+=c.move(d),m(),h}function E7(e,t,n){return(n?"":" ")+e}function z0(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 N7(e,t,n,i){const r=z0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("definition");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("[");return m+=d.move(n.safe(n.associationId(e),{before:m,after:"]",...d.current()})),m+=d.move("]: "),c(),!e.url||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":` -`,...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),a(),m}function I7(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 Ru(e){return"&#x"+e.toString(16).toUpperCase()+";"}function gm(e,t,n){const i=Il(e),r=Il(t);return i===void 0?r===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:i===1?r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:r===void 0?{inside:!1,outside:!1}:r===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}NI.peek=T7;function NI(e,t,n,i){const r=I7(n),o=n.enter("emphasis"),a=n.createTracker(i),c=a.move(r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=gm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Ru(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=gm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Ru(p));const x=a.move(r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function T7(e,t,n){return n.options.emphasis||"*"}function R7(e,t){let n=!1;return O0(e,function(i){if("value"in i&&/\r?\n|\r/.test(i.value)||i.type==="break")return n=!0,mv}),!!((!e.depth||e.depth<3)&&N0(e)&&(t.options.setext||n))}function A7(e,t,n,i){const r=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(i);if(R7(e,n)){const h=n.enter("headingSetext"),p=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` -`,after:` -`});return p(),h(),g+` -`+(r===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` -`))+1))}const a="#".repeat(r),c=n.enter("headingAtx"),d=n.enter("phrasing");o.move(a+" ");let m=n.containerPhrasing(e,{before:"# ",after:` -`,...o.current()});return/^[\t ]/.test(m)&&(m=Ru(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),c(),m}II.peek=M7;function II(e){return e.value||""}function M7(){return"<"}TI.peek=D7;function TI(e,t,n,i){const r=z0(n),o=r==='"'?"Quote":"Apostrophe",a=n.enter("image");let c=n.enter("label");const d=n.createTracker(i);let m=d.move("![");return m+=d.move(n.safe(e.alt,{before:m,after:"]",...d.current()})),m+=d.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),m+=d.move("<"),m+=d.move(n.safe(e.url,{before:m,after:">",...d.current()})),m+=d.move(">")):(c=n.enter("destinationRaw"),m+=d.move(n.safe(e.url,{before:m,after:e.title?" ":")",...d.current()}))),c(),e.title&&(c=n.enter(`title${o}`),m+=d.move(" "+r),m+=d.move(n.safe(e.title,{before:m,after:r,...d.current()})),m+=d.move(r),c()),m+=d.move(")"),a(),m}function D7(){return"!"}RI.peek=O7;function RI(e,t,n,i){const r=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("![");const m=n.safe(e.alt,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function O7(){return"!"}AI.peek=L7;function AI(e,t,n){let i=e.value||"",r="`",o=-1;for(;new RegExp("(^|[^`])"+r+"([^`]|$)").test(i);)r+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++o\u007F]/.test(e.url))}DI.peek=z7;function DI(e,t,n,i){const r=z0(n),o=r==='"'?"Quote":"Apostrophe",a=n.createTracker(i);let c,d;if(MI(e,n)){const h=n.stack;n.stack=[],c=n.enter("autolink");let p=a.move("<");return p+=a.move(n.containerPhrasing(e,{before:p,after:">",...a.current()})),p+=a.move(">"),c(),n.stack=h,p}c=n.enter("link"),d=n.enter("label");let m=a.move("[");return m+=a.move(n.containerPhrasing(e,{before:m,after:"](",...a.current()})),m+=a.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),m+=a.move("<"),m+=a.move(n.safe(e.url,{before:m,after:">",...a.current()})),m+=a.move(">")):(d=n.enter("destinationRaw"),m+=a.move(n.safe(e.url,{before:m,after:e.title?" ":")",...a.current()}))),d(),e.title&&(d=n.enter(`title${o}`),m+=a.move(" "+r),m+=a.move(n.safe(e.title,{before:m,after:r,...a.current()})),m+=a.move(r),d()),m+=a.move(")"),c(),m}function z7(e,t,n){return MI(e,n)?"<":"["}OI.peek=P7;function OI(e,t,n,i){const r=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const c=n.createTracker(i);let d=c.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...c.current()});d+=c.move(m+"]["),a();const h=n.stack;n.stack=[],a=n.enter("reference");const p=n.safe(n.associationId(e),{before:d,after:"]",...c.current()});return a(),n.stack=h,o(),r==="full"||!m||m!==p?d+=c.move(p+"]"):r==="shortcut"?d=d.slice(0,-1):d+=c.move("]"),d}function P7(){return"["}function P0(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 B7(e){const t=P0(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 $7(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 LI(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 H7(e,t,n,i){const r=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?$7(n):P0(n);const c=e.ordered?a==="."?")":".":B7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const h=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&h&&(!h.children||!h.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),LI(n)===a&&h){let p=-1;for(;++p-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(r==="tab"||r==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const c=n.createTracker(i);c.move(o+" ".repeat(a-o.length)),c.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,c.current()),h);return d(),m;function h(p,g,x){return g?(x?"":" ".repeat(a))+p:(x?o:o+" ".repeat(a-o.length))+p}}function U7(e,t,n,i){const r=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,i);return o(),r(),a}const q7=ep(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function G7(e,t,n,i){return(e.children.some(function(a){return q7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,i)}function W7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}zI.peek=Y7;function zI(e,t,n,i){const r=W7(n),o=n.enter("strong"),a=n.createTracker(i),c=a.move(r+r);let d=a.move(n.containerPhrasing(e,{after:r,before:c,...a.current()}));const m=d.charCodeAt(0),h=gm(i.before.charCodeAt(i.before.length-1),m,r);h.inside&&(d=Ru(m)+d.slice(1));const p=d.charCodeAt(d.length-1),g=gm(i.after.charCodeAt(0),p,r);g.inside&&(d=d.slice(0,-1)+Ru(p));const x=a.move(r+r);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:h.outside},c+d+x}function Y7(e,t,n){return n.options.strong||"*"}function X7(e,t,n,i){return n.safe(e.value,i)}function K7(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 Z7(e,t,n){const i=(LI(n)+(n.options.ruleSpaces?" ":"")).repeat(K7(n));return n.options.ruleSpaces?i.slice(0,-1):i}const PI={blockquote:b7,break:iC,code:j7,definition:N7,emphasis:NI,hardBreak:iC,heading:A7,html:II,image:TI,imageReference:RI,inlineCode:AI,link:DI,linkReference:OI,list:H7,listItem:V7,paragraph:U7,root:G7,strong:zI,text:X7,thematicBreak:Z7};function Q7(){return{enter:{table:J7,tableData:rC,tableHeader:rC,tableRow:tH},exit:{codeText:nH,table:eH,tableData:dy,tableHeader:dy,tableRow:dy}}}function J7(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 eH(e){this.exit(e),this.data.inTable=void 0}function tH(e){this.enter({type:"tableRow",children:[]},e)}function dy(e){this.exit(e)}function rC(e){this.enter({type:"tableCell",children:[]},e)}function nH(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,iH));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function iH(e,t){return t==="|"?t:e}function rH(e){const t=e||{},n=t.tableCellPadding,i=t.tablePipeAlign,r=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:a,tableCell:d,tableRow:c}};function a(x,v,b,S){return m(h(x,b,S),x.align)}function c(x,v,b,S){const w=p(x,b,S),k=m([w]);return k.slice(0,k.indexOf(` -`))}function d(x,v,b,S){const w=b.enter("tableCell"),k=b.enter("phrasing"),j=b.containerPhrasing(x,{...S,before:o,after:o});return k(),w(),j}function m(x,v){return x7(x,{align:v,alignDelimiters:i,padding:n,stringLength:r})}function h(x,v,b){const S=x.children;let w=-1;const k=[],j=v.enter("table");for(;++w0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const kH={tokenize:TH,partial:!0};function SH(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:EH,continuation:{tokenize:NH},exit:IH}},text:{91:{name:"gfmFootnoteCall",tokenize:jH},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:wH,resolveTo:CH}}}}function wH(e,t,n){const i=this;let r=i.events.length;const o=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let a;for(;r--;){const d=i.events[r][1];if(d.type==="labelImage"){a=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(!a||!a._balanced)return n(d);const m=Ur(i.sliceSerialize({start:a.end,end:i.now()}));return m.codePointAt(0)!==94||!o.includes(m.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function CH(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 i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},e[e.length-1][1].start)},a={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",r,t],["exit",r,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...c),e}function jH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o=0,a;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",m)}function m(p){if(o>999||p===93&&!a||p===null||p===91||En(p))return n(p);if(p===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return r.includes(Ur(i.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(p)}return En(p)||(a=!0),o++,e.consume(p),p===92?h:m}function h(p){return p===91||p===92||p===93?(e.consume(p),o++,m):m(p)}}function EH(e,t,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,a=0,c;return d;function d(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),m}function m(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",h):n(v)}function h(v){if(a>999||v===93&&!c||v===null||v===91||En(v))return n(v);if(v===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return o=Ur(i.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return En(v)||(c=!0),a++,e.consume(v),v===92?p:h}function p(v){return v===91||v===92||v===93?(e.consume(v),a++,h):h(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),r.includes(o)||r.push(o),sn(e,x,"gfmFootnoteDefinitionWhitespace")):n(v)}function x(v){return t(v)}}function NH(e,t,n){return e.check(Gu,t,e.attempt(kH,t,n))}function IH(e){e.exit("gfmFootnoteDefinition")}function TH(e,t,n){const i=this;return sn(e,r,"gfmFootnoteDefinitionIndent",5);function r(o){const a=i.events[i.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function RH(e){let n=(e||{}).singleTilde;const i={name:"strikethrough",tokenize:o,resolveAll:r};return n==null&&(n=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function r(a,c){let d=-1;for(;++d1?d(v):(a.consume(v),p++,x);if(p<2&&!n)return d(v);const S=a.exit("strikethroughSequenceTemporary"),w=Il(v);return S._open=!w||w===2&&!!b,S._close=!b||b===2&&!!w,c(v)}}}class AH{constructor(){this.map=[]}add(t,n,i){MH(this,t,n,i)}consume(t){if(this.map.sort(function(o,a){return o[0]-a[0]}),this.map.length===0)return;let n=this.map.length;const i=[];for(;n>0;)n-=1,i.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];i.push(t.slice()),t.length=0;let r=i.pop();for(;r;){for(const o of r)t.push(o);r=i.pop()}this.map.length=0}}function MH(e,t,n,i){let r=0;if(!(n===0&&i.length===0)){for(;r-1;){const P=i.events[I][1].type;if(P==="lineEnding"||P==="linePrefix")I--;else break}const $=I>-1?i.events[I][1].type:null,G=$==="tableHead"||$==="tableRow"?T:d;return G===T&&i.parser.lazy[i.now().line]?n(O):G(O)}function d(O){return e.enter("tableHead"),e.enter("tableRow"),m(O)}function m(O){return O===124||(a=!0,o+=1),h(O)}function h(O){return O===null?n(O):mt(O)?o>1?(o=0,i.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),x):n(O):Yt(O)?sn(e,h,"whitespace")(O):(o+=1,a&&(a=!1,r+=1),O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),a=!0,h):(e.enter("data"),p(O)))}function p(O){return O===null||O===124||En(O)?(e.exit("data"),h(O)):(e.consume(O),O===92?g:p)}function g(O){return O===92||O===124?(e.consume(O),p):p(O)}function x(O){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(O):(e.enter("tableDelimiterRow"),a=!1,Yt(O)?sn(e,v,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):v(O))}function v(O){return O===45||O===58?S(O):O===124?(a=!0,e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),b):z(O)}function b(O){return Yt(O)?sn(e,S,"whitespace")(O):S(O)}function S(O){return O===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),w):O===45?(o+=1,w(O)):O===null||mt(O)?N(O):z(O)}function w(O){return O===45?(e.enter("tableDelimiterFiller"),k(O)):z(O)}function k(O){return O===45?(e.consume(O),k):O===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),j):(e.exit("tableDelimiterFiller"),j(O))}function j(O){return Yt(O)?sn(e,N,"whitespace")(O):N(O)}function N(O){return O===124?v(O):O===null||mt(O)?!a||r!==o?z(O):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(O)):z(O)}function z(O){return n(O)}function T(O){return e.enter("tableRow"),M(O)}function M(O){return O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),M):O===null||mt(O)?(e.exit("tableRow"),t(O)):Yt(O)?sn(e,M,"whitespace")(O):(e.enter("data"),L(O))}function L(O){return O===null||O===124||En(O)?(e.exit("data"),M(O)):(e.consume(O),O===92?A:L)}function A(O){return O===92||O===124?(e.consume(O),L):L(O)}}function zH(e,t){let n=-1,i=!0,r=0,o=[0,0,0,0],a=[0,0,0,0],c=!1,d=0,m,h,p;const g=new AH;for(;++nn[2]+1){const v=n[2]+1,b=n[3]-n[2]-1;e.add(v,b,[])}}e.add(n[3]+1,0,[["exit",p,t]])}return r!==void 0&&(o.end=Object.assign({},ol(t.events,r)),e.add(r,0,[["exit",o,t]]),o=void 0),o}function oC(e,t,n,i,r){const o=[],a=ol(t.events,n);r&&(r.end=Object.assign({},a),o.push(["exit",r,t])),i.end=Object.assign({},a),o.push(["exit",i,t]),e.add(n+1,0,o)}function ol(e,t){const n=e[t],i=n[0]==="enter"?"start":"end";return n[1][i]}const PH={name:"tasklistCheck",tokenize:$H};function BH(){return{text:{91:PH}}}function $H(e,t,n){const i=this;return r;function r(d){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return En(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),a):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),a):n(d)}function a(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),c):n(d)}function c(d){return mt(d)?t(d):Yt(d)?e.check({tokenize:HH},t,n)(d):n(d)}}function HH(e,t,n){return sn(e,i,"whitespace");function i(r){return r===null?n(r):t(r)}}function FH(e){return iI([mH(),SH(),RH(e),OH(),BH()])}const VH={};function UH(e){const t=this,n=e||VH,i=t.data(),r=i.micromarkExtensions||(i.micromarkExtensions=[]),o=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),a=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);r.push(FH(n)),o.push(cH()),a.push(uH(n))}function qH(e){let t=String(e??"").replace(/\r\n/g,` -`).trim();if(!t)return"";const n=/[^\n][ \t]*#{2,6}[ \t]*\S/.test(t),i=/^#{1,6}[ \t]*[^*|\n]{1,119}\S(?=(?:\*\*[^*\n]{1,80}\*\*[::]|\|[^|\n]{1,80}\|))/m.test(t),r=t.match(new RegExp("(?=2&&(t=t.replace(/([^\n])[ \t]*(\d{1,2}\.)[ \t]+(?=(?:\*\*|[A-Za-z\u4e00-\u9fff]))/g,`$1 -$2 `)),o.length>=2&&(t=t.replace(new RegExp("(?/\|\|[ \t]*:?-{3,}/.test(a)?a.replace(/\|\|/g,`| -|`):a),t=t.replace(new RegExp("(?<=[`。!?;:))])---(?=\\S)","g"),` - ---- - -`),t.trim())}const GH=30,fy=10;function WH({className:e,children:t,forceExpanded:n=!1}){const[i,r]=C.useState(!1),[o,a]=C.useState(!1),c=String(t).replace(/\n$/,""),d=e?.replace("language-","")||"",m=c.split(` -`),h=m.length>GH,p=h?m.length-fy*2:0,g=C.useCallback(()=>{navigator.clipboard.writeText(c),r(!0),setTimeout(()=>r(!1),1500)},[c]);return u.jsxs("div",{className:"code-block-wrap",children:[u.jsxs("div",{className:"code-block-header",children:[u.jsxs("span",{className:"code-block-lang",children:[d||"code",h?` (${m.length} lines)`:""]}),u.jsx("button",{className:"code-block-copy",onClick:g,children:i?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Lm,{})," ",u.jsx("span",{children:"Copy"})]})})]}),u.jsx("pre",{children:u.jsx("code",{className:e,children:h&&!n&&!o?u.jsxs(u.Fragment,{children:[m.slice(0,fy).join(` -`)+` -`,u.jsxs("span",{className:"code-block-omitted",onClick:()=>a(!0),children:["... +",p," lines (click to expand)"]}),` -`+m.slice(-fy).join(` -`)]}):c})}),h&&!n&&o&&u.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>a(!1),children:["Collapse (",m.length," lines)"]})]})}const YH=3e3,XH=60,my=800;function aC(e){if(e.length>YH)return!0;let t=0;for(let n=0;n=XH)return!0;return!1}function KH(e){const t=e.lastIndexOf(` -`,my);return e.slice(0,t>my/2?t:my)}const wi=Mt.memo(function({content:t,className:n="msg-content-agent",collapseMode:i="auto"}){const r=qH(t),o=i!=="never"&&aC(r),[a,c]=C.useState(o);C.useEffect(()=>{c(i!=="never"&&aC(r))},[i,r]);const d=a?KH(r):r,m=r.split(` -`).length,h=r.length,p={code({className:g,children:x,...v}){return g?.startsWith("language-")?u.jsx(WH,{className:g,forceExpanded:i==="never",children:x}):u.jsx("code",{className:g,...v,children:x})}};return u.jsxs("div",{className:n,children:[u.jsx(R$,{remarkPlugins:[UH],components:p,children:d}),o&&a&&u.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>c(!1),children:["Show more (",m," lines, ",(h/1e3).toFixed(1),"k chars)"]}),o&&!a&&u.jsx("button",{className:"msg-collapse-toggle",onClick:()=>c(!0),children:"Show less"})]})}),xv="codex",py="native";function WI(e){if(!e)return{kind:"fallback"};if(e.kind==="employee"){const t=String(e.id??e.employee_id??"").trim();return t?{kind:"employee",id:t}:{kind:"fallback"}}if(e.kind==="template"){const t=String(e.id??e.template_id??"").trim();return t?{kind:"template",id:t}:{kind:"fallback"}}return{kind:"fallback"}}function YI(e){const t=WI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function ZH(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(h=>String(h??"").trim()).filter(Boolean)),c=h=>{const p=`${h.template_id??""} ${h.template_name??""} ${h.category??""} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),g=String(h.category??"").toLowerCase();let x=0;for(const v of o.split(/[^a-z0-9]+/).filter(b=>b.length>=3))(p.includes(v)||g&&v.includes(g))&&(x+=1);return(p.includes(i.replace(/_/g,"-"))||p.includes(i.replace(/_/g," ")))&&(x+=2),x},d=t.map(h=>{const p=String(h.employee_id??"").trim(),g=String(h.employee_name??p).trim()||p,x=String(h.role_id??"").trim(),v=String(h.category??"").trim(),b=[x,v].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:g,subtitle:b,category:v,searchText:`${p} ${g} ${x} ${v} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||x===i?0:2}}).filter(h=>h.id).sort((h,p)=>h.rank-p.rank||h.name.localeCompare(p.name)),m=n.map(h=>{const p=String(h.template_id??"").trim(),g=String(h.template_name??p).trim()||p,x=String(h.category??"").trim(),v=[x,p].filter(Boolean).join(" · ")||p;return{kind:"template",id:p,name:g,subtitle:v,category:x,searchText:`${p} ${g} ${x} ${(h.domains??[]).join(" ")} ${(h.tags??[]).join(" ")}`.toLowerCase(),rank:c(h)}}).filter(h=>h.id).sort((h,p)=>p.rank-h.rank||h.name.localeCompare(p.name));return[...d,...m,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function QH(e,t){const n=YI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function JH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function lC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=WI(i[o]??r.default_selection))}return n}function cC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??xv)}return i}function XI(e,t){const n=new Map(e.map(d=>[String(d.role_id??"").trim(),String(d.reports_to??"").trim()])),i=new Set(e.map(d=>String(d.role_id??"").trim()).filter(d=>d&&t[d]==="jiuwenswarm")),r=d=>{const m=new Set;let h=n.get(d)??"";for(;h&&h!=="owner"&&!m.has(h);){if(i.has(h))return!0;m.add(h),h=n.get(h)??""}return!1},o=new Set([...i].filter(d=>!r(d))),a=new Map,c=new Map;for(const d of e){const m=String(d.role_id??"").trim();if(!m)continue;let h=m;const p=new Set;let g="";for(;h&&h!=="owner"&&!p.has(h);){if(o.has(h)){g=h;break}p.add(h),h=n.get(h)??""}g&&(a.set(m,g),c.set(g,[...c.get(g)??[],m]))}return{boundaryByRole:a,coveredRoleIdsByBoundary:c}}function eF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const tF=Mt.memo(function({meta:t,onReply:n,responded:i}){const r=C.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],c=C.useMemo(()=>{const T={};for(const M of r){const L=String(M.role_id??"").trim();L&&(T[L]=ZH(M,o,a))}return T},[o,r,a]),[d,m]=C.useState({}),[h,p]=C.useState(()=>lC(t,r)),[g,x]=C.useState(()=>cC(t,r)),[v,b]=C.useState(t.recruitment_agent??py),S=i,w=t.recommended_action==="auto_recruit"&&a.length>0,k=C.useMemo(()=>XI(r,g),[g,r]);C.useEffect(()=>{!S||!eF(t)||(p(lC(t,r)),x(cC(t,r)),b(t.recruitment_agent??py))},[S,t,r]),C.useEffect(()=>{b(t.recruitment_agent??py)},[t.recruitment_agent]);const j=C.useCallback(T=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:M,response_to_checkpoint_type:"company_staffing_selection",staffing_action:T,staffing_selections:h,recruitment_agent:v,recruitment_role_agents:r.reduce((L,A)=>{const O=String(A.role_id??"").trim();return O&&(L[O]=g[O]??A.selected_agent??A.default_agent??xv),L},{})}},[t.checkpoint_id,v,g,r,h]),N=C.useCallback(()=>{S||n("approve",j("manual_approve"))},[j,S,n]),z=C.useCallback(()=>{S||n("auto recruit",j("auto_recruit"))},[j,S,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-staffing",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-staffing",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),u.jsx("path",{d:"M1.5 14c.6-2.5 2.2-4 4.5-4s3.9 1.5 4.5 4"}),u.jsx("path",{d:"M12.5 3.5v5M10 6h5"})]})}),u.jsx("div",{className:"ckpt-title",children:"Manual Staffing"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),w&&!S&&u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"Recruit recommended"}),S&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`staffing-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:v,onChange:T=>b(T.target.value),disabled:S,children:$N.map(T=>u.jsx("option",{value:T,children:Os[T]},T))})]}),u.jsx("div",{className:"ckpt-staffing-grid",children:r.map(T=>{const M=String(T.role_id??"").trim(),L=T.staffing_locked&&T.staffing_mode==="opaque_external_team",A=k.boundaryByRole.get(M)??"",O=A===M,I=!!A,$=L||I,G=L?T.covered_role_ids??[M]:k.coveredRoleIdsByBoundary.get(A)??[M],P=c[M]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],F=QH(P,h[M]),V=d[M]??"",Y=P.filter(U=>JH(U,V)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:M}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${$?"external-team":F.kind}`,children:$?"JiuwenSwarm Team":F.kind})]}),T.role_label&&T.role_label!==M&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:T.role_label})}),$?u.jsxs("div",{className:"ckpt-external-team-staffing",children:[u.jsx("b",{children:I&&!O?`Covered by Team at ${A}`:"Internally staffed external team"}),u.jsxs("span",{children:["One opaque Team covers: ",G.join(", ")]}),u.jsx("span",{children:"No OPC employees are recruited for these covered roles."})]}):u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:F.name}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:F.category}),u.jsx("span",{className:"ckpt-domain-tag",children:F.subtitle})]})]}),!$&&u.jsx("input",{className:"ckpt-staffing-search",value:V,onChange:U=>m(Z=>({...Z,[M]:U.target.value})),placeholder:"Search employees or templates...",disabled:S}),!$&&u.jsx("div",{className:"ckpt-staffing-options",children:Y.map(U=>{const Z=`${U.kind}:${U.id}`===YI(h[M]);return u.jsxs("button",{className:`ckpt-staffing-option${Z?" active":""}`,onClick:()=>p(W=>({...W,[M]:{kind:U.kind,id:U.id}})),disabled:S,title:U.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:U.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:U.name})]},`${U.kind}:${U.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${M}`,children:"Execution Agent"}),u.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${M}`,className:"ckpt-agent-select",value:I&&!O?"jiuwenswarm":g[M]??T.selected_agent??T.default_agent??xv,onChange:U=>x(Z=>({...Z,[M]:U.target.value})),disabled:S||!!L||I&&!O,children:Km.map(U=>u.jsx("option",{value:U,children:Os[U]},U))})]})]},M)})}),!S&&u.jsx("div",{className:"ckpt-actions",children:w?u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:z,children:"Auto Recruit"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Approve Selections"})]}):u.jsxs(u.Fragment,{children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Approve Selections"}),a.length>0&&u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:z,children:"Auto Recruit"})]})})]})}),Au="codex",hy="native";function KI(e){if(!e)return{kind:"fallback"};if(e.kind==="employee"){const t=String(e.id??e.employee_id??"").trim();return t?{kind:"employee",id:t}:{kind:"fallback"}}if(e.kind==="template"){const t=String(e.id??e.template_id??"").trim();return t?{kind:"template",id:t}:{kind:"fallback"}}return{kind:"fallback"}}function ZI(e){const t=KI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function nF(e,t,n){const i=String(e.role_id??"").trim(),r=String(e.role_label??"").trim(),o=`${i} ${r} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),c=t.map(m=>{const h=String(m.employee_id??"").trim(),p=String(m.employee_name??h).trim()||h,g=String(m.role_id??"").trim(),x=String(m.category??"").trim(),v=[g,x].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:p,subtitle:v,category:x,searchText:`${h} ${p} ${g} ${x} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||g===i?0:2}}).filter(m=>m.id).sort((m,h)=>m.rank-h.rank||m.name.localeCompare(h.name)),d=n.map(m=>{const h=String(m.template_id??"").trim(),p=String(m.template_name??h).trim()||h,g=String(m.category??"").trim(),x=[g,h].filter(Boolean).join(" · ")||h,v=`${h} ${p} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),b=o.split(/[^a-z0-9]+/).filter(S=>S.length>=3).reduce((S,w)=>S+(v.includes(w)?1:0),0);return{kind:"template",id:h,name:p,subtitle:x,category:g,searchText:v,rank:b}}).filter(m=>m.id).sort((m,h)=>h.rank-m.rank||m.name.localeCompare(h.name));return[...c,...d,{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}]}function iF(e,t){const n=ZI(t);return e.find(i=>`${i.kind}:${i.id}`===n)??e[0]}function rF(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(i=>e.searchText.includes(i))}function sF(e){return e.map(t=>{const n=String(t.role_id??"").trim(),i=String(t.existing_employee?.employee_id??"").trim(),r=String(t.candidate?.template_id??"").trim(),o=i?{kind:"employee",id:i}:r?{kind:"template",id:r}:{kind:"fallback"};return{role_id:n,role_label:t.role_labels?.[0]??n,role_responsibility:"",default_selection:o,same_role_employee_ids:t.existing_employee_ids??[],fallback_available:!0,default_agent:t.default_agent??Au,selected_agent:t.selected_agent??t.default_agent??Au,default_source:"recruitment"}}).filter(t=>t.role_id)}function oF(e,t){return t.kind==="template"&&e?.candidate?.template_id===t.id?e.candidate.proposed_name||e.candidate.template_name||t.name:t.kind==="employee"&&e?.existing_employee?.employee_id===t.id&&e.existing_employee.employee_name||t.name}function uC(e,t){const n={},i=e.staffing_selections??{};for(const r of t){const o=String(r.role_id??"").trim();o&&(n[o]=KI(i[o]??r.default_selection))}return n}function dC(e,t){const n=e.recruitment_role_agents??{},i={};for(const r of t){const o=String(r.role_id??"").trim();o&&(i[o]=n[o]??r.selected_agent??r.default_agent??Au)}return i}function aF(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const lF=Mt.memo(function({meta:t,onReply:n,responded:i}){const r=t.proposals??[],o=C.useMemo(()=>{const O={};for(const I of r){const $=String(I.role_id??"").trim();$&&(O[$]=I)}return O},[r]),a=C.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:sF(r),[t.staffing_roles,r]),c=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],h=C.useMemo(()=>{const O={};for(const I of a){const $=String(I.role_id??"").trim();$&&(O[$]=nF(I,c,d))}return O},[c,a,d]),[p,g]=C.useState({}),[x,v]=C.useState(""),[b,S]=C.useState(()=>uC(t,a)),[w,k]=C.useState(()=>dC(t,a)),[j,N]=C.useState(t.recruitment_agent??hy),z=i,T=C.useMemo(()=>XI(a,w),[w,a]);C.useEffect(()=>{!z||!aF(t)||(S(uC(t,a)),k(dC(t,a)),N(t.recruitment_agent??hy))},[z,t,a]),C.useEffect(()=>{N(t.recruitment_agent??hy)},[t.recruitment_agent]);const M=C.useCallback(O=>{const I=String(t.checkpoint_id??"").trim();if(!I)throw new Error("Recruitment checkpoint reply requires checkpoint_id metadata.");const $=String(t.checkpoint_type??"").trim();return{response_to_checkpoint_id:I,response_to_checkpoint_type:$||"company_recruitment_confirmation",checkpoint_reply_kind:O,staffing_selections:b,recruitment_agent:j,recruitment_role_agents:a.reduce((G,P)=>{const F=String(P.role_id??"").trim();return F&&(G[F]=w[F]??P.selected_agent??P.default_agent??Au),G},{})}},[t.checkpoint_id,t.checkpoint_type,j,w,a,b]),L=C.useCallback(()=>{z||n("approve",M("approve"))},[M,z,n]),A=C.useCallback(async()=>{if(z||!x.trim())return;await n(x.trim(),M("feedback"))&&v("")},[M,z,x,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-recruitment",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-recruit",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("circle",{cx:"6",cy:"5",r:"3"}),u.jsx("path",{d:"M2 14c0-2.2 1.8-4 4-4s4 1.8 4 4"}),u.jsx("path",{d:"M12 5v4M10 7h4"})]})}),u.jsx("div",{className:"ckpt-title",children:"Recruitment Review"}),u.jsx("span",{className:"ckpt-badge ckpt-badge-profile",children:t.company_profile||"corporate"}),z&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),u.jsxs("div",{className:"ckpt-recruiter-agent",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruitment-recruiter-agent-${t.checkpoint_id}`,children:"Recruiter Agent"}),u.jsx("select",{id:`recruitment-recruiter-agent-${t.checkpoint_id}`,className:"ckpt-agent-select",value:j,onChange:O=>N(O.target.value),disabled:z,children:$N.map(O=>u.jsx("option",{value:O,children:Os[O]},O))})]}),m.length>0&&u.jsx("div",{className:"ckpt-recruitment-reasons",children:m.map(O=>u.jsxs("div",{className:"ckpt-recruitment-reason",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:O.role_id}),O.role_label&&O.role_label!==O.role_id&&u.jsx("span",{className:"ckpt-field-tag",children:O.role_label}),O.selection_label&&u.jsx("span",{className:"ckpt-badge ckpt-badge-template",children:O.selection_label})]}),O.rationale&&u.jsx("div",{className:"ckpt-rationale",children:O.rationale})]},O.role_id))}),u.jsx("div",{className:"ckpt-staffing-grid",children:a.map(O=>{const I=String(O.role_id??"").trim(),$=O.staffing_locked&&O.staffing_mode==="opaque_external_team",G=T.boundaryByRole.get(I)??"",P=G===I,F=!!G,V=$||F,Y=$?O.covered_role_ids??[I]:T.coveredRoleIdsByBoundary.get(G)??[I],U=h[I]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],Z=iF(U,b[I]),W=o[I],q=p[I]??"",Q=U.filter(D=>rF(D,q)).slice(0,8);return u.jsxs("div",{className:"ckpt-staffing-card",children:[u.jsxs("div",{className:"ckpt-proposal-header",children:[u.jsx("span",{className:"ckpt-role-name",children:I}),u.jsx("span",{className:`ckpt-badge ckpt-badge-${V?"external-team":Z.kind}`,children:V?"JiuwenSwarm Team":Z.kind})]}),O.role_label&&O.role_label!==I&&u.jsx("div",{className:"ckpt-role-labels",children:u.jsx("span",{className:"ckpt-field-tag",children:O.role_label})}),V?u.jsxs("div",{className:"ckpt-external-team-staffing",children:[u.jsx("b",{children:F&&!P?`Covered by Team at ${G}`:"Internally staffed external team"}),u.jsxs("span",{children:["One opaque Team covers: ",Y.join(", ")]}),u.jsx("span",{children:"No OPC employees are recruited for these covered roles."})]}):u.jsxs("div",{className:"ckpt-staffing-selected",children:[u.jsx("div",{className:"ckpt-cand-name",children:oF(W,Z)}),u.jsxs("div",{className:"ckpt-cand-meta",children:[u.jsx("span",{className:"ckpt-cand-category",children:Z.category}),u.jsx("span",{className:"ckpt-domain-tag",children:Z.subtitle})]})]}),!V&&u.jsx("input",{className:"ckpt-staffing-search",value:q,onChange:D=>g(K=>({...K,[I]:D.target.value})),placeholder:"Search employees or templates...",disabled:z}),!V&&u.jsx("div",{className:"ckpt-staffing-options",children:Q.map(D=>{const K=`${D.kind}:${D.id}`===ZI(b[I]);return u.jsxs("button",{className:`ckpt-staffing-option${K?" active":""}`,onClick:()=>S(ne=>({...ne,[I]:{kind:D.kind,id:D.id}})),disabled:z,title:D.subtitle,children:[u.jsx("span",{className:"ckpt-staffing-option-kind",children:D.kind}),u.jsx("span",{className:"ckpt-staffing-option-name",children:D.name})]},`${D.kind}:${D.id}`)})}),u.jsxs("div",{className:"ckpt-agent-picker",children:[u.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${I}`,children:"Execution Agent"}),u.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${I}`,className:"ckpt-agent-select",value:F&&!P?"jiuwenswarm":w[I]??O.selected_agent??O.default_agent??Au,onChange:D=>k(K=>({...K,[I]:D.target.value})),disabled:z||!!$||F&&!P,children:Km.map(D=>u.jsx("option",{value:D,children:Os[D]},D))})]})]},I)})}),!z&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:L,children:"Approve"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:x,onChange:O=>v(O.target.value),rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:A,disabled:!x.trim(),children:"Send Feedback"})]})]})}),cF={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},fC={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},uF=Mt.memo(function({meta:t,onReply:n,responded:i}){const r=i,o=C.useCallback(()=>{r||n("approve")},[r,n]),a=C.useCallback(()=>{r||n("deny")},[r,n]),c=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",h=t.risk_level||"medium",p=t.impact_summary||{};return u.jsxs("div",{className:"ckpt-panel ckpt-reorg",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-reorg",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"10",y:"1",width:"5",height:"5",rx:"1"}),u.jsx("rect",{x:"5.5",y:"10",width:"5",height:"5",rx:"1"}),u.jsx("path",{d:"M3.5 6v2.5a1 1 0 001 1h7a1 1 0 001-1V6"}),u.jsx("path",{d:"M8 9.5V10"})]})}),u.jsx("div",{className:"ckpt-title",children:t.title||"Company Reorg"}),r&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),u.jsxs("div",{className:"ckpt-reorg-badges",children:[u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:cF[m]||m}),u.jsxs("span",{className:"ckpt-badge",style:{color:fC[h]||"var(--text-secondary)",borderColor:fC[h]||"var(--border)"},children:["Risk: ",h.charAt(0).toUpperCase()+h.slice(1)]})]}),t.summary&&u.jsx("div",{className:"ckpt-summary",children:t.summary}),t.rationale&&u.jsx("div",{className:"ckpt-rationale",children:t.rationale}),c.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Role Changes"}),c.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.role_id}),g.replacement_role_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_role_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),d.length>0&&u.jsxs("div",{className:"ckpt-changes-section",children:[u.jsx("div",{className:"ckpt-changes-title",children:"Work Item Projection Changes"}),d.map((g,x)=>u.jsxs("div",{className:"ckpt-change-row",children:[u.jsx("span",{className:`ckpt-change-action ckpt-action-${g.action}`,children:g.action}),u.jsx("span",{className:"ckpt-change-id",children:g.work_item_projection_id}),g.replacement_work_item_projection_id&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"ckpt-change-arrow",children:"→"}),u.jsx("span",{className:"ckpt-change-id",children:g.replacement_work_item_projection_id})]}),g.reason&&u.jsx("span",{className:"ckpt-change-reason",children:g.reason})]},x))]}),Object.keys(p).length>0&&u.jsxs("div",{className:"ckpt-impact",children:[p.affected_tasks!=null&&u.jsxs("span",{children:["Tasks affected: ",p.affected_tasks]}),p.affected_roles!=null&&u.jsxs("span",{children:["Roles affected: ",p.affected_roles]}),p.migration_count!=null&&u.jsxs("span",{children:["Migrations: ",p.migration_count]})]}),!r&&u.jsxs("div",{className:"ckpt-actions",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:o,children:"Approve Reorg"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-deny",onClick:a,children:"Deny"})]})]})});function dF(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function fF(e){switch(e){case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"cancelled":case"canceled":return"Cancelled";case"failed":return"Failed";case"outcome_unknown":return"Outcome unknown";case"resolved":return"Resolved";default:return"Responded"}}const mC=Mt.memo(function({meta:t,onReply:n,responded:i,submitting:r=!1}){const o=i,a=String(t.checkpoint_status??"").trim().toLowerCase(),c=fF(a),d=String(t.prompt??t.summary??""),m=C.useMemo(()=>d.split(` -`).map(T=>T.trim()).filter(Boolean),[d]),h=dF(d).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",p=["tool_permission","action_permission"].includes(String(t.checkpoint_type??"")),g=t.checkpoint_type==="tool_permission"?"Tool Authorization":t.checkpoint_type==="action_permission"?"Action Authorization":h,x=p?String(t.checkpoint_type).replace(/_/g," "):String(t.escalation_type??"decision_needed").replace(/_/g," "),v=p?d:m.slice(1).join(` -`).trim(),b=String(t.summary??"").trim(),S=(t.options??[]).filter(T=>!!T?.id),w=C.useMemo(()=>(t.active_subagents??[]).filter(T=>!!T&&typeof T=="object"),[t.active_subagents]),k=C.useMemo(()=>(t.permission_requests??[]).filter(T=>!!T&&typeof T=="object"),[t.permission_requests]),j=String(t.worktree_path??"").trim(),N=w.length>0||k.length>0||!!j,z=C.useCallback(T=>{o||r||n(T.label||T.id,{interaction_option_id:T.id,interaction_option_label:T.label||T.id,checkpoint_reply_kind:T.id.includes("deny")?"deny":"approve"})},[o,n,r]);return u.jsxs("div",{className:"ckpt-panel ckpt-escalation",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-escalation",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14.5 13H1.5L8 1.5Z"}),u.jsx("path",{d:"M8 5.5V9"}),u.jsx("circle",{cx:"8",cy:"11.5",r:"0.75",fill:"currentColor",stroke:"none"})]})}),u.jsx("div",{className:"ckpt-title",children:g}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:x}),o&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:c})]}),b&&b!==h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(wi,{content:b,className:"ckpt-markdown",collapseMode:p?"never":"auto"})]}),v&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),p?u.jsx("pre",{className:"ckpt-permission-verbatim",children:u.jsx("code",{children:v})}):u.jsx(wi,{content:v,className:"ckpt-markdown"})]}),N&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[j&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:j})]}),w.length>0&&u.jsxs("div",{children:["Active subagents: ",w.length]}),k.length>0&&u.jsxs("div",{children:["Pending permission records: ",k.length]})]})]}),!o&&S.length>0&&u.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:S.map(T=>u.jsx("button",{className:`ckpt-btn ${T.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}${r?" ckpt-btn-submitting":""}`,onClick:()=>z(T),disabled:r,children:T.label||T.id},T.id))}),!o&&t.default_action&&u.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",u.jsx("code",{children:t.default_action})]})]})});function mF(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function pF(e){switch(e){case"ignored":return"Ignored";case"timeout":case"timed_out":case"expired":return"Expired";case"stale":case"invalid":return"Inactive";case"superseded":return"Superseded";case"cancelled":case"canceled":return"Cancelled";case"resolved":return"Resolved";default:return"Responded"}}const hF=Mt.memo(function({meta:t,onReply:n,responded:i,submitting:r=!1}){const o=i,[a,c]=C.useState(""),d=String(t.checkpoint_status??"").trim().toLowerCase(),m=pF(d),h=String(t.prompt??t.summary??"").trim(),g=`${String(t.work_item_projection_title??mF(h)??"Human Review").trim()||"Human Review"} (for self-evolution)`,x=String(t.summary??"").trim(),v=C.useMemo(()=>(t.active_subagents??[]).filter(M=>!!M&&typeof M=="object"),[t.active_subagents]),b=C.useMemo(()=>(t.permission_requests??[]).filter(M=>!!M&&typeof M=="object"),[t.permission_requests]),S=String(t.worktree_path??"").trim(),w=v.length>0||b.length>0||!!S,k=o||r,j=C.useCallback((M,L="")=>{const A=String(t.checkpoint_id??"").trim();if(!A)throw new Error("Delivery self-evolution reply requires checkpoint_id metadata.");const O={response_to_checkpoint_id:A,response_to_checkpoint_type:"company_delivery_feedback",checkpoint_reply_kind:M};return(M==="approve"||M==="feedback")&&(O.self_evolution_trigger=!0,O.human_feedback_text=L),O},[t.checkpoint_id]),N=C.useCallback(async()=>{if(k)return;const M=j("approve");await n("I fully agree with this delivery.",M)},[k,j,n]),z=C.useCallback(async()=>{const M=a.trim();if(k||!M)return;const L=j("feedback",M);await n(M,L)&&c("")},[k,j,a,n]),T=C.useCallback(async()=>{if(k)return;const M=j("ignore");await n("Ignore this self-evolution review.",M)},[k,j,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-delivery-feedback",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M8 1.5L14 5v4.5c0 2.25-1.8 4.25-6 5-4.2-.75-6-2.75-6-5V5L8 1.5Z"}),u.jsx("path",{d:"M5.5 8.25L7.25 10l3.25-4"})]})}),u.jsx("div",{className:"ckpt-title",children:g}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),o&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:m})]}),x&&x!==g&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(wi,{content:x,className:"ckpt-markdown"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),u.jsx(wi,{content:h,className:"ckpt-markdown"})]}),w&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[S&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:S})]}),v.length>0&&u.jsxs("div",{children:["Active subagents: ",v.length]}),b.length>0&&u.jsxs("div",{children:["Pending permission records: ",b.length]})]})]}),!o&&u.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,disabled:k,children:"Fully Agree"}),u.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:T,disabled:k,children:"Ignore"}),u.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:a,onChange:M=>c(M.target.value),disabled:k,rows:2}),u.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:z,disabled:k||!a.trim(),children:"Send Feedback"})]})]})}),yf="__other__",gF=["A","B","C"];function is(e){return String(e??"").trim()}function yF(e,t){const n=is(e.question),i=is(e.header);if(!n&&!i)return null;const r=(e.options??[]).slice(0,3).map((o,a)=>({id:is(o.id)||String.fromCharCode(97+a),label:is(o.label),description:is(o.description)})).filter(o=>o.label);return{id:is(e.id)||`question_${t+1}`,header:i,question:n||i,options:r,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const xF=Mt.memo(function({meta:t,onReply:n,responded:i}){const[r,o]=C.useState(""),[a,c]=C.useState({}),d=i,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",h=String(t.summary??"").trim(),p=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),x=String(t.resume_hint??"").trim(),v=C.useMemo(()=>(t.questions??[]).map(Y=>String(Y).trim()).filter(Boolean),[t.questions]),b=C.useMemo(()=>(t.input_questions??[]).map((Y,U)=>yF(Y,U)).filter(Y=>Y!==null),[t.input_questions]),S=b.some(Y=>(Y.options??[]).length>0),w=C.useMemo(()=>(t.required_fields??[]).map(Y=>String(Y).trim()).filter(Boolean),[t.required_fields]),k=C.useMemo(()=>(t.active_subagents??[]).filter(Y=>!!Y&&typeof Y=="object"),[t.active_subagents]),j=C.useMemo(()=>(t.permission_requests??[]).filter(Y=>!!Y&&typeof Y=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),z=String(t.requesting_role_id??"").trim(),T=String(t.requesting_task_id??"").trim(),M=String(t.requesting_work_item_id??"").trim(),L=String(t.seat_id??"").trim(),O=!!z||!!T||!!M||!!L||k.length>0||j.length>0||!!N,I=C.useCallback((Y,U)=>{c(Z=>({...Z,[Y]:{freeformText:Z[Y]?.freeformText??"",selectedOptionId:U}}))},[]),$=C.useCallback((Y,U)=>{c(Z=>({...Z,[Y]:{selectedOptionId:Z[Y]?.selectedOptionId,freeformText:U}}))},[]),G=C.useCallback(Y=>{if(Y.required===!1)return!0;const U=a[Y.id],Z=U?.selectedOptionId;return!!(Z&&Z!==yf||Y.allow_freeform!==!1&&is(U?.freeformText))},[a]),P=S&&b.every(G),F=C.useCallback(()=>{const Y=r.trim();d||!Y||n(Y)},[d,n,r]),V=C.useCallback(()=>{if(d||!P)return;const Y={},U=[];b.forEach(Z=>{const W=a[Z.id]??{freeformText:""},q=(Z.options??[]).find(ee=>ee.id===W.selectedOptionId),Q=is(W.freeformText),K=[q?.label??"",Q].filter(Boolean).join("; ");Y[Z.id]={question_id:Z.id,question:Z.question,...q?{selected_option_id:q.id,selected_label:q.label}:{},...Q?{freeform_text:Q}:{},answer_text:K};const ne=is(Z.header)||is(Z.question)||Z.id;U.push(`- ${ne}: ${K||"(no answer)"}`)}),n(U.join(` -`),{user_input_answers:Y})},[a,P,b,d,n]);return u.jsxs("div",{className:"ckpt-panel ckpt-user-input",children:[u.jsxs("div",{className:"ckpt-header",children:[u.jsx("div",{className:"ckpt-icon ckpt-icon-user-input",children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("path",{d:"M3 3.5h10v6H6.5L3 13V3.5Z"}),u.jsx("path",{d:"M5.5 6h5"}),u.jsx("path",{d:"M5.5 8h3.5"})]})}),u.jsx("div",{className:"ckpt-title",children:m}),u.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:"awaiting input"}),d&&u.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:"Responded"})]}),h&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Summary"}),u.jsx(wi,{content:h,className:"ckpt-markdown"})]}),p&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Request"}),u.jsx(wi,{content:p,className:"ckpt-markdown"})]}),S?u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("div",{className:"ckpt-choice-list",children:b.map(Y=>{const U=a[Y.id]??{freeformText:""},Z=Y.options??[],W=Y.allow_freeform!==!1,q=W&&(Z.length===0||U.selectedOptionId===yf);return u.jsxs("div",{className:"ckpt-choice-question",children:[Y.header&&u.jsx("div",{className:"ckpt-question-header",children:Y.header}),u.jsx(wi,{content:Y.question,className:"ckpt-markdown"}),Z.length>0&&u.jsxs("div",{className:"ckpt-choice-grid",children:[Z.map((Q,D)=>{const K=U.selectedOptionId===Q.id;return u.jsxs("button",{className:`ckpt-choice-option${K?" is-selected":""}`,onClick:()=>I(Y.id,Q.id),children:[u.jsx("span",{className:"ckpt-choice-letter",children:gF[D]??"?"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:Q.label}),Q.description&&u.jsx("span",{className:"ckpt-choice-desc",children:Q.description})]})]},Q.id)}),W&&u.jsxs("button",{className:`ckpt-choice-option${U.selectedOptionId===yf?" is-selected":""}`,onClick:()=>I(Y.id,yf),children:[u.jsx("span",{className:"ckpt-choice-letter",children:"D"}),u.jsxs("span",{className:"ckpt-choice-copy",children:[u.jsx("span",{className:"ckpt-choice-label",children:"Other"}),u.jsx("span",{className:"ckpt-choice-desc",children:"Enter a custom answer"})]})]})]}),q&&u.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:U.freeformText,onChange:Q=>$(Y.id,Q.target.value),rows:3})]},Y.id)})})]}):v.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Questions"}),u.jsx("ul",{className:"ckpt-task-list",children:v.map(Y=>u.jsx("li",{children:Y},Y))})]}),w.length>0&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Required Fields"}),u.jsx("div",{className:"ckpt-task-tags",children:w.map(Y=>u.jsx("span",{className:"ckpt-field-tag",children:Y},Y))})]}),g&&u.jsxs("div",{className:"ckpt-section",children:[u.jsx("div",{className:"ckpt-section-title",children:"Context"}),u.jsx(wi,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),x&&u.jsx("div",{className:"ckpt-escalation-hint",children:x}),O&&u.jsxs("details",{className:"ckpt-runtime-details",children:[u.jsx("summary",{children:"Runtime State"}),u.jsxs("div",{className:"ckpt-runtime-body",children:[z&&u.jsxs("div",{children:["Requester: ",u.jsx("code",{children:z})]}),M&&u.jsxs("div",{children:["Work item: ",u.jsx("code",{children:M})]}),T&&u.jsxs("div",{children:["Task: ",u.jsx("code",{children:T})]}),L&&u.jsxs("div",{children:["Seat: ",u.jsx("code",{children:L})]}),N&&u.jsxs("div",{children:["Worktree: ",u.jsx("code",{children:N})]}),k.length>0&&u.jsxs("div",{children:["Active subagents: ",k.length]}),j.length>0&&u.jsxs("div",{children:["Pending permission records: ",j.length]})]})]}),!d&&u.jsxs("div",{className:"ckpt-feedback-area",children:[S?null:u.jsx("textarea",{className:"ckpt-feedback-input",placeholder:"Reply with the missing input to continue...",value:r,onChange:Y=>o(Y.target.value),rows:3}),u.jsx("div",{className:"ckpt-feedback-btns",children:u.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:S?V:F,disabled:S?!P:!r.trim(),children:"Send Reply"})})]})]})}),vv={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function gy(e,t){if(t&&t in vv)return t;switch(e){case"active":return"in_progress";case"waiting":return"in_review";case"done":return"done";case"failed":return"done";case"pending":return"todo";default:return"todo"}}function xf(e){return vv[e]??vv.todo}const pC={active:0,waiting:1,failed:2,done:3,pending:4};function vF(e){if(e.length===0)return"pending";let t=e[0],n=pC[t]??99;for(const i of e){const r=pC[i]??99;r12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function hl(e){return typeof e=="string"?e.trim():""}function yy(...e){for(const t of e){const n=hl(t);if(n)return n}return""}function gC(e){const t=hl(e);return t?la(t)||_0(t):""}function bF(e){return e==="done"?u.jsx("span",{className:"wi-projection-icon",children:"✓"}):e==="active"?u.jsx("span",{className:"wi-projection-icon wi-projection-pulse",children:"●"}):e==="failed"?u.jsx("span",{className:"wi-projection-icon",children:"✗"}):e==="waiting"?u.jsx("span",{className:"wi-projection-icon",children:"●"}):null}const _F={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function kF(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function SF(e){switch(e){case"running":case"waiting_for_peer":case"waiting_for_children":case"paused":case"needs_attention":return"active";case"awaiting_manager_review":case"awaiting_human":case"queued":case"ready":case"ready_for_rework":case"waiting_dependencies":return"waiting";case"approved":return"done";case"failed":case"cancelled":return"failed";default:return"pending"}}function wF(e){const t=hl(e.status).toLowerCase();return t==="done"||t==="delivered"?"done":t==="failed"||t==="cancelled"?"failed":t==="awaiting_peer"||t==="awaiting_manager_review"||t==="awaiting_human"||t==="awaiting_review"||t==="blocked"||t==="paused"||t==="awaiting_owner"?"waiting":t==="running"||t==="deliverable"||t==="active"||t==="ready"?"active":"pending"}function QI({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:i,isCompanyRuntime:r=!1,onWorkItemClick:o}){const a=C.useMemo(()=>{const b=new Map;for(const S of i??[]){b.set(S.taskId,S);const w=vo(S);w&&b.set(w,S)}return b},[i]),c=C.useMemo(()=>{const b=new Map,S=[];for(const w of e){const k=vo(w),j=w.workItemProjectionId??k??"";if(!j)continue;if(!b.has(j)){S.push(j);const z=w.workItemProjectionTitle??j,T=w.roleName||(hC(z)?"Agent":z);b.set(j,{projectionId:j,title:T,roleName:w.roleName,status:"pending",executionTurnId:k})}const N=b.get(j);switch(w.roleName?(N.roleName=w.roleName,N.title=w.roleName):w.workItemProjectionTitle&&!hC(w.workItemProjectionTitle)&&(N.title=w.workItemProjectionTitle),k&&(N.executionTurnId=k),w.type){case"work_item_started":N.status="active";break;case"gate_approved":N.status="done";break;case"gate_rejected":N.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":N.status="waiting";break;case"work_item_failed":case"deadlock":N.status="failed";break}}for(const w of b.values()){if(!w.executionTurnId)continue;const k=a.get(w.executionTurnId);if(!k)continue;const j=qg(k);j&&(w.title=j),k.workItemRoleName&&(w.roleName=k.workItemRoleName),k.status==="done"?w.status="done":k.status==="failed"&&(w.status="failed")}return S.map(w=>b.get(w))},[e,a]),d=C.useMemo(()=>{const b=new Map;for(const S of e){const w=vo(S);w&&!b.has(w)&&b.set(w,b.size)}return b},[e]),m=n??t,h=C.useMemo(()=>{if(!m)return[];const b=[];for(const S of Object.values(m)){if(!S||!Array.isArray(S.workItems)||S.workItems.length===0)continue;const w=[...S.workItems].sort((L,A)=>L.createdAt-A.createdAt),k=w.map(L=>{const A=kF(L.kanbanColumn),O=SF(L.phase);return{executionTurnId:L.executionTurnId??"",title:hl(L.title)||hl(L.executorRoleName)||hl(L.executorRoleId)||"Work item",status:O,statusLabel:xf(A),columnId:A,updatedAt:L.updatedAt,workItemId:L.workItemId,progressLog:L.progressLog,activitySections:L.activitySections??[],isReviewTarget:L.isReviewTarget}}),j=_F[S.aggregatedStatus]??"pending",N=gy(j),z=k[k.length-1],T=w.find(L=>L.executionUnitKind==="opaque_external_team"),M=[...k].reverse().find(L=>!!L.executionTurnId)?.executionTurnId??"";b.push({roleKey:S.roleKey,executionTurnId:z.executionTurnId||M,title:T?`${S.roleName||S.roleId} · JiuwenSwarm Team`:S.roleName||S.roleId,status:j,statusLabel:xf(N),roleName:S.roleName,updatedAt:k.reduce((L,A)=>Math.max(L,A.updatedAt),0),turns:k,runtimeStatus:S.runtimeStatus,executionAgent:gC(T?.selectedExecutionAgent)})}return b.sort((S,w)=>{const k=S.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,j=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return k-j}),b},[m]),p=C.useMemo(()=>{const b=[...i??[]];if(b.length===0)return[];const S=new Map,w=[];for(const j of b){const N=yy(j.workItemRoleId,j.assigneeIds[0],j.taskId);S.has(N)||(S.set(N,[]),w.push(N)),S.get(N).push(j)}w.sort((j,N)=>{const z=S.get(j)??[],T=S.get(N)??[],M=Math.min(...z.map(I=>d.get(vo(I)||I.taskId)??Number.POSITIVE_INFINITY)),L=Math.min(...T.map(I=>d.get(vo(I)||I.taskId)??Number.POSITIVE_INFINITY));if(M!==L)return M-L;const A=Math.min(...z.map(I=>I.updatedAt)),O=Math.min(...T.map(I=>I.updatedAt));return A-O});const k=[];for(const j of w){const N=S.get(j)??[];if(N.length===0)continue;const z=N.slice().sort((I,$)=>I.updatedAt-$.updatedAt).map(I=>{const $=wF(I),G=vo(I),P=gy($,String(I.columnId??"").trim()||void 0);return{executionTurnId:G||I.taskId,title:yy(qg(I),I.title,I.workItemRoleName,I.workItemRoleId,"Turn"),status:$,statusLabel:xf(P),columnId:P,updatedAt:I.updatedAt}}),T=z[z.length-1],M=vF(z.map(I=>I.status)),L=gy(M),A=N[0],O=yy(A.workItemRoleName,A.workItemRoleId,A.assigneeIds[0],qg(A),A.title,"Agent");k.push({roleKey:j,executionTurnId:T.executionTurnId,title:O,status:M,statusLabel:xf(L),executionAgent:gC(A.selectedExecutionAgent??A.preferredAgent),roleName:A.workItemRoleName,updatedAt:Math.max(...N.map(I=>I.updatedAt)),turns:z})}return k},[i,d]),g=C.useMemo(()=>h.length>0?h:r?[]:p,[r,h,p]),x=C.useMemo(()=>g.length>0?g.map(b=>({projectionId:b.roleKey,title:b.title,roleName:b.roleName,status:b.status,executionTurnId:b.executionTurnId,executionAgent:b.executionAgent})):r?[]:c,[r,g,c]),v=r&&g.length===0;return!r&&e.length===0&&x.length===0&&g.length===0?null:u.jsxs("div",{className:"wi-progress-card",children:[u.jsxs("div",{className:"wi-progress-header",children:[u.jsx(zm,{}),u.jsx("span",{children:"Execution Progress"})]}),x.length>0&&u.jsx("div",{className:"wi-progress-pipeline",children:x.map((b,S)=>u.jsxs("div",{className:"wi-projection-group",children:[u.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${b.status}`,onClick:()=>o?.(b.executionTurnId||""),title:`Open Runtime Session${b.roleName?`: ${b.title} (${b.roleName})`:`: ${b.title}`}`,children:[u.jsx("span",{className:"wi-projection-label",children:b.title}),b.executionAgent&&u.jsx("span",{className:"wi-projection-agent",children:b.executionAgent}),bF(b.status)]}),Sa;if(NF(d)||h){n.add(c.id);continue}t.add(c.id)}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:i}}function RF({refs:e,onImageClick:t}){if(!e||e.length===0)return null;const n=e.filter(c=>c.mime_type?.startsWith("image/")),i=e.filter(c=>c.mime_type?.startsWith("video/")),r=e.filter(c=>!c.mime_type?.startsWith("image/")&&!c.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=i.length===1?"":(i.length<=3," cols-2");return u.jsxs("div",{className:"msg-attachments",children:[n.length>0&&u.jsx("div",{className:`msg-attachment-grid${o}`,children:n.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("img",{className:"msg-attachment-image",src:d,alt:c.filename,loading:"lazy",onClick:()=>t?.(d)},c.attachment_id)})}),i.length>0&&u.jsx("div",{className:`msg-attachment-grid${a}`,children:i.map(c=>{const d=`/api/attachments/${c.attachment_id}/${c.filename}`;return u.jsx("video",{className:"msg-attachment-video",src:d,controls:!0,preload:"metadata",playsInline:!0},c.attachment_id)})}),r.length>0&&u.jsx("div",{className:"msg-attachment-files",children:r.map(c=>u.jsxs("a",{className:"msg-attachment-file-chip",href:`/api/attachments/${c.attachment_id}/${c.filename}`,download:!0,title:c.filename,children:["📎 ",c.filename,u.jsx("span",{className:"msg-attachment-file-size",children:c.size_bytes<1024?`${c.size_bytes}B`:c.size_bytes<1048576?`${(c.size_bytes/1024).toFixed(0)}KB`:`${(c.size_bytes/1048576).toFixed(1)}MB`})]},c.attachment_id))})]})}const yC=new WeakMap;function xy(e){if(!e||typeof e!="object")return"";const t=yC.get(e);if(t!==void 0)return t;const n=JSON.stringify(e)??"";return yC.set(e,n),n}function AF(e){if(e.kind==="message"){const{msg:n}=e;return[e.kind,e.id,e.timestamp,n.sender,n.senderName,n.senderDeleted,n.content,n.replyToId,xy(n.mentions),xy(n.metadata)]}if(e.kind==="progress"){const{entry:n}=e;return[e.kind,e.id,e.timestamp,n.type,n.summary,n.detail,n.turnId,n.itemId,n.streamId,n.toolCallId,n.permissionGroupKey,n.seq,n.executionMode]}if(e.kind==="draft")return[e.kind,e.id,e.timestamp,e.text,e.iteration];const t=[e.kind,e.id,e.timestamp];for(const{msg:n,classification:i}of e.events)t.push(n.id,n.timestamp,n.content,xy(n.metadata),i.kind,i.label,i.summary,i.tone);return t}function MF(e,t){return!e||e.length!==t.length?!1:t.every((n,i)=>{const r=e[i];return r.length===n.length&&n.every((o,a)=>o===r[a])})}const xC=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],vC=new Map;function JI(e){const t=vC.get(e);if(t)return t;let n=0;for(let r=0;rd.toUpperCase());let a="●",c="active";return r.includes("gate passed")||r.includes("approved")||r.includes("completed")?(a="✓",c="passed"):r.includes("rejected")||r.includes("reworking")?(a="↻",c="rejected"):r.includes("failed")||r.includes("timed out")?(a="✗",c="failed"):r.includes("awaiting")&&(a="⏳",c="waiting"),{projectionId:n,workItemName:o,action:i,icon:a,statusClass:c}}const LF={session:{icon:u.jsx(G4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:u.jsx(_E,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:u.jsx(_u,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},zF=5*6e4,PF=200,vy=200,BF=2;function Zo(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=BF}function bC(e){return!String(e.id??"").startsWith("msg-")}function ia(e){return Kv(e)}function Eo(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}function zs(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}async function $F(e){if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>"u"||!document.body)return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}function HF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function by(e){return e.replace(/\s+/g," ").trim()}function _C(e){const t=String(e||"").trim();if(!t)return null;try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function FF(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const c=_C(t);return c?{obj:c}:null}const n=t.indexOf("{"),i=t.lastIndexOf("}");if(n<=0||i<=n)return null;const o=t.slice(0,n).trim().replace(/\*/g,"").replace(/:\s*$/,"").trim();if(!/\b(report|review)\b/i.test(o))return null;const a=_C(t.slice(n,i+1));return a?{obj:a,title:o||void 0}:null}function gl(e){return typeof e=="string"?e.trim():""}function kC(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const i of e){const r=typeof i=="string"?i.trim():i&&typeof i=="object"&&"summary"in i?gl(i.summary):"";if(r&&n.push(r),n.length>=t)break}return n}function VF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const i=n,r=gl(i.path),o=gl(i.name)||r.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:r,status:gl(i.status)||void 0})}return t}function UF(e){if(!Array.isArray(e))return;const t=e.filter(i=>i&&typeof i=="object").length;return t?`${e.filter(i=>i.met===!0).length}/${t} acceptance checks met`:void 0}function qF(e){const t=FF(e);if(!t)return null;const{obj:n,title:i}=t,r=gl(n.summary),o=gl(n.review_verdict),a=VF(n.deliverables),c=kC(n.risks),d=kC(n.next_actions),m=UF(n.acceptance_status);return!r&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:i,summary:r,verdict:o||void 0,deliverables:a,risks:c,nextActions:d,acceptanceSummary:m}}const GF=Mt.memo(function({entry:t,showDate:n,dateStr:i,compact:r=!1}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent msg-row-inline-progress${r?" compact":""}`,children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body msg-inline-progress-body",children:u.jsx("div",{className:"msg-inline-progress-shell",children:u.jsx(FN,{entry:t})})})]})]})}),WF=Mt.memo(function({msg:t,showDate:n,dateStr:i}){const r=OF(t.content);return r?u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`work-item-divider work-item-divider-${r.statusClass}`,children:[u.jsx("div",{className:"work-item-divider-line"}),u.jsxs("span",{className:"work-item-divider-label",children:[u.jsx("span",{className:"work-item-divider-icon",children:r.icon}),r.workItemName,u.jsx("span",{className:"work-item-divider-action",children:r.action})]}),u.jsx("div",{className:"work-item-divider-line"})]})]}):null}),YF=Mt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:"msg-system",children:u.jsx("span",{children:t.content})})]})}),XF=Mt.memo(function({msg:t,showDate:n,dateStr:i}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:"msg-row agent msg-row-context",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-context",children:u.jsx(_u,{})}),u.jsx("div",{className:"msg-body",children:u.jsxs("div",{className:"msg-content-agent-card msg-context-card",children:[u.jsx("div",{className:"msg-context-label",children:"Execution Context"}),u.jsx(wi,{content:t.content})]})})]})]})}),KF=Mt.memo(function({text:t,timestamp:n,iteration:i,showDate:r,dateStr:o}){return u.jsxs("div",{children:[r&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:o})}),u.jsxs("div",{className:"msg-row agent msg-row-draft",children:[u.jsx("div",{className:"msg-avatar agent-avatar msg-avatar-draft",children:u.jsx(bl,{})}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",children:"Live Reply"}),u.jsx("span",{className:"msg-time",title:zs(n),children:Eo(n)})]}),u.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[i?u.jsxs("div",{className:"msg-draft-label",children:["Turn ",i]}):null,u.jsx(wi,{content:t,collapseMode:"never"})]})]})]})]})}),ZF=Mt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,onCopy:a,onImageClick:c,renderUserMarkdown:d}){return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsx("div",{className:`msg-row user${r?" grouped":""}`,children:u.jsxs("div",{className:"msg-body msg-body-user",children:[u.jsx("div",{className:"msg-content-user",children:d?u.jsx(wi,{content:t.content,className:"msg-content-user-markdown"}):t.content}),u.jsx(RF,{refs:t.metadata?.attachment_refs,onImageClick:c}),u.jsxs("div",{className:"msg-meta-user",children:[u.jsx("span",{className:"msg-time",title:zs(t.timestamp),children:Eo(t.timestamp)}),u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?u.jsx(Hl,{}):u.jsx(Lm,{})})]})]})})]})});function eT(e){const t=String(e||"").trim();if(!t)return null;const n=t.match(/^\[Delegating to ([^\]]+)\]/);if(n){const d=n[1].trim(),m=t.match(/task=([^|]+?)(?:\||$)/),h=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:h,tone:"info"}}if(/^\[External resume\]/i.test(t)){const d=t.match(/codex:[a-z0-9-]+:([a-f0-9-]+)/i);return{kind:"external_resume",label:"External resume",summary:d?`Restored session ${d[1].slice(0,8)}…`:"Resumed prior session",tone:"info"}}const i=t.match(/^\[External inbox\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External inbox",summary:by(i[1]),tone:"info"};const r=t.match(/^\[External status\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External status",summary:r[1].split(/\(|;/)[0].trim()||r[1].trim(),tone:"info"};if(/^\[External error\]/i.test(t)||/^\[External failure\]/i.test(t))return{kind:"external_error",label:"External error",summary:t.replace(/^\[[^\]]+\]\s*/,"").split(` -`)[0].slice(0,140),tone:"danger"};const o=t.match(/^\[Company:([^\]]+)\]\s*(.+)$/);if(o){const d=o[1].split("::"),m=d[0]||"company",h=o[2].trim(),p=h.toLowerCase(),g=p.includes("completed")||p.includes("done")?"success":p.includes("blocked")||p.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:h,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,h=>h.toUpperCase()),m=by(a[2]);return{kind:"company_event",label:d,summary:m,tone:/^Blocked$/i.test(a[1])?"warning":"info"}}const c=t.match(/^NO_DELEGATION_JUSTIFICATION:\s*(.+)$/i);return c?{kind:"company_event",label:"Delegation check",summary:by(c[1]).slice(0,180),tone:"info"}:null}function QF(e,t){const{isCompanyRuntime:n,detailMode:i}=t;if(!n||i==="full"||Mu(e.metadata))return null;const r=eT(e.content);if(!r)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=r.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:r}}function JF(e,t={}){const{isCompanyRuntime:n=!1,detailMode:i="summary"}=t,r=[];let o=[],a=0;const c=()=>{if(o.length===0)return;const d=o[0].msg;r.push({kind:"ops-bundle",id:`ops:${ia(d)}`,timestamp:d.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((d,m)=>{const h=m*2+1,p=QF(d,{isCompanyRuntime:n,detailMode:i});if(p){o.length===0&&(a=h),o.push(p);return}c(),r.push({kind:"message",id:ia(d),timestamp:d.timestamp,msg:d,sortOrder:h})}),c(),r}const eV=Mt.memo(function({msg:t,showDate:n,dateStr:i,classification:r}){const[o,a]=C.useState(!1),c=t.content.trim()!==`[${r.label}] ${r.summary}`.trim()&&t.content.trim().length>r.summary.length+4;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-ops-row msg-ops-tone-${r.tone}${o?" expanded":""}`,onClick:c?()=>a(d=>!d):void 0,role:c?"button":void 0,tabIndex:c?0:-1,children:[u.jsx("span",{className:"msg-ops-dot","aria-hidden":"true"}),u.jsx("span",{className:"msg-ops-label",children:r.label}),r.summary&&u.jsx("span",{className:"msg-ops-summary",title:r.summary,children:r.summary}),u.jsx("span",{className:"msg-ops-time",title:zs(t.timestamp),children:Eo(t.timestamp)}),c&&u.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:u.jsx(as,{down:o})})]}),c&&o&&u.jsx("div",{className:"msg-ops-details",children:u.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),tV=Mt.memo(function({events:t,showDate:n,dateStr:i}){const[r,o]=C.useState(!1);if(t.length===0)return null;const a=t[0].msg,c=t[t.length-1].msg,d=t.reduce((p,g)=>{const x=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return p[x]=(p[x]??0)+1,p},{}),m=Object.entries(d).map(([p,g])=>`${g} ${p}`).join(" · "),h=`${t.length} technical event${t.length===1?"":"s"} hidden`;return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("button",{type:"button",className:`msg-ops-bundle${r?" expanded":""}`,onClick:()=>o(p=>!p),title:`${zs(a.timestamp)} - ${zs(c.timestamp)}`,children:[u.jsx("span",{className:"msg-ops-bundle-dot"}),u.jsx("span",{className:"msg-ops-bundle-title",children:h}),u.jsx("span",{className:"msg-ops-bundle-summary",children:m}),u.jsx("span",{className:"msg-ops-bundle-time",children:Eo(a.timestamp)}),u.jsx("span",{className:"msg-ops-bundle-chevron",children:u.jsx(as,{down:r})})]}),r&&u.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:p,classification:g})=>u.jsxs("div",{className:`msg-ops-bundle-event msg-ops-tone-${g.tone}`,children:[u.jsx("span",{className:"msg-ops-dot"}),u.jsx("span",{className:"msg-ops-label",children:g.label}),u.jsx("span",{className:"msg-ops-summary",children:g.summary}),u.jsx("span",{className:"msg-ops-time",title:zs(p.timestamp),children:Eo(p.timestamp)})]},p.id))})]})});function nV(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const iV=Mt.memo(function({msg:t,payload:n,showDate:i,dateStr:r,isCopied:o,onCopy:a}){const c=JI(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=nV(n),h=n.summary||n.acceptanceSummary||m;return u.jsxs("div",{children:[i&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:r})}),u.jsxs("div",{className:"msg-row agent msg-row-project-update",children:[u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:c},children:d.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:"msg-sender",style:{color:c},children:d}),u.jsx("span",{className:"msg-time",title:zs(t.timestamp),children:Eo(t.timestamp)})]}),u.jsxs("div",{className:`msg-project-update-card msg-project-update-${n.kind}`,children:[u.jsxs("div",{className:"msg-project-update-head",children:[u.jsx("span",{className:"msg-project-update-label",children:m}),n.acceptanceSummary&&u.jsx("span",{className:"msg-project-update-chip",children:n.acceptanceSummary})]}),n.title&&u.jsx("div",{className:"msg-project-update-title",children:n.title}),u.jsx(wi,{content:h,className:"msg-project-update-summary"}),n.deliverables.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Outputs"}),u.jsx("div",{className:"msg-project-update-artifacts",children:n.deliverables.slice(0,6).map((p,g)=>u.jsxs("div",{className:"msg-project-update-artifact",children:[u.jsx("span",{className:"msg-project-update-artifact-name",children:p.name}),p.status&&u.jsx("span",{className:"msg-project-update-artifact-status",children:p.status}),p.path&&u.jsx("code",{className:"msg-project-update-artifact-path",children:p.path})]},`${p.path||p.name}-${g}`))})]}),(n.risks.length>0||n.nextActions.length>0)&&u.jsxs("div",{className:"msg-project-update-grid",children:[n.risks.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Caveats"}),u.jsx("ul",{className:"msg-project-update-list",children:n.risks.map((p,g)=>u.jsx("li",{children:p},`risk-${g}`))})]}),n.nextActions.length>0&&u.jsxs("div",{className:"msg-project-update-section",children:[u.jsx("div",{className:"msg-project-update-section-label",children:"Next"}),u.jsx("ul",{className:"msg-project-update-list",children:n.nextActions.map((p,g)=>u.jsx("li",{children:p},`next-${g}`))})]})]}),u.jsx("div",{className:"msg-card-actions",children:u.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy raw update",children:o?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Lm,{})," ",u.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),rV=Mt.memo(function({msg:t,showDate:n,dateStr:i,isGrouped:r,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:c,keepExpanded:d,onCopy:m,onInteractionReply:h}){const p=!!t.senderDeleted,g=p?"[Deleted]":t.senderName,x=JI(t.sender==="system"?t.senderName||"OPC":t.sender),v=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,b=String(t.metadata?.checkpoint_type??"").trim(),S=IF(t.metadata),w=Mu(t.metadata)&&!c,[k,j]=C.useState(!1),[N,z]=C.useState(!1),[T,M]=C.useState(""),L=C.useRef("");if(!L.current){const I=globalThis.crypto;L.current=I&&typeof I.randomUUID=="function"?`interaction-ui-${I.randomUUID()}`:`interaction-ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}const A=a||k,O=C.useCallback(async(I,$)=>{if(!h||N||A)return!1;z(!0),M("");try{const G=await h(I,v,{...S,...$,ui_message_id:L.current});return G.ok&&G.accepted?(j(!0),!0):(M(G.reason||G.error||"Decision was not accepted."),!1)}catch(G){return M(G instanceof Error?G.message:"Decision was not accepted."),!1}finally{z(!1)}},[S,A,N,h,v]);return u.jsxs("div",{children:[n&&u.jsx("div",{className:"msg-date-sep",children:u.jsx("span",{children:i})}),u.jsxs("div",{className:`msg-row agent${r?" grouped":""}${p?" deleted-sender":""}`,children:[r?u.jsx("div",{className:"msg-avatar-spacer"}):u.jsx("div",{className:"msg-avatar agent-avatar",style:{background:x},children:g.charAt(0).toUpperCase()}),u.jsxs("div",{className:"msg-body",children:[!r&&u.jsxs("div",{className:"msg-agent-header",children:[u.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:x},children:g}),u.jsx("span",{className:"msg-time",title:zs(t.timestamp),children:Eo(t.timestamp)})]}),t.replyToId&&u.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),w?u.jsxs(u.Fragment,{children:[b==="company_recruitment_confirmation"&&u.jsx(lF,{meta:t.metadata,onReply:(I,$)=>O(I,$),responded:A}),b==="company_staffing_selection"&&u.jsx(tF,{meta:t.metadata,onReply:(I,$)=>{O(I,$)},responded:A}),b==="company_work_item_gate"&&u.jsx(mC,{meta:t.metadata,onReply:(I,$)=>{O(I,$)},responded:A,submitting:N}),b==="company_delivery_feedback"&&u.jsx(hF,{meta:t.metadata,onReply:(I,$)=>O(I,$),responded:A,submitting:N}),b==="company_reorg_pending"&&u.jsx(uF,{meta:t.metadata,onReply:I=>{O(I)},responded:A}),["tool_permission","action_permission"].includes(b)&&u.jsx(mC,{meta:t.metadata,onReply:(I,$)=>{O(I,$)},responded:A,submitting:N}),["task_user_input","route_clarification","company_runtime_selection","company_run_failure_review"].includes(b)&&u.jsx(xF,{meta:t.metadata,onReply:(I,$)=>{O(I,$)},responded:A}),N&&u.jsx("div",{className:"ckpt-escalation-hint",children:"Saving decision…"}),T&&u.jsx("div",{className:"ckpt-escalation-hint",role:"alert",children:T})]}):u.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:x},children:[u.jsx(wi,{content:t.content,collapseMode:d?"never":"auto"}),u.jsxs("div",{className:"msg-card-actions",children:[u.jsx("button",{className:"msg-action-btn",onClick:()=>m(t.id,t.content),title:"Copy message",children:o?u.jsxs(u.Fragment,{children:[u.jsx(Hl,{})," ",u.jsx("span",{children:"Copied"})]}):u.jsxs(u.Fragment,{children:[u.jsx(Lm,{})," ",u.jsx("span",{children:"Copy"})]})}),r&&u.jsx("span",{className:"msg-time msg-time-inline",title:zs(t.timestamp),children:Eo(t.timestamp)})]})]})]})]})]})}),al=Mt.memo(function({messages:t,channelName:n,viewKind:i="session",detailMode:r="summary",agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,progressLog:m,draftAssistantText:h,draftUpdatedAt:p,draftIteration:g,draftTurnId:x,isCompanyRuntime:v,workItemLog:b,childSessions:S,roleWorkItems:w,executorRoleWorkItems:k,onInteractionReply:j,onWorkItemClick:N,onMarkRead:z,hasOlderHistory:T=!1,totalMessageCount:M,onLoadOlderHistory:L,loadingOlderHistory:A=!1,scrollPolicy:O="follow",scrollScope:I,showWorkItemRuntimeCard:$=!0,showRuntimeProgress:G=!0,renderUserMarkdown:P=!1}){const F=I??`${i}:${r}:${n}`,V=C.useRef(null),Y=C.useRef(null),[U,Z]=C.useState(null),[W,q]=C.useState(null),Q=O==="follow"?"following":"browsing",[D,K]=C.useState(Q),[ne,ee]=C.useState(0),[te,oe]=C.useState(!1),le=C.useRef(Q),he=C.useRef(O),Te=C.useRef(O!=="manual"),be=C.useRef(!1),je=C.useRef(null),Ve=C.useRef(0),Ye=C.useRef(!1),$e=C.useRef("none"),ct=C.useRef(null),It=C.useRef(0),yt=C.useRef(new Set),Vt=C.useRef(null),ge=C.useRef(null),me=C.useRef(z),Ge=C.useRef(0),Ke=C.useRef(0),pt=C.useRef(null),ce=C.useRef({active:!1,revision:0}),Ce=C.useRef(!1),Le=C.useRef(null),Fe=C.useRef(!1),Qe=C.useRef(null),wt=C.useRef(null),Ct=C.useRef([]),dt=C.useRef({scope:F,assignments:new Map}),_e=C.useRef({scope:F,owners:new Map}),et=C.useRef({scope:F,keys:new Set});me.current=z;const it=(b?.length??0)+(S?.length??0),De=C.useMemo(()=>{const ue=t.filter(we=>Zv(we,r));return v?ue.filter(we=>!(we.metadata?.type==="system"&&we.content.startsWith("[Company:")||!G&&we.content.startsWith("[Company:"))):ue},[r,v,t,G]),Pt=C.useMemo(()=>TF(De),[De]),ri=C.useMemo(()=>i==="session"&&j?De.filter(ue=>Pt.pendingMessageIds.has(ue.id)):[],[Pt.pendingMessageIds,De,j,i]),Bt=De,Dt=C.useMemo(()=>{const ue=new Set;for(const we of m??[]){if(we.type!=="thinking")continue;const Oe=String(we.turnId??"").trim();Oe&&ue.add(Oe)}return ue},[m]),Cn=C.useMemo(()=>{const ue=[];for(const we of Bt){const Oe=String(we.metadata?.runtime_thinking??"").trim();if(!Oe)continue;const Ue=$m(we.metadata);Ue&&Dt.has(Ue)||ue.push({type:"thinking",summary:"Thinking",detail:Oe,timestamp:Math.max(0,we.timestamp-1),turnId:Ue||void 0,itemId:Ue?`${Ue}:thinking`:`thinking:${we.id}`,streamId:Ue?`${Ue}:thinking`:`thinking:${we.id}`,executionMode:String(we.metadata?.execution_mode??"").trim()||void 0})}return ue},[Dt,Bt]),Tt=C.useMemo(()=>G?[...(m??[]).filter(ue=>yw.has(ue.type)),...Cn].sort((ue,we)=>ue.timestamp-we.timestamp):[],[m,G,Cn]),$t=C.useMemo(()=>G?(m??[]).filter(ue=>!yw.has(ue.type)):[],[m,G]),Mn=C.useMemo(()=>G?r==="full"?m??[]:Tt:[],[r,Tt,m,G]),xt=$t,Jn=C.useMemo(()=>{const ue=new Set;for(const we of Bt){const Oe=Zf(we);Oe&&ue.add(Oe)}return ue},[Bt]),Nn=C.useMemo(()=>{const ue=String(h??"").trim(),we=String(x??"").trim();return!ue||we&&Jn.has(we)?null:{kind:"draft",id:we?`turn:assistant:${we}`:"draft:active",timestamp:p??Bt[Bt.length-1]?.timestamp??0,text:ue,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}},[Jn,h,g,x,p,Bt]);C.useLayoutEffect(()=>{et.current.scope!==F&&(et.current={scope:F,keys:new Set}),Nn&&et.current.keys.add(Nn.id)},[Nn,F]);const tt=!!o&&o!=="idle",an=xt.length>0,Vn=G&&r!=="full"&&(tt||an),mn=C.useMemo(()=>{const ue=[...JF(Bt,{isCompanyRuntime:v,detailMode:r}),...Mn.map((qe,un)=>({kind:"progress",id:`progress:${HN(qe)}`,timestamp:qe.timestamp,entry:qe,sortOrder:un*2}))].sort((qe,un)=>qe.timestamp-un.timestamp||qe.sortOrder-un.sortOrder),we=_e.current.scope===F?_e.current.owners:new Map,Oe=new Map;ue.forEach((qe,un)=>{if(qe.kind!=="message")return;const xi=CE(qe.msg);if(!xi)return;const Wn=we.get(xi)??qe.id;Oe.set(xi,Wn),Wn!==qe.id&&(ue[un]={...qe,id:Wn})});const Ue=new Map;ue.forEach((qe,un)=>{if(qe.kind!=="message")return;const xi=`${qe.msg.channelId}\0${qe.msg.id}`,Wn=Ue.get(qe.id)??[];Wn.push({index:un,identity:xi}),Ue.set(qe.id,Wn)});const ft=dt.current.scope===F?dt.current.assignments:new Map,We=new Map;for(const[qe,un]of Ue){const xi=ft.get(qe),Wn=new Map,Ut=new Set;for(const nn of un){const hn=xi?.get(nn.identity);!hn||Ut.has(hn)||(Wn.set(nn.identity,hn),Ut.add(hn))}for(const nn of un){if(Wn.has(nn.identity))continue;const hn=Ut.has(qe)?`${qe}:message:${encodeURIComponent(nn.identity)}`:qe;Wn.set(nn.identity,hn),Ut.add(hn)}We.set(qe,Wn);for(const nn of un){const hn=Wn.get(nn.identity);if(!hn||hn===qe)continue;const Yn=ue[nn.index];Yn.kind==="message"&&(ue[nn.index]={...Yn,id:hn})}}return Nn&&ue.push(Nn),{items:ue,messageKeyAssignments:We,resultKeyOwners:Oe}},[r,Nn,v,F,Bt,Mn]),ht=mn.items,ut=C.useMemo(()=>ht.map(AF),[ht]);C.useLayoutEffect(()=>{dt.current={scope:F,assignments:mn.messageKeyAssignments},_e.current={scope:F,owners:mn.resultKeyOwners}},[F,mn.messageKeyAssignments,mn.resultKeyOwners]);const hi=C.useRef(Bt);hi.current=Bt,Ge.current=Bt.reduce((ue,we)=>Math.max(ue,we.timestamp),0);const[Dn,en]=C.useState({scope:F,startKey:null}),Ht=Dn.scope===F?Dn.startKey:null,Ft=Math.max(0,ht.length-PF),Un=Ht?ht.findIndex(ue=>ue.id===Ht):-1;let Ae=-1;if(Ht&&Un<0){const ue=Ct.current,we=ue.indexOf(Ht),Oe=new Map(ht.map((Ue,ft)=>[Ue.id,ft]));for(let Ue=Math.max(0,we);Ue=0;Ue-=1){const ft=Oe.get(ue[Ue]);if(ft!==void 0){Ae=ft;break}}}const Et=Un>=0?Un:Ae>=0?Ae:Ft,ln=C.useMemo(()=>ht.slice(Et),[ht,Et]),gi=Et,xn=C.useRef(ht);xn.current=ht,C.useLayoutEffect(()=>{const ue=ht[Et]?.id??null;Dn.scope===F&&Dn.startKey===ue||(Dn.scope===F&&Dn.startKey&&(Fe.current=!0),en({scope:F,startKey:ue}))},[F,ht,Et,Dn.scope,Dn.startKey]),C.useLayoutEffect(()=>{const ue=Le.current;if(!ue||ue.scope!==F)return;const we=ht.findIndex(Ue=>Ue.id===ue.startKey);if(we<=ue.beforeIndex)return;const Oe=Math.max(0,we-vy);Le.current=null,Fe.current=!0,en({scope:F,startKey:ht[Oe]?.id??null})},[F,ht]),C.useLayoutEffect(()=>{Ct.current=ht.map(ue=>ue.id)},[ht]);const vt=C.useMemo(()=>{let ue="";return ln.map((we,Oe)=>{const Ue=new Date(we.timestamp).toLocaleDateString(),ft=Ue!==ue;ft&&(ue=Ue);const We=Oe>0?ln[Oe-1]:null,qe=we.kind==="message"&&We?.kind==="message"&&!ft&&We.msg.sender===we.msg.sender&&We.msg.senderName===we.msg.senderName&&we.msg.metadata?.type!=="system"&&We.msg.metadata?.type!=="system"&&!we.msg.metadata?.is_work_item_event&&!We.msg.metadata?.is_work_item_event&&we.msg.timestamp-We.msg.timestamp0),yi=ht.length>0||Ei||Vn;Ce.current=yi;const ei=C.useCallback(ue=>{const we=Y.current?.querySelectorAll("[data-timeline-key]");if(!we)return null;for(const Oe of we)if(Oe.dataset.timelineKey===ue)return Oe;return null},[]),pn=C.useCallback(ue=>{be.current=ue,oe(we=>we===ue?we:ue)},[]),Xt=C.useCallback(()=>{const ue=ge.current,we=me.current;!ue||!we||Vt.current===ue||(Vt.current=ue,we())},[]),qt=C.useCallback(()=>{const ue=V.current,we=Y.current;if(!ue||!we)return;const Oe=ue.getBoundingClientRect(),Ue=we.querySelectorAll("[data-timeline-key]");for(const ft of Ue){const We=ft.getBoundingClientRect();if(!(We.bottom<=Oe.top+.5)){je.current={key:ft.dataset.timelineKey??"",viewportOffset:We.top-Oe.top};return}}je.current=null},[]),Kt=C.useCallback(()=>{const ue=V.current,we=je.current;if(!ue||!we?.key)return;const Oe=ei(we.key);if(!Oe){qt();return}const Ue=Oe.getBoundingClientRect().top-ue.getBoundingClientRect().top-we.viewportOffset;Math.abs(Ue)>.5&&(ue.scrollTop+=Ue),we.viewportOffset=Oe.getBoundingClientRect().top-ue.getBoundingClientRect().top,Ve.current=ue.scrollTop,pn(Zo(ue))},[qt,ei,pn]),In=C.useCallback(ue=>{le.current=ue,K(we=>we===ue?we:ue)},[]),On=C.useCallback(()=>{ce.current.active=!1,le.current!=="browsing"&&(It.current=Ge.current,ee(0),In("browsing")),qt()},[qt,In]),ti=C.useCallback(()=>{const ue=V.current;if(!ue)return;const we=Math.max(0,ue.scrollHeight-ue.clientHeight);Math.abs(ue.scrollTop-we)>.5&&(ue.scrollTop=we),Ve.current=ue.scrollTop,pn(Zo(ue))},[pn]),ki=C.useCallback(()=>{he.current==="follow"&&(In("following"),ee(0),je.current=null,ti(),Xt())},[Xt,In,ti]),cn=C.useCallback(()=>{if(he.current==="follow"){ki();return}ce.current.active=!1,ti(),qt(),ee(0),Xt()},[qt,Xt,ki,ti]),Ln=C.useCallback(()=>{const ue=V.current;if(!ue||!Ce.current)return;if(pn(Zo(ue)),Te.current){Te.current=!1,he.current==="initial-bottom"&&(ce.current={active:!0,revision:Ke.current}),ti(),he.current!=="follow"&&In("browsing");return}const we=ce.current;if(he.current==="initial-bottom"&&we.active&&we.revision===Ke.current){ti();return}if(he.current==="follow"&&le.current==="following"){ti();return}Fe.current&&(Fe.current=!1,Kt())},[Kt,In,pn,ti]);C.useLayoutEffect(()=>{he.current=O;const ue=O==="follow"?"following":"browsing";le.current=ue,K(ue),Te.current=O!=="manual",pn(!1),je.current=null,Le.current=null,Fe.current=!1,Qe.current=null,wt.current=null,ce.current={active:!1,revision:Ke.current},yt.current=new Set(hi.current.filter(bC).map(ia)),It.current=Ge.current,Vt.current=null,ee(0)},[O,F,pn]),C.useLayoutEffect(()=>{const ue=pt.current;if(MF(ue,ut))return;pt.current=ut,Ke.current+=1;const Oe=ce.current;!Oe.active||Oe.revision===Ke.current||(Oe.active=!1,qt())},[qt,ut]),C.useLayoutEffect(()=>{const ue=V.current,we=Y.current;if(!ue||!we||(wt.current={width:ue.clientWidth,height:ue.clientHeight},Ln(),typeof ResizeObserver>"u"))return;const Oe=new ResizeObserver(Ue=>{if(Ue.find(We=>We.target===ue)){const We=wt.current,qe={width:ue.clientWidth,height:ue.clientHeight};We&&(We.width!==qe.width||We.height!==qe.height)&&(Fe.current=le.current==="browsing"),wt.current=qe}Ln()});return Oe.observe(ue),Oe.observe(we),()=>Oe.disconnect()},[Ln,O,F]),C.useEffect(()=>{const ue=V.current;if(!ue)return;Ve.current=ue.scrollTop;const we=Ut=>{$e.current=Ut.deltaY<0?"up":Ut.deltaY>0?"down":"none",Ut.deltaY<0&&ue.scrollTop>0&&On(),Ut.deltaY>0&&Zo(ue)&&ki()},Oe=()=>{Ye.current=!0},Ue=()=>{Ye.current=!1,$e.current="none",le.current==="browsing"&&qt()},ft=Ut=>{ct.current=Ut.touches[0]?.clientY??null,Ye.current=!0},We=Ut=>{const nn=Ut.touches[0]?.clientY,hn=ct.current;nn===void 0||hn===null||(nn>hn+1?($e.current="up",On()):nn{ct.current=null,Ue()},un=Ut=>{const nn=Ut.target;nn&&nn!==ue&&(nn.isContentEditable||["INPUT","TEXTAREA","SELECT","BUTTON"].includes(nn.tagName))||(["ArrowUp","PageUp","Home"].includes(Ut.key)||Ut.key===" "&&Ut.shiftKey?($e.current="up",On()):(["ArrowDown","PageDown","End"].includes(Ut.key)||Ut.key===" ")&&($e.current="down",Ut.key==="End"&&cn()))},xi=()=>{$e.current="none"},Wn=()=>{const Ut=Ve.current,nn=ue.scrollTop,hn=Zo(ue),Yn=be.current,Ni=Ye.current||$e.current!=="none";nnUt+.5||$e.current==="down")&&ki(),le.current==="browsing"&&qt(),Ye.current||($e.current="none")):nn>Ut+.5&&hn?ki():le.current==="browsing"&&Math.abs(nn-Ut)>.5&&qt(),Ve.current=nn,pn(hn),!Yn&&hn&&(Ni||nn>Ut+.5)&&Xt()};return ue.addEventListener("wheel",we,{passive:!0}),ue.addEventListener("pointerdown",Oe),window.addEventListener("pointerup",Ue),window.addEventListener("pointercancel",Ue),window.addEventListener("blur",Ue),ue.addEventListener("touchstart",ft,{passive:!0}),ue.addEventListener("touchmove",We,{passive:!0}),ue.addEventListener("touchend",qe,{passive:!0}),ue.addEventListener("touchcancel",qe,{passive:!0}),ue.addEventListener("keydown",un),ue.addEventListener("keyup",xi),ue.addEventListener("scroll",Wn,{passive:!0}),()=>{ue.removeEventListener("wheel",we),ue.removeEventListener("pointerdown",Oe),window.removeEventListener("pointerup",Ue),window.removeEventListener("pointercancel",Ue),window.removeEventListener("blur",Ue),ue.removeEventListener("touchstart",ft),ue.removeEventListener("touchmove",We),ue.removeEventListener("touchend",qe),ue.removeEventListener("touchcancel",qe),ue.removeEventListener("keydown",un),ue.removeEventListener("keyup",xi),ue.removeEventListener("scroll",Wn)}},[qt,On,Xt,cn,ki,pn]);const zn=C.useMemo(()=>Bt.filter(bC),[Bt]),Gn=C.useMemo(()=>zn.map(ia),[zn]);C.useEffect(()=>{const ue=new Set(Gn);if(yt.current.size===0){yt.current=ue;return}if(le.current==="browsing"){let we=0;for(const Oe of zn){const Ue=ia(Oe);!yt.current.has(Ue)&&Oe.timestamp>=It.current&&(we+=1)}we>0&&ee(Oe=>Oe+we)}else ee(0);yt.current=ue},[zn,Gn]);const Xe=zn.reduce((ue,we)=>!ue||we.timestamp>ue.timestamp?we:ue,void 0),Pn=Xe?`${ia(Xe)}:${Xe.timestamp}`:null;ge.current=Pn,C.useEffect(()=>{if(!Pn)return;const ue=V.current,we=!!ue&&Zo(ue);pn(we),!(le.current!=="following"&&!we)&&Xt()},[Pn,Xt,pn,D]);const qn=C.useCallback((ue,we)=>{$F(we).then(Oe=>{Oe&&(Z(ue),setTimeout(()=>Z(null),1500))})},[]),vn=C.useCallback(async()=>{if(qt(),Fe.current=!0,Et>0){const ue=Math.max(0,Et-vy);en({scope:F,startKey:ht[ue]?.id??null});return}!T||A||!L||(Le.current=Ht?{scope:F,startKey:Ht,beforeIndex:Et}:null,await L(De[0]))},[qt,Ht,De,T,A,L,F,ht,Et]),pe=cn,ke=C.useCallback(ue=>{const we=V.current,Oe=ei(ue);if(!we||!Oe)return!1;const Ue=we.getBoundingClientRect(),ft=Oe.getBoundingClientRect();return we.scrollTop+=ft.top-Ue.top-Math.max(0,(we.clientHeight-ft.height)/2),Ve.current=we.scrollTop,pn(Zo(we)),qt(),!0},[qt,ei,pn]);C.useLayoutEffect(()=>{const ue=Qe.current;!ue||!ke(ue)||(Qe.current=null)},[ke,ln]);const Me=C.useCallback(()=>{const ue=ri[0];if(!ue)return;On(),Fe.current=!1;const we=ia(ue);if(ke(we))return;const Oe=ht.findIndex(ft=>ft.id===we);if(Oe<0)return;Qe.current=we;const Ue=Math.max(0,Oe-2);en({scope:F,startKey:ht[Ue]?.id??we})},[ke,On,ri,F,ht]),bt=C.useCallback(ue=>{const{item:we,showDate:Oe,dateStr:Ue,isGrouped:ft}=ue;if(we.kind==="progress")return u.jsx(GF,{entry:we.entry,showDate:Oe,dateStr:Ue,compact:r!=="full"});if(we.kind==="draft")return u.jsx(KF,{text:we.text,timestamp:we.timestamp,iteration:we.iteration,showDate:Oe,dateStr:Ue});if(we.kind==="ops-bundle")return u.jsx(tV,{events:we.events,showDate:Oe,dateStr:Ue});const{msg:We}=we,qe=et.current.scope===F&&et.current.keys.has(we.id),un=We.metadata?.type==="system",xi=HF(We),Wn=!qe&&(!!We.metadata?.is_work_item_event||We.content.startsWith("[Company:")),Ut=Mu(We.metadata),nn=We.sender==="user",hn=!qe&&!nn&&!Ut?qF(We.content):null;if(Wn&&!Ut)return u.jsx(WF,{msg:We,showDate:Oe,dateStr:Ue});if(hn)return u.jsx(iV,{msg:We,payload:hn,showDate:Oe,dateStr:Ue,isCopied:U===We.id,onCopy:qn});if(xi&&!Ut)return u.jsx(XF,{msg:We,showDate:Oe,dateStr:Ue});if(un&&!Ut)return u.jsx(YF,{msg:We,showDate:Oe,dateStr:Ue});if(nn)return u.jsx(ZF,{msg:We,showDate:Oe,dateStr:Ue,isGrouped:ft,isCopied:U===We.id,onCopy:qn,onImageClick:q,renderUserMarkdown:P});if(We.sender==="system"&&!Mu(We.metadata)){const Yn=eT(We.content);if(Yn)return u.jsx(eV,{msg:We,showDate:Oe,dateStr:Ue,isGrouped:ft,classification:Yn})}return u.jsx(rV,{msg:We,showDate:Oe,dateStr:Ue,isGrouped:ft,isCopied:U===We.id,isCheckpointResponded:Pt.respondedMessageIds.has(We.id),suppressCheckpointPanel:Pt.duplicateMessageIds.has(We.id),keepExpanded:qe,onCopy:qn,onInteractionReply:j})},[Pt,U,qn,r,j,P,F]),Rt=LF[i];return u.jsxs("div",{className:`msg-list-shell msg-list-shell-${D}`,children:[u.jsx("div",{className:`msg-list msg-list-${D}`,ref:V,tabIndex:0,"data-scroll-policy":O,"data-viewport-mode":D,children:u.jsxs("div",{className:"msg-list-content",ref:Y,children:[!yi&&u.jsxs("div",{className:"msg-welcome",children:[u.jsx("div",{className:"msg-welcome-icon",children:Rt.icon}),u.jsx("div",{className:"msg-welcome-title",children:n||Rt.title}),u.jsx("div",{className:"msg-welcome-hint",children:Rt.hint})]}),(gi>0||T)&&u.jsxs("div",{className:"msg-history-hint",children:[u.jsx("button",{className:"msg-history-load-btn",onClick:()=>{vn()},disabled:A,children:A?"Loading older messages...":gi>0?`Load ${Math.min(vy,gi)} older messages`:"Load older messages"}),u.jsxs("span",{className:"msg-history-meta",children:["Showing ",ln.length," of ",M??ht.length]})]}),vt.map(ue=>u.jsx("div",{className:"msg-timeline-row","data-timeline-key":ue.item.id,children:bt(ue)},ue.item.id)),Ei&&u.jsxs("div",{className:"msg-row agent",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(QI,{workItemLog:b??[],roleWorkItems:w,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]}),Vn&&u.jsxs("div",{className:"msg-row agent agent-working-row",children:[u.jsx("div",{className:"msg-avatar agent-avatar",children:u.jsx(bl,{})}),u.jsx("div",{className:"msg-body",children:u.jsx(Nl,{entries:xt,agentStatus:o,currentTool:a,toolElapsedMs:c,lastToolSummary:d,expandedByDefault:!0})})]}),u.jsx("div",{className:"msg-end-anchor"})]})}),(ri.length>0||D==="browsing"&&!te)&&u.jsxs("div",{className:"msg-list-floating-actions",children:[ri.length>0&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-pending-btn",onClick:Me,children:["Pending actions · ",ri.length]}),D==="browsing"&&!te&&u.jsxs("button",{type:"button",className:"msg-list-float-btn msg-list-latest-btn",onClick:pe,children:[ne>0?`${ne} new · `:"","Back to latest"]})]}),W&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>q(null),children:u.jsx("img",{className:"lightbox-img",src:W,alt:"Preview"})})]})}),sV=10*1024*1024,oV=20*1024*1024,aV="image/*,video/mp4,video/mpeg,video/quicktime,video/webm,.mp4,.mpeg,.mpg,.mov,.webm,.txt,.md,.pdf,.csv,.json,.yaml,.yml,.py,.js,.ts,.tsx,.jsx,.html,.css,.java,.c,.cpp,.go,.rs,.rb,.sh,.xml,.toml,.docx,.xlsx,.pptx";function lV(e,t){return new Promise((n,i)=>{const r=new FileReader;r.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},r.onload=()=>{const o=r.result;t?.(100),n(o.split(",")[1]||"")},r.onerror=i,r.readAsDataURL(e)})}function SC(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function tT(e,t){const n=t.includes(".")?t.split(".").pop()?.toUpperCase()??"":"";return e.startsWith("image/")?"IMG":e.startsWith("video/")?"VID":e==="application/pdf"?"PDF":e.includes("wordprocessingml")?"DOC":e.includes("spreadsheetml")||n==="CSV"?"XLS":e.includes("presentationml")?"PPT":e.includes("json")?"JSON":e.includes("yaml")||n==="YML"||n==="YAML"?"YAML":e.startsWith("text/")?"TXT":["PY","TS","TSX","JS","JSX","GO","RS","RB","JAVA","C","CPP","HTML","CSS","SH"].includes(n)?n:n||"FILE"}function cV(e,t){const n=tT(e,t);return n==="IMG"?"image":n==="VID"?"video":n==="PDF"?"pdf":n==="DOC"||n==="XLS"||n==="PPT"?"office":n==="JSON"||n==="YAML"?"data":n==="TXT"?"text":["PY","TS","TSX","JS","JSX","GO","RS","RB","JAVA","C","CPP","HTML","CSS","SH"].includes(n)?"code":"generic"}function uV({progress:e,state:t,error:n}){const r=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=r*(1-o/100);return u.jsxs("span",{className:`attachment-progress-ring${n?" error":t==="ready"?" ready":""}`,"aria-label":n?"Attachment preparation failed":t==="ready"?"Attachment ready to send":`Preparing attachment ${o}%`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"attachment-progress-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"attachment-progress-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?u.jsx(Hl,{}):o})]})}function dV({usedPct:e,usedTokens:t,windowTokens:n}){const r=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=r*(1-o/100),c=o>=80,d=o>=90,m=typeof t=="number"&&typeof n=="number"?`${o}% used (${t.toLocaleString()}/${n.toLocaleString()})`:`${o}% used`;return u.jsxs("span",{className:`composer-context-ring${c?" low":""}${d?" critical":""}`,title:`Context window: ${m}`,"aria-label":`Context window ${m}`,role:"img",children:[u.jsxs("svg",{viewBox:"0 0 28 28","aria-hidden":"true",children:[u.jsx("circle",{className:"composer-context-ring-track",cx:"14",cy:"14",r:11}),u.jsx("circle",{className:"composer-context-ring-value",cx:"14",cy:"14",r:11,strokeDasharray:r,strokeDashoffset:a})]}),u.jsx("span",{className:"composer-context-ring-label",children:o})]})}const vf=new Map;function _y(e){return e.organization_name?.trim()||e.name}function ky({disabled:e,placeholder:t,channelId:n,execMode:i,companyProfile:r,taskPreferredAgent:o="native",agentStatus:a,currentTool:c,displayTool:d,activeAgentCount:m,runtimeControlState:h,canStop:p,autoFocus:g=!0,contextTokens:x,contextWindow:v,contextRemainingPct:b,savedOrgs:S,activeSavedOrg:w,selectedOrgId:k,lockedMode:j=!1,onSend:N,onModeChange:z,onTaskAgentChange:T,onSavedOrgsRefresh:M,onSavedOrgLoad:L,onStop:A,onContinueInNewChat:O}){const[I,$]=C.useState(()=>n&&vf.get(n)||""),[G,P]=C.useState(!1),[F,V]=C.useState([]),Y=C.useCallback(_e=>{$(_e),n&&(_e?vf.set(n,_e):vf.delete(n))},[n]),[U,Z]=C.useState(null),W=C.useRef(null),q=C.useRef(null),Q=h==="suspending",D=h==="running"||h==="suspending"||h==="resuming",K=h==="suspended",ne=h!=null,ee=D||!ne&&a!=null&&a!=="idle",te=(p??!0)&&!Q&&!K,oe=C.useMemo(()=>SE({contextTokens:x,contextWindow:v,contextRemainingPct:b}),[b,x,v]);C.useEffect(()=>{const _e=W.current;_e&&(_e.style.height="auto",_e.style.height=`${Math.min(_e.scrollHeight,200)}px`)},[I]),C.useEffect(()=>{$(n?vf.get(n)??"":""),V(_e=>(_e.forEach(et=>{et.preview_url&&URL.revokeObjectURL(et.preview_url)}),[])),!e&&g&&setTimeout(()=>W.current?.focus(),50)},[n,e,g]);const le=C.useCallback((_e,et)=>{V(Ze=>Ze.map(it=>it.id===_e?et(it):it))},[]),he=C.useCallback(async(_e,et)=>{try{const Ze=await lV(et,it=>{le(_e,De=>({...De,progress_percent:it,transfer_state:"reading"}))});le(_e,it=>({...it,base64_data:Ze,progress_percent:100,transfer_state:"ready"}))}catch{le(_e,Ze=>({...Ze,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[le]),Te=C.useCallback(_e=>{const et=Array.from(_e);let Ze=F.reduce((De,Pt)=>De+Pt.size_bytes,0);const it=et.map(De=>{let Pt;return De.size>sV?Pt=`Too large (${SC(De.size)})`:Ze+De.size>oV?Pt="Total size exceeds 20MB":Ze+=De.size,{id:crypto.randomUUID(),file:De,filename:De.name||"upload",mime_type:De.type||"application/octet-stream",size_bytes:De.size,preview_url:De.type.startsWith("image/")?URL.createObjectURL(De):"",progress_percent:0,transfer_state:Pt?"error":"reading",error:Pt}});V(De=>[...De,...it]),it.filter(De=>!De.error).forEach(De=>{he(De.id,De.file)})},[F,he]),be=C.useCallback(_e=>{V(et=>{const Ze=et.find(it=>it.id===_e);return Ze?.preview_url&&URL.revokeObjectURL(Ze.preview_url),et.filter(it=>it.id!==_e)})},[]),je=C.useCallback(()=>{if(e||ee)return;const _e=I.trim(),et=F.filter(De=>!De.error&&De.transfer_state==="reading"),Ze=F.filter(De=>!De.error&&!!De.base64_data);if(et.length>0||!_e&&Ze.length===0)return;const it=Ze.map(De=>({filename:De.filename,data:De.base64_data,mime_type:De.mime_type}));N(_e||"Sent with attachments",it.length?it:void 0),Y(""),F.forEach(De=>{De.preview_url&&URL.revokeObjectURL(De.preview_url)}),V([])},[e,ee,I,F,N,Y]),Ve=C.useCallback(_e=>{const et=_e.clipboardData?.files;et&&et.length>0&&(_e.preventDefault(),Te(et))},[Te]),Ye=String(r??"").trim().toLowerCase(),$e=i==="company"?"company":i==="org"||i==="custom"||Ye==="custom"?"org":"task",ct=C.useMemo(()=>(S??[]).filter(_e=>!!_e.name&&_e.name!=="corporate"),[S]),It=w?ct.find(_e=>_e.name===w):void 0,yt=k?ct.find(_e=>_e.name===k):void 0,Vt=It?_y(It):w||"",ge=yt?_y(yt):k||Vt,me=yt?.name||k||It?.name||"",Ge=$e==="task"?"task":"company",Ke=$e==="org"?me?`org:${me}`:"":"corporate",pt=$e==="org"?ge?`Company / ${ge}`:"Company / Saved org":"Company / Corporate",ce=Ge==="task"?"Task":pt,Ce=!!i&&!!z,Le=$e==="task"&&!!T,Fe=C.useMemo(()=>{const _e=$e==="task"?"task":$e==="org"?`org:${me||"selected"}`:"company:corporate",et=me||It?.name||"",Ze=ge||Vt||et,it=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:u.jsx(eD,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:u.jsx(tD,{})}];return et&&it.push({key:`org:${et}`,mode:"org",profile:"custom",orgId:et,label:`Company / ${Ze}`,description:"A saved company architecture collaborates",icon:u.jsx(nD,{})}),it.filter(De=>De.key!==_e)},[Vt,It?.name,$e,ge,me]),Qe=F.filter(_e=>!_e.error&&_e.transfer_state==="reading").length,wt=F.filter(_e=>!_e.error&&_e.transfer_state==="ready").length,Ct=d||c,dt=ee?Q?"Stopping...":m&&m>1?`${m} agents working`:Ct?`Running ${Ct}`:a==="reflecting"?"Thinking...":"Working...":null;return u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:`msg-composer${G?" focused":""}${ee?" working":""}`,children:[ee&&dt&&u.jsxs("div",{className:"composer-status",children:[u.jsx("div",{className:"composer-status-indicator"}),u.jsx("span",{className:"composer-status-text",children:dt}),u.jsxs("button",{className:"composer-stop-btn",onClick:A,title:"Stop",disabled:!te||!A,children:[u.jsx(bE,{}),u.jsx("span",{children:Q?"Stopping...":"Stop"})]})]}),F.length>0&&u.jsx("div",{className:"composer-attachments",children:F.map(_e=>u.jsxs("div",{className:`attachment-chip${_e.error?" error":""}`,children:[_e.preview_url?u.jsx("img",{className:"attachment-thumb",src:_e.preview_url,alt:_e.filename,onClick:()=>Z(_e.preview_url)}):u.jsx("span",{className:`attachment-file-icon tone-${cV(_e.mime_type,_e.filename)}`,children:tT(_e.mime_type,_e.filename)}),u.jsxs("span",{className:"attachment-chip-info",children:[u.jsx("span",{className:"attachment-chip-name",children:_e.filename}),u.jsx("span",{className:"attachment-chip-size",children:_e.error?_e.error:_e.transfer_state==="reading"?`Preparing ${_e.progress_percent}%`:`${SC(_e.size_bytes)} - Ready`})]}),u.jsx(uV,{progress:_e.progress_percent,state:_e.transfer_state,error:_e.error}),u.jsx("button",{className:"attachment-chip-remove",onClick:()=>be(_e.id),title:"Remove",children:u.jsx(Pm,{})})]},_e.id))}),u.jsxs("div",{className:"composer-input-area",children:[u.jsx("textarea",{ref:W,value:I,onChange:_e=>Y(_e.target.value),onFocus:()=>P(!0),onBlur:()=>P(!1),onPaste:Ve,onKeyDown:_e=>{_e.key==="Enter"&&!_e.shiftKey&&(_e.preventDefault(),je())},placeholder:t??"Message...",rows:1,disabled:e}),u.jsxs("div",{className:"composer-bottom",children:[u.jsx("button",{className:"composer-attach-btn",onClick:()=>q.current?.click(),title:"Attach files",disabled:e,children:u.jsx(W4,{})}),u.jsx("input",{ref:q,type:"file",multiple:!0,accept:aV,style:{display:"none"},onChange:_e=>{_e.target.files&&Te(_e.target.files),_e.target.value=""}}),(Ce||i)&&u.jsxs("div",{className:"composer-config-group","data-locked":j?"true":void 0,children:[Ce&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"mode",title:"Execution mode for this chat and new work started from it",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Mode"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:Ge,onChange:_e=>{if(_e.target.value==="task"){z?.("task");return}z?.("company","corporate")},onFocus:()=>M?.(),onPointerDown:()=>M?.(),disabled:e,"aria-label":"Execution mode",children:[u.jsx("option",{value:"task",children:"Task"}),u.jsx("option",{value:"company",children:"Company"})]})})]}):Ce&&j?u.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${ce}.${O?" Use the menu to start a new chat in a different mode.":" Start a new chat to use a different mode."}`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(xS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:ce}),u.jsxs("div",{className:"composer-mode-chip-popover",role:"dialog","aria-label":"Mode info",children:[u.jsx("div",{className:"composer-mode-chip-popover-title",children:"Mode is fixed for this chat"}),u.jsxs("div",{className:"composer-mode-chip-popover-body",children:["Once the first message is sent, this chat is committed to"," ",u.jsx("strong",{children:ce}),"."]}),O&&Fe.length>0&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"composer-mode-chip-popover-divider","aria-hidden":"true"}),u.jsx("div",{className:"composer-mode-chip-popover-action-title",children:"Continue in a new chat"}),u.jsx("div",{className:"composer-mode-chip-popover-actions",children:Fe.map(_e=>u.jsxs("button",{type:"button",className:"composer-mode-chip-popover-action",onClick:()=>O(_e.mode,_e.profile,_e.orgId),"aria-label":`Start a new chat in ${_e.label}`,children:[u.jsx("span",{className:"composer-mode-chip-popover-action-icon","aria-hidden":"true",children:_e.icon}),u.jsxs("span",{className:"composer-mode-chip-popover-action-text",children:[u.jsx("span",{className:"composer-mode-chip-popover-action-label",children:_e.label}),u.jsx("span",{className:"composer-mode-chip-popover-action-desc",children:_e.description})]}),u.jsx("span",{className:"composer-mode-chip-popover-action-arrow","aria-hidden":"true",children:u.jsx(kE,{})})]},_e.key))})]})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"mode",children:ce}),Ge==="company"&&Ce&&!j&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),u.jsxs("label",{className:"composer-mode-inline","data-kind":"org",title:"Company architecture for this chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Company"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsxs("select",{className:"composer-mode-select",value:Ke,onChange:_e=>{const et=_e.target.value;if(et==="corporate"){z?.("company","corporate");return}if(et.startsWith("org:")){const Ze=et.slice(4);Ze&&z?.("org","custom",Ze)}},onFocus:()=>M?.(),onPointerDown:()=>M?.(),disabled:e,"aria-label":"Company architecture",children:[u.jsx("option",{value:"corporate",children:"Corporate"}),!Ke&&u.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),Ke&&Ke!=="corporate"&&!ct.some(_e=>`org:${_e.name}`===Ke)&&u.jsx("option",{value:Ke,children:ge||me}),ct.length===0?u.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):ct.map(_e=>u.jsx("option",{value:`org:${_e.name}`,children:_y(_e)},_e.name))]})})]})]}),$e==="task"&&u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),Le&&!j?u.jsxs("label",{className:"composer-mode-inline","data-kind":"agent",title:"Execution agent for this task-mode chat",children:[u.jsx("span",{className:"composer-mode-inline-label",children:"Agent"}),u.jsx("span",{className:"composer-mode-select-wrap",children:u.jsx("select",{className:"composer-mode-select",value:o,onChange:_e=>T?.(_e.target.value),disabled:e,"aria-label":"Task mode agent",children:Object.entries(Os).map(([_e,et])=>u.jsx("option",{value:_e,children:et},_e))})})]}):Le&&j?u.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${Os[o]}. Start a new chat to use a different agent.`,children:[u.jsx("span",{className:"composer-mode-chip-icon","aria-hidden":"true",children:u.jsx(xS,{})}),u.jsx("span",{className:"composer-mode-chip-label",children:Os[o]}),u.jsxs("span",{className:"composer-mode-chip-popover",role:"tooltip",children:[u.jsx("span",{className:"composer-mode-chip-popover-title",children:"Agent is fixed for this chat"}),u.jsx("span",{className:"composer-mode-chip-popover-body",children:"The execution agent is committed once the chat starts. Start a new chat to switch agents."})]})]}):u.jsx("span",{className:"composer-mode","data-kind":"agent",children:Os[o]})]})]}),u.jsx("span",{className:"composer-hint",children:Qe>0?`Preparing ${Qe} attachment${Qe>1?"s":""}`:wt>0?`${wt} attachment${wt>1?"s":""} ready`:"Shift+Enter for new line"}),typeof oe.usedPct=="number"&&u.jsx(dV,{usedPct:oe.usedPct,usedTokens:oe.usedTokens,windowTokens:oe.windowTokens}),u.jsx("button",{className:"composer-send-btn",onClick:je,disabled:e||Qe>0||!I.trim()&&wt===0||ee,children:u.jsx(q4,{})})]})]})]}),U&&u.jsx("div",{className:"lightbox-overlay",onClick:()=>Z(null),children:u.jsx("img",{className:"lightbox-img",src:U,alt:"Preview"})})]})}function $0(e){return Bm(e)}function wC(e){const t=$0(e);return t==="tool_active"?0:t==="reflecting"?1:e.status==="running"?2:e.status==="pending"?3:e.status==="done"?5:e.status==="failed"?6:4}function H0(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s`;const n=Math.floor(t/60);return n<60?`${n}m`:`${Math.floor(n/60)}h`}function fV(e){return e.length===0?"—":H0(e[e.length-1].timestamp)}function mV(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=$0(e);if(t==="tool_active"&&e.currentTool)return e.currentTool;if(t==="reflecting")return"Thinking…";if(e.status==="pending")return"Pending";const n=e.progressLog;if(n.length>0){const i=n[n.length-1];return i.type==="work_item_started"?`Work item: ${i.summary}`:i.type==="tool_call"?i.summary:i.detail?i.detail.replace(/\s+/g," ").trim():i.summary}return"Idle"}function CC(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function jC(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const Sy={done:{cls:"awp-result-done",text:"Work item completed successfully"},failed:{cls:"awp-result-failed",text:"Work item failed"},cancelled:{cls:"awp-result-cancelled",text:"Work item cancelled"}},bv={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},EC={active:0,waiting:1,pending:2,done:3,failed:4};function pV(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=bv[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function hV(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,i)=>Math.max(n,i.updatedAt),0);return t?H0(t):"—"}function gV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function yV({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"wf-role-turn-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"wf-role-turn-activity-section",children:[u.jsxs("div",{className:"wf-role-turn-activity-section-head",children:[u.jsx("span",{className:"wf-role-turn-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"wf-role-turn-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?u.jsx(Nl,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"wf-role-turn-empty-activity",children:"No runtime activity yet"}):u.jsx(Nl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function xV({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[i,r]=C.useState(null),[o,a]=C.useState(null),[c,d]=C.useState("all"),[m,h]=C.useState(""),[p,g]=C.useState(!1),x=C.useMemo(()=>Object.values(e),[e]),v=C.useMemo(()=>{let k=x.slice();if(c==="active"?k=k.filter(j=>j.aggregatedStatus==="active"):c==="idle"?k=k.filter(j=>j.aggregatedStatus==="done"||j.aggregatedStatus==="failed"):c==="pending"&&(k=k.filter(j=>j.aggregatedStatus==="pending"||j.aggregatedStatus==="waiting")),m.trim()){const j=m.toLowerCase();k=k.filter(N=>N.roleName.toLowerCase().includes(j)||N.roleId.toLowerCase().includes(j)||N.workItems.some(z=>z.title.toLowerCase().includes(j)))}return k.sort((j,N)=>{const z=EC[j.aggregatedStatus]??99,T=EC[N.aggregatedStatus]??99;return z!==T?z-T:j.roleName.localeCompare(N.roleName)}),k},[x,c,m]);C.useEffect(()=>{i&&!x.some(k=>k.roleKey===i)&&(r(null),a(null))},[x,i]);const b=x.filter(k=>k.aggregatedStatus==="active").length,S=i?e[i]??null:null,w=S&&o?S.workItems.find(k=>k.workItemId===o)??null:null;return x.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:b>0?`${b}/${x.length} active`:`${x.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:c,onChange:k=>d(k.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${p?" active":""}`,onClick:()=>g(k=>!k),title:"Search agents",children:u.jsx(Xv,{})})]})]}),p&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents or work items...",value:m,onChange:k=>h(k.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[v.map(k=>{const j=i===k.roleKey,N=k.aggregatedStatus==="active",z=k.runtimeStatus==="reflecting"||k.runtimeStatus==="tool_active",T=k.aggregatedStatus==="done"||k.aggregatedStatus==="failed";return u.jsxs("button",{className:`awp-row${j?" awp-row-selected":""}${N?" awp-row-active":""}${T?` awp-row-terminal awp-terminal-${k.aggregatedStatus}`:""}`,onClick:()=>{r(M=>M===k.roleKey?null:k.roleKey),a(null)},title:`${k.roleName} — ${bv[k.aggregatedStatus]}`,children:[u.jsx("span",{className:`awp-dot${z?" awp-dot-active":""} awp-dot-${k.aggregatedStatus}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:k.roleName}),u.jsxs("span",{className:"awp-row-projection",children:[k.workItems.length," work item",k.workItems.length===1?"":"s"]})]}),u.jsx("span",{className:"awp-row-activity",children:pV(k)}),u.jsx("span",{className:"awp-row-time",children:hV(k)})]},k.roleKey)}),v.length===0&&u.jsx("div",{className:"awp-empty",children:m?"No matching agents":"No agents in this filter"})]}),S&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:"awp-detail-avatar",children:S.roleName.charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:S.roleName}),u.jsx("span",{className:"awp-detail-role",children:bv[S.aggregatedStatus]})]})]}),u.jsx("div",{className:"awp-detail-actions",children:u.jsx("button",{className:"awp-detail-close",onClick:()=>{r(null),a(null)},title:"Close detail",children:u.jsx(Pm,{})})})]}),u.jsxs("div",{className:"awp-detail-body",children:[u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(_l,{}),u.jsx("span",{children:"Work items"})]}),u.jsx("ul",{className:"wf-role-turns",children:S.workItems.map(k=>{const j=o===k.workItemId,N=k.kanbanColumn==="in-progress"?"in_progress":k.kanbanColumn==="in-review"?"in_review":k.kanbanColumn;return u.jsxs("li",{className:`wf-role-turn${j?" wf-role-turn-expanded":""}`,children:[u.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(z=>z===k.workItemId?null:k.workItemId),children:[u.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:k.kanbanColumn.replace("-"," ").replace(/^./,z=>z.toUpperCase())}),u.jsxs("span",{className:"wf-role-turn-title",children:[k.isReviewTarget&&u.jsx("span",{className:"wf-role-turn-tag",children:"Review"}),k.title]}),u.jsx("span",{className:"wf-role-turn-time",children:H0(k.updatedAt)}),u.jsx("span",{className:"wf-role-turn-chevron",children:u.jsx(as,{down:j})})]}),j&&u.jsxs("div",{className:"wf-role-turn-activity",children:[u.jsx(yV,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:gV(k)}),k.executionTurnId&&u.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:z=>{z.stopPropagation(),k.executionTurnId&&(n??t)?.(k.executionTurnId)},children:"Open runtime session"})]})]},k.workItemId)})})]}),w===null&&S.workItems.length===0&&u.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function vV({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:i}){const[r,o]=C.useState(null),[a,c]=C.useState("all"),[d,m]=C.useState(""),[h,p]=C.useState(!1);C.useEffect(()=>{r&&!e.some(w=>w.taskId===r)&&o(null)},[e,r]);const g=C.useMemo(()=>{let w=[...e];if(a==="active"?w=w.filter(ls):a==="idle"?w=w.filter(k=>sl.has(k.status)||$0(k)==="idle"&&k.status!=="pending"):a==="pending"&&(w=w.filter(k=>k.status==="pending")),d.trim()){const k=d.toLowerCase();w=w.filter(j=>(j.assigneeIds[0]??j.title).toLowerCase().includes(k)||j.title.toLowerCase().includes(k))}return w.sort((k,j)=>wC(k)-wC(j)),w},[e,a,d]),x=e.filter(ls).length,v=C.useMemo(()=>r?e.find(w=>w.taskId===r)??null:null,[e,r]),b=C.useMemo(()=>{if(!v)return;const w=v.assigneeIds[0];return w?t.find(k=>k.agent_id===w):void 0},[v,t]),S=C.useCallback(w=>{o(k=>k===w?(n?.(w),k):w)},[n]);return e.length===0?null:u.jsxs("div",{className:"awp",children:[u.jsxs("div",{className:"awp-header",children:[u.jsxs("span",{className:"awp-title",children:["Agents",u.jsx("span",{className:"awp-count",children:x>0?`${x}/${e.length} active`:`${e.length}`})]}),u.jsxs("div",{className:"awp-controls",children:[u.jsxs("select",{className:"awp-filter",value:a,onChange:w=>c(w.target.value),children:[u.jsx("option",{value:"all",children:"All"}),u.jsx("option",{value:"active",children:"Active"}),u.jsx("option",{value:"idle",children:"Idle / Done"}),u.jsx("option",{value:"pending",children:"Pending"})]}),u.jsx("button",{className:`awp-search-toggle${h?" active":""}`,onClick:()=>p(w=>!w),title:"Search agents",children:u.jsx(Xv,{})})]})]}),h&&u.jsx("div",{className:"awp-search-bar",children:u.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:w=>m(w.target.value),autoFocus:!0})}),u.jsxs("div",{className:"awp-list",children:[g.map(w=>{const k=ls(w),j=sl.has(w.status),N=r===w.taskId,z=w.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,A=>A.toUpperCase())??w.title,T=w.workItemProjectionId?.replace(/_/g," ")??"",M=CC(w.status),L=jC(w.status);return u.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${k?" awp-row-active":""}${j?` awp-row-terminal ${L}`:""}`,onClick:()=>S(w.taskId),onDoubleClick:()=>n?.(w.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[M?u.jsx("span",{className:`awp-terminal-icon ${L}`,children:M}):u.jsx("span",{className:`awp-dot${k?" awp-dot-active":""}`}),u.jsxs("div",{className:"awp-row-info",children:[u.jsx("span",{className:"awp-row-name",children:z}),T&&u.jsx("span",{className:"awp-row-projection",children:T})]}),u.jsx("span",{className:"awp-row-activity",children:mV(w)}),u.jsx("span",{className:"awp-row-time",children:fV(w.progressLog)})]},w.taskId)}),g.length===0&&u.jsx("div",{className:"awp-empty",children:d?"No matching agents":"No agents in this filter"})]}),v&&u.jsxs("div",{className:"awp-detail",children:[u.jsxs("div",{className:"awp-detail-header",children:[u.jsxs("div",{className:"awp-detail-identity",children:[u.jsx("div",{className:`awp-detail-avatar${sl.has(v.status)?` ${jC(v.status)}`:""}`,children:(b?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),u.jsxs("div",{className:"awp-detail-meta",children:[u.jsx("span",{className:"awp-detail-name",children:b?.name??v.assigneeIds[0]??v.title}),jl(v)&&u.jsx("span",{className:"awp-detail-role",children:jl(v)}),v.employeeAssignment?.name&&u.jsx("span",{className:"awp-detail-employee",children:v.employeeAssignment.name}),v.selectedExecutionAgent&&u.jsxs("span",{className:"awp-detail-employee",children:["Agent: ",la(v.selectedExecutionAgent)]}),v.workItemProjectionId&&u.jsx("span",{className:"awp-detail-projection",children:v.workItemProjectionId.replace(/_/g," ")})]})]}),u.jsxs("div",{className:"awp-detail-actions",children:[n&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>n(v.taskId),title:"Open full context",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[u.jsx("path",{d:"M2.5 3.25h9a1 1 0 011 1v5.5a1 1 0 01-1 1h-4l-2.75 2v-2h-2.25a1 1 0 01-1-1v-5.5a1 1 0 011-1Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),u.jsx("path",{d:"M4.5 5.5h5M4.5 7.5h3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}),i&&u.jsx("button",{className:"awp-detail-expand",onClick:()=>i(v.taskId),title:"Open execution panel",children:u.jsx(_l,{})}),u.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:u.jsx(Pm,{})})]})]}),u.jsxs("div",{className:"awp-detail-body",children:[v.handoffContext&&u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(Kf,{}),u.jsx("span",{children:"Handoff"})]}),u.jsx("div",{className:"msg-content-agent-card",children:u.jsx(wi,{content:v.handoffContext,className:"awp-detail-handoff awp-detail-handoff-markdown"})})]}),u.jsxs("div",{className:"awp-detail-section",children:[u.jsxs("div",{className:"awp-detail-section-label",children:[u.jsx(_l,{}),u.jsx("span",{children:"Activity"})]}),u.jsx(Nl,{entries:v.progressLog,agentStatus:v.agentStatus,currentTool:v.currentTool,toolElapsedMs:v.toolElapsedMs,lastToolSummary:v.lastToolSummary,sessionStatus:v.status,expandedByDefault:!0}),v.progressLog.length===0&&!v.agentStatus&&!sl.has(v.status)&&u.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),sl.has(v.status)&&Sy[v.status]&&u.jsxs("div",{className:`awp-result-banner ${Sy[v.status].cls}`,children:[u.jsx("span",{className:"awp-result-icon",children:CC(v.status)}),u.jsx("span",{children:Sy[v.status].text})]})]})]})]})}function bV({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?u.jsx(xV,{roleWorkItems:t,onOpenChildDetail:r,onOpenExecutionPanel:o}):n?null:u.jsx(vV,{sessions:e,agents:i,onOpenChildDetail:r,onOpenExecutionPanel:o})}function nT(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function wy(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function NC(e){return e?Object.entries(e).filter(([,t])=>t!=null&&t!==""&&t!==!1).map(([t,n])=>Array.isArray(n)?[t,n.join(", ")]:typeof n=="object"?[t,nT(n)]:[t,String(n)]):[]}function _V({task:e,linkedSession:t,linkedSessionMessages:n,agents:i,onBack:r,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const c=C.useMemo(()=>e.assigneeIds.map(T=>i.find(M=>M.agent_id===T)).filter(Boolean),[i,e.assigneeIds]),d=e.priority?dm[e.priority]:null,m=e.residentAssignment??{},h=e.memberSessionState??{},p=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),x=wy(e.deliverables),v=wy(e.acceptanceCriteria),b=wy(e.dependencies),S=NC({role_id:m.role_id,employee_id:m.employee_id,manager_role_id:m.manager_role_id,team_id:m.team_id,seat_id:m.seat_id,work_item_turn_type:m.work_item_turn_type,resident_status:m.resident_status}),w=NC({status:h.status,current_turn_mode:h.current_turn_mode,manager_role_id:h.manager_role_id,actionable_inbox_count:h.actionable_inbox_count,protocol_backlog_count:h.protocol_backlog_count,notification_backlog_count:h.notification_backlog_count}),k=String(e.employeeAssignment?.promptContext??"").trim(),j=String(e.employeeAssignment?.deltaContext??"").trim(),N=Ym(e),z=!!(e.workItemId||e.workItemProjectionId||N);return u.jsxs("div",{className:"ctx-child-detail",children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsxs("button",{className:"ctx-back-btn",onClick:r,children:["←"," Back to board"]}),N&&(o||a)&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>{if(o){o(N);return}a?.(N)},children:"Open Runtime Session"})]}),u.jsxs("div",{className:"ctx-child-header",children:[u.jsx("div",{className:"ctx-child-avatar",children:(e.workItemRoleName??e.title).charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:e.title}),u.jsx("span",{className:"ctx-child-work-item",children:[e.workItemRoleName,e.phase].filter(Boolean).join(" · ")})]})]}),g&&u.jsxs("div",{className:`task-detail-runtime status-${e.agentStatus}`,children:[u.jsx("span",{className:"kanban-runtime-dot"}),u.jsx("span",{children:e.agentStatus==="tool_active"&&e.currentTool?e.currentTool:b0[e.agentStatus]??e.agentStatus}),c.length>0&&u.jsx("span",{className:"task-detail-runtime-agent",children:c.map(T=>T.name).join(", ")})]}),u.jsxs("div",{className:"task-detail-body",children:[u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:z?"Work Item":"Task"}),u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsx("span",{className:"task-detail-dep-id",children:e.displayId}),d&&u.jsx("span",{className:"kanban-tag",children:d.label}),e.workItemRoleName&&u.jsx("span",{className:"kanban-tag",children:e.workItemRoleName}),e.managerRoleId&&u.jsxs("span",{className:"kanban-tag",children:["Manager: ",e.managerRoleId]}),e.scopeKey&&u.jsx("span",{className:"kanban-tag",children:e.scopeKey})]}),e.description&&u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(wi,{content:e.description})})]}),e.originalMessage&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Session Goal"}),u.jsx("pre",{className:"task-detail-handoff",children:e.originalMessage})]}),e.planningContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Planning Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.planningContext})]}),x.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Deliverables"}),u.jsx("ul",{className:"task-detail-dep-list",children:x.map(T=>u.jsx("li",{className:"task-detail-dep-item",children:T},T))})]}),v.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Acceptance Criteria"}),u.jsx("ul",{className:"task-detail-dep-list",children:v.map(T=>u.jsx("li",{className:"task-detail-dep-item",children:T},T))})]}),(e.delegationRationale||e.nonOverlapGuard||e.coordinationNotes)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Delegation Notes"}),e.delegationRationale&&u.jsx("pre",{className:"task-detail-handoff",children:e.delegationRationale}),e.nonOverlapGuard&&u.jsx("pre",{className:"task-detail-handoff",children:e.nonOverlapGuard}),e.coordinationNotes&&u.jsx("pre",{className:"task-detail-handoff",children:e.coordinationNotes})]}),b.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Dependencies"}),u.jsx("ul",{className:"task-detail-dep-list",children:b.map(T=>u.jsx("li",{className:"task-detail-dep-item",children:u.jsx("span",{className:"task-detail-dep-id",children:T})},T))})]}),(S.length>0||w.length>0||t)&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Runtime Context"}),t&&u.jsxs("div",{className:"ctx-task-chip-row",children:[u.jsxs("span",{className:"kanban-tag",children:["Runtime Session: ",t.title]}),u.jsxs("span",{className:"kanban-tag",children:["Status: ",t.status]})]}),S.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:S.map(([T,M])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:T}),u.jsx("span",{className:"ctx-task-kv-value",children:M})]},T))}),w.length>0&&u.jsx("div",{className:"ctx-task-kv-grid",children:w.map(([T,M])=>u.jsxs("div",{className:"ctx-task-kv-item",children:[u.jsx("span",{className:"ctx-task-kv-label",children:T}),u.jsx("span",{className:"ctx-task-kv-value",children:M})]},T))})]}),e.handoffContext&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Handoff Context"}),u.jsx("pre",{className:"task-detail-handoff",children:e.handoffContext})]}),k&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Prompt Context"}),u.jsx("div",{className:"msg-content-agent-card ctx-task-detail-card",children:u.jsx(wi,{content:k})})]}),j&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Role Delta Context"}),u.jsx("pre",{className:"task-detail-handoff",children:j})]}),Object.keys(p).length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Ownership Contract"}),u.jsx("pre",{className:"task-detail-handoff",children:nT(p)})]}),e.progressLog&&e.progressLog.length>0&&u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Activity"}),u.jsx("ul",{className:"task-detail-progress",children:e.progressLog.map((T,M)=>u.jsxs("li",{className:`progress-entry type-${T.type}`,children:[u.jsx("span",{className:"progress-time",children:new Date(T.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"progress-summary",children:T.summary})]},`${T.timestamp}-${M}`))})]}),u.jsxs("div",{className:"task-detail-section",children:[u.jsx("h4",{className:"task-detail-section-title",children:"Runtime Session Activity"}),t&&n&&n.length>0?u.jsx("div",{className:"task-detail-linked-messages",children:u.jsx(al,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary",scrollScope:t.channelId},t.channelId)}):t?u.jsx("p",{className:"task-detail-empty-hint",children:"Runtime session has no visible messages yet."}):u.jsx("p",{className:"task-detail-empty-hint",children:"No Runtime Session linked yet."})]})]})]})}function kV(e){const t=Date.now()-e;return t<6e4?"just now":t<36e5?`${Math.floor(t/6e4)}m`:t<864e5?`${Math.floor(t/36e5)}h`:`${Math.floor(t/864e5)}d`}function SV(e,t){if(t>1)return`${t} agents working`;const n=e.displayTool||e.currentTool;return n?`Running ${n}`:e.agentStatus==="reflecting"?"Thinking...":e.status==="running"?"Running":null}function wV(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function CV(e){return new Set(e.filter(ls).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function IC(e,t){const n=wV(e);return n!==void 0?n||void 0:CV(t)||void 0}function jV(e){const t=_v(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function iT(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function rT(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function TC(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||rT(e)||n==="company"||n==="org"||n==="custom"}function su(e,t){const n=t==="full"?e.fullHasMore:e.summaryHasMore;if(n!==void 0)return n;if(e.summaryHasMore===void 0&&e.fullHasMore===void 0)return e.hasMore}function Cy(e,t,n,i=!0){const r=e.map(o=>su(o,n));return r.some(o=>o===!0)?!0:e.length!==1||r[0]===!1?!1:i&&e[0].messageCount>t}function EV(e){const t=String(e.execMode??"").trim().toLowerCase(),n=iT(e.execMode),i=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:i==="custom"||!!e.orgId}function jy(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const i=String(e.status??"").trim().toLowerCase();return!!(i&&i!=="pending"||e.parentSessionId||e.workItemProjectionId||e.workItemRoleId||e.workItemTurnType||e.pendingRuntimeCheckpointId||e.runtimeControlState&&e.runtimeControlState!=="idle"||(e.progressLog?.length??0)>0||(e.workItemLog?.length??0)>0||e.roleWorkItems&&Object.keys(e.roleWorkItems).length>0||e.executorRoleWorkItems&&Object.keys(e.executorRoleWorkItems).length>0)}function _v(e,t){const i=String(e.execMode??"").trim().toLowerCase().length>0,r=iT(e.execMode);return EV(e)?"org":!i&&r==="task"&&rT(e)?"company":e.execMode??t??"task"}function RC(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function Qc(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const NV=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function AC(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!NV.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function IV({task:e,agents:t,roleLabel:n}){const[i,r]=C.useState(!1),o=e.priority,a=o&&e.priority in dm?dm[o]:null,c=e.assigneeIds.map(p=>t.find(g=>g.agent_id===p)?.name??p).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,h=({label:p,value:g})=>u.jsxs("div",{className:"ctx-info-fact",children:[u.jsx("span",{className:"ctx-info-fact-label",children:p}),u.jsx("span",{className:"ctx-info-fact-value",children:g})]});return u.jsxs("div",{className:"ctx-info-v2",children:[u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Status"}),u.jsxs("div",{className:"ctx-info-card",children:[u.jsxs("div",{className:"ctx-info-status-row",children:[u.jsxs("span",{className:`ctx-info-status-pill status-${e.status}`,children:[u.jsx("span",{className:"ctx-info-status-dot"}),e.status]}),a&&u.jsxs("span",{className:"ctx-info-priority-pill",style:{color:a.color},children:[u.jsx("span",{"aria-hidden":"true",children:a.symbol}),a.label]})]}),e.tags&&e.tags.length>0&&u.jsx("div",{className:"ctx-info-chips",children:e.tags.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"People & agent"}),u.jsxs("div",{className:"ctx-info-card",children:[c.length>0&&u.jsx(h,{label:"Assignees",value:u.jsx("div",{className:"ctx-info-chips",children:c.map(p=>u.jsx("span",{className:"ctx-info-chip",children:p},p))})}),n&&u.jsx(h,{label:"Role",value:n}),m&&u.jsx(h,{label:"Employee",value:m}),e.selectedExecutionAgent&&u.jsx(h,{label:"Execution agent",value:u.jsx("span",{className:"ctx-info-mono",children:e.selectedExecutionAgent})})]})]}),u.jsxs("section",{className:"ctx-info-section",children:[u.jsx("h4",{className:"ctx-info-section-title",children:"Timing"}),u.jsx("div",{className:"ctx-info-card",children:u.jsx(h,{label:"Created",value:u.jsx("span",{children:d.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})})})]}),u.jsxs("section",{className:"ctx-info-section ctx-info-dev-section",children:[u.jsxs("button",{className:`ctx-info-dev-toggle${i?" expanded":""}`,type:"button",onClick:()=>r(p=>!p),"aria-expanded":i,children:[u.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:u.jsx("path",{d:i?"M3 6l5 5 5-5":"M6 3l5 5-5 5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})}),u.jsx("span",{children:"Developer details"})]}),i&&u.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&u.jsx(h,{label:"Projection",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),u.jsx(h,{label:"Task ID",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),u.jsx(h,{label:"Channel",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&u.jsx(h,{label:"Session",value:u.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function TV({panelState:e,width:t,onResizeMouseDown:n,isResizing:i,activeView:r,activeSession:o,activeTask:a,linkedTaskSession:c,linkedTaskSessionMessages:d,childDetailSession:m,messages:h,childDetailMessages:p,allSessions:g,openSessions:x,openSessionMessages:v,openSessionChildren:b,agents:S,childSessions:w,execMode:k,taskPreferredAgent:j,savedOrgsList:N,activeSavedOrg:z,onSavedOrgsList:T,onSavedOrgLoad:M,canShowAgentsTab:L=!1,channelId:A,channelName:O,secretaryChannelId:I,unreadCounts:$,multiSessionView:G=!1,panelTab:P,onPanelTabChange:F,commsState:V,commsMessage:Y,onCommsRefresh:U,onCommsReadMessage:Z,orgInfoData:W,canShowTeamTab:q=!1,onTeamStopRun:Q,onTitleChange:D,onSessionConfigChange:K,onSessionTaskAgentChange:ne,onContinueInNewChat:ee,onStop:te,onComplete:oe,onResume:le,onResumeTask:he,onStopTask:Te,onCompleteTask:be,onLocateOnBoard:je,onBackToParent:Ve,onCloseTaskDetail:Ye,onOpenChildDetail:$e,onOpenExecutionPanel:ct,onSelectSessionTab:It,onCloseSessionTab:yt,onToggleMultiSessionView:Vt,onCollapse:ge,onExpand:me,onMaximize:Ge,onComposerSend:Ke,onInteractionReply:pt,onSessionSend:ce,onWorkItemClick:Ce,onWorkItemOpenSession:Le,onMarkRead:Fe,onSessionMarkRead:Qe,onLoadSessionHistory:wt,isSessionHistoryLoading:Ct}){const dt=r.kind==="secretary",_e=r.kind==="activity",et=r.kind==="child-detail",Ze=r.kind==="task-detail",it=TC(o,w.length),De=r.kind==="session"&&o,Pt=dt?!0:!!o,ri=!et&&x.length>0,Bt=x.length>1,Dt=!!(G&&r.kind==="session"&&o&&Bt&&P==="chat"),Cn=C.useRef(null),Tt=C.useMemo(()=>{const Ae=Jf(o,g);return em(o,[...Ae,...w])},[o,w,g]),$t=Tt.displaySession??o,Mn=Qc($t),xt=C.useMemo(()=>jS(o,Tt.runtimeSession,Tt.timelineSessions),[o,Tt.runtimeSession,Tt.timelineSessions]),Jn=C.useMemo(()=>vD(o,Tt.runtimeSession,Tt.timelineSessions),[o,Tt.runtimeSession,Tt.timelineSessions]),Nn=C.useMemo(()=>NS(Tt.timelineSessions),[Tt.timelineSessions]),tt=C.useMemo(()=>xt?.workItemLog??o?.workItemLog??[],[xt?.workItemLog,o?.workItemLog]),an=C.useMemo(()=>SS(xt??o,g),[xt,o,g]),Vn=C.useMemo(()=>xt?.roleWorkItems??o?.roleWorkItems,[xt?.roleWorkItems,o?.roleWorkItems]),mn=C.useMemo(()=>xt?.executorRoleWorkItems??o?.executorRoleWorkItems,[xt?.executorRoleWorkItems,o?.executorRoleWorkItems]),ht=!!(Vn&&Object.keys(Vn).length>0||mn&&Object.keys(mn).length>0),ut=an.length>0?an:w,hi=C.useMemo(()=>tm(Tt.timelineSessions),[Tt.timelineSessions]),Dn=C.useMemo(()=>Tt.timelineSessions.some(Ae=>Ct?.(Ae.taskId)??!1),[Tt.timelineSessions,Ct]),en=C.useCallback(Ae=>{if(Ae){const ln=Tt.timelineSessions.find(gi=>gi.channelId===Ae.channelId);if(ln&&su(ln,Mn)!==!1)return ln}const Et=Tt.timelineSessions.find(ln=>su(ln,Mn)===!0);return Et||($t??o)},[Tt.timelineSessions,Mn,$t,o]),Ht=C.useMemo(()=>{if(!m)return;const Ae=m.assigneeIds[0];return Ae?S.find(Et=>Et.agent_id===Ae):void 0},[m,S]),Ft=c??(()=>{const Ae=Ym(a);return Ae?g.find(Et=>Et.taskId===Ae||Et.runtimeTaskId===Ae||Et.executionTurnId===Ae)??null:null})();C.useEffect(()=>{!et||!m||Cn.current?.scrollTo({top:0,behavior:"auto"})},[et,m?.taskId]);const Un=o;return e==="collapsed"?u.jsx("div",{className:"ctx-collapse-strip",onClick:()=>me(),title:"Open panel",children:"◀"}):u.jsxs(u.Fragment,{children:[u.jsx("div",{className:`ctx-resize-handle${i?" active":""}`,onMouseDown:n}),u.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:Ze&&a?u.jsx(_V,{task:a,linkedSession:Ft,linkedSessionMessages:d,agents:S,onBack:Ye??ge,onOpenLinkedSession:It,onOpenExecutionPanel:ct}):et&&m?u.jsxs("div",{className:"ctx-child-detail",ref:Cn,children:[u.jsxs("div",{className:"ctx-child-topbar",children:[u.jsx("button",{className:"ctx-back-btn",onClick:Ve,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&Te&&u.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>Te(m.taskId),title:"Stop this agent",children:"Stop"}),m.runtimeControlState==="suspending"&&u.jsx("button",{className:"ctx-child-stop-btn",disabled:!0,title:"Stopping this agent",children:"Stopping..."}),AC(m)&&he&&u.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>he(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),u.jsxs("div",{className:"ctx-child-header",children:[Ht&&u.jsx("div",{className:"ctx-child-avatar",children:Ht.name.charAt(0).toUpperCase()}),u.jsxs("div",{className:"ctx-child-meta",children:[u.jsx("span",{className:"ctx-child-name",children:Ht?.name??m.title}),m.workItemRoleName&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemRoleName}),!m.workItemRoleName&&m.workItemProjectionId&&u.jsx("span",{className:"ctx-child-work-item",children:m.workItemProjectionId.replace(/_/g," ")})]})]}),m.handoffContext&&u.jsxs("div",{className:"exec-section ctx-child-markdown-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(Kf,{}),u.jsx("span",{children:"Received From"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(wi,{content:m.handoffContext})})]}),u.jsxs("div",{className:"ctx-child-transcript",children:[u.jsxs("div",{className:"ctx-child-transcript-header",children:[u.jsx(_l,{}),u.jsx("span",{children:"Transcript"})]}),u.jsx(al,{messages:p,channelName:m.title,viewKind:"session",detailMode:"full",agentStatus:m.agentStatus,currentTool:m.currentTool,toolElapsedMs:m.toolElapsedMs,lastToolSummary:m.lastToolSummary,progressLog:m.progressLog,draftAssistantText:m.draftAssistantText,draftUpdatedAt:m.draftUpdatedAt,draftIteration:m.draftIteration,draftTurnId:m.draftTurnId,onMarkRead:Fe,hasOlderHistory:Cy([m],p.length,"full",!ls(m)),totalMessageCount:m.messageCount,onLoadOlderHistory:Ae=>wt?.(m.taskId,Ae,"full"),loadingOlderHistory:Ct?.(m.taskId)??!1,scrollPolicy:"initial-bottom",scrollScope:m.channelId,showRuntimeProgress:!0,renderUserMarkdown:!0},m.channelId)]}),m.artifacts&&m.artifacts.length>0&&u.jsxs("div",{className:"ctx-child-artifacts",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(Om,{}),u.jsx("span",{children:"Artifacts"})]}),u.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Ae,Et)=>u.jsx("li",{children:Ae},Et))})]}),m.handoffTo&&u.jsxs("div",{className:"ctx-child-markdown-section ctx-child-passed-to",children:[u.jsxs("div",{className:"ctx-child-section-header",children:[u.jsx(Kf,{}),u.jsx("span",{children:"Passed To"})]}),u.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:u.jsx(wi,{content:m.handoffTo})})]})]}):u.jsxs(u.Fragment,{children:[ri&&u.jsxs("div",{className:"ctx-session-strip",children:[u.jsx("div",{className:"ctx-session-strip-scroll",children:x.map(Ae=>{const Et=$?.[Ae.channelId]??0,ln=o?.taskId===Ae.taskId;return u.jsxs("div",{className:`ctx-session-chip${ln?" active":""}`,children:[u.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>It?.(Ae.taskId),title:Ae.title,children:[u.jsx("span",{className:`ctx-session-chip-status status-${Ae.status}`}),u.jsx("span",{className:"ctx-session-chip-title",children:Ae.title}),Et>0&&u.jsx("span",{className:"ctx-session-chip-unread",children:Et>99?"99+":Et})]}),u.jsx("button",{className:"ctx-session-chip-close",onClick:()=>yt?.(Ae.taskId),title:"Close tab",children:"×"})]},Ae.taskId)})}),Bt&&u.jsx("button",{className:`ctx-session-view-btn${G?" active":""}`,onClick:Vt,children:G?"Single View":"Multi View"})]}),u.jsxs("div",{className:"ctx-header",children:[Dt?u.jsx("span",{className:"ctx-header-title",children:it?"Open Runtime Sessions":"Open Sessions"}):De?u.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[u.jsx("button",{role:"tab","aria-selected":P==="chat",className:`ctx-tab${P==="chat"?" active":""}`,onClick:()=>F("chat"),children:"Chat"}),L&&u.jsx("button",{role:"tab","aria-selected":P==="agents",className:`ctx-tab${P==="agents"?" active":""}`,onClick:()=>F("agents"),children:"Agents"}),u.jsx("button",{role:"tab","aria-selected":P==="info",className:`ctx-tab${P==="info"?" active":""}`,onClick:()=>F("info"),children:"Info"}),U&&u.jsx("button",{role:"tab","aria-selected":P==="comms",className:`ctx-tab${P==="comms"?" active":""}`,onClick:()=>F("comms"),children:"Comms"}),q&&u.jsx("button",{role:"tab","aria-selected":P==="team",className:`ctx-tab${P==="team"?" active":""}`,onClick:()=>F("team"),children:"Team"})]}):dt?u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Secretary"}):u.jsx("span",{style:{fontSize:13,fontWeight:600,padding:"0 4px"},children:"Activity"}),u.jsxs("div",{className:"ctx-header-actions",children:[e==="open"&&u.jsx("button",{onClick:Ge,title:"Maximize",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"})})}),e==="maximized"&&u.jsx("button",{onClick:me,title:"Restore",children:u.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[u.jsx("rect",{x:"1",y:"3",width:"8",height:"8",rx:"1.5",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M5 3V1.5A.5.5 0 015.5 1H12.5a.5.5 0 01.5.5V8.5a.5.5 0 01-.5.5H11",stroke:"currentColor",strokeWidth:"1.3"})]})}),u.jsx("button",{onClick:ge,title:"Close panel",children:u.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:u.jsx("path",{d:"M3 3l8 8M11 3l-8 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})})]})]}),u.jsxs("div",{className:"ctx-body",children:[!o&&!dt&&!_e&&u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"📋"}),u.jsx("span",{children:it?"Select a Work Item to see details":"Select a task to see details"})]}),Dt&&u.jsx("div",{className:"ctx-multi-grid",children:x.map(Ae=>{const Et=v[Ae.taskId]??[],ln=b[Ae.taskId]??[],gi=Jf(Ae,g),xn=em(Ae,[...gi,...ln]),vt=jS(Ae,xn.runtimeSession,xn.timelineSessions),Ei=SS(vt??Ae,g),yi=vt?.roleWorkItems??Ae.roleWorkItems,ei=IC(yi,ln)??0,pn=Ae.assigneeIds.map(cn=>S.find(Ln=>Ln.agent_id===cn)?.name??cn).filter(Boolean),Xt=SV(vt??Ae,ei),qt=TC(Ae,ln.length),Kt=xn.displaySession??Ae,In=NS(xn.timelineSessions),On=tm(xn.timelineSessions),ti=jy(vt??Kt,Math.max(On,Et.length)),ki=xn.timelineSessions.some(cn=>Ct?.(cn.taskId)??!1);return u.jsxs("section",{className:`ctx-multi-card${o?.taskId===Ae.taskId?" focused":""}`,children:[u.jsxs("div",{className:"ctx-multi-card-header",children:[u.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>It?.(Ae.taskId),title:"Focus session",children:[u.jsx("span",{className:`ctx-multi-card-status status-${Ae.status}`}),u.jsx("span",{className:"ctx-multi-card-title",children:Ae.title})]}),u.jsxs("div",{className:"ctx-multi-card-actions",children:[((vt??Ae).canStop??(vt??Ae).status==="running")&&(vt??Ae).runtimeControlState!=="suspending"&&Te&&u.jsx("button",{onClick:()=>Te(xn.runtimeSession?.taskId??Ae.taskId),children:"Stop"}),(vt??Ae).runtimeControlState==="suspending"&&u.jsx("button",{disabled:!0,children:"Stopping..."}),AC(vt??Ae)&&he&&u.jsx("button",{onClick:()=>he(Ae.taskId),children:"Continue"}),(vt??Ae).status!=="done"&&(vt??Ae).status!=="cancelled"&&be&&u.jsx("button",{onClick:()=>be(Ae.taskId),children:"Done"}),u.jsx("button",{onClick:()=>It?.(Ae.taskId),children:"Focus"}),u.jsx("button",{onClick:()=>yt?.(Ae.taskId),title:"Close tab",children:"×"})]})]}),u.jsxs("div",{className:"ctx-multi-card-meta",children:[u.jsx("span",{children:jV(Ae)}),u.jsx("span",{children:Ae.status}),Xt&&u.jsx("span",{children:Xt}),pn.length>0&&u.jsx("span",{children:pn.join(", ")}),u.jsx("span",{children:kV(Ae.updatedAt)})]}),u.jsx("div",{className:"ctx-multi-card-body",children:u.jsx(al,{messages:Et,channelName:Kt?.title??Ae.title,viewKind:"session",detailMode:Qc(Kt),agentStatus:qt?void 0:vt?.agentStatus??Kt?.agentStatus,currentTool:qt?void 0:vt?.currentTool??Kt?.currentTool,toolElapsedMs:qt?void 0:vt?.toolElapsedMs??Kt?.toolElapsedMs,lastToolSummary:qt?void 0:vt?.lastToolSummary??Kt?.lastToolSummary,progressLog:qt?void 0:In,draftAssistantText:qt?void 0:vt?.draftAssistantText??Kt?.draftAssistantText,draftUpdatedAt:qt?void 0:vt?.draftUpdatedAt??Kt?.draftUpdatedAt,draftIteration:qt?void 0:vt?.draftIteration??Kt?.draftIteration,draftTurnId:qt?void 0:vt?.draftTurnId??Kt?.draftTurnId,isCompanyRuntime:qt,workItemLog:vt?.workItemLog??Ae.workItemLog,childSessions:Ei,showWorkItemRuntimeCard:!qt,onInteractionReply:(cn,Ln,zn)=>pt(cn,Ae.taskId,zn),onWorkItemClick:Ce,onWorkItemOpenSession:Le,onMarkRead:()=>Qe?.(Ae.taskId),scrollScope:Ae.channelId,hasOlderHistory:Cy(xn.timelineSessions,Et.length,Qc(Kt??Ae),!xn.timelineSessions.some(ls)),totalMessageCount:On,onLoadOlderHistory:cn=>{const Ln=Qc(Kt??Ae),zn=xn.timelineSessions.find(Xe=>Xe.channelId===cn?.channelId),Gn=(zn&&su(zn,Ln)!==!1?zn:void 0)??xn.timelineSessions.find(Xe=>su(Xe,Ln)===!0)??Kt??Ae;return wt?.(Gn.taskId,cn,Ln)},loadingOlderHistory:ki,showRuntimeProgress:Qc(Kt)==="full"},Kt?.channelId??Ae.channelId)}),u.jsx(ky,{disabled:!1,channelId:vt?.channelId??Ae.channelId,execMode:_v(Ae,k),companyProfile:Ae.companyProfile,taskPreferredAgent:RC(Ae,ti,j),agentStatus:vt?.agentStatus??Kt?.agentStatus,currentTool:vt?.currentTool??Kt?.currentTool,displayTool:vt?.displayTool??Kt?.displayTool,activeAgentCount:ei||void 0,runtimeControlState:(vt??Kt)?.runtimeControlState,canStop:(vt??Kt)?.canStop,savedOrgs:N??null,activeSavedOrg:z??null,selectedOrgId:Ae.orgId??z??null,lockedMode:ti,autoFocus:!1,contextTokens:vt?.contextTokens??Kt?.contextTokens,contextWindow:vt?.contextWindow??Kt?.contextWindow,contextRemainingPct:vt?.contextRemainingPct??Kt?.contextRemainingPct??100,onSend:(cn,Ln)=>ce?.(Ae.taskId,cn,Ln),onModeChange:(cn,Ln,zn)=>K?.(Ae.taskId,cn,Ln,zn),onTaskAgentChange:cn=>ne?.(Ae.taskId,cn),onContinueInNewChat:ee,onSavedOrgsRefresh:T,onSavedOrgLoad:M,onStop:()=>Te?.(xn.runtimeSession?.taskId??Ae.taskId)},vt?.channelId??Ae.channelId)]},Ae.taskId)})}),_e&&u.jsxs(u.Fragment,{children:[u.jsx("div",{style:{padding:"8px 12px",fontSize:12,color:"var(--text-secondary)",borderBottom:"1px solid var(--border)"},children:"Recent activity across all sessions"}),u.jsx(al,{messages:h,channelName:"Activity",viewKind:"activity",detailMode:"summary",onInteractionReply:pt,onMarkRead:Fe,scrollScope:A},A)]}),dt&&u.jsxs(u.Fragment,{children:[u.jsx(al,{messages:h,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onInteractionReply:pt,onMarkRead:Fe,scrollScope:I},I),u.jsx(ky,{disabled:!1,channelId:I,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:Ke},I)]}),o&&!dt&&!_e&&!Dt&&P==="chat"&&u.jsxs(u.Fragment,{children:[u.jsx(x8,{session:Jn??o,agents:S,onTitleChange:D,onViewOnBoard:je?()=>je(o.taskId):void 0,onStop:te,onComplete:(Jn??o).status!=="done"&&(Jn??o).status!=="cancelled"?oe:void 0,onResume:le}),it&&u.jsx("div",{className:"ctx-work-item-progress",children:u.jsx(QI,{workItemLog:tt,roleWorkItems:Vn,executorRoleWorkItems:mn,childSessions:an,isCompanyRuntime:it,onWorkItemClick:Ce})}),u.jsx(al,{messages:h,channelName:O,viewKind:"session",detailMode:Mn,agentStatus:it?void 0:xt?.agentStatus??$t?.agentStatus,currentTool:it?void 0:xt?.currentTool??$t?.currentTool,toolElapsedMs:it?void 0:xt?.toolElapsedMs??$t?.toolElapsedMs,lastToolSummary:it?void 0:xt?.lastToolSummary??$t?.lastToolSummary,progressLog:it?void 0:Nn,draftAssistantText:it?void 0:xt?.draftAssistantText??$t?.draftAssistantText,draftUpdatedAt:it?void 0:xt?.draftUpdatedAt??$t?.draftUpdatedAt,draftIteration:it?void 0:xt?.draftIteration??$t?.draftIteration,draftTurnId:it?void 0:xt?.draftTurnId??$t?.draftTurnId,isCompanyRuntime:it,workItemLog:tt,roleWorkItems:Vn,executorRoleWorkItems:mn,childSessions:an,onInteractionReply:pt,onWorkItemClick:Ce,onWorkItemOpenSession:Le,onMarkRead:Fe,scrollScope:A,hasOlderHistory:Cy(Tt.timelineSessions,h.length,Mn,!Tt.timelineSessions.some(ls)),totalMessageCount:hi,onLoadOlderHistory:Ae=>{const Et=en(Ae);if(Et)return wt?.(Et.taskId,Ae,Mn)},loadingOlderHistory:Dn,showWorkItemRuntimeCard:!1,showRuntimeProgress:Mn==="full"},A),u.jsx(ky,{disabled:!Pt,channelId:xt?.channelId??A,execMode:_v(o,k),companyProfile:o.companyProfile,taskPreferredAgent:RC(o,jy(xt??$t??o,Math.max(hi,h.length)),j),agentStatus:xt?.agentStatus??$t?.agentStatus,currentTool:xt?.currentTool??$t?.currentTool,displayTool:xt?.displayTool??$t?.displayTool,runtimeControlState:(xt??$t)?.runtimeControlState,canStop:(xt??$t)?.canStop,savedOrgs:N??null,activeSavedOrg:z??null,selectedOrgId:o.orgId??z??null,lockedMode:jy(xt??$t??o,Math.max(hi,h.length)),activeAgentCount:IC(Vn,ut),contextTokens:xt?.contextTokens??$t?.contextTokens,contextWindow:xt?.contextWindow??$t?.contextWindow,contextRemainingPct:xt?.contextRemainingPct??$t?.contextRemainingPct??100,onSend:Ke,onModeChange:(Ae,Et,ln)=>K?.(o.taskId,Ae,Et,ln),onTaskAgentChange:Ae=>ne?.(o.taskId,Ae),onContinueInNewChat:ee,onSavedOrgsRefresh:T,onSavedOrgLoad:M,onStop:te},xt?.channelId??A)]}),o&&!dt&&!Dt&&P==="agents"&&L&&(ut.length>0||ht?u.jsx(bV,{sessions:ut,roleWorkItems:Vn,isCompanyRuntime:it,agents:S,onOpenChildDetail:$e,onOpenExecutionPanel:ct}):u.jsxs("div",{className:"ctx-empty",children:[u.jsx("span",{className:"ctx-empty-icon",children:"🧠"}),u.jsx("span",{children:"No child agents have started for this session yet"})]})),o&&!dt&&!Dt&&P==="info"&&Un&&u.jsx(IV,{task:Un,agents:S,roleLabel:jl(Un)}),P==="comms"&&U&&Z&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(u8,{state:V??null,message:Y??null,onRefresh:U,onReadMessage:Z,embedded:!0})}),P==="team"&&q&&u.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:u.jsx(h8,{orgInfoData:W??null,commsState:V??null,onStopRun:Q,embedded:!0})})]})]})})]})}function RV({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:i}){const[r,o]=C.useState(e),[a,c]=C.useState(!1),d=C.useRef(0),m=C.useRef(0),h=C.useRef(e);h.current=r;const p=C.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=h.current,c(!0)},[]);return C.useEffect(()=>{if(!a)return;const g=v=>{const b=d.current-v.clientX,S=m.current+b;if(S{c(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",x),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",x)}},[a,t,n,i]),{width:r,isResizing:a,handleMouseDown:p}}const AV=200;function Ey(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function MV(e,t,n,i){const r=i??((b,S)=>({"workspace.confirmNoRoles":`Your org has no roles defined. - -Set up at least one role before running a task. - -Go to Org tab now?`,"workspace.confirmNoDecider":`Your organization has multiple top-level roles but no final decider selected. - -Choose one final decider in the Org tab before running a task. - -Go to Org tab now?`,"workspace.warningNoTeams":"No runtime teams defined — the system will auto-generate from your roles","workspace.warningVacantRoles":"{count} role(s) have no employees: {names}","workspace.confirmWarnings":`Before running this task: - -{warnings} - -Run anyway?`}[b]??b).replace(/\{(\w+)\}/g,(j,N)=>String(S?.[N]??`{${N}}`)));if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:o,employees:a}=t,c=Xm(t),d=t.top_level_role_ids??[],m=t.final_decider_role_id??"";if(o.length===0)return confirm(r("workspace.confirmNoRoles"))&&n?.(),!1;if(d.length>1&&!m)return confirm(r("workspace.confirmNoDecider"))&&n?.(),!1;const h=[],p=new Set(o.map(b=>b.role_id));c.runtimeTeams.filter(b=>b.member_role_ids.some(S=>p.has(S))||b.manager_role_id&&p.has(b.manager_role_id)).length===0&&h.push(r("workspace.warningNoTeams"));const x=new Set(a.map(b=>b.role_id)),v=o.filter(b=>!x.has(b.role_id));if(v.length>0){const b=v.map(S=>S.name).join(", ");h.push(r("workspace.warningVacantRoles",{count:v.length,names:b}))}return h.length>0?confirm(r("workspace.confirmWarnings",{warnings:h.map(b=>"• "+b).join(` -`)})):!0}function DV(e){if(!e)return!1;const t=Xm(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function OV(e,t){return e?e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function Ny(e,t=0){if(!e)return!1;const n=String(e.execMode??"").trim().toLowerCase();return t>0||!!e.isCompanyRuntime||!!e.roleWorkItems||!!e.executorRoleWorkItems||n==="company"||n==="org"||n==="custom"}function MC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function LV({boardColor:e,title:t,onCommit:n}){const{t:i}=Wr(),[r,o]=C.useState(!1),[a,c]=C.useState(t),d=C.useRef(null);C.useEffect(()=>{r||c(t)},[t,r]);const m=C.useCallback(()=>{const p=a.trim();p&&p!==t?n(p):c(t),o(!1)},[a,t,n]),h=C.useCallback(()=>{c(t),o(!0),setTimeout(()=>d.current?.select(),0)},[t]);return u.jsx("div",{className:"board-selector",children:u.jsx("div",{className:"board-tabs",children:u.jsxs("span",{className:"board-tab active board-tab-editable",style:{"--board-color":e},children:[u.jsx("span",{className:"board-tab-dot",style:{background:e}}),r?u.jsx("input",{ref:d,className:"board-tab-title-input",value:a,onChange:p=>c(p.target.value),onBlur:m,onKeyDown:p=>{p.key==="Enter"&&m(),p.key==="Escape"&&(c(t),o(!1))}}):u.jsx("span",{className:"board-tab-title",onClick:h,title:i("workspace.clickEditTitle"),children:t})]})})})}function zV({boardStore:e,agents:t,officeMap:n,execMode:i,companyProfile:r,taskPreferredAgent:o,chatStore:a,sessionStore:c,projectId:d,onRunTask:m,onCreateTask:h,onMoveTask:p,onCreateSession:g,onSessionSend:x,onInteractionReply:v,onSecretarySend:b,onDeleteSession:S,onTitleChange:w,onSessionConfigChange:k,onSessionTaskAgentChange:j,onContinueInNewChat:N,onSessionStop:z,onSessionResume:T,onSessionComplete:M,onLoadSessionDetail:L,onOpenExecutionPanel:A,onCollabSync:O,orgInfoData:I,onNavigateToOrg:$,commsState:G,commsMessage:P,onCommsRefresh:F,onCommsReadMessage:V,savedOrgsList:Y,activeSavedOrg:U,onSavedOrgsList:Z,onSavedOrgLoad:W}){const{t:q}=Wr(),{sessions:Q,activeSessionId:D,activeSession:K}=c,{markRead:ne}=a,[ee,te]=C.useState("collapsed"),{width:oe,isResizing:le,handleMouseDown:he}=RV({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>te("collapsed")}),[Te,be]=C.useState("chat"),[je,Ve]=C.useState(null),[Ye,$e]=C.useState({kind:"activity"}),[ct,It]=C.useState([]),[yt,Vt]=C.useState(!1),[ge,me]=C.useState({}),Ge=C.useRef(L),Ke=C.useRef(Q),pt=C.useRef(a.getChannelMessages),ce=C.useRef({scope:null,active:new Set,child:null}),Ce=C.useRef(new Set),Le=C.useRef(0);Ke.current=Q,pt.current=a.getChannelMessages;const Fe=i==="company"||i==="org"||i==="custom",Qe=`secretary:${d}`,wt=`activity:${d}`,Ct=C.useMemo(()=>je?Q.find(pe=>pe.taskId===je)??null:null,[Q,je]),dt=C.useMemo(()=>Ye.kind!=="task-detail"?null:e.tasks.find(pe=>pe.id===Ye.taskId)??null,[Ye,e.tasks]),_e=C.useMemo(()=>{const pe=Ym(dt);return pe?Q.find(ke=>ke.taskId===pe||ke.runtimeTaskId===pe||ke.executionTurnId===pe)??null:null},[Q,dt]),et=C.useMemo(()=>_e?a.getChannelMessages(_e.channelId):[],[a.messages,a.getChannelMessages,_e]),Ze=C.useMemo(()=>Pf(K,Q),[Q,K]),it=C.useMemo(()=>Jf(K,Q),[Q,K]),De=C.useMemo(()=>em(K,[...it,...Ze]),[K,Ze,it]);C.useEffect(()=>{Ge.current=L},[L]);const Pt=C.useCallback((pe,ke,Me="summary")=>{const bt=Ge.current;if(!bt||!pe)return;const Rt=Le.current,we=Ke.current.find(We=>We.taskId===pe)?.channelId,Oe=ke&&we&&ke.channelId!==we?pt.current(we).find(We=>Zv(We,Me)):ke,Ue=[Rt,pe,Me,Oe?.timestamp??"latest",Oe?.id??""].join("|");if(Ce.current.has(Ue))return;Ce.current.add(Ue),me(We=>We[pe]?We:{...We,[pe]:!0});let ft;try{ft=bt(pe,{limit:AV,beforeCreatedAt:Oe?.timestamp,beforeMessageId:Oe?.id,detailLevel:Me})}catch{Ce.current.delete(Ue),Le.current===Rt&&(me(qe=>qe[pe]?{...qe,[pe]:!1}:qe),ce.current.active.delete(`${pe}:${Me}`),ce.current.child===pe&&(ce.current.child=null));return}return Promise.resolve(ft).catch(()=>{Le.current===Rt&&(ce.current.active.delete(`${pe}:${Me}`),ce.current.child===pe&&(ce.current.child=null))}).finally(()=>{if(Ce.current.delete(Ue),Le.current!==Rt)return;const We=`${Rt}|${pe}|`;[...Ce.current.keys()].some(un=>un.startsWith(We))||me(un=>un[pe]?{...un,[pe]:!1}:un)})},[]),ri=C.useCallback(pe=>!!ge[pe],[ge]);C.useLayoutEffect(()=>{Le.current+=1,Ce.current.clear(),ce.current={scope:null,active:new Set,child:null},me({})},[d]),C.useEffect(()=>()=>{Le.current+=1,Ce.current.clear()},[]),C.useEffect(()=>{je&&!Ct&&Ve(null)},[je,Ct]),C.useEffect(()=>{Ye.kind==="task-detail"&&!dt&&$e({kind:"activity"})},[Ye,dt]);const Bt=C.useRef(null);C.useEffect(()=>{if(!_e){Bt.current=null;return}Bt.current!==_e.taskId&&(Bt.current=_e.taskId,Pt(_e.taskId,void 0,"full"))},[_e,Pt]),C.useEffect(()=>{if(!je){ce.current.child=null;return}ce.current.child!==je&&(ce.current.child=je,Pt(je,void 0,"full"))},[je,Pt]),C.useEffect(()=>{if(!D){ce.current.scope=null,ce.current.active.clear();return}ce.current.scope!==D&&(ce.current.scope=D,ce.current.active.clear());const pe=De.timelineSessions.length>0?De.timelineSessions:Q.find(ke=>ke.taskId===D)?[Q.find(ke=>ke.taskId===D)]:[];if(pe.length===0){ce.current.active.clear();return}for(const ke of pe){const Me=Ny(K,Ze.length)?"summary":OV(ke),bt=`${ke.taskId}:${Me}`;ce.current.active.has(bt)||(ce.current.active.add(bt),Pt(ke.taskId,void 0,Me))}},[De.timelineSessions,K,D,Ze.length,Pt,Q]);const Dt=C.useMemo(()=>je?{kind:"child-detail"}:Ye.kind==="task-detail"||Ye.kind==="secretary"?Ye:D?{kind:"session",taskId:D}:{kind:"activity"},[Ye,D,je]),Cn=C.useMemo(()=>Dt.kind==="secretary"?Qe:Dt.kind==="child-detail"&&Ct?Ct.channelId:Dt.kind==="session"&&De.displaySession?De.displaySession.channelId:Dt.kind==="session"&&K?K.channelId:wt,[Dt,De.displaySession,K,Ct,Qe,wt]),Tt=C.useMemo(()=>{if(Dt.kind==="activity")return[wt];if(Dt.kind==="secretary")return[Qe];if(Dt.kind==="child-detail"&&Ct)return[Ct.channelId];if(Dt.kind==="session"){const pe=De.timelineSessions.map(ke=>ke.channelId).filter((ke,Me,bt)=>!!ke&&bt.indexOf(ke)===Me);if(pe.length>0)return pe}return Cn?[Cn]:[]},[Dt.kind,De.timelineSessions,Ct,wt,Qe,Cn]),$t=C.useMemo(()=>{const pe=new Set;for(const ke of Q)ke.status!=="cancelled"&&pe.add(ke.channelId);return pe.add(wt),pe.add(Qe),pe},[Q,wt,Qe]),Mn=C.useMemo(()=>{if(Dt.kind==="activity")return a.messages.filter(pe=>pe.sender!=="user"&&$t.has(pe.channelId)).sort((pe,ke)=>ke.timestamp-pe.timestamp).slice(0,50).reverse();if(Dt.kind==="session"&&Tt.length>1){const pe=Tt.map(ke=>a.getChannelMessages(ke));return Ny(K,Ze.length)&&K?ES(pe.flat(),K.channelId):Qx(pe)}return a.getChannelMessages(Cn)},[a.messages,a.getChannelMessages,Cn,Dt.kind,$t,K,Ze.length,Tt]),xt=C.useMemo(()=>Ct?a.getChannelMessages(Ct.channelId):[],[a.messages,a.getChannelMessages,Ct]),Jn=C.useMemo(()=>[...Fe?Q.filter(ke=>ke.mode!=="child"):Q].sort((ke,Me)=>Me.updatedAt-ke.updatedAt),[Q,Fe]),Nn=C.useMemo(()=>{if(!Fe)return null;const pe=new Set;for(const ke of Q)ke.mode==="child"&&pe.add(ke.taskId);return pe.size>0?pe:null},[Q,Fe]),tt=C.useMemo(()=>{if(!Nn)return e.tasksByColumn;const pe={};for(const[ke,Me]of Object.entries(e.tasksByColumn))pe[ke]=Me.filter(bt=>!Nn.has(bt.id));return pe},[e.tasksByColumn,Nn]),an=!!(K&&(K.isCompanyRuntime||Ze.length>0)),Vn=!!(K&&(Fe||an)),mn=!!(K&&Fe&&DV(I));C.useEffect(()=>{Te==="agents"&&!Vn&&be("chat"),Te==="comms"&&!F&&be("chat"),Te==="team"&&!mn&&be("chat")},[Te,Vn,mn,F]);const ht=C.useMemo(()=>{const pe={};for(const ke of Q)pe[ke.channelId]=a.getUnreadCount(ke.channelId);return pe[Qe]=a.getUnreadCount(Qe),pe},[Q,a.getUnreadCount,Qe]),ut=C.useMemo(()=>ct.map(pe=>Q.find(ke=>ke.taskId===pe)).filter(pe=>!!pe&&pe.mode!=="child"),[ct,Q]),hi=C.useMemo(()=>{const pe={};for(const ke of ut){const Me=Pf(ke,Q),bt=Jf(ke,Q),ue=em(ke,[...bt,...Me]).timelineSessions.map(we=>a.getChannelMessages(we.channelId));pe[ke.taskId]=Ny(ke,Me.length)?ES(ue.flat(),ke.channelId):Qx(ue)}return pe},[ut,Q,a.getChannelMessages]),Dn=C.useMemo(()=>{const pe={};for(const ke of ut)pe[ke.taskId]=Pf(ke,Q);return pe},[ut,Q]),en=C.useCallback(pe=>{It(ke=>ke.includes(pe)?ke:[...ke,pe])},[]),Ht=C.useRef(null);C.useEffect(()=>{D&&!Ht.current&&ee==="collapsed"&&(te("open"),be("chat")),Ht.current=D},[D,ee]),C.useEffect(()=>{D&&en(D)},[D,en]),C.useEffect(()=>{const pe=new Set(Q.map(ke=>ke.taskId));It(ke=>ke.filter(Me=>pe.has(Me))),me(ke=>Object.fromEntries(Object.entries(ke).filter(([Me])=>pe.has(Me))))},[Q]),C.useEffect(()=>{yt&&ut.length<2&&Vt(!1)},[yt,ut.length]),C.useEffect(()=>{const pe=ke=>{if(ke.key==="Escape"&&ee!=="collapsed"){const Me=ke.target?.tagName;if(Me==="INPUT"||Me==="TEXTAREA"||Me==="SELECT")return;te("collapsed")}};return document.addEventListener("keydown",pe),()=>document.removeEventListener("keydown",pe)},[ee]);const Ft=C.useCallback(()=>{for(const pe of Tt)ne(pe)},[Tt,ne]),Un=C.useCallback(pe=>{const ke=Q.find(Me=>Me.taskId===pe);ke&&ne(ke.channelId)},[Q,ne]),Ae=C.useCallback(pe=>{Q.find(Me=>Me.taskId===pe)&&(en(pe),c.setActiveSession(pe),$e({kind:"session",taskId:pe}),te("open"),be("chat"),Ve(null))},[Q,en,c]),Et=C.useCallback(pe=>{const ke=ct.filter(bt=>bt!==pe);if(It(ke),je===pe&&Ve(null),D!==pe)return;const Me=ke[ke.length-1]??null;if(c.setActiveSession(Me),Me){$e({kind:"session",taskId:Me}),be("chat");return}$e({kind:"activity"})},[ct,je,D,c]),ln=C.useCallback(pe=>{if(!pe){$e({kind:"activity"}),c.setActiveSession(null),Ve(null);return}const ke=Q.find(Me=>Me.taskId===pe);if(Fe&&ke?.mode==="child"){Ve(pe),te("open");return}Ae(pe)},[Q,c,Fe,Ae]),gi=C.useCallback(()=>{$e({kind:"secretary"}),c.setActiveSession(null),Ve(null),te("open")},[c]),xn=C.useCallback(pe=>{const ke=e.tasks.find(bt=>bt.id===pe.id);if(Fe&&ke){Ve(null),$e({kind:"task-detail",taskId:ke.id}),te("open"),be("info");return}Q.find(bt=>bt.taskId===pe.id)?Ae(pe.id):ke&&ke.phase!=="cancelled"&&(c.createSession({projectId:d,taskId:ke.id,channelId:`session:${ke.id}`,sessionId:ke.sessionId,title:ke.title,status:"pending",columnId:ke.columnId,execMode:i,companyProfile:r,assigneeIds:ke.assigneeIds,priority:ke.priority,tags:ke.tags,selectedExecutionAgent:ke.selectedExecutionAgent,createdAt:ke.createdAt,updatedAt:ke.updatedAt,messageCount:0,progressLog:[]}),en(pe.id),c.setActiveSession(pe.id),$e({kind:"session",taskId:pe.id}),te("open"),be("chat"),O?.())},[Q,e.tasks,c,Ae,en,O,Fe]),vt=C.useCallback(pe=>{if(!e.activeBoardId)return;const ke=e.activeBoardColumns.find(bt=>bt.name==="Todo");if(!ke)return;const Me=e.createTask({boardId:e.activeBoardId,columnId:ke.id,title:pe});h(pe,e.activeBoardId,ke.id,Me.id)},[e,h]),Ei=C.useCallback(pe=>{e.setActiveBoard(pe);const ke=Q.find(Me=>Me.mode!=="child"&&MC(Me)===pe);if(ke){Ae(ke.taskId);return}Ve(null),$e({kind:"activity"}),c.setActiveSession(null)},[e,Q,Ae,c]),yi=C.useMemo(()=>new Set(e.boards.map(pe=>pe.id)),[e.boards]);C.useEffect(()=>{if(Fe){const pe=dt?.boardId??MC(K)??null;if(!pe||!yi.has(pe)){e.activeBoardId!==null&&e.setActiveBoard(null);return}e.activeBoardId!==pe&&e.setActiveBoard(pe);return}e.boards.length>0&&!e.activeBoardId&&e.setActiveBoard(e.boards[0].id)},[Fe,dt?.boardId,K,yi,e.activeBoardId,e.boards,e.setActiveBoard]);const ei=C.useCallback(pe=>{const ke=e.tasks.find(Oe=>Oe.id===pe);if(!ke)return;const Me=Q.find(Oe=>Oe.taskId===pe),bt=Me?.execMode??i,Rt=Me?.companyProfile??r,ue=bt==="org"||bt==="custom"?"custom":bt==="company"?Rt:void 0;if(!MV(bt,I,$,q))return;m(pe,ke.title,ke.description??"",bt,ue);const we=e.activeBoardColumns.find(Oe=>Oe.name==="In Progress");we&&e.moveTask(pe,we.id,0)},[e,m,Q,i,r,I,$,q]),pn=C.useCallback((pe,ke,Me,bt)=>{k?.(pe,ke,Me,bt)},[k]),Xt=C.useCallback(pe=>{ee==="maximized"&&te("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${pe}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[ee]),qt=C.useCallback(()=>{const ke=(De.runtimeSession??De.displaySession??K)?.taskId??D;ke&&z?.(ke)},[De.runtimeSession,De.displaySession,K,D,z]),Kt=C.useCallback(()=>{je||D&&M?.(D)},[D,je,M]),In=C.useCallback(pe=>{z?.(pe)},[z]),On=C.useCallback(()=>{const pe=De.runtimeSession??De.displaySession??K,ke=D??pe?.taskId,Me=pe?.resumeParentSessionId??pe?.parentSessionId??pe?.sessionId;ke&&T?.(ke,Me,pe?.pendingRuntimeCheckpointId)},[De.runtimeSession,De.displaySession,K,D,T]),ti=C.useCallback(pe=>{const ke=Q.find(bt=>bt.taskId===pe),Me=ke?.resumeParentSessionId??ke?.parentSessionId??ke?.sessionId;T?.(pe,Me,ke?.pendingRuntimeCheckpointId)},[Q,T]),ki=C.useCallback(pe=>{M?.(pe)},[M]),cn=C.useCallback(()=>{if(!yt&&Dt.kind!=="session"){const pe=D??ut[ut.length-1]?.taskId??null;pe&&Ae(pe)}Vt(pe=>!pe)},[yt,Dt.kind,D,ut,Ae]),Ln=C.useCallback((pe,ke,Me,bt)=>{const Rt=bt?.ui_message_id?bt:{...bt??{},ui_message_id:Ey()};x(pe,ke,Me,Rt)},[x]),zn=C.useCallback((pe,ke)=>{if(Dt.kind==="secretary"){b?.(pe);return}const Me=D;if(!Me)return;const bt=Ey(),Rt={ui_message_id:bt},ue=De.displaySession??K;a.sendMessage({channelId:ue?.channelId??`session:${Me}`,sender:"user",senderName:"You",content:pe,metadata:{ui_message_id:bt}}),Ln(Me,pe,ke,Rt)},[Dt.kind,D,De.displaySession,K,a,Ln,b]),Gn=C.useCallback(async(pe,ke,Me)=>{const bt=String(Me?.response_to_checkpoint_id??"").trim(),Rt=String(Me?.response_to_checkpoint_type??"").trim(),ue=String(Me?.interaction_requester_session_id??"").trim(),we=String(Me?.interaction_requester_task_id??"").trim(),Oe=ue?we||void 0:we||ke||D||void 0,Ue=Q.find(un=>un.taskId===Oe),ft=ue||Ue?.sessionId,We=Me?.ui_message_id||Ey();if(!bt||!Rt||!Oe&&!ft)return{ok:!1,accepted:!1,error:"invalid_interaction_reply",checkpoint_id:bt,checkpoint_type:Rt,client_request_id:We};const qe={text:pe,...Me?.interaction_option_id?{option_id:Me.interaction_option_id}:{},...Me?.interaction_option_label?{option_label:Me.interaction_option_label}:{},...Me?.checkpoint_reply_kind?{checkpoint_reply_kind:Me.checkpoint_reply_kind}:{},...Me?.self_evolution_trigger!==void 0?{self_evolution_trigger:Me.self_evolution_trigger}:{},...Me?.human_feedback_text!==void 0?{human_feedback_text:Me.human_feedback_text}:{},...Me?.recruitment_role_agents?{recruitment_role_agents:Me.recruitment_role_agents}:{},...Me?.recruitment_agent?{recruitment_agent:Me.recruitment_agent}:{},...Me?.staffing_action?{staffing_action:Me.staffing_action}:{},...Me?.staffing_selections?{staffing_selections:Me.staffing_selections}:{},...Me?.user_input_answers?{user_input_answers:Me.user_input_answers}:{}};return v({checkpointId:bt,checkpointType:Rt,clientRequestId:We,requesterTaskId:Oe,requesterSessionId:ft,decision:qe})},[D,v,Q]),Xe=C.useCallback(pe=>{const ke=Q.find(Me=>Me.taskId===pe||Me.runtimeTaskId===pe||Me.executionTurnId===pe);ke&&(Ve(ke.taskId),te("open"),be("chat"))},[Q]),Pn=C.useCallback(pe=>{if(A){A(pe);return}Xe(pe)},[Xe,A]),qn=Dt.kind==="secretary",vn=qn?q("workspace.channel.secretary"):K?K.title:q("workspace.channel.activity");return u.jsxs("div",{className:`workspace-page${ee==="maximized"?" panel-maximized":""}`,children:[u.jsx(TD,{sessions:Jn,activeSessionId:qn?null:D,activeChannel:qn?Qe:null,secretaryChannelId:Qe,unreadCounts:ht,onSelect:ln,onCreateSession:g,onDeleteSession:S,onSelectSecretary:b?gi:void 0}),ee!=="maximized"&&u.jsxs("div",{className:"workspace-board",children:[t.length>0&&u.jsx(e8,{agents:t,tasks:e.tasks}),Fe?e.activeBoard&&K&&u.jsx(LV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:pe=>w(K.taskId,pe)},K.taskId):e.boards.length>1&&u.jsx(t8,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:Ei}),Fe&&!e.activeBoard?u.jsx("div",{className:"kanban-empty-state",children:u.jsx("p",{children:q("workspace.selectRuntimeSession")})}):u.jsxs(u.Fragment,{children:[u.jsx(Jz,{columns:e.activeBoardColumns,tasksByColumn:tt,agents:t,officeMap:n,store:e,companyMode:Fe,selectedTaskId:Dt.kind==="task-detail"?Dt.taskId:D,onCardClick:xn,onStartTask:ei,onQuickCreate:vt,onMoveTask:p}),Fe&&e.activeBoard&&e.tasks.filter(pe=>pe.boardId===e.activeBoardId).length===0&&u.jsx("div",{className:"kanban-empty-state kanban-empty-state-inline",children:u.jsx("p",{children:q("workspace.noWorkItems")})})]})]}),u.jsx(TV,{panelState:ee,width:oe,onResizeMouseDown:he,isResizing:le,activeView:Dt,activeSession:K,activeTask:dt,linkedTaskSession:_e,linkedTaskSessionMessages:et,childDetailSession:Ct,messages:Mn,childDetailMessages:xt,allSessions:Q,openSessions:ut,openSessionMessages:hi,openSessionChildren:Dn,agents:t,childSessions:Ze,execMode:i,taskPreferredAgent:o,savedOrgsList:Y??null,activeSavedOrg:U??null,onSavedOrgsList:Z,onSavedOrgLoad:W,canShowAgentsTab:Vn,channelId:Cn,channelName:vn,secretaryChannelId:Qe,unreadCounts:ht,multiSessionView:yt,panelTab:Te,onPanelTabChange:be,commsState:G??null,commsMessage:P??null,onCommsRefresh:F?()=>F({session_id:K?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:V,orgInfoData:I??null,canShowTeamTab:mn,onTeamStopRun:D?()=>z?.(D):void 0,onTitleChange:w,onSessionConfigChange:pn,onSessionTaskAgentChange:j,onContinueInNewChat:N,onStop:qt,onComplete:Kt,onResume:On,onResumeTask:ti,onStopTask:In,onCompleteTask:ki,onLocateOnBoard:Xt,onBackToParent:()=>Ve(null),onCloseTaskDetail:()=>$e({kind:"activity"}),onOpenChildDetail:Xe,onOpenExecutionPanel:A,onSelectSessionTab:Ae,onCloseSessionTab:Et,onToggleMultiSessionView:cn,onCollapse:()=>te("collapsed"),onExpand:()=>te("open"),onMaximize:()=>te(pe=>pe==="maximized"?"open":"maximized"),onComposerSend:zn,onInteractionReply:Gn,onSessionSend:Ln,onWorkItemClick:Pn,onWorkItemOpenSession:Xe,onMarkRead:Ft,onSessionMarkRead:Un,onLoadSessionHistory:Pt,isSessionHistoryLoading:ri})]})}function PV(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const F0=2e3,DC={child_task_result:80,child_task_result_retry:79,company_role_result:75,company_role_result_retry:74,child_result:70,runtime_v2_assistant:60,runtime_v2_company_assistant:20,top_level_reply:40,worker_notification:10};function Br(e){return e.metadata??{}}function kv(e){return String(e??"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(t=>t.trimEnd()).join(` -`).replace(/\n{3,}/g,` - -`).trim()}function OC(e){const t=kv(e),n=BV(t),i=n.split(/\n{2,}/).map(r=>r.trim()).filter(Boolean);return i.length>1&&/^Verification:\s/i.test(i[i.length-1])?i.slice(0,-1).join(` - -`).trim():n}function BV(e){let t=String(e||"").trim();for(;;){const n=t.match(/^\*\*([^\r\n]{8,160}?)\*\*:(?:[ \t]+|\r?\n+)([\s\S]+)$/);if(!n)return t;const i=n[2].trim();if(i.length<80||i===t)return t;t=i}}function $V(e,t,n,i){if(!i)return n.content;const r=kv(e.content),o=kv(t.content);return!r||!o||r===o?n.content:r.endsWith(o)?e.content:o.endsWith(r)?t.content:n.content}function Tl(e){const t=Br(e),n=new Set,i=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",r=typeof t.checkpoint_id=="string"?t.checkpoint_id.trim():"";for(const o of[e.id,typeof t.ui_message_id=="string"?t.ui_message_id:"",typeof t.result_delivery_id=="string"&&t.result_delivery_id.trim()?`delivery:${t.result_delivery_id.trim()}`:"",i&&r?`checkpoint:${i}:${r}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function cl(e){return new Set([...Tl(e)].map(t=>`${e.channelId}\0${t}`))}function HV(e){return e.startsWith("checkpoint:")||e.startsWith("delivery:")}function fi(e){return typeof e.timestamp=="number"?e.timestamp:0}function Sv(e){return String(e.id??"").startsWith("msg-")}function sT(e){return!Sv(e)}function LC(e){const t={};for(const n of e){if(!sT(n))continue;const i=fi(n);i>(t[n.channelId]??0)&&(t[n.channelId]=i)}return t}function FV(e,t,n){return n<=(e[t]??0)?e:{...e,[t]:n}}function VV(e,t){const n={};for(const i of e){if(!sT(i)||i.sender==="user")continue;const r=t[i.channelId]??0;fi(i)<=r||(n[i.channelId]=(n[i.channelId]??0)+1)}return n}function zC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Br(e),i=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||i==="user"?"user":"assistant"}function PC(e){const t=Br(e),n=String(e.sender??"").trim().toLowerCase();let i=0;const r=oT(e);return r&&(i+=1e3+r),t.source==="engine"&&(i+=100),n&&n!=="system"&&(i+=20),n&&!["assistant","system","user"].includes(n)&&(i+=5),e.replyToId&&(i+=2),i+=Math.min(Object.keys(t).length,10),i}function BC(e){return String(Br(e).source??"").trim().toLowerCase()==="engine"}function oT(e){const t=Br(e),n=String(t.transcript_kind??"").trim();if(n)return DC[n]??0;const i=String(t.kind??"").trim();return DC[i]??0}function Rl(e){return oT(e)>0}function aT(e,t){if(e.channelId!==t.channelId)return!1;const n=Tl(e),i=Tl(t);for(const r of n)if(i.has(r))return!0;return!1}function ym(e,t){if(aT(e,t))return!0;if(e.channelId!==t.channelId||zC(e)!==zC(t)||OC(e.content)!==OC(t.content))return!1;const n=Rl(e)&&Rl(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(BC(e)||BC(t)))return!1;const i=fi(e),r=fi(t);return!(!n&&i&&r&&Math.abs(i-r)>F0)}function xm(e,t,n=!1){let i=e,r=t;const o=Sv(e),a=Sv(t);o!==a?(i=o?t:e,r=o?e:t):(n||PC(t)>PC(e))&&(i=t,r=e);const c=[];for(const j of[r.mentions,i.mentions])for(const N of j??[])c.includes(N)||c.push(N);const d=Tl(e),m=Tl(t);let h=!1,p="";for(const j of d)m.has(j)&&(HV(j)||(h=!0,p||(p=j)));const g=$V(e,t,i,h),x=String(Br(e).checkpoint_id??"").trim(),v=String(Br(t).checkpoint_id??"").trim(),b=!!x&&x===v,S=Rl(e)&&Rl(t),w=S?String(Br(e).ui_timeline_id??Br(t).ui_timeline_id??Kv(e)).trim():"",k={...Br(r),...Br(i)};return w&&(k.ui_timeline_id=w),{...r,...i,...p?{id:p}:{},content:g,metadata:k,mentions:c,timestamp:b||S?fi(e)||fi(t):fi(i)||fi(r)}}function $C(e){const t=[],n=new Map;for(const i of[...e].sort((r,o)=>fi(r)-fi(o))){const r=cl(i);let o=-1,a=!1;for(const d of r){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===i.id;break}}if(o===-1){const d=fi(i),m=Rl(i);for(let h=t.length-1;h>=0;h--){const p=fi(t[h]);if(!m&&d>0&&p>0&&d-p>F0)break;if(ym(t[h],i)){o=h;break}}}const c=o===-1?t.length:o;o===-1?t.push(i):t[o]=xm(t[o],i,a);for(const d of cl(t[c]))n.has(d)||n.set(d,c)}return t}function UV(e,t){const n=[...e],i=new Map;n.forEach((r,o)=>{for(const a of cl(r))i.set(a,o)});for(const r of[...t].sort((o,a)=>fi(o)-fi(a))){let o=-1;for(const a of cl(r)){const c=i.get(a);if(c!==void 0){o=c;break}}if(o<0){for(let a=n.length-1;a>=0;a-=1)if(ym(n[a],r)){o=a;break}}if(o<0)o=n.length,n.push(r);else{const a=n[o];n[o]=xm(a,r,a.id===r.id)}for(const a of cl(r))i.set(a,o);for(const a of cl(n[o]))i.set(a,o)}return n.sort((r,o)=>fi(r)===fi(o)?r.id.localeCompare(o.id):fi(r)-fi(o))}function qV(e,t){switch(t.type){case"SET":return t.channels;case"CLEAR":return[];case"ADD":return e.some(n=>n.id===t.channel.id)?e:[...e,t.channel];case"REMOVE":return e.filter(n=>n.id!==t.channelId);case"REMOVE_PARTICIPANT":return e.map(n=>({...n,participants:n.participants.filter(i=>i!==t.agentId)}));default:return e}}function GV(e,t){switch(t.type){case"SET":{const n=$C(t.messages);if(e.length===0)return n;const i=e.filter(r=>typeof r.id=="string"&&r.id.startsWith("msg-")&&!n.some(o=>ym(r,o)));return i.length===0?n:$C([...n,...i])}case"CLEAR":return[];case"ADD":{const n=fi(t.message);Tl(t.message);let i=!1;for(let r=e.length-1;r>=0;r--){const o=fi(e[r]);if(!i&&n>0&&o>0&&n-o>F0&&(i=!0),aT(e[r],t.message)){const a=[...e];return a[r]=xm(e[r],t.message,e[r].id===t.message.id),a}if((Rl(t.message)||!i)&&ym(e[r],t.message)){const a=[...e];return a[r]=xm(e[r],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:UV(e,t.messages);case"MARK_SENDER_DELETED":return e.map(n=>n.sender===t.senderId?{...n,senderDeleted:!0,senderName:"[已删除的 Agent]"}:n);case"REMOVE_BY_CHANNEL":return e.filter(n=>n.channelId!==t.channelId);case"REMOVE_BY_TASK_ID":return e.filter(n=>n.channelId!==`session:${t.taskId}`&&n.metadata?.task_id!==t.taskId);default:return e}}function WV(){const[e,t]=C.useReducer(qV,[]),[n,i]=C.useReducer(GV,[]),[r,o]=C.useState({}),[a,c]=C.useState("default"),d=C.useRef(null),m=C.useMemo(()=>LC(n),[n]),h=C.useRef(m);h.current=m;const p=C.useMemo(()=>{const A={};for(const O of n)A[O.channelId]||(A[O.channelId]=[]),A[O.channelId].push(O);return A},[n]),g=C.useMemo(()=>VV(n,r),[n,r]),x=C.useCallback(A=>{const O={id:`msg-${PV()}`,channelId:A.channelId,sender:A.sender,senderName:A.senderName,content:A.content,timestamp:Date.now(),replyToId:A.replyToId,mentions:[],metadata:A.metadata};return i({type:"ADD",message:O}),O},[]),v=C.useCallback(A=>p[A]??[],[p]),b=C.useCallback(A=>g[A]??0,[g]),S=C.useCallback(A=>{const O=h.current[A]??0;O<=0||o(I=>FV(I,A,O))},[]),w=C.useCallback(A=>{i({type:"MARK_SENDER_DELETED",senderId:A})},[]),k=C.useCallback(A=>{t({type:"REMOVE_PARTICIPANT",agentId:A})},[]),j=C.useCallback(A=>{t({type:"REMOVE",channelId:`session:${A}`}),i({type:"REMOVE_BY_TASK_ID",taskId:A})},[]),N=C.useCallback(()=>{t({type:"CLEAR"}),i({type:"CLEAR"}),d.current=null,o({})},[]),z=C.useCallback((A,O,I)=>{const $=A||"default",G=$!==a,P=d.current!==$;d.current=$,c($),t({type:"SET",channels:O}),i(G?{type:"SET",messages:I}:{type:"MERGE",messages:I}),P&&o(LC(I))},[a]),T=C.useCallback(A=>{i({type:"ADD",message:A})},[]),M=C.useCallback(A=>{i({type:"MERGE",messages:A})},[]),L=C.useCallback(A=>{t({type:"ADD",channel:A})},[]);return C.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:x,getChannelMessages:v,getUnreadCount:b,markRead:S,markSenderDeleted:w,removeParticipant:k,removeSessionData:j,clear:N,initFromBackend:z,addMessageFromBackend:T,mergeMessagesFromBackend:M,addChannelFromBackend:L}),[a,e,n,x,v,b,S,w,k,j,N,z,T,M,L])}const np=4e3;function yl(e,t){return e.length>t?e.slice(-t):e}function wv(e,t,n){if(!e)return t;if(!t||e===t)return e;if(t.startsWith(e))return t;if(e.startsWith(t)||e.endsWith(t))return e;if(t.endsWith(e))return t;const i=Math.min(e.length,t.length);for(let r=i;r>0;r-=1)if(e.slice(-r)===t.slice(0,r))return`${e}${t.slice(r)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} -${t}`:`${e}${t}`}function YV(e,t){const n=e.trim().replace(/\s+/g," ");return n?n.length>120?`${n.slice(0,120).trimEnd()}...`:n:t||"Thinking"}function XV(e){return{timestamp:Number.isFinite(e.timestamp)?e.timestamp:Date.now(),type:e.type,summary:typeof e.summary=="string"?e.summary:"",detail:typeof e.detail=="string"&&e.detail?e.detail:void 0,turnId:typeof e.turnId=="string"&&e.turnId?e.turnId:void 0,itemId:typeof e.itemId=="string"&&e.itemId?e.itemId:void 0,streamId:typeof e.streamId=="string"&&e.streamId?e.streamId:void 0,toolCallId:typeof e.toolCallId=="string"&&e.toolCallId?e.toolCallId:void 0,permissionGroupKey:typeof e.permissionGroupKey=="string"&&e.permissionGroupKey?e.permissionGroupKey:void 0,seq:typeof e.seq=="number"&&Number.isFinite(e.seq)?e.seq:void 0,executionMode:typeof e.executionMode=="string"&&e.executionMode?e.executionMode:void 0}}function vm(e){const t=e.itemId||e.streamId;return t?`${e.type}:${e.turnId??""}:${t}`:e.toolCallId&&(e.type==="tool_call"||e.type==="autonomy")?`${e.type}:${e.turnId??""}:${e.toolCallId}`:e.permissionGroupKey&&e.type==="autonomy"?`${e.type}:${e.turnId??""}:${e.permissionGroupKey}`:""}function KV(e,t){const n=vm(e),i=vm(t);return n&&i?n===i:t.timestamp-e.timestamp>np||e.type!==t.type?!1:e.type==="thinking"||e.type==="assistant"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function ZV(e,t){return t.timestamp-e.timestamp<=np&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function QV(e,t){if(e.type==="thinking"||e.type==="assistant"){const n=wv(e.detail??"",t.detail??"","thinking");return{timestamp:e.timestamp,type:e.type,summary:YV(n,t.summary||e.summary),detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}if(e.type==="tool_call"){const n=wv(e.detail??"",t.detail??"","tool_call");return{timestamp:e.timestamp,type:"tool_call",summary:t.summary||e.summary,detail:n||void 0,turnId:t.turnId??e.turnId,itemId:t.itemId??e.itemId,streamId:t.streamId??e.streamId,toolCallId:t.toolCallId??e.toolCallId,permissionGroupKey:t.permissionGroupKey??e.permissionGroupKey,seq:t.seq??e.seq,executionMode:t.executionMode??e.executionMode}}return t}function lT(e,t,n=100){const i=XV(t),r=vm(i),o=r?[...e].reverse().findIndex(d=>vm(d)===r):-1,a=o>=0?e.length-1-o:e.length-1,c=e[a];return c?r&&o>=0&&typeof c.seq=="number"&&typeof i.seq=="number"&&i.seq<=c.seq?e:ZV(c,i)?yl([...e.slice(0,a),c,...e.slice(a+1)],n):KV(c,i)?yl([...e.slice(0,a),QV(c,i),...e.slice(a+1)],n):yl([...e,i],n):[i]}function cT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>lT(n,i,t),[])}function JV(e){return{timestamp:Number.isFinite(e.timestamp)?e.timestamp:Date.now(),type:e.type,workItemProjectionId:typeof e.workItemProjectionId=="string"&&e.workItemProjectionId?e.workItemProjectionId:void 0,workItemTurnType:typeof e.workItemTurnType=="string"&&e.workItemTurnType?e.workItemTurnType:void 0,workItemProjectionTitle:typeof e.workItemProjectionTitle=="string"&&e.workItemProjectionTitle?e.workItemProjectionTitle:void 0,runtimeTaskId:typeof e.runtimeTaskId=="string"&&e.runtimeTaskId?e.runtimeTaskId:void 0,executionTurnId:typeof e.executionTurnId=="string"&&e.executionTurnId?e.executionTurnId:void 0,roleName:typeof e.roleName=="string"&&e.roleName?e.roleName:void 0,detail:typeof e.detail=="string"&&e.detail?e.detail:void 0}}function uT(e,t){return e.type===t.type&&(e.workItemProjectionId??"")===(t.workItemProjectionId??"")&&(e.workItemTurnType??"")===(t.workItemTurnType??"")&&(e.workItemProjectionTitle??"")===(t.workItemProjectionTitle??"")&&(e.executionTurnId??e.runtimeTaskId??"")===(t.executionTurnId??t.runtimeTaskId??"")&&(e.roleName??"")===(t.roleName??"")}function eU(e,t){return t.timestamp-e.timestamp<=np&&uT(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function tU(e,t){return uT(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=np}function nU(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:wv(e.detail??"",t.detail??"",n)||void 0}}function dT(e,t,n=100){const i=JV(t),r=e[e.length-1];return r?tU(r,i)?yl([...e.slice(0,-1),{...r,timestamp:i.timestamp}],n):eU(r,i)?yl([...e.slice(0,-1),nU(r,i)],n):yl([...e,i],n):[i]}function fT(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,i)=>dT(n,i,t),[])}function Cv(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function iU(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function mT(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),i=String(e.orgId??"").trim(),o=t.length>0?Cv(t):n==="custom"||i?"org":Cv(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:i||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const bf=100,rU=new Set(["done","failed","cancelled"]);function sU(e,t,n){const i=n,r=new Map(t.filter(c=>c.projectId===i).map(c=>[c.taskId,c])),o=new Set,a=[];for(const c of e){if(c.projectId!==i)continue;const d=r.get(c.taskId);d?(a.push(d),o.add(c.taskId)):a.push(c)}for(const c of t)c.projectId!==i||o.has(c.taskId)||(a.push(c),o.add(c.taskId));return a}function oU(e,t){const n=g=>mT({...g,progressLog:cT(g.progressLog??[],bf),workItemLog:fT(g.workItemLog??[],bf)}),i=g=>{const x=String(g.execMode??"").trim().toLowerCase();return x==="company"||x==="org"||x==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},r=g=>{const x=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),b=String(g.orgId??"").trim();return x==="task"&&(!v||v==="corporate")&&!b&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,x)=>{const v=g.execMode,b=x.execMode;return!v||v==="task"&&b&&b!=="task"&&!r(g)&&(i(g)||i(x))?b:v},a=(g,x,v)=>{const b=g[v],S=x[v];return!b||b==="native"&&S&&S!=="native"?S:b},c=(g,x)=>Object.prototype.hasOwnProperty.call(g,x),d=(g,x,v)=>c(g,v)?g[v]:x[v],m=(g,x)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,b=typeof x.updatedAt=="number"&&Number.isFinite(x.updatedAt)?x.updatedAt:void 0;return v===void 0?b??Date.now():b===void 0?v:Math.max(b,v)},h=(g,x)=>g.runtimeControlState==="suspending"&&x.runtimeControlState==="running"?{...x,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??x.stopIntentId}:x,p=(g,x,v)=>{const b=g[v];if(b!=null)return b;if(!(rU.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return x[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const x=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const b=x.get(v.taskId);if(!b)return n(v);const S=h(b,v);return n({...v,updatedAt:m(v,b),execMode:o(v,b),preferredAgent:a(v,b,"preferredAgent"),draftAssistantText:b.draftAssistantText??v.draftAssistantText,draftUpdatedAt:b.draftUpdatedAt??v.draftUpdatedAt,draftIteration:b.draftIteration??v.draftIteration,draftTurnId:b.draftTurnId??v.draftTurnId,agentStatus:p(v,b,"agentStatus"),currentTool:p(v,b,"currentTool"),displayTool:p(v,b,"displayTool"),toolElapsedMs:p(v,b,"toolElapsedMs"),lastToolSummary:p(v,b,"lastToolSummary"),contextTokens:b.contextTokens??v.contextTokens,contextWindow:b.contextWindow??v.contextWindow,contextRemainingPct:b.contextRemainingPct??v.contextRemainingPct,inputTokens:b.inputTokens??v.inputTokens,outputTokens:b.outputTokens??v.outputTokens,totalTokens:b.totalTokens??v.totalTokens,turnCostUsd:b.turnCostUsd??v.turnCostUsd,sessionCostUsd:b.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:b.pendingPermissionCount??v.pendingPermissionCount,drainMode:b.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??b.workItemProjectionId,workItemTurnType:v.workItemTurnType??b.workItemTurnType,companyProfile:d(v,b,"companyProfile"),orgId:d(v,b,"orgId"),workItemRoleId:v.workItemRoleId??b.workItemRoleId,workItemRoleName:v.workItemRoleName??b.workItemRoleName,workItemGate:v.workItemGate??b.workItemGate,roleWorkItems:v.roleWorkItems??b.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??b.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??b.employeeAssignment,selectedExecutionAgent:a(v,b,"selectedExecutionAgent"),runtimeControlState:S.runtimeControlState??b.runtimeControlState,canStop:S.canStop??b.canStop,canResume:S.canResume??b.canResume,resumeParentSessionId:v.resumeParentSessionId??b.resumeParentSessionId,pendingRuntimeCheckpointId:S.pendingRuntimeCheckpointId??b.pendingRuntimeCheckpointId,stopIntentId:S.stopIntentId??b.stopIntentId,residentStatus:b.residentStatus??v.residentStatus,actionableInboxCount:b.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:b.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:b.notificationBacklogCount??v.notificationBacklogCount,latestNotification:b.latestNotification??v.latestNotification,latestPreview:v.latestPreview??b.latestPreview,latestSender:v.latestSender??b.latestSender,latestMessageId:v.latestMessageId??b.latestMessageId,indexLoaded:v.indexLoaded??b.indexLoaded,detailLoaded:b.detailLoaded??v.detailLoaded,fullLoaded:b.fullLoaded??v.fullLoaded,hasMore:v.hasMore??b.hasMore,summaryHasMore:v.summaryHasMore??b.summaryHasMore,fullHasMore:v.fullHasMore??b.fullHasMore,detailLoading:v.detailLoading??b.detailLoading,detailError:v.detailError??b.detailError,viewGeneration:v.viewGeneration??b.viewGeneration,progressLog:b.progressLog&&b.progressLog.length>0?b.progressLog:v.progressLog,workItemLog:b.workItemLog&&b.workItemLog.length>0?b.workItemLog:v.workItemLog,lastRuntimeEventType:b.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:b.activeSubagents??v.activeSubagents,permissionRequests:b.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??b.handoffContext,handoffTo:v.handoffTo??b.handoffTo})})}case"ADD":const g=n(t.session);return e.some(x=>x.taskId===t.session.taskId)?e.map(x=>x.taskId===t.session.taskId?n({...x,...g,progressLog:g.progressLog.length>0?g.progressLog:x.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:x.workItemLog,messageCount:Math.max(x.messageCount??0,g.messageCount??0),updatedAt:Math.max(x.updatedAt??0,g.updatedAt??0),execMode:o(g,x),preferredAgent:a(g,x,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??x.workItemProjectionId,workItemTurnType:g.workItemTurnType??x.workItemTurnType,companyProfile:d(g,x,"companyProfile"),orgId:d(g,x,"orgId"),workItemRoleId:g.workItemRoleId??x.workItemRoleId,workItemRoleName:g.workItemRoleName??x.workItemRoleName,workItemGate:g.workItemGate??x.workItemGate,roleWorkItems:g.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??x.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:a(g,x,"selectedExecutionAgent"),handoffContext:g.handoffContext??x.handoffContext,handoffTo:g.handoffTo??x.handoffTo,latestPreview:g.latestPreview??x.latestPreview,latestSender:g.latestSender??x.latestSender,latestMessageId:g.latestMessageId??x.latestMessageId,indexLoaded:g.indexLoaded??x.indexLoaded,detailLoaded:g.detailLoaded??x.detailLoaded,fullLoaded:g.fullLoaded??x.fullLoaded,hasMore:g.hasMore??x.hasMore,summaryHasMore:g.summaryHasMore??x.summaryHasMore,fullHasMore:g.fullHasMore??x.fullHasMore,detailLoading:g.detailLoading??x.detailLoading,detailError:g.detailError??x.detailError,viewGeneration:g.viewGeneration??x.viewGeneration}):x):[g,...e];case"UPDATE":return e.map(x=>x.taskId===t.taskId?(()=>{const v=h(x,t.partial);return n({...x,...v,updatedAt:m(v,x),runtimeControlState:v.runtimeControlState??x.runtimeControlState,canStop:v.canStop??x.canStop,canResume:v.canResume??x.canResume,resumeParentSessionId:v.resumeParentSessionId??x.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??x.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??x.stopIntentId,roleWorkItems:v.roleWorkItems??x.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??x.executorRoleWorkItems,execMode:d(v,x,"execMode"),companyProfile:d(v,x,"companyProfile"),orgId:d(v,x,"orgId"),isCompanyRuntime:v.isCompanyRuntime??x.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??x.workItemProjectionId,workItemTurnType:v.workItemTurnType??x.workItemTurnType,workItemRoleId:v.workItemRoleId??x.workItemRoleId,workItemRoleName:v.workItemRoleName??x.workItemRoleName,workItemGate:v.workItemGate??x.workItemGate,employeeAssignment:v.employeeAssignment??x.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??x.selectedExecutionAgent,activeSubagents:v.activeSubagents??x.activeSubagents,permissionRequests:v.permissionRequests??x.permissionRequests,contextTokens:v.contextTokens??x.contextTokens,contextWindow:v.contextWindow??x.contextWindow,contextRemainingPct:v.contextRemainingPct??x.contextRemainingPct,inputTokens:v.inputTokens??x.inputTokens,outputTokens:v.outputTokens??x.outputTokens,totalTokens:v.totalTokens??x.totalTokens,turnCostUsd:v.turnCostUsd??x.turnCostUsd,sessionCostUsd:v.sessionCostUsd??x.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():x);case"DELETE":return e.filter(x=>x.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,progressLog:lT(x.progressLog,t.entry,bf),updatedAt:Math.max(x.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(x=>{if(x.taskId!==t.taskId)return x;const v=t.turnId??x.draftTurnId,b=!!t.turnId&&!!x.draftTurnId&&t.turnId!==x.draftTurnId;return{...x,draftAssistantText:`${b?"":x.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??x.draftIteration,draftTurnId:v,updatedAt:Math.max(x.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(x=>x.taskId===t.taskId?{...x,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:x);case"CLEAR_PROGRESS":return e.map(x=>x.taskId===t.taskId?{...x,progressLog:[]}:x);case"APPEND_WORK_ITEM_PROGRESS":return e.map(x=>x.taskId!==t.taskId?x:{...x,workItemLog:dT(x.workItemLog??[],t.entry,bf)});case"SET_COMPANY_RUNTIME":return e.map(x=>x.taskId===t.taskId?{...x,isCompanyRuntime:t.isCompanyRuntime}:x);default:return e}}function aU(){const[e,t]=C.useReducer(oU,[]),[n,i]=C.useState(null),[r,o]=C.useState("default"),a=C.useMemo(()=>e.find(k=>k.taskId===n)??null,[e,n]),c=C.useCallback(k=>{k.projectId===r&&t({type:"ADD",session:k})},[r]),d=C.useCallback(k=>{t({type:"DELETE",taskId:k})},[]),m=C.useCallback(k=>{i(k)},[]),h=C.useCallback((k,j)=>{t({type:"UPDATE",taskId:k,partial:j})},[]),p=C.useCallback((k,j)=>{t({type:"APPEND_PROGRESS",taskId:k,entry:j})},[]),g=C.useCallback((k,j,N,z)=>{t({type:"APPEND_DRAFT",taskId:k,text:j,iteration:N,turnId:z,timestamp:Date.now()})},[]),x=C.useCallback(k=>{t({type:"CLEAR_DRAFT",taskId:k})},[]),v=C.useCallback(k=>{t({type:"CLEAR_PROGRESS",taskId:k})},[]),b=C.useCallback((k,j)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:k,entry:j})},[]),S=C.useCallback((k,j)=>{t({type:"SET_COMPANY_RUNTIME",taskId:k,isCompanyRuntime:j})},[]),w=C.useCallback((k,j,N)=>{const z=k||"default",T=z!==r,M=N?.preserveExistingWhenIncomingPartial&&!T?sU(e,j,z):j.filter(L=>L.projectId===z);o(z),t({type:"SET",sessions:M,reset:T}),i(L=>!T&&L&&(M.some(A=>A.taskId===L)||N?.preserveActiveWhenMissing)?L:null)},[r,e]);return C.useMemo(()=>({scopeProjectId:r,sessions:e,activeSessionId:n,activeSession:a,createSession:c,deleteSession:d,setActiveSession:m,updateSession:h,appendProgress:p,appendDraft:g,clearDraft:x,clearProgress:v,appendWorkItemProgress:b,setCompanyRuntime:S,initFromBackend:w}),[r,e,n,a,c,d,m,h,p,g,x,v,b,S,w])}function HC(e){return e.trim()||"default"}function lU(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:HC(t.activeId)};case"ADD":return e.projects.some(n=>n.id===t.project.id)?e:{...e,projects:[...e.projects,t.project]};case"REMOVE":{const n=e.projects.filter(r=>r.id!==t.id),i=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:i}}case"SET_ACTIVE":return{...e,activeProjectId:HC(t.id)};default:return e}}function cU(){const[e,t]=C.useReducer(lU,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=C.useCallback((a,c)=>{t({type:"SET",projects:a,activeId:c})},[]),i=C.useCallback(a=>{t({type:"ADD",project:a})},[]),r=C.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=C.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return C.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:i,removeProject:r,setActiveProject:o}),[e,n,i,r,o])}const FC={active:{label:"Working",cls:"exec-badge-running"},waiting:{label:"Waiting",cls:"exec-badge-idle"},pending:{label:"Pending",cls:"exec-badge-pending"},done:{label:"Done",cls:"exec-badge-done"},failed:{label:"Failed",cls:"exec-badge-failed"}},_f={todo:{label:"To do",cls:"exec-badge-pending"},"in-progress":{label:"In progress",cls:"exec-badge-running"},"in-review":{label:"In review",cls:"exec-badge-idle"},done:{label:"Done",cls:"exec-badge-done"},failed:{label:"Failed",cls:"exec-badge-failed"},cancelled:{label:"Cancelled",cls:"exec-badge-cancelled"}};function uU(e){const t=Math.floor((Date.now()-e)/1e3);if(t<5)return"now";if(t<60)return`${t}s ago`;const n=Math.floor(t/60);if(n<60)return`${n}m ago`;const i=Math.floor(n/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function Iy(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function dU(e){return e.phase==="failed"?_f.failed:e.phase==="cancelled"?_f.cancelled:_f[e.kanbanColumn]??_f.todo}function fU(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function mU(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,i)=>n+(i.entries?.length??0),0):e.progressLog.length}function pU({sections:e,fallbackEntries:t,sessionStatus:n}){const i=(e??[]).filter(r=>(r.entries?.length??0)>0||!!r.runtimeTaskId);return i.length>0?u.jsx("div",{className:"exec-activity-sections",children:i.map((r,o)=>{const a=r.entries??[],c=`${r.runtimeTaskId||r.kind}:${o}`;return u.jsxs("section",{className:"exec-activity-section",children:[u.jsxs("div",{className:"exec-activity-section-head",children:[u.jsx("span",{className:"exec-activity-section-title",children:r.title}),r.roleName&&u.jsx("span",{className:"exec-activity-section-role",children:r.roleName}),a.length>0&&u.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?u.jsx(Nl,{entries:a,sessionStatus:n,expandedByDefault:!0}):u.jsx("div",{className:"exec-section-empty",children:"No runtime activity yet"})]},c)})}):!t||t.length===0?u.jsx("div",{className:"exec-section-empty",children:"No activity recorded yet"}):u.jsx(Nl,{entries:t,sessionStatus:n,expandedByDefault:!0})}function VC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:i,onClose:r}){const o=C.useMemo(()=>e.workItems.slice().sort((k,j)=>k.createdAt-j.createdAt),[e.workItems]),c=C.useMemo(()=>o.find(k=>!!t&&k.workItemId===t||!!n&&k.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=C.useState(()=>{const k=new Set;return c&&k.add(c),k}),h=C.useRef(new Set);C.useEffect(()=>{!c||h.current.has(c)||(h.current.add(c),m(k=>{if(k.has(c))return k;const j=new Set(k);return j.add(c),j}))},[c]);const p=C.useCallback(k=>{m(j=>{const N=new Set(j);return N.has(k)?N.delete(k):N.add(k),N})},[]),g=C.useRef(null),x=C.useRef(null);C.useEffect(()=>{!c||x.current===c||(x.current=c,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[c]);const v=C.useCallback(k=>{k.key==="Escape"&&r()},[r]);C.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const b=i.find(k=>k.agent_id===e.roleId),S=e.roleName||b?.name||Iy(e.roleId)||"Role",w=FC[e.aggregatedStatus]??FC.pending;return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"exec-panel-backdrop",onClick:r}),u.jsxs("div",{className:"exec-panel",children:[u.jsxs("div",{className:"exec-panel-header",children:[u.jsxs("div",{className:"exec-panel-title-row",children:[u.jsx(_l,{}),u.jsx("h3",{className:"exec-panel-title",children:S}),u.jsx("span",{className:`exec-badge ${w.cls}`,children:w.label}),u.jsxs("span",{className:"exec-panel-task-count",children:[o.length," Work Item",o.length===1?"":"s"]})]}),u.jsx("button",{className:"exec-panel-close",onClick:r,title:"Close (Esc)",children:u.jsx(Pm,{})})]}),u.jsxs("div",{className:"exec-panel-identity",children:[u.jsx("div",{className:"exec-panel-avatar",children:S.charAt(0).toUpperCase()}),u.jsxs("div",{className:"exec-panel-agent-info",children:[u.jsx("span",{className:"exec-panel-agent-name",children:S}),u.jsx("span",{className:"exec-panel-agent-role",children:Iy(e.roleId)}),e.roleSessionId&&u.jsx("span",{className:"exec-panel-employee",children:e.roleSessionId})]})]}),u.jsxs("div",{className:"exec-panel-body",children:[o.length===0&&u.jsx("div",{className:"exec-section-empty",children:"No work items yet"}),o.map((k,j)=>{const N=k.workItemId===c,z=d.has(k.workItemId),T=dU(k),M=mU(k);return u.jsxs("div",{ref:N?g:null,className:`exec-task-card${N?" exec-task-card-focused":""}`,children:[u.jsxs("button",{type:"button",className:"exec-task-card-header",onClick:()=>p(k.workItemId),title:z?"Collapse":"Expand",children:[u.jsxs("span",{className:"exec-task-card-index",children:["Work item #",j+1]}),u.jsx("span",{className:"exec-task-card-title",children:k.title||k.workItemId}),u.jsx("span",{className:`exec-badge ${T.cls}`,children:T.label}),u.jsx("span",{className:"exec-task-card-time",children:uU(k.updatedAt)}),u.jsx("span",{className:`exec-task-card-chevron${z?" open":""}`,"aria-hidden":"true",children:"▸"})]}),z&&u.jsxs("div",{className:"exec-task-card-body",children:[u.jsxs("div",{className:"exec-task-card-projection",children:[u.jsx(zm,{}),u.jsx("span",{children:Iy(k.kind)||"Work item"}),k.workItemProjectionId&&u.jsx("code",{children:k.workItemProjectionId}),k.executionTurnId&&u.jsx("span",{className:"exec-inline-tag",children:"Execution Turn"}),k.isReviewTarget&&u.jsx("span",{className:"exec-inline-tag",children:"Review target"}),k.executorRoleName&&u.jsx("span",{children:k.executorRoleName})]}),u.jsxs("div",{className:"exec-section",children:[u.jsxs("div",{className:"exec-section-header",children:[u.jsx(_l,{}),u.jsx("span",{children:"Activity"}),u.jsx("span",{className:"exec-section-count",children:M})]}),u.jsx("div",{className:"exec-section-content exec-activity-scroll",children:u.jsx(pU,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:fU(k)})})]})]})]},k.workItemId)})]})]})]})}const UC=1;function hU(e){if(!e||typeof e!="object")return null;const t=e;if(t.version!==UC||typeof t.pattern!="string"||!t.pattern)return null;try{const n=new RegExp(`^(?:${t.pattern})$`);return Object.freeze({version:UC,pattern:t.pattern,matches(i){const r=n.exec(i);return r!==null&&r[0]===i}})}catch{return null}}function gU(e){return e.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"")}function yU({projects:e,activeId:t,projectIdPolicy:n,onSelect:i,onCreate:r,onDelete:o}){const{t:a}=Wr(),c=C.useId(),[d,m]=C.useState(!1),[h,p]=C.useState(""),[g,x]=C.useState(null),v=C.useMemo(()=>gU(h),[h]),b=h.trim().length>0,S=n?.matches(v)??!1,w=b&&n!==null&&!S,k=b&&!S?a(n?"project.nameInvalid":"project.policyUnavailable"):null,j=C.useCallback(()=>{S&&(r(v),p(""),m(!1))},[v,r,S]),N=C.useCallback(()=>{!g||!o||(o(g),x(null))},[g,o]);return u.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[u.jsx("select",{className:"theme-select",value:t,onChange:z=>i(z.target.value),title:a("project.switch"),"aria-label":a("project.switch"),children:e.map(z=>u.jsx("option",{value:z.id,children:z.name},z.id))}),d?u.jsxs("form",{onSubmit:z=>{z.preventDefault(),j()},style:{display:"flex",gap:4},children:[u.jsxs("span",{style:{position:"relative",display:"inline-flex"},children:[u.jsx("input",{autoFocus:!0,className:"theme-select",value:h,placeholder:a("project.placeholder"),onChange:z=>p(z.target.value),onKeyDown:z=>{z.key==="Escape"&&m(!1)},"aria-invalid":w||void 0,"aria-describedby":k?c:void 0,title:k??void 0,style:{width:120}}),k&&u.jsx("span",{id:c,className:"project-name-validation",role:"status","aria-live":"polite",children:k})]}),u.jsx("button",{type:"submit",className:"pill-btn",disabled:!S,"aria-label":a("project.create"),title:a("project.create"),style:{fontSize:11,padding:"2px 8px",opacity:S?1:.5},children:"+"})]}):u.jsx("button",{className:"pill-btn",onClick:()=>m(!0),title:a("project.new"),"aria-label":a("project.new"),style:{fontSize:11,padding:"2px 8px"},children:"+"}),o&&t!=="default"&&!g&&u.jsx("button",{className:"pill-btn",onClick:()=>x(t),title:a("project.delete"),style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:a("project.deleteButton")}),g&&u.jsx("div",{className:"project-delete-confirm",style:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},children:u.jsxs("div",{style:{background:"var(--bg-elevated)",borderRadius:12,padding:"24px 32px",border:"1px solid var(--border)",color:"var(--text)",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[u.jsx("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15,color:"var(--text)"},children:a("project.confirmTitle",{name:g})}),u.jsx("p",{style:{margin:"0 0 20px",fontSize:13,color:"var(--text-secondary)"},children:a("project.confirmBody")}),u.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[u.jsx("button",{className:"pill-btn",onClick:()=>x(null),style:{padding:"6px 18px",fontSize:13},children:a("common.cancel")}),u.jsx("button",{className:"pill-btn",onClick:N,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:a("common.delete")})]})]})})]})}const xU=80;function vU(e){const t=Date.now()/1e3,n=Math.max(0,t-e);if(n<60)return"just now";if(n<3600)return`${Math.floor(n/60)}m ago`;if(n<86400)return`${Math.floor(n/3600)}h ago`;if(n<604800)return`${Math.floor(n/86400)}d ago`;try{return new Date(e*1e3).toLocaleDateString()}catch{return""}}function qC(e){return(e.organization_name||e.name).trim()||e.name}function bU(e){const t=e.trim();return t.length>0&&t.length<=xU&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function _U(e){return e.normalize("NFKD").replace(/[^\x00-\x7F]/g,"").toLowerCase().trim().replace(/\s+/g,"_").replace(/[^a-z0-9_-]+/g,"_").replace(/_+/g,"_").replace(/^[_-]+|[_-]+$/g,"").slice(0,64)||"org"}function kU({className:e}){return u.jsxs("svg",{className:e,width:"12",height:"12",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:[u.jsx("path",{d:"M8 1.5L1.5 4.5L8 7.5L14.5 4.5L8 1.5Z",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),u.jsx("path",{d:"M2 8L8 10.8L14 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.6"}),u.jsx("path",{d:"M2 11.5L8 14.2L14 11.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",opacity:"0.35"})]})}function SU({className:e}){return u.jsx("svg",{className:e,width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:u.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function wU({className:e}){return u.jsxs("svg",{className:e,width:"11",height:"11",viewBox:"0 0 12 12",fill:"none","aria-hidden":!0,children:[u.jsx("circle",{cx:"5",cy:"5",r:"3.2",stroke:"currentColor",strokeWidth:"1.3"}),u.jsx("path",{d:"M7.5 7.5L10 10",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}function CU({savedOrgs:e,activeName:t,isDirty:n,onRefresh:i,onSaveAs:r,onLoad:o,onDelete:a}){const[c,d]=C.useState(!1),[m,h]=C.useState(""),[p,g]=C.useState(0),[x,v]=C.useState(!1),[b,S]=C.useState(""),[w,k]=C.useState(null),[j,N]=C.useState(null),z=C.useRef(null),T=C.useRef(null);C.useEffect(()=>{N(null)},[t,e]);const M=(e??[]).filter(U=>!m.trim()||U.name.toLowerCase().includes(m.trim().toLowerCase())),L=C.useRef(!1);C.useEffect(()=>{c&&!L.current&&(L.current=!0,i())},[c,i]),C.useEffect(()=>{x&&T.current?.focus()},[x]),C.useEffect(()=>{g(U=>Math.min(U,Math.max(0,M.length-1)))},[M.length]),C.useEffect(()=>{if(!c)return;const U=Z=>{z.current&&!z.current.contains(Z.target)&&A()};return document.addEventListener("mousedown",U),()=>document.removeEventListener("mousedown",U)},[c]);const A=C.useCallback(()=>{d(!1),h(""),g(0),v(!1),S(""),k(null)},[]),O=C.useCallback(U=>{if(U===t){A();return}N(U),o(U),A()},[o,A,t]),I=C.useCallback(U=>{a(U),k(null)},[a]),$=b.trim(),G=bU($),P=_U($),F=(e??[]).some(U=>U.name===P||qC(U).toLowerCase()===$.toLowerCase()),V=C.useCallback(()=>{G&&(r($,F),v(!1),S(""),A())},[G,$,F,r,A]),Y=U=>{if(U.key==="Escape"){U.preventDefault(),A();return}if(x){U.key==="Enter"&&(U.preventDefault(),V());return}if(U.key==="ArrowDown")U.preventDefault(),g(Z=>Math.min(Z+1,Math.max(0,M.length-1)));else if(U.key==="ArrowUp")U.preventDefault(),g(Z=>Math.max(0,Z-1));else if(U.key==="Enter"){const Z=M[p];Z&&O(Z.name)}else if((U.key==="Backspace"||U.key==="Delete")&&(U.metaKey||U.ctrlKey)){const Z=M[p];Z&&(U.preventDefault(),k(Z.name))}};return u.jsxs("div",{className:"sos-wrap",ref:z,children:[u.jsxs("button",{type:"button",className:"sos-pill","data-open":c?"true":"false",onClick:()=>d(U=>!U),"aria-haspopup":"listbox","aria-expanded":c,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[u.jsx(kU,{className:"sos-pill-glyph"}),t?u.jsx("span",{className:"sos-pill-name",children:t}):u.jsx("span",{className:"sos-pill-name sos-pill-name--placeholder",children:"draft"}),n&&u.jsx("span",{className:"sos-pill-dirty","aria-label":"Modified since opened"}),u.jsx(SU,{className:"sos-pill-caret"})]}),c&&u.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:Y,tabIndex:-1,children:[u.jsxs("div",{className:"sos-search-row",children:[u.jsx(wU,{className:"sos-search-glyph"}),u.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:U=>{h(U.target.value),g(0)},autoFocus:!0,onKeyDown:Y}),u.jsx("kbd",{className:"sos-search-hint",children:"↑↓ ↵"})]}),u.jsx("div",{className:"sos-list",children:e===null?u.jsx("div",{className:"sos-empty",children:"Loading…"}):M.length===0?u.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):M.map((U,Z)=>{const W=t===U.name,q=p===Z,Q=qC(U);return u.jsxs("div",{className:`sos-row${W?" sos-row--active":""}`,"data-highlighted":q?"true":"false",onMouseEnter:()=>g(Z),onClick:()=>O(U.name),role:"option","aria-selected":W,children:[u.jsxs("div",{className:"sos-row-meta",children:[u.jsx("span",{className:"sos-row-name",children:Q}),u.jsxs("span",{className:"sos-row-stats",children:[Q!==U.name&&`${U.name} · `,U.roles_count," ",U.roles_count===1?"role":"roles"," · ",U.employees_count," ",U.employees_count===1?"employee":"employees"," · ",vU(U.saved_at)]})]}),j===U.name?u.jsx("span",{className:"sos-row-loading",children:"loading…"}):W?u.jsx("span",{className:"sos-row-active-chip",children:"active"}):w===U.name?u.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:D=>{D.stopPropagation(),I(U.name)},children:"confirm"}):u.jsx("button",{type:"button",className:"sos-row-delete",onClick:D=>{D.stopPropagation(),k(U.name)},title:"Delete",children:"delete"})]},U.name)})}),u.jsxs("div",{className:"sos-save-as",children:[x?u.jsxs("div",{className:"sos-save-as-form",children:[u.jsx("input",{ref:T,type:"text",className:"sos-save-as-input",placeholder:"Organization name",value:b,onChange:U=>S(U.target.value),onKeyDown:Y}),u.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:V,disabled:!G,children:F?"Overwrite copy":"Save as copy"}),u.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:()=>{v(!1),S("")},children:"Cancel"})]}):u.jsx("button",{type:"button",className:"sos-save-as-trigger",onClick:()=>v(!0),children:"+ Save as copy..."}),x&&b&&!G&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),x&&G&&F&&u.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const jU=["leader","strategy","target","code","terminal","database","settings","bug","design","pen","layout","marketing","analytics","writing","clipboard","security","support","idea","person","team","camera","calendar","group","ai","generic"],yu={leader:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M5 16L3 5l5.5 5L12 4l3.5 6L21 5l-2 11H5zm0 2h14v2H5v-2z'/%3E%3C/svg%3E",strategy:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 22H5v-2h14v2zM17.16 8.26C18.22 9.63 19 10.85 19 12c0 2.21-3.13 4-7 4s-7-1.79-7-4c0-1.15.78-2.37 1.84-3.74C7.83 7.03 9 5.67 9 4.5a2.5 2.5 0 0 1 5 0c0 1.17 1.17 2.53 2.16 3.76zM12 6a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1z'/%3E%3C/svg%3E",target:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-14c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E",code:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0L19.2 12l-4.6-4.6L16 6l6 6-6 6-1.4-1.4z'/%3E%3C/svg%3E",terminal:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 4H4c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8h16v10zM13 14h4v2h-4zm-3.41-.82l-2.59 2.59L8.41 17 12 13.41 8.41 9.82 7 11.24l2.59 2.59z'/%3E%3C/svg%3E",database:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.48 2 2 3.79 2 6v12c0 2.21 4.48 4 10 4s10-1.79 10-4V6c0-2.21-4.48-4-10-4zm0 18c-4.42 0-8-1.34-8-3v-2.5c1.74 1.5 4.71 2.5 8 2.5s6.26-1 8-2.5V17c0 1.66-3.58 3-8 3zm0-5c-4.42 0-8-1.34-8-3v-2.5c1.74 1.5 4.71 2.5 8 2.5s6.26-1 8-2.5V12c0 1.66-3.58 3-8 3zm0-5c-4.42 0-8-1.34-8-3s3.58-3 8-3 8 1.34 8 3-3.58 3-8 3z'/%3E%3C/svg%3E",settings:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z'/%3E%3C/svg%3E",bug:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5s-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z'/%3E%3C/svg%3E",design:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10c1.38 0 2.5-1.12 2.5-2.5 0-.61-.23-1.2-.64-1.67-.08-.1-.13-.21-.13-.33 0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zm-5 0C8.67 9 8 8.33 8 7.5S8.67 6 9.5 6s1.5.67 1.5 1.5S10.33 9 9.5 9zm-3 4c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'/%3E%3C/svg%3E",pen:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E",layout:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",marketing:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z'/%3E%3C/svg%3E",analytics:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99l1.5 1.5z'/%3E%3C/svg%3E",writing:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E",clipboard:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",security:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11V11.99z'/%3E%3C/svg%3E",support:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z'/%3E%3C/svg%3E",idea:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7z'/%3E%3C/svg%3E",person:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",camera:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 15.2c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2 3.2 1.43 3.2 3.2-1.43 3.2-3.2 3.2zM9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E",calendar:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z'/%3E%3C/svg%3E",group:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73L18 18H6l.01-1.62c0-1.17.68-2.25 1.76-2.73 1.17-.51 2.6-.9 4.23-.9zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58C.48 14.9 0 15.62 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85-.85-.37-1.79-.58-2.78-.58-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z'/%3E%3C/svg%3E",ai:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z'/%3E%3C/svg%3E",generic:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function Yu(e){return e?e.startsWith("data:")?e:yu[e]??yu.generic:yu.generic}const Jc=["file_read","file_write","file_edit","file_search","list_dir","shell_exec","web_search","web_fetch","todo_read","todo_write","browser_navigate","browser_navigate_back","browser_snapshot","browser_wait_for","browser_scroll","browser_click","browser_type","browser_select_option","browser_take_screenshot","browser_evaluate","browser_close"],EU=[{label:"Files",prefix:"file_",tools:Jc.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Jc.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Jc.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Jc.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Jc.filter(e=>e.startsWith("browser_"))}],NU=Km.filter(e=>e!=="native"&&e!=="jiuwenswarm"),IU=[{value:"auto",label:"Auto",hint:"System picks native or external based on role config"},{value:"native",label:"Native",hint:"Run directly in-process via LLM"},{value:"external",label:"External",hint:"Delegate to an external agent (codex, cursor, etc.)"}];function TU({role:e,allRoles:t,employees:n,readOnly:i,teamBindingEditable:r=!0,organizationId:o,onUpdateRole:a,onBindExternalTeam:c,onUnbindExternalTeam:d,onDeleteRole:m,onClose:h}){const[p,g]=C.useState(e.name),[x,v]=C.useState(e.responsibility),[b,S]=C.useState(e.reports_to),[w,k]=C.useState(e.icon??null),[j,N]=C.useState(()=>new Set(e.can_spawn)),[z,T]=C.useState(()=>new Set(e.tools)),[M,L]=C.useState(e.runtime_policy?.execution_strategy??"auto"),[A,O]=C.useState(e.preferred_external_agent??null),[I,$]=C.useState((e.prompt_refs??[]).join(` -`)),[G,P]=C.useState(!1),[F,V]=C.useState(!1),Y=C.useRef(e.role_id);C.useEffect(()=>{Y.current!==e.role_id&&(Y.current=e.role_id,g(e.name),v(e.responsibility),S(e.reports_to),k(e.icon??null),N(new Set(e.can_spawn)),T(new Set(e.tools)),L(e.runtime_policy?.execution_strategy??"auto"),O(e.preferred_external_agent??null),$((e.prompt_refs??[]).join(` -`)),P(!1))},[e]),C.useEffect(()=>{O(e.preferred_external_agent??null),V(!1)},[e.preferred_external_agent,e.external_team_binding_id]),C.useEffect(()=>{if(!F)return;const me=setTimeout(()=>V(!1),12e3);return()=>clearTimeout(me)},[F]);const U=C.useRef({}),Z=C.useRef(null),W=C.useRef(e.role_id);C.useEffect(()=>{W.current=e.role_id},[e.role_id]);const q=C.useCallback(()=>{Z.current&&(clearTimeout(Z.current),Z.current=null);const me=U.current;U.current={},Object.keys(me).length!==0&&a(W.current,me)},[a]),Q=C.useCallback(me=>{i||(U.current={...U.current,...me},Z.current&&clearTimeout(Z.current),Z.current=setTimeout(q,500))},[q,i]);C.useEffect(()=>()=>{Z.current&&(clearTimeout(Z.current),Z.current=null);const me=U.current;Object.keys(me).length>0&&(U.current={},a(W.current,me))},[a]);const D=me=>{g(me),Q({name:me})},K=me=>{v(me),Q({responsibility:me})},ne=me=>{S(me),Q({reports_to:me})},ee=me=>{k(me),Q({icon:me})},te=me=>{L(me),Q({execution_strategy:me})},oe=me=>{O(me),Q({preferred_external_agent:me})},le=me=>{$(me);const Ge=me.split(` -`).map(Ke=>Ke.trim()).filter(Boolean);Q({prompt_refs:Ge})},he=me=>{const Ge=new Set(j);Ge.has(me)?Ge.delete(me):Ge.add(me),N(Ge),Q({can_spawn:Array.from(Ge)})},Te=me=>{const Ge=new Set(z);Ge.has(me)?Ge.delete(me):Ge.add(me),T(Ge),Q({tools:Array.from(Ge)})},be=C.useMemo(()=>t.filter(me=>me.role_id!==e.role_id),[t,e.role_id]),je=C.useMemo(()=>n.filter(me=>(me.role_ids?.length?me.role_ids:[me.role_id]).includes(e.role_id)).length,[n,e.role_id]),Ve=C.useMemo(()=>I.split(` -`).filter(me=>me.trim()).length,[I]),Ye=!!e.external_team_boundary,$e=!!e.covered_by_external_team,ct=$e&&!Ye,It=C.useMemo(()=>{const me=e.external_team_capability_manifest?.covered_roles??[];if(me.length>0)return me.map(ce=>({role_id:ce.role_id,name:ce.name||ce.role_id,responsibility:ce.responsibility||""}));const Ge=[],Ke=new Set,pt=ce=>{if(Ke.has(ce))return;Ke.add(ce);const Ce=t.find(Le=>Le.role_id===ce);Ce&&Ge.push(Ce),t.filter(Le=>Le.reports_to===ce).forEach(Le=>pt(Le.role_id))};return pt(e.role_id),Ge},[t,e.external_team_capability_manifest,e.role_id]),yt=e.external_team_capability_manifest,Vt=me=>{if(!(!r||F)&&!(me==="subtree"&&!c)&&!(me==="role"&&!d)){if(q(),V(!0),me==="subtree"){c?.({boundary_role_id:e.role_id,organization_id:o,scope:"subtree"});return}d?.({binding_id:e.external_team_binding_id??void 0,boundary_role_id:e.external_team_boundary_role_id??e.role_id,organization_id:o})}},ge=()=>{if(!G){P(!0);return}q(),m(e.role_id)};return u.jsxs("aside",{className:"ri-panel","aria-label":`Inspector for role ${e.name}`,children:[u.jsxs("header",{className:"ri-panel-header",children:[u.jsx("img",{src:Yu(w),alt:"",className:"ri-panel-icon"}),u.jsxs("div",{className:"ri-panel-title-wrap",children:[u.jsx("h3",{className:"ri-panel-title",children:p||"(unnamed)"}),u.jsx("code",{className:"ri-panel-id",children:e.role_id})]}),u.jsx("button",{className:"btn btn-ghost btn-sm ri-panel-close",onClick:h,title:"Close (Esc)",children:"✕"})]}),u.jsxs("div",{className:"ri-panel-body",children:[u.jsxs(nl,{title:"Identity",defaultExpanded:!0,children:[u.jsx(ur,{label:"Name",children:u.jsx("input",{className:"ri-text-input",value:p,onChange:me=>D(me.target.value),disabled:i})}),u.jsx(ur,{label:"Responsibility",children:u.jsx("textarea",{className:"ri-textarea",rows:3,value:x,onChange:me=>K(me.target.value),disabled:i})}),u.jsx(ur,{label:"Icon",children:u.jsx(RU,{value:w,onChange:ee,readOnly:i})})]}),u.jsxs(nl,{title:"Hierarchy",defaultExpanded:!0,children:[u.jsx(ur,{label:"Reports to",children:u.jsxs("select",{className:"ri-select",value:b,onChange:me=>ne(me.target.value),disabled:i,children:[u.jsx("option",{value:"owner",children:"You (Owner)"}),be.map(me=>u.jsx("option",{value:me.role_id,children:me.name},me.role_id))]})}),u.jsx(ur,{label:"Can delegate to",children:u.jsx(AU,{allIds:be.map(me=>me.role_id),labelFor:me=>be.find(Ge=>Ge.role_id===me)?.name??me,selected:j,onToggle:he,readOnly:i})}),u.jsx(ur,{label:"Employees assigned",children:u.jsx("span",{className:"ri-meta-value",children:je})})]}),u.jsx(nl,{title:`Tools (${z.size})`,children:u.jsx(MU,{tools:z,onToggle:Te,readOnly:i})}),u.jsx(nl,{title:`Prompts (${Ve})`,children:u.jsx(ur,{label:"Prompt refs / inline",children:u.jsx("textarea",{className:"ri-textarea ri-textarea-mono",rows:5,placeholder:"One prompt ref or inline instruction per line",value:I,onChange:me=>le(me.target.value),disabled:i})})}),u.jsxs(nl,{title:"Runtime policy",defaultExpanded:!0,children:[u.jsx(ur,{label:"Execution scope",children:u.jsxs("div",{className:"ri-scope-options",children:[u.jsxs("label",{className:"ri-scope-option",children:[u.jsx("input",{type:"radio",name:`execution-scope-${e.role_id}`,checked:!$e,onChange:()=>Vt("role"),disabled:!r||F||ct}),u.jsxs("span",{children:[u.jsx("b",{children:"This role only"}),u.jsx("small",{children:"Choose one executor for this organizational seat."})]})]}),u.jsxs("label",{className:"ri-scope-option",children:[u.jsx("input",{type:"radio",name:`execution-scope-${e.role_id}`,checked:Ye,onChange:()=>Vt("subtree"),disabled:!r||F||ct}),u.jsxs("span",{children:[u.jsx("b",{children:"This role and descendants"}),u.jsx("small",{children:"One opaque JiuwenSwarm Team; no covered roles are recruited separately."})]})]})]})}),ct&&u.jsxs("div",{className:"ri-team-notice",children:["This role is covered by the JiuwenSwarm Team at ",u.jsx("code",{children:e.external_team_boundary_role_id}),". Its staffing and executor are inherited from that boundary."]}),Ye&&u.jsxs("div",{className:"ri-team-card",children:[u.jsxs("div",{className:"ri-team-card-title",children:[u.jsx("span",{children:"JiuwenSwarm Team"}),u.jsx("code",{children:e.external_team_binding_id})]}),u.jsxs("div",{className:"ri-team-card-copy",children:["OPC dispatches to ",u.jsx("code",{children:e.role_id}),"; Jiuwen manages its internal leader and members."]}),u.jsx("div",{className:"ri-team-covered-list",children:It.map(me=>u.jsxs("div",{className:"ri-team-covered-role",title:me.responsibility,children:[u.jsx("span",{children:me.name}),u.jsx("code",{children:me.role_id})]},me.role_id))}),yt&&u.jsxs("div",{className:"ri-team-capabilities",children:[u.jsx("b",{children:"Compiled capability contract"}),u.jsx("span",{children:yt.capabilities.length>0?yt.capabilities.join(" · "):"Derived from the covered role responsibilities shown above."}),yt.deliverables.length>0&&u.jsxs("span",{children:["Deliverables: ",yt.deliverables.join(" · ")]}),u.jsxs("code",{title:yt.manifest_hash,children:["manifest ",yt.manifest_hash.slice(0,12)]})]})]}),!$e&&u.jsx(ur,{label:"Execution strategy",children:u.jsx("div",{className:"ri-radio-group",children:IU.map(me=>u.jsxs("label",{className:"ri-radio",title:me.hint,children:[u.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:me.value,checked:M===me.value,onChange:()=>te(me.value),disabled:i}),me.label]},me.value))})}),!$e&&M==="external"&&u.jsxs(ur,{label:"Preferred external agent",children:[u.jsxs("select",{className:"ri-select",value:A??"",onChange:me=>oe(me.target.value||null),disabled:i,children:[u.jsx("option",{value:"",children:"(any)"}),A==="jiuwenswarm"&&u.jsx("option",{value:"jiuwenswarm",children:"JiuwenSwarm Team (select Team scope above)"}),NU.map(me=>u.jsx("option",{value:me,children:la(me)},me))]}),A==="jiuwenswarm"&&u.jsx("span",{className:"ri-field-hint",children:"This legacy role-only value is ambiguous. Select “This role and descendants” above to create the Team binding."})]}),!Ye&&i&&!ct&&u.jsx("div",{className:"ri-team-notice",children:"Corporate role structure is fixed. Choose its single-role executor in the Company staffing step, or bind this entire subtree to JiuwenSwarm here."})]}),u.jsxs(nl,{title:"Advanced",children:[u.jsx(ur,{label:"Role type",children:u.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),u.jsx(ur,{label:"Skills",children:u.jsx("span",{className:"ri-meta-value",children:e.skill_refs&&e.skill_refs.length>0?e.skill_refs.join(", "):"(none)"})}),u.jsx(ur,{label:"Artifact contract",children:u.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!i&&u.jsx("footer",{className:"ri-panel-footer",children:u.jsx("button",{className:`btn btn-sm ${G?"btn-danger":"btn-ghost"}`,onClick:ge,onBlur:()=>P(!1),children:G?"Confirm delete?":"Delete role"})})]})}function nl({title:e,defaultExpanded:t=!1,children:n}){const[i,r]=C.useState(t);return u.jsxs("section",{className:`ri-group${i?" is-expanded":""}`,children:[u.jsxs("button",{className:"ri-group-header",onClick:()=>r(o=>!o),children:[u.jsx("span",{className:"ri-group-caret",children:i?"▾":"▸"}),u.jsx("span",{className:"ri-group-title",children:e})]}),i&&u.jsx("div",{className:"ri-group-body",children:n})]})}function ur({label:e,children:t}){return u.jsxs("div",{className:"ri-field",children:[u.jsx("label",{className:"ri-field-label",children:e}),u.jsx("div",{className:"ri-field-control",children:t})]})}function RU({value:e,onChange:t,readOnly:n}){const[i,r]=C.useState(!1);return u.jsxs("div",{className:"ri-icon-picker",children:[u.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&r(o=>!o),disabled:n,children:[u.jsx("img",{src:Yu(e),alt:"",className:"ri-icon-picker-current"}),u.jsx("span",{className:"ri-icon-picker-label",children:e??"generic"})]}),i&&u.jsxs("div",{className:"ri-icon-picker-popover",children:[u.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),r(!1)},title:"Default icon",children:u.jsx("img",{src:yu.generic,alt:""})}),jU.filter(o=>o!=="generic").map(o=>u.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),r(!1)},title:o,children:u.jsx("img",{src:yu[o],alt:o})},o))]})]})}function AU({allIds:e,labelFor:t,selected:n,onToggle:i,readOnly:r}){const[o,a]=C.useState(!1),c=e.filter(d=>!n.has(d));return u.jsxs("div",{className:"ri-multiselect",children:[u.jsxs("div",{className:"ri-chips",children:[Array.from(n).map(d=>u.jsxs("span",{className:"ri-chip",children:[t(d),!r&&u.jsx("button",{className:"ri-chip-x",onClick:()=>i(d),title:"Remove",children:"×"})]},d)),!r&&c.length>0&&u.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&r&&u.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!r&&u.jsx("div",{className:"ri-multiselect-popover",children:c.map(d=>u.jsx("button",{className:"ri-multiselect-option",onClick:()=>{i(d),a(!1)},children:t(d)},d))})]})}function MU({tools:e,onToggle:t,readOnly:n}){return u.jsx("div",{className:"ri-toolcheck",children:EU.map(i=>u.jsxs("fieldset",{className:"ri-toolcheck-group",children:[u.jsx("legend",{className:"ri-toolcheck-legend",children:i.label}),u.jsx("div",{className:"ri-toolcheck-items",children:i.tools.map(r=>u.jsxs("label",{className:"ri-toolcheck-item",children:[u.jsx("input",{type:"checkbox",checked:e.has(r),onChange:()=>t(r),disabled:n}),u.jsx("span",{className:"ri-toolcheck-name",children:r.replace(i.prefix,"")||r})]},r))})]},i.prefix))})}function _o(e,t){return typeof e=="function"?e(t):e}function xr(e,t){return n=>{t.setState(i=>({...i,[e]:_o(n,i[e])}))}}function ip(e){return e instanceof Function}function DU(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function OU(e,t){const n=[],i=r=>{r.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&i(a)})};return i(e),n}function kt(e,t,n){let i=[],r;return o=>{let a;n.key&&n.debug&&(a=Date.now());const c=e(o);if(!(c.length!==i.length||c.some((h,p)=>i[p]!==h)))return r;i=c;let m;if(n.key&&n.debug&&(m=Date.now()),r=t(...c),n==null||n.onChange==null||n.onChange(r),n.key&&n.debug&&n!=null&&n.debug()){const h=Math.round((Date.now()-a)*100)/100,p=Math.round((Date.now()-m)*100)/100,g=p/16,x=(v,b)=>{for(v=String(v);v.length{var r;return(r=e?.debugAll)!=null?r:e[t]},key:!1,onChange:i}}function LU(e,t,n,i){const r=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(i),renderValue:r,getContext:kt(()=>[e,n,t,o],(a,c,d,m)=>({table:a,column:c,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),St(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function zU(e,t,n,i){var r,o;const c={...e._getDefaultColumnDef(),...t},d=c.accessorKey;let m=(r=(o=c.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?r:typeof c.header=="string"?c.header:void 0,h;if(c.accessorFn?h=c.accessorFn:d&&(d.includes(".")?h=g=>{let x=g;for(const b of d.split(".")){var v;x=(v=x)==null?void 0:v[b]}return x}:h=g=>g[c.accessorKey]),!m)throw new Error;let p={id:`${String(m)}`,accessorFn:h,parent:i,depth:n,columnDef:c,columns:[],getFlatColumns:kt(()=>[!0],()=>{var g;return[p,...(g=p.columns)==null?void 0:g.flatMap(x=>x.getFlatColumns())]},St(e.options,"debugColumns")),getLeafColumns:kt(()=>[e._getOrderColumnsFn()],g=>{var x;if((x=p.columns)!=null&&x.length){let v=p.columns.flatMap(b=>b.getLeafColumns());return g(v)}return[p]},St(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(p,e);return p}const zi="debugHeaders";function GC(e,t,n){var i;let o={id:(i=n.id)!=null?i:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],c=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(c),a.push(d)};return c(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const PU={createTable:e=>{e.getHeaderGroups=kt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>{var o,a;const c=(o=i?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?o:[],d=(a=r?.map(p=>n.find(g=>g.id===p)).filter(Boolean))!=null?a:[],m=n.filter(p=>!(i!=null&&i.includes(p.id))&&!(r!=null&&r.includes(p.id)));return kf(t,[...c,...m,...d],e)},St(e.options,zi)),e.getCenterHeaderGroups=kt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i,r)=>(n=n.filter(o=>!(i!=null&&i.includes(o.id))&&!(r!=null&&r.includes(o.id))),kf(t,n,e,"center")),St(e.options,zi)),e.getLeftHeaderGroups=kt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return kf(t,o,e,"left")},St(e.options,zi)),e.getRightHeaderGroups=kt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,i)=>{var r;const o=(r=i?.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?r:[];return kf(t,o,e,"right")},St(e.options,zi)),e.getFooterGroups=kt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),St(e.options,zi)),e.getLeftFooterGroups=kt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),St(e.options,zi)),e.getCenterFooterGroups=kt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),St(e.options,zi)),e.getRightFooterGroups=kt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),St(e.options,zi)),e.getFlatHeaders=kt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),St(e.options,zi)),e.getLeftFlatHeaders=kt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),St(e.options,zi)),e.getCenterFlatHeaders=kt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),St(e.options,zi)),e.getRightFlatHeaders=kt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),St(e.options,zi)),e.getCenterLeafHeaders=kt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),St(e.options,zi)),e.getLeftLeafHeaders=kt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),St(e.options,zi)),e.getRightLeafHeaders=kt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var i;return!((i=n.subHeaders)!=null&&i.length)}),St(e.options,zi)),e.getLeafHeaders=kt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,i)=>{var r,o,a,c,d,m;return[...(r=(o=t[0])==null?void 0:o.headers)!=null?r:[],...(a=(c=n[0])==null?void 0:c.headers)!=null?a:[],...(d=(m=i[0])==null?void 0:m.headers)!=null?d:[]].map(h=>h.getLeafHeaders()).flat()},St(e.options,zi))}};function kf(e,t,n,i){var r,o;let a=0;const c=function(g,x){x===void 0&&(x=1),a=Math.max(a,x),g.filter(v=>v.getIsVisible()).forEach(v=>{var b;(b=v.columns)!=null&&b.length&&c(v.columns,x+1)},0)};c(e);let d=[];const m=(g,x)=>{const v={depth:x,id:[i,`${x}`].filter(Boolean).join("_"),headers:[]},b=[];g.forEach(S=>{const w=[...b].reverse()[0],k=S.column.depth===v.depth;let j,N=!1;if(k&&S.column.parent?j=S.column.parent:(j=S.column,N=!0),w&&w?.column===j)w.subHeaders.push(S);else{const z=GC(n,j,{id:[i,x,j.id,S?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${b.filter(T=>T.column===j).length}`:void 0,depth:x,index:b.length});z.subHeaders.push(S),b.push(z)}v.headers.push(S),S.headerGroup=v}),d.push(v),x>0&&m(b,x-1)},h=t.map((g,x)=>GC(n,g,{depth:a,index:x}));m(h,a-1),d.reverse();const p=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let b=0,S=0,w=[0];v.subHeaders&&v.subHeaders.length?(w=[],p(v.subHeaders).forEach(j=>{let{colSpan:N,rowSpan:z}=j;b+=N,w.push(z)})):b=1;const k=Math.min(...w);return S=S+k,v.colSpan=b,v.rowSpan=S,{colSpan:b,rowSpan:S}});return p((r=(o=d[0])==null?void 0:o.headers)!=null?r:[]),d}const BU=(e,t,n,i,r,o,a)=>{let c={id:t,index:i,original:n,depth:r,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:d=>{if(c._valuesCache.hasOwnProperty(d))return c._valuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return c._valuesCache[d]=m.accessorFn(c.original,i),c._valuesCache[d]},getUniqueValues:d=>{if(c._uniqueValuesCache.hasOwnProperty(d))return c._uniqueValuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return m.columnDef.getUniqueValues?(c._uniqueValuesCache[d]=m.columnDef.getUniqueValues(c.original,i),c._uniqueValuesCache[d]):(c._uniqueValuesCache[d]=[c.getValue(d)],c._uniqueValuesCache[d])},renderValue:d=>{var m;return(m=c.getValue(d))!=null?m:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>OU(c.subRows,d=>d.subRows),getParentRow:()=>c.parentId?e.getRow(c.parentId,!0):void 0,getParentRows:()=>{let d=[],m=c;for(;;){const h=m.getParentRow();if(!h)break;d.push(h),m=h}return d.reverse()},getAllCells:kt(()=>[e.getAllLeafColumns()],d=>d.map(m=>LU(e,c,m,m.id)),St(e.options,"debugRows")),_getAllCellsByColumnId:kt(()=>[c.getAllCells()],d=>d.reduce((m,h)=>(m[h.column.id]=h,m),{}),St(e.options,"debugRows"))};for(let d=0;d{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},pT=(e,t,n)=>{var i,r;const o=n==null||(i=n.toString())==null?void 0:i.toLowerCase();return!!(!((r=e.getValue(t))==null||(r=r.toString())==null||(r=r.toLowerCase())==null)&&r.includes(o))};pT.autoRemove=e=>qr(e);const hT=(e,t,n)=>{var i;return!!(!((i=e.getValue(t))==null||(i=i.toString())==null)&&i.includes(n))};hT.autoRemove=e=>qr(e);const gT=(e,t,n)=>{var i;return((i=e.getValue(t))==null||(i=i.toString())==null?void 0:i.toLowerCase())===n?.toLowerCase()};gT.autoRemove=e=>qr(e);const yT=(e,t,n)=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(n)};yT.autoRemove=e=>qr(e);const xT=(e,t,n)=>!n.some(i=>{var r;return!((r=e.getValue(t))!=null&&r.includes(i))});xT.autoRemove=e=>qr(e)||!(e!=null&&e.length);const vT=(e,t,n)=>n.some(i=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(i)});vT.autoRemove=e=>qr(e)||!(e!=null&&e.length);const bT=(e,t,n)=>e.getValue(t)===n;bT.autoRemove=e=>qr(e);const _T=(e,t,n)=>e.getValue(t)==n;_T.autoRemove=e=>qr(e);const V0=(e,t,n)=>{let[i,r]=n;const o=e.getValue(t);return o>=i&&o<=r};V0.resolveFilterValue=e=>{let[t,n]=e,i=typeof t!="number"?parseFloat(t):t,r=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(i)?-1/0:i,a=n===null||Number.isNaN(r)?1/0:r;if(o>a){const c=o;o=a,a=c}return[o,a]};V0.autoRemove=e=>qr(e)||qr(e[0])&&qr(e[1]);const Ms={includesString:pT,includesStringSensitive:hT,equalsString:gT,arrIncludes:yT,arrIncludesAll:xT,arrIncludesSome:vT,equals:bT,weakEquals:_T,inNumberRange:V0};function qr(e){return e==null||e===""}const HU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:xr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);return typeof i=="string"?Ms.includesString:typeof i=="number"?Ms.inNumberRange:typeof i=="boolean"||i!==null&&typeof i=="object"?Ms.equals:Array.isArray(i)?Ms.arrIncludes:Ms.weakEquals},e.getFilterFn=()=>{var n,i;return ip(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(i=t.options.filterFns)==null?void 0:i[e.columnDef.filterFn])!=null?n:Ms[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,i,r;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((i=t.options.enableColumnFilters)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(i=>i.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,i;return(n=(i=t.getState().columnFilters)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(i=>{const r=e.getFilterFn(),o=i?.find(h=>h.id===e.id),a=_o(n,o?o.value:void 0);if(WC(r,a,e)){var c;return(c=i?.filter(h=>h.id!==e.id))!=null?c:[]}const d={id:e.id,value:a};if(o){var m;return(m=i?.map(h=>h.id===e.id?d:h))!=null?m:[]}return i!=null&&i.length?[...i,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),i=r=>{var o;return(o=_o(t,r))==null?void 0:o.filter(a=>{const c=n.find(d=>d.id===a.id);if(c){const d=c.getFilterFn();if(WC(d,a.value,c))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(i)},e.resetColumnFilters=t=>{var n,i;e.setColumnFilters(t?[]:(n=(i=e.initialState)==null?void 0:i.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function WC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const FU=(e,t,n)=>n.reduce((i,r)=>{const o=r.getValue(e);return i+(typeof o=="number"?o:0)},0),VU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i>o||i===void 0&&o>=o)&&(i=o)}),i},UU=(e,t,n)=>{let i;return n.forEach(r=>{const o=r.getValue(e);o!=null&&(i=o)&&(i=o)}),i},qU=(e,t,n)=>{let i,r;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(i===void 0?a>=a&&(i=r=a):(i>a&&(i=a),r{let n=0,i=0;if(t.forEach(r=>{let o=r.getValue(e);o!=null&&(o=+o)>=o&&(++n,i+=o)}),n)return i/n},WU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!DU(n))return;if(n.length===1)return n[0];const i=Math.floor(n.length/2),r=n.sort((o,a)=>o-a);return n.length%2!==0?r[i]:(r[i-1]+r[i])/2},YU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),XU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,KU=(e,t)=>t.length,Ty={sum:FU,min:VU,max:UU,extent:qU,mean:GU,median:WU,unique:YU,uniqueCount:XU,count:KU},ZU={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:xr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(i=>i!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,i;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((i=t.options.enableGrouping)!=null?i:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],i=n?.getValue(e.id);if(typeof i=="number")return Ty.sum;if(Object.prototype.toString.call(i)==="[object Date]")return Ty.extent},e.getAggregationFn=()=>{var n,i;if(!e)throw new Error;return ip(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(i=t.options.aggregationFns)==null?void 0:i[e.columnDef.aggregationFn])!=null?n:Ty[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,i;e.setGrouping(t?[]:(n=(i=e.initialState)==null?void 0:i.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const i=t.getColumn(n);return i!=null&&i.columnDef.getGroupingValue?(e._groupingValuesCache[n]=i.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,i)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var r;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((r=n.subRows)!=null&&r.length)}}};function QU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const i=e.filter(o=>!t.includes(o.id));return n==="remove"?i:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...i]}const JU={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:xr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=kt(n=>[xu(t,n)],n=>n.findIndex(i=>i.id===e.id),St(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var i;return((i=xu(t,n)[0])==null?void 0:i.id)===e.id},e.getIsLastColumn=n=>{var i;const r=xu(t,n);return((i=r[r.length-1])==null?void 0:i.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=kt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,i)=>r=>{let o=[];if(!(t!=null&&t.length))o=r;else{const a=[...t],c=[...r];for(;c.length&&a.length;){const d=a.shift(),m=c.findIndex(h=>h.id===d);m>-1&&o.push(c.splice(m,1)[0])}o=[...o,...c]}return QU(o,n,i)},St(e.options,"debugTable"))}},Ry=()=>({left:[],right:[]}),eq={getInitialState:e=>({columnPinning:Ry(),...e}),getDefaultOptions:e=>({onColumnPinningChange:xr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const i=e.getLeafColumns().map(r=>r.id).filter(Boolean);t.setColumnPinning(r=>{var o,a;if(n==="right"){var c,d;return{left:((c=r?.left)!=null?c:[]).filter(p=>!(i!=null&&i.includes(p))),right:[...((d=r?.right)!=null?d:[]).filter(p=>!(i!=null&&i.includes(p))),...i]}}if(n==="left"){var m,h;return{left:[...((m=r?.left)!=null?m:[]).filter(p=>!(i!=null&&i.includes(p))),...i],right:((h=r?.right)!=null?h:[]).filter(p=>!(i!=null&&i.includes(p)))}}return{left:((o=r?.left)!=null?o:[]).filter(p=>!(i!=null&&i.includes(p))),right:((a=r?.right)!=null?a:[]).filter(p=>!(i!=null&&i.includes(p)))}})},e.getCanPin=()=>e.getLeafColumns().some(i=>{var r,o,a;return((r=i.columnDef.enablePinning)!=null?r:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(c=>c.id),{left:i,right:r}=t.getState().columnPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();return r?(n=(i=t.getState().columnPinning)==null||(i=i[r])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=kt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,i,r)=>{const o=[...i??[],...r??[]];return n.filter(a=>!o.includes(a.column.id))},St(t.options,"debugRows")),e.getLeftVisibleCells=kt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),St(t.options,"debugRows")),e.getRightVisibleCells=kt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,i)=>(i??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),St(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,i;return e.setColumnPinning(t?Ry():(n=(i=e.initialState)==null?void 0:i.columnPinning)!=null?n:Ry())},e.getIsSomeColumnsPinned=t=>{var n;const i=e.getState().columnPinning;if(!t){var r,o;return!!((r=i.left)!=null&&r.length||(o=i.right)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e.getLeftLeafColumns=kt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),St(e.options,"debugColumns")),e.getRightLeafColumns=kt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(i=>t.find(r=>r.id===i)).filter(Boolean),St(e.options,"debugColumns")),e.getCenterLeafColumns=kt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,i)=>{const r=[...n??[],...i??[]];return t.filter(o=>!r.includes(o.id))},St(e.options,"debugColumns"))}};function tq(e){return e||(typeof document<"u"?document:null)}const Sf={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Ay=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),nq={getDefaultColumnDef:()=>Sf,getInitialState:e=>({columnSizing:{},columnSizingInfo:Ay(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:xr("columnSizing",e),onColumnSizingInfoChange:xr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,i,r;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Sf.minSize,(i=o??e.columnDef.size)!=null?i:Sf.size),(r=e.columnDef.maxSize)!=null?r:Sf.maxSize)},e.getStart=kt(n=>[n,xu(t,n),t.getState().columnSizing],(n,i)=>i.slice(0,e.getIndex(n)).reduce((r,o)=>r+o.getSize(),0),St(t.options,"debugColumns")),e.getAfter=kt(n=>[n,xu(t,n),t.getState().columnSizing],(n,i)=>i.slice(e.getIndex(n)+1).reduce((r,o)=>r+o.getSize(),0),St(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:i,...r}=n;return r})},e.getCanResize=()=>{var n,i;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((i=t.options.enableColumnResizing)!=null?i:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const i=r=>{if(r.subHeaders.length)r.subHeaders.forEach(i);else{var o;n+=(o=r.column.getSize())!=null?o:0}};return i(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const i=t.getColumn(e.column.id),r=i?.getCanResize();return o=>{if(!i||!r||(o.persist==null||o.persist(),My(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),c=e?e.getLeafHeaders().map(w=>[w.column.id,w.column.getSize()]):[[i.id,i.getSize()]],d=My(o)?Math.round(o.touches[0].clientX):o.clientX,m={},h=(w,k)=>{typeof k=="number"&&(t.setColumnSizingInfo(j=>{var N,z;const T=t.options.columnResizeDirection==="rtl"?-1:1,M=(k-((N=j?.startOffset)!=null?N:0))*T,L=Math.max(M/((z=j?.startSize)!=null?z:0),-.999999);return j.columnSizingStart.forEach(A=>{let[O,I]=A;m[O]=Math.round(Math.max(I+I*L,0)*100)/100}),{...j,deltaOffset:M,deltaPercentage:L}}),(t.options.columnResizeMode==="onChange"||w==="end")&&t.setColumnSizing(j=>({...j,...m})))},p=w=>h("move",w),g=w=>{h("end",w),t.setColumnSizingInfo(k=>({...k,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},x=tq(n),v={moveHandler:w=>p(w.clientX),upHandler:w=>{x?.removeEventListener("mousemove",v.moveHandler),x?.removeEventListener("mouseup",v.upHandler),g(w.clientX)}},b={moveHandler:w=>(w.cancelable&&(w.preventDefault(),w.stopPropagation()),p(w.touches[0].clientX),!1),upHandler:w=>{var k;x?.removeEventListener("touchmove",b.moveHandler),x?.removeEventListener("touchend",b.upHandler),w.cancelable&&(w.preventDefault(),w.stopPropagation()),g((k=w.touches[0])==null?void 0:k.clientX)}},S=iq()?{passive:!1}:!1;My(o)?(x?.addEventListener("touchmove",b.moveHandler,S),x?.addEventListener("touchend",b.upHandler,S)):(x?.addEventListener("mousemove",v.moveHandler,S),x?.addEventListener("mouseup",v.upHandler,S)),t.setColumnSizingInfo(w=>({...w,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:c,isResizingColumn:i.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Ay():(n=e.initialState.columnSizingInfo)!=null?n:Ay())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((i,r)=>i+r.getSize(),0))!=null?t:0}}};let wf=null;function iq(){if(typeof wf=="boolean")return wf;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return wf=e,wf}function My(e){return e.type==="touchstart"}const rq={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:xr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(i=>({...i,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,i;const r=e.columns;return(n=r.length?r.some(o=>o.getIsVisible()):(i=t.getState().columnVisibility)==null?void 0:i[e.id])!=null?n:!0},e.getCanHide=()=>{var n,i;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((i=t.options.enableHiding)!=null?i:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=kt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(i=>i.column.getIsVisible()),St(t.options,"debugRows")),e.getVisibleCells=kt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,i,r)=>[...n,...i,...r],St(t.options,"debugRows"))},createTable:e=>{const t=(n,i)=>kt(()=>[i(),i().filter(r=>r.getIsVisible()).map(r=>r.id).join("_")],r=>r.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),St(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var i;e.setColumnVisibility(n?{}:(i=e.initialState.columnVisibility)!=null?i:{})},e.toggleAllColumnsVisible=n=>{var i;n=(i=n)!=null?i:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((r,o)=>({...r,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var i;e.toggleAllColumnsVisible((i=n.target)==null?void 0:i.checked)}}};function xu(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const sq={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},oq={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:xr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const i=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,i,r,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((i=t.options.enableGlobalFilter)!=null?i:!0)&&((r=t.options.enableFilters)!=null?r:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Ms.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:i}=e.options;return ip(i)?i:i==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[i])!=null?t:Ms[i]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},aq={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:xr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetExpanded)!=null?i:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=i=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(i),e.toggleAllRowsExpanded=i=>{i??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=i=>{var r,o;e.setExpanded(i?{}:(r=(o=e.initialState)==null?void 0:o.expanded)!=null?r:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(i=>i.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>i=>{i.persist==null||i.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const i=e.getState().expanded;return i===!0||Object.values(i).some(Boolean)},e.getIsAllRowsExpanded=()=>{const i=e.getState().expanded;return typeof i=="boolean"?i===!0:!(!Object.keys(i).length||e.getRowModel().flatRows.some(r=>!r.getIsExpanded()))},e.getExpandedDepth=()=>{let i=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");i=Math.max(i,a.length)}),i},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(i=>{var r;const o=i===!0?!0:!!(i!=null&&i[e.id]);let a={};if(i===!0?Object.keys(t.getRowModel().rowsById).forEach(c=>{a[c]=!0}):a=i,n=(r=n)!=null?r:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:c,...d}=a;return d}return i})},e.getIsExpanded=()=>{var n;const i=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:i===!0||i?.[e.id])},e.getCanExpand=()=>{var n,i,r;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((i=t.options.enableExpanding)!=null?i:!0)&&!!((r=e.subRows)!=null&&r.length)},e.getIsAllParentsExpanded=()=>{let n=!0,i=e;for(;n&&i.parentId;)i=t.getRow(i.parentId,!0),n=i.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},jv=0,Ev=10,Dy=()=>({pageIndex:jv,pageSize:Ev}),lq={getInitialState:e=>({...e,pagination:{...Dy(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:xr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var i,r;if(!t){e._queue(()=>{t=!0});return}if((i=(r=e.options.autoResetAll)!=null?r:e.options.autoResetPageIndex)!=null?i:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=i=>{const r=o=>_o(i,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(r)},e.resetPagination=i=>{var r;e.setPagination(i?Dy():(r=e.initialState.pagination)!=null?r:Dy())},e.setPageIndex=i=>{e.setPagination(r=>{let o=_o(i,r.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...r,pageIndex:o}})},e.resetPageIndex=i=>{var r,o;e.setPageIndex(i?jv:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?r:jv)},e.resetPageSize=i=>{var r,o;e.setPageSize(i?Ev:(r=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?r:Ev)},e.setPageSize=i=>{e.setPagination(r=>{const o=Math.max(1,_o(i,r.pageSize)),a=r.pageSize*r.pageIndex,c=Math.floor(a/o);return{...r,pageIndex:c,pageSize:o}})},e.setPageCount=i=>e.setPagination(r=>{var o;let a=_o(i,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...r,pageCount:a}}),e.getPageOptions=kt(()=>[e.getPageCount()],i=>{let r=[];return i&&i>0&&(r=[...new Array(i)].fill(null).map((o,a)=>a)),r},St(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:i}=e.getState().pagination,r=e.getPageCount();return r===-1?!0:r===0?!1:ie.setPageIndex(i=>i-1),e.nextPage=()=>e.setPageIndex(i=>i+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var i;return(i=e.options.pageCount)!=null?i:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var i;return(i=e.options.rowCount)!=null?i:e.getPrePaginationRowModel().rows.length}}},Oy=()=>({top:[],bottom:[]}),cq={getInitialState:e=>({rowPinning:Oy(),...e}),getDefaultOptions:e=>({onRowPinningChange:xr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,i,r)=>{const o=i?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=r?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],c=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,h;if(n==="bottom"){var p,g;return{top:((p=d?.top)!=null?p:[]).filter(b=>!(c!=null&&c.has(b))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)]}}if(n==="top"){var x,v;return{top:[...((x=d?.top)!=null?x:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)],bottom:((v=d?.bottom)!=null?v:[]).filter(b=>!(c!=null&&c.has(b)))}}return{top:((m=d?.top)!=null?m:[]).filter(b=>!(c!=null&&c.has(b))),bottom:((h=d?.bottom)!=null?h:[]).filter(b=>!(c!=null&&c.has(b)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:i,enablePinning:r}=t.options;return typeof i=="function"?i(e):(n=i??r)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:i,bottom:r}=t.getState().rowPinning,o=n.some(c=>i?.includes(c)),a=n.some(c=>r?.includes(c));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,i;const r=e.getIsPinned();if(!r)return-1;const o=(n=r==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:c}=a;return c});return(i=o?.indexOf(e.id))!=null?i:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,i;return e.setRowPinning(t?Oy():(n=(i=e.initialState)==null?void 0:i.rowPinning)!=null?n:Oy())},e.getIsSomeRowsPinned=t=>{var n;const i=e.getState().rowPinning;if(!t){var r,o;return!!((r=i.top)!=null&&r.length||(o=i.bottom)!=null&&o.length)}return!!((n=i[t])!=null&&n.length)},e._getPinnedRows=(t,n,i)=>{var r;return((r=e.options.keepPinnedRows)==null||r?(n??[]).map(a=>{const c=e.getRow(a,!0);return c.getIsAllParentsExpanded()?c:null}):(n??[]).map(a=>t.find(c=>c.id===a))).filter(Boolean).map(a=>({...a,position:i}))},e.getTopRows=kt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),St(e.options,"debugRows")),e.getBottomRows=kt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),St(e.options,"debugRows")),e.getCenterRows=kt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,i)=>{const r=new Set([...n??[],...i??[]]);return t.filter(o=>!r.has(o.id))},St(e.options,"debugRows"))}},uq={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:xr("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const i={...n},r=e.getPreGroupedRowModel().flatRows;return t?r.forEach(o=>{o.getCanSelect()&&(i[o.id]=!0)}):r.forEach(o=>{delete i[o.id]}),i})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const i=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),r={...n};return e.getRowModel().rows.forEach(o=>{Nv(r,o.id,i,!0,e)}),r}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=kt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Ly(e,n):{rows:[],flatRows:[],rowsById:{}},St(e.options,"debugTable")),e.getFilteredSelectedRowModel=kt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Ly(e,n):{rows:[],flatRows:[],rowsById:{}},St(e.options,"debugTable")),e.getGroupedSelectedRowModel=kt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Ly(e,n):{rows:[],flatRows:[],rowsById:{}},St(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let i=!!(t.length&&Object.keys(n).length);return i&&t.some(r=>r.getCanSelect()&&!n[r.id])&&(i=!1),i},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(r=>r.getCanSelect()),{rowSelection:n}=e.getState();let i=!!t.length;return i&&t.some(r=>!n[r.id])&&(i=!1),i},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,i)=>{const r=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!r,e.getCanSelect()&&r===n)return o;const c={...o};return Nv(c,e.id,n,(a=i?.selectChildren)!=null?a:!0,t),c})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return U0(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Iv(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Iv(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return i=>{var r;n&&e.toggleSelected((r=i.target)==null?void 0:r.checked)}}}},Nv=(e,t,n,i,r)=>{var o;const a=r.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(c=>delete e[c]),a.getCanSelect()&&(e[t]=!0)):delete e[t],i&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(c=>Nv(e,c.id,n,i,r))};function Ly(e,t){const n=e.getState().rowSelection,i=[],r={},o=function(a,c){return a.map(d=>{var m;const h=U0(d,n);if(h&&(i.push(d),r[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),h)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:i,rowsById:r}}function U0(e,t){var n;return(n=t[e.id])!=null?n:!1}function Iv(e,t,n){var i;if(!((i=e.subRows)!=null&&i.length))return!1;let r=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!r)&&(a.getCanSelect()&&(U0(a,t)?o=!0:r=!1),a.subRows&&a.subRows.length)){const c=Iv(a,t);c==="all"?o=!0:(c==="some"&&(o=!0),r=!1)}}),r?"all":o?"some":!1}const Tv=/([0-9]+)/gm,dq=(e,t,n)=>kT(No(e.getValue(n)).toLowerCase(),No(t.getValue(n)).toLowerCase()),fq=(e,t,n)=>kT(No(e.getValue(n)),No(t.getValue(n))),mq=(e,t,n)=>q0(No(e.getValue(n)).toLowerCase(),No(t.getValue(n)).toLowerCase()),pq=(e,t,n)=>q0(No(e.getValue(n)),No(t.getValue(n))),hq=(e,t,n)=>{const i=e.getValue(n),r=t.getValue(n);return i>r?1:iq0(e.getValue(n),t.getValue(n));function q0(e,t){return e===t?0:e>t?1:-1}function No(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function kT(e,t){const n=e.split(Tv).filter(Boolean),i=t.split(Tv).filter(Boolean);for(;n.length&&i.length;){const r=n.shift(),o=i.shift(),a=parseInt(r,10),c=parseInt(o,10),d=[a,c].sort();if(isNaN(d[0])){if(r>o)return 1;if(o>r)return-1;continue}if(isNaN(d[1]))return isNaN(a)?-1:1;if(a>c)return 1;if(c>a)return-1}return n.length-i.length}const eu={alphanumeric:dq,alphanumericCaseSensitive:fq,text:mq,textCaseSensitive:pq,datetime:hq,basic:gq},yq={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:xr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let i=!1;for(const r of n){const o=r?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return eu.datetime;if(typeof o=="string"&&(i=!0,o.split(Tv).length>1))return eu.alphanumeric}return i?eu.text:eu.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,i;if(!e)throw new Error;return ip(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(i=t.options.sortingFns)==null?void 0:i[e.columnDef.sortingFn])!=null?n:eu[e.columnDef.sortingFn]},e.toggleSorting=(n,i)=>{const r=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const c=a?.find(x=>x.id===e.id),d=a?.findIndex(x=>x.id===e.id);let m=[],h,p=o?n:r==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&i?c?h="toggle":h="add":a!=null&&a.length&&d!==a.length-1?h="replace":c?h="toggle":h="replace",h==="toggle"&&(o||r||(h="remove")),h==="add"){var g;m=[...a,{id:e.id,desc:p}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else h==="toggle"?m=a.map(x=>x.id===e.id?{...x,desc:p}:x):h==="remove"?m=a.filter(x=>x.id!==e.id):m=[{id:e.id,desc:p}];return m})},e.getFirstSortDir=()=>{var n,i;return((n=(i=e.columnDef.sortDescFirst)!=null?i:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var i,r;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((i=t.options.enableSortingRemoval)==null||i)&&(!(n&&(r=t.options.enableMultiRemove)!=null)||r)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,i;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((i=t.options.enableSorting)!=null?i:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,i;return(n=(i=e.columnDef.enableMultiSort)!=null?i:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const i=(n=t.getState().sorting)==null?void 0:n.find(r=>r.id===e.id);return i?i.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,i;return(n=(i=t.getState().sorting)==null?void 0:i.findIndex(r=>r.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(i=>i.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return i=>{n&&(i.persist==null||i.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(i):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,i;e.setSorting(t?[]:(n=(i=e.initialState)==null?void 0:i.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},xq=[PU,rq,JU,eq,$U,HU,sq,oq,yq,ZU,aq,lq,cq,uq,nq];function vq(e){var t,n;const i=[...xq,...(t=e._features)!=null?t:[]];let r={_features:i};const o=r._features.reduce((g,x)=>Object.assign(g,x.getDefaultOptions==null?void 0:x.getDefaultOptions(r)),{}),a=g=>r.options.mergeOptions?r.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};r._features.forEach(g=>{var x;d=(x=g.getInitialState==null?void 0:g.getInitialState(d))!=null?x:d});const m=[];let h=!1;const p={_features:i,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),h||(h=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();h=!1}).catch(x=>setTimeout(()=>{throw x})))},reset:()=>{r.setState(r.initialState)},setOptions:g=>{const x=_o(g,r.options);r.options=a(x)},getState:()=>r.options.state,setState:g=>{r.options.onStateChange==null||r.options.onStateChange(g)},_getRowId:(g,x,v)=>{var b;return(b=r.options.getRowId==null?void 0:r.options.getRowId(g,x,v))!=null?b:`${v?[v.id,x].join("."):x}`},getCoreRowModel:()=>(r._getCoreRowModel||(r._getCoreRowModel=r.options.getCoreRowModel(r)),r._getCoreRowModel()),getRowModel:()=>r.getPaginationRowModel(),getRow:(g,x)=>{let v=(x?r.getPrePaginationRowModel():r.getRowModel()).rowsById[g];if(!v&&(v=r.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:kt(()=>[r.options.defaultColumn],g=>{var x;return g=(x=g)!=null?x:{},{header:v=>{const b=v.header.column.columnDef;return b.accessorKey?b.accessorKey:b.accessorFn?b.id:null},cell:v=>{var b,S;return(b=(S=v.renderValue())==null||S.toString==null?void 0:S.toString())!=null?b:null},...r._features.reduce((v,b)=>Object.assign(v,b.getDefaultColumnDef==null?void 0:b.getDefaultColumnDef()),{}),...g}},St(e,"debugColumns")),_getColumnDefs:()=>r.options.columns,getAllColumns:kt(()=>[r._getColumnDefs()],g=>{const x=function(v,b,S){return S===void 0&&(S=0),v.map(w=>{const k=zU(r,w,S,b),j=w;return k.columns=j.columns?x(j.columns,k,S+1):[],k})};return x(g)},St(e,"debugColumns")),getAllFlatColumns:kt(()=>[r.getAllColumns()],g=>g.flatMap(x=>x.getFlatColumns()),St(e,"debugColumns")),_getAllFlatColumnsById:kt(()=>[r.getAllFlatColumns()],g=>g.reduce((x,v)=>(x[v.id]=v,x),{}),St(e,"debugColumns")),getAllLeafColumns:kt(()=>[r.getAllColumns(),r._getOrderColumnsFn()],(g,x)=>{let v=g.flatMap(b=>b.getLeafColumns());return x(v)},St(e,"debugColumns")),getColumn:g=>r._getAllFlatColumnsById()[g]};Object.assign(r,p);for(let g=0;gkt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},i=function(r,o,a){o===void 0&&(o=0);const c=[];for(let m=0;me._autoResetPageIndex()))}function _q(){return e=>kt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const i=e.getState().sorting,r=[],o=i.filter(d=>{var m;return(m=e.getColumn(d.id))==null?void 0:m.getCanSort()}),a={};o.forEach(d=>{const m=e.getColumn(d.id);m&&(a[d.id]={sortUndefined:m.columnDef.sortUndefined,invertSorting:m.columnDef.invertSorting,sortingFn:m.getSortingFn()})});const c=d=>{const m=d.map(h=>({...h}));return m.sort((h,p)=>{for(let x=0;x{var p;r.push(h),(p=h.subRows)!=null&&p.length&&(h.subRows=c(h.subRows))}),m};return{rows:c(n.rows),flatRows:r,rowsById:n.rowsById}},St(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function YC(e,t){return e?kq(e)?C.createElement(e,t):e:null}function kq(e){return Sq(e)||typeof e=="function"||wq(e)}function Sq(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function wq(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function Cq(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=C.useState(()=>({current:vq(t)})),[i,r]=C.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...i,...e.state},onStateChange:a=>{r(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const XC=Km.filter(e=>e!=="native");function jq({roles:e,employees:t,selectedIds:n,onSelectRow:i,onUpdateRole:r,onDeleteRole:o,readOnly:a}){const[c,d]=C.useState([]),[m,h]=C.useState({}),[p,g]=C.useState(null),[x,v]=C.useState(""),b=C.useMemo(()=>{const L=new Map;for(const A of t){const O=A.role_ids?.length?A.role_ids:[A.role_id];for(const I of O)I&&L.set(I,(L.get(I)??0)+1)}return e.map(A=>({role_id:A.role_id,name:A.name,icon:A.icon??null,reports_to:A.reports_to,toolCount:A.tools?.length??0,agent:A.preferred_external_agent??null,employeeCount:L.get(A.role_id)??0,coveredByExternalTeam:!!A.covered_by_external_team,externalTeamBoundary:!!A.external_team_boundary,externalTeamBoundaryRoleId:A.external_team_boundary_role_id??null}))},[e,t]),S=C.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(L=>({id:L.role_id,name:L.name}))],[e]),w=L=>{const A=x.trim();A&&A!==e.find(O=>O.role_id===L)?.name&&r(L,{name:A}),g(null),v("")},k=C.useMemo(()=>[{id:"select",header:({table:L})=>u.jsx("input",{type:"checkbox",checked:L.getIsAllRowsSelected(),ref:A=>{A&&(A.indeterminate=L.getIsSomeRowsSelected()&&!L.getIsAllRowsSelected())},onChange:L.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:L})=>u.jsx("input",{type:"checkbox",checked:L.getIsSelected(),onChange:L.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${L.original.role_id}`,onClick:A=>A.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:L})=>u.jsx("img",{src:Yu(L.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:L})=>{const A=L.original;return p?.rowId===A.role_id&&p.col==="name"?u.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:x,onChange:I=>v(I.target.value),onBlur:()=>w(A.role_id),onKeyDown:I=>{I.key==="Enter"?w(A.role_id):I.key==="Escape"&&(g(null),v(""))},onClick:I=>I.stopPropagation()}):u.jsx("span",{className:"rt-cell-name",onDoubleClick:I=>{a||(I.stopPropagation(),v(A.name),g({rowId:A.role_id,col:"name"}))},title:"Double-click to edit",children:A.name})}},{id:"role_id",header:"ID",accessorKey:"role_id",cell:({row:L})=>u.jsx("code",{className:"rt-cell-id",children:L.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:L})=>{const A=L.original;return A.coveredByExternalTeam?u.jsx("span",{className:"rt-team-agent",title:A.externalTeamBoundary?"This role and its descendants execute as one opaque team.":`Covered by the team at ${A.externalTeamBoundaryRoleId??"the boundary role"}`,children:A.externalTeamBoundary?"JiuwenSwarm Team":`Covered by ${A.externalTeamBoundaryRoleId??"team"}`}):u.jsx("select",{className:"rt-cell-select",value:A.reports_to,onChange:O=>r(A.role_id,{reports_to:O.target.value}),disabled:a,onClick:O=>O.stopPropagation(),children:S.filter(O=>O.id!==A.role_id).map(O=>u.jsx("option",{value:O.id,children:O.name},O.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:L})=>u.jsx("span",{className:"rt-cell-count",children:L.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:L})=>{const A=L.original;return u.jsxs("select",{className:"rt-cell-select",value:A.agent??"",onChange:O=>r(A.role_id,{preferred_external_agent:O.target.value||null}),disabled:a,onClick:O=>O.stopPropagation(),children:[u.jsx("option",{value:"",children:"(auto)"}),XC.map(O=>u.jsx("option",{value:O,children:la(O)},O))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:L})=>u.jsx("span",{className:"rt-cell-count",children:L.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:L})=>u.jsx("button",{className:"rt-cell-action",onClick:A=>{A.stopPropagation(),!a&&confirm(`Delete role "${L.original.name}"?`)&&o(L.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[p,x,a,S,r,o]),j=Cq({data:b,columns:k,state:{sorting:c,rowSelection:m},onSortingChange:d,onRowSelectionChange:h,enableRowSelection:!0,getRowId:L=>L.role_id,getCoreRowModel:bq(),getSortedRowModel:_q()}),N=Object.values(m).filter(Boolean).length,z=Object.keys(m).filter(L=>m[L]),T=L=>{a||(z.forEach(A=>r(A,{preferred_external_agent:L})),h({}))},M=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(z.forEach(L=>o(L)),h({}))};return u.jsxs("div",{className:"rt-container",children:[N>0&&!a&&u.jsxs("div",{className:"rt-bulk-bar",children:[u.jsxs("span",{className:"rt-bulk-count",children:[N," selected"]}),u.jsxs("select",{className:"rt-bulk-select",defaultValue:"",onChange:L=>{const A=L.target.value;A&&T(A==="__auto__"?null:A)},children:[u.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),u.jsx("option",{value:"__auto__",children:"(auto)"}),XC.map(L=>u.jsx("option",{value:L,children:la(L)},L))]}),u.jsx("button",{className:"btn btn-danger btn-sm",onClick:M,children:"Delete selected"}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>h({}),children:"Clear"})]}),u.jsx("div",{className:"rt-table-wrap",children:u.jsxs("table",{className:"rt-table",children:[u.jsx("thead",{children:j.getHeaderGroups().map(L=>u.jsx("tr",{children:L.headers.map(A=>u.jsxs("th",{style:{width:A.getSize()},className:A.column.getCanSort()?"rt-th-sortable":"",onClick:A.column.getToggleSortingHandler(),children:[YC(A.column.columnDef.header,A.getContext()),A.column.getIsSorted()==="asc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▲"}),A.column.getIsSorted()==="desc"&&u.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},A.id))},L.id))}),u.jsxs("tbody",{children:[j.getRowModel().rows.length===0&&u.jsx("tr",{children:u.jsx("td",{colSpan:9,className:"rt-empty",children:'No roles. Add one via the "+ Add role" button.'})}),j.getRowModel().rows.map(L=>{const A=n.includes(L.original.role_id);return u.jsx("tr",{className:`rt-row${L.getIsSelected()?" rt-row-checked":""}${A?" rt-row-active":""}`,onClick:()=>i(L.original.role_id),children:L.getVisibleCells().map(O=>u.jsx("td",{style:{width:O.column.getSize()},children:YC(O.column.columnDef.cell,O.getContext())},O.id))},L.id)})]})]})})]})}function pi(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,i;n{}};function rp(){for(var e=0,t=arguments.length,n={},i;e=0&&(i=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Vf.prototype=rp.prototype={constructor:Vf,on:function(e,t){var n=this._,i=Nq(e+"",n),r,o=-1,a=i.length;if(arguments.length<2){for(;++o0)for(var n=new Array(r),i=0,r,o;i=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),ZC.hasOwnProperty(t)?{space:ZC[t],local:e}:e}function Tq(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Rv&&t.documentElement.namespaceURI===Rv?t.createElement(e):t.createElementNS(n,e)}}function Rq(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ST(e){var t=sp(e);return(t.local?Rq:Tq)(t)}function Aq(){}function G0(e){return e==null?Aq:function(){return this.querySelector(e)}}function Mq(e){typeof e!="function"&&(e=G0(e));for(var t=this._groups,n=t.length,i=new Array(n),r=0;r=j&&(j=k+1);!(z=S[j])&&++j=0;)(a=i[r])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function rG(e){e||(e=sG);function t(p,g){return p&&g?e(p.__data__,g.__data__):!p-!g}for(var n=this._groups,i=n.length,r=new Array(i),o=0;ot?1:e>=t?0:NaN}function oG(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function aG(){return Array.from(this)}function lG(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?vG:typeof t=="function"?_G:bG)(e,t,n??"")):Al(this.node(),e)}function Al(e,t){return e.style.getPropertyValue(t)||NT(e).getComputedStyle(e,null).getPropertyValue(t)}function SG(e){return function(){delete this[e]}}function wG(e,t){return function(){this[e]=t}}function CG(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function jG(e,t){return arguments.length>1?this.each((t==null?SG:typeof t=="function"?CG:wG)(e,t)):this.node()[e]}function IT(e){return e.trim().split(/^|\s+/)}function W0(e){return e.classList||new TT(e)}function TT(e){this._node=e,this._names=IT(e.getAttribute("class")||"")}TT.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 RT(e,t){for(var n=W0(e),i=-1,r=t.length;++i=0&&(n=t.slice(i+1),t=t.slice(0,i)),{type:t,name:n}})}function eW(e){return function(){var t=this.__on;if(t){for(var n=0,i=-1,r=t.length,o;n()=>e;function Av(e,{sourceEvent:t,subject:n,target:i,identifier:r,active:o,x:a,y:c,dx:d,dy:m,dispatch:h}){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:i,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:m,enumerable:!0,configurable:!0},_:{value:h}})}Av.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function uW(e){return!e.ctrlKey&&!e.button}function dW(){return this.parentNode}function fW(e,t){return t??{x:e.x,y:e.y}}function mW(){return navigator.maxTouchPoints||"ontouchstart"in this}function zT(){var e=uW,t=dW,n=fW,i=mW,r={},o=rp("start","drag","end"),a=0,c,d,m,h,p=0;function g(N){N.on("mousedown.drag",x).filter(i).on("touchstart.drag",S).on("touchmove.drag",w,cW).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(N,z){if(!(h||!e.call(this,N,z))){var T=j(this,t.call(this,N,z),N,z,"mouse");T&&(fr(N.view).on("mousemove.drag",v,Du).on("mouseup.drag",b,Du),OT(N.view),zy(N),m=!1,c=N.clientX,d=N.clientY,T("start",N))}}function v(N){if(xl(N),!m){var z=N.clientX-c,T=N.clientY-d;m=z*z+T*T>p}r.mouse("drag",N)}function b(N){fr(N.view).on("mousemove.drag mouseup.drag",null),LT(N.view,m),xl(N),r.mouse("end",N)}function S(N,z){if(e.call(this,N,z)){var T=N.changedTouches,M=t.call(this,N,z),L=T.length,A,O;for(A=0;A>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?jf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?jf(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=hW.exec(e))?new Ji(t[1],t[2],t[3],1):(t=gW.exec(e))?new Ji(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yW.exec(e))?jf(t[1],t[2],t[3],t[4]):(t=xW.exec(e))?jf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=vW.exec(e))?rj(t[1],t[2]/100,t[3]/100,1):(t=bW.exec(e))?rj(t[1],t[2]/100,t[3]/100,t[4]):QC.hasOwnProperty(e)?tj(QC[e]):e==="transparent"?new Ji(NaN,NaN,NaN,0):null}function tj(e){return new Ji(e>>16&255,e>>8&255,e&255,1)}function jf(e,t,n,i){return i<=0&&(e=t=n=NaN),new Ji(e,t,n,i)}function SW(e){return e instanceof Ku||(e=ua(e)),e?(e=e.rgb(),new Ji(e.r,e.g,e.b,e.opacity)):new Ji}function Mv(e,t,n,i){return arguments.length===1?SW(e):new Ji(e,t,n,i??1)}function Ji(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}Y0(Ji,Mv,PT(Ku,{brighter(e){return e=e==null?_m:Math.pow(_m,e),new Ji(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ou:Math.pow(Ou,e),new Ji(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ji(sa(this.r),sa(this.g),sa(this.b),km(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:nj,formatHex:nj,formatHex8:wW,formatRgb:ij,toString:ij}));function nj(){return`#${ra(this.r)}${ra(this.g)}${ra(this.b)}`}function wW(){return`#${ra(this.r)}${ra(this.g)}${ra(this.b)}${ra((isNaN(this.opacity)?1:this.opacity)*255)}`}function ij(){const e=km(this.opacity);return`${e===1?"rgb(":"rgba("}${sa(this.r)}, ${sa(this.g)}, ${sa(this.b)}${e===1?")":`, ${e})`}`}function km(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ra(e){return e=sa(e),(e<16?"0":"")+e.toString(16)}function rj(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $r(e,t,n,i)}function BT(e){if(e instanceof $r)return new $r(e.h,e.s,e.l,e.opacity);if(e instanceof Ku||(e=ua(e)),!e)return new $r;if(e instanceof $r)return e;e=e.rgb();var t=e.r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,c=o-r,d=(o+r)/2;return c?(t===o?a=(n-i)/c+(n0&&d<1?0:a,new $r(a,c,d,e.opacity)}function CW(e,t,n,i){return arguments.length===1?BT(e):new $r(e,t,n,i??1)}function $r(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}Y0($r,CW,PT(Ku,{brighter(e){return e=e==null?_m:Math.pow(_m,e),new $r(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ou:Math.pow(Ou,e),new $r(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,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new Ji(Py(e>=240?e-240:e+120,r,i),Py(e,r,i),Py(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new $r(sj(this.h),Ef(this.s),Ef(this.l),km(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=km(this.opacity);return`${e===1?"hsl(":"hsla("}${sj(this.h)}, ${Ef(this.s)*100}%, ${Ef(this.l)*100}%${e===1?")":`, ${e})`}`}}));function sj(e){return e=(e||0)%360,e<0?e+360:e}function Ef(e){return Math.max(0,Math.min(1,e||0))}function Py(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 X0=e=>()=>e;function jW(e,t){return function(n){return e+n*t}}function EW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}function NW(e){return(e=+e)==1?$T:function(t,n){return n-t?EW(t,n,e):X0(isNaN(t)?n:t)}}function $T(e,t){var n=t-e;return n?jW(e,n):X0(isNaN(e)?t:e)}const Sm=(function e(t){var n=NW(t);function i(r,o){var a=n((r=Mv(r)).r,(o=Mv(o)).r),c=n(r.g,o.g),d=n(r.b,o.b),m=$T(r.opacity,o.opacity);return function(h){return r.r=a(h),r.g=c(h),r.b=d(h),r.opacity=m(h),r+""}}return i.gamma=e,i})(1);function IW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,i=t.slice(),r;return function(o){for(r=0;rn&&(o=t.slice(n,o),c[a]?c[a]+=o:c[++a]=o),(i=i[0])===(r=r[0])?c[a]?c[a]+=r:c[++a]=r:(c[++a]=null,d.push({i:a,x:rs(i,r)})),n=By.lastIndex;return n180?h+=360:h-m>180&&(m+=360),g.push({i:p.push(r(p)+"rotate(",null,i)-2,x:rs(m,h)})):h&&p.push(r(p)+"rotate("+h+i)}function c(m,h,p,g){m!==h?g.push({i:p.push(r(p)+"skewX(",null,i)-2,x:rs(m,h)}):h&&p.push(r(p)+"skewX("+h+i)}function d(m,h,p,g,x,v){if(m!==p||h!==g){var b=x.push(r(x)+"scale(",null,",",null,")");v.push({i:b-4,x:rs(m,p)},{i:b-2,x:rs(h,g)})}else(p!==1||g!==1)&&x.push(r(x)+"scale("+p+","+g+")")}return function(m,h){var p=[],g=[];return m=e(m),h=e(h),o(m.translateX,m.translateY,h.translateX,h.translateY,p,g),a(m.rotate,h.rotate,p,g),c(m.skewX,h.skewX,p,g),d(m.scaleX,m.scaleY,h.scaleX,h.scaleY,p,g),m=h=null,function(x){for(var v=-1,b=g.length,S;++v=0&&e._call.call(void 0,t),e=e._next;--Ml}function lj(){da=(Cm=zu.now())+op,Ml=ou=0;try{UW()}finally{Ml=0,GW(),da=0}}function qW(){var e=zu.now(),t=e-Cm;t>UT&&(op-=t,Cm=e)}function GW(){for(var e,t=wm,n,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:wm=n);au=e,Lv(i)}function Lv(e){if(!Ml){ou&&(ou=clearTimeout(ou));var t=e-da;t>24?(e<1/0&&(ou=setTimeout(lj,e-zu.now()-op)),tu&&(tu=clearInterval(tu))):(tu||(Cm=zu.now(),tu=setInterval(qW,UT)),Ml=1,qT(lj))}}function cj(e,t,n){var i=new jm;return t=t==null?0:+t,i.restart(r=>{i.stop(),e(r+t)},t,n),i}var WW=rp("start","end","cancel","interrupt"),YW=[],WT=0,uj=1,zv=2,qf=3,dj=4,Pv=5,Gf=6;function ap(e,t,n,i,r,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;XW(e,n,{name:t,index:i,group:r,on:WW,tween:YW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:WT})}function Z0(e,t){var n=Yr(e,t);if(n.state>WT)throw new Error("too late; already scheduled");return n}function fs(e,t){var n=Yr(e,t);if(n.state>qf)throw new Error("too late; already running");return n}function Yr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function XW(e,t,n){var i=e.__transition,r;i[t]=n,n.timer=GT(o,0,n.time);function o(m){n.state=uj,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var h,p,g,x;if(n.state!==uj)return d();for(h in i)if(x=i[h],x.name===n.name){if(x.state===qf)return cj(a);x.state===dj?(x.state=Gf,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete i[h]):+hzv&&i.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function CY(e,t,n){var i,r,o=wY(t)?Z0:fs;return function(){var a=o(this,e),c=a.on;c!==i&&(r=(i=c).copy()).on(t,n),a.on=r}}function jY(e,t){var n=this._id;return arguments.length<2?Yr(this.node(),n).on.on(e):this.each(CY(n,e,t))}function EY(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function NY(){return this.on("end.remove",EY(this._id))}function IY(e){var t=this._name,n=this._id;typeof e!="function"&&(e=G0(e));for(var i=this._groups,r=i.length,o=new Array(r),a=0;a()=>e;function eX(e,{sourceEvent:t,target:n,transform:i,dispatch:r}){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:i,enumerable:!0,configurable:!0},_:{value:r}})}function Ls(e,t,n){this.k=e,this.x=t,this.y=n}Ls.prototype={constructor:Ls,scale:function(e){return e===1?this:new Ls(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ls(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 lp=new Ls(1,0,0);ZT.prototype=Ls.prototype;function ZT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return lp;return e.__zoom}function $y(e){e.stopImmediatePropagation()}function nu(e){e.preventDefault(),e.stopImmediatePropagation()}function tX(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function nX(){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 fj(){return this.__zoom||lp}function iX(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function rX(){return navigator.maxTouchPoints||"ontouchstart"in this}function sX(e,t,n){var i=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>i?(i+r)/2:Math.min(0,i)||Math.max(0,r),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function QT(){var e=tX,t=nX,n=sX,i=iX,r=rX,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],c=250,d=Uf,m=rp("start","zoom","end"),h,p,g,x=500,v=150,b=0,S=10;function w(P){P.property("__zoom",fj).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",A).on("dblclick.zoom",O).filter(r).on("touchstart.zoom",I).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(P,F,V,Y){var U=P.selection?P.selection():P;U.property("__zoom",fj),P!==U?z(P,F,V,Y):U.interrupt().each(function(){T(this,arguments).event(Y).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},w.scaleBy=function(P,F,V,Y){w.scaleTo(P,function(){var U=this.__zoom.k,Z=typeof F=="function"?F.apply(this,arguments):F;return U*Z},V,Y)},w.scaleTo=function(P,F,V,Y){w.transform(P,function(){var U=t.apply(this,arguments),Z=this.__zoom,W=V==null?N(U):typeof V=="function"?V.apply(this,arguments):V,q=Z.invert(W),Q=typeof F=="function"?F.apply(this,arguments):F;return n(j(k(Z,Q),W,q),U,a)},V,Y)},w.translateBy=function(P,F,V,Y){w.transform(P,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),a)},null,Y)},w.translateTo=function(P,F,V,Y,U){w.transform(P,function(){var Z=t.apply(this,arguments),W=this.__zoom,q=Y==null?N(Z):typeof Y=="function"?Y.apply(this,arguments):Y;return n(lp.translate(q[0],q[1]).scale(W.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof V=="function"?-V.apply(this,arguments):-V),Z,a)},Y,U)};function k(P,F){return F=Math.max(o[0],Math.min(o[1],F)),F===P.k?P:new Ls(F,P.x,P.y)}function j(P,F,V){var Y=F[0]-V[0]*P.k,U=F[1]-V[1]*P.k;return Y===P.x&&U===P.y?P:new Ls(P.k,Y,U)}function N(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function z(P,F,V,Y){P.on("start.zoom",function(){T(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){T(this,arguments).event(Y).end()}).tween("zoom",function(){var U=this,Z=arguments,W=T(U,Z).event(Y),q=t.apply(U,Z),Q=V==null?N(q):typeof V=="function"?V.apply(U,Z):V,D=Math.max(q[1][0]-q[0][0],q[1][1]-q[0][1]),K=U.__zoom,ne=typeof F=="function"?F.apply(U,Z):F,ee=d(K.invert(Q).concat(D/K.k),ne.invert(Q).concat(D/ne.k));return function(te){if(te===1)te=ne;else{var oe=ee(te),le=D/oe[2];te=new Ls(le,Q[0]-oe[0]*le,Q[1]-oe[1]*le)}W.zoom(null,te)}})}function T(P,F,V){return!V&&P.__zooming||new M(P,F)}function M(P,F){this.that=P,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(P,F),this.taps=0}M.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,F){return this.mouse&&P!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&P!=="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(P){var F=fr(this.that).datum();m.call(P,this.that,new eX(P,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:m}),F)}};function L(P,...F){if(!e.apply(this,arguments))return;var V=T(this,F).event(P),Y=this.__zoom,U=Math.max(o[0],Math.min(o[1],Y.k*Math.pow(2,i.apply(this,arguments)))),Z=Pr(P);if(V.wheel)(V.mouse[0][0]!==Z[0]||V.mouse[0][1]!==Z[1])&&(V.mouse[1]=Y.invert(V.mouse[0]=Z)),clearTimeout(V.wheel);else{if(Y.k===U)return;V.mouse=[Z,Y.invert(Z)],Wf(this),V.start()}nu(P),V.wheel=setTimeout(W,v),V.zoom("mouse",n(j(k(Y,U),V.mouse[0],V.mouse[1]),V.extent,a));function W(){V.wheel=null,V.end()}}function A(P,...F){if(g||!e.apply(this,arguments))return;var V=P.currentTarget,Y=T(this,F,!0).event(P),U=fr(P.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",D,!0),Z=Pr(P,V),W=P.clientX,q=P.clientY;OT(P.view),$y(P),Y.mouse=[Z,this.__zoom.invert(Z)],Wf(this),Y.start();function Q(K){if(nu(K),!Y.moved){var ne=K.clientX-W,ee=K.clientY-q;Y.moved=ne*ne+ee*ee>b}Y.event(K).zoom("mouse",n(j(Y.that.__zoom,Y.mouse[0]=Pr(K,V),Y.mouse[1]),Y.extent,a))}function D(K){U.on("mousemove.zoom mouseup.zoom",null),LT(K.view,Y.moved),nu(K),Y.event(K).end()}}function O(P,...F){if(e.apply(this,arguments)){var V=this.__zoom,Y=Pr(P.changedTouches?P.changedTouches[0]:P,this),U=V.invert(Y),Z=V.k*(P.shiftKey?.5:2),W=n(j(k(V,Z),Y,U),t.apply(this,F),a);nu(P),c>0?fr(this).transition().duration(c).call(z,W,Y,P):fr(this).call(w.transform,W,Y,P)}}function I(P,...F){if(e.apply(this,arguments)){var V=P.touches,Y=V.length,U=T(this,F,P.changedTouches.length===Y).event(P),Z,W,q,Q;for($y(P),W=0;W"[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:i})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:i}", 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."},Pu=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],JT=["Enter"," ","Escape"],eR={"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 Dl;(function(e){e.Strict="strict",e.Loose="loose"})(Dl||(Dl={}));var oa;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(oa||(oa={}));var Bu;(function(e){e.Partial="partial",e.Full="full"})(Bu||(Bu={}));const tR={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var bo;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(bo||(bo={}));var Em;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Em||(Em={}));var at;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(at||(at={}));const mj={[at.Left]:at.Right,[at.Right]:at.Left,[at.Top]:at.Bottom,[at.Bottom]:at.Top};function nR(e){return e===null?null:e?"valid":"invalid"}const iR=e=>"id"in e&&"source"in e&&"target"in e,oX=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),J0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Zu=(e,t=[0,0])=>{const{width:n,height:i}=$s(e),r=e.origin??t,o=n*r[0],a=i*r[1];return{x:e.position.x-o,y:e.position.y-a}},aX=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((i,r)=>{const o=typeof r=="string";let a=!t.nodeLookup&&!o?r:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(r):J0(r)?r:t.nodeLookup.get(r.id));const c=a?Nm(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return cp(i,c)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return up(n)},Qu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},i=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=cp(n,Nm(r)),i=!0)}),i?up(n):{x:0,y:0,width:0,height:0}},eb=(e,t,[n,i,r]=[0,0,1],o=!1,a=!1)=>{const c={...ed(t,[n,i,r]),width:t.width/r,height:t.height/r},d=[];for(const m of e.values()){const{measured:h,selectable:p=!0,hidden:g=!1}=m;if(a&&!p||g)continue;const x=h.width??m.width??m.initialWidth??null,v=h.height??m.height??m.initialHeight??null,b=$u(c,Ll(m)),S=(x??0)*(v??0),w=o&&b>0;(!m.internals.handleBounds||w||b>=S||m.dragging)&&d.push(m)}return d},lX=(e,t)=>{const n=new Set;return e.forEach(i=>{n.add(i.id)}),t.filter(i=>n.has(i.source)||n.has(i.target))};function cX(e,t){const n=new Map,i=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!i||i.has(r.id))&&n.set(r.id,r)}),n}async function uX({nodes:e,width:t,height:n,panZoom:i,minZoom:r,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const c=cX(e,a),d=Qu(c),m=tb(d,t,n,a?.minZoom??r,a?.maxZoom??o,a?.padding??.1);return await i.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function rR({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:i=[0,0],nodeExtent:r,onError:o}){const a=n.get(e),c=a.parentId?n.get(a.parentId):void 0,{x:d,y:m}=c?c.internals.positionAbsolute:{x:0,y:0},h=a.origin??i;let p=a.extent||r;if(a.extent==="parent"&&!a.expandParent)if(!c)o?.("005",us.error005());else{const x=c.measured.width,v=c.measured.height;x&&v&&(p=[[d,m],[d+x,m+v]])}else c&&zl(a.extent)&&(p=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=zl(p)?fa(t,p,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",us.error015()),{position:{x:g.x-d+(a.measured.width??0)*h[0],y:g.y-m+(a.measured.height??0)*h[1]},positionAbsolute:g}}async function dX({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:i,onBeforeDelete:r}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const x=o.has(g.id),v=!x&&g.parentId&&a.find(b=>b.id===g.parentId);(x||v)&&a.push(g)}const c=new Set(t.map(g=>g.id)),d=i.filter(g=>g.deletable!==!1),h=lX(a,d);for(const g of d)c.has(g.id)&&!h.find(v=>v.id===g.id)&&h.push(g);if(!r)return{edges:h,nodes:a};const p=await r({nodes:a,edges:h});return typeof p=="boolean"?p?{edges:h,nodes:a}:{edges:[],nodes:[]}:p}const Ol=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),fa=(e={x:0,y:0},t,n)=>({x:Ol(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Ol(e.y,t[0][1],t[1][1]-(n?.height??0))});function sR(e,t,n){const{width:i,height:r}=$s(n),{x:o,y:a}=n.internals.positionAbsolute;return fa(e,[[o,a],[o+i,a+r]],t)}const pj=(e,t,n)=>en?-Ol(Math.abs(e-n),1,t)/t:0,oR=(e,t,n=15,i=40)=>{const r=pj(e.x,i,t.width-i)*n,o=pj(e.y,i,t.height-i)*n;return[r,o]},cp=(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)}),Bv=({x:e,y:t,width:n,height:i})=>({x:e,y:t,x2:e+n,y2:t+i}),up=({x:e,y:t,x2:n,y2:i})=>({x:e,y:t,width:n-e,height:i-t}),Ll=(e,t=[0,0])=>{const{x:n,y:i}=J0(e)?e.internals.positionAbsolute:Zu(e,t);return{x:n,y:i,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Nm=(e,t=[0,0])=>{const{x:n,y:i}=J0(e)?e.internals.positionAbsolute:Zu(e,t);return{x:n,y:i,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:i+(e.measured?.height??e.height??e.initialHeight??0)}},aR=(e,t)=>up(cp(Bv(e),Bv(t))),$u=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),i=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*i)},hj=e=>Fr(e.width)&&Fr(e.height)&&Fr(e.x)&&Fr(e.y),Fr=e=>!isNaN(e)&&isFinite(e),fX=(e,t)=>{},Ju=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ed=({x:e,y:t},[n,i,r],o=!1,a=[1,1])=>{const c={x:(e-n)/r,y:(t-i)/r};return o?Ju(c,a):c},Im=({x:e,y:t},[n,i,r])=>({x:e*r+n,y:t*r+i});function il(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 mX(e,t,n){if(typeof e=="string"||typeof e=="number"){const i=il(e,n),r=il(e,t);return{top:i,right:r,bottom:i,left:r,x:r*2,y:i*2}}if(typeof e=="object"){const i=il(e.top??e.y??0,n),r=il(e.bottom??e.y??0,n),o=il(e.left??e.x??0,t),a=il(e.right??e.x??0,t);return{top:i,right:a,bottom:r,left:o,x:o+a,y:i+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function pX(e,t,n,i,r,o){const{x:a,y:c}=Im(e,[t,n,i]),{x:d,y:m}=Im({x:e.x+e.width,y:e.y+e.height},[t,n,i]),h=r-d,p=o-m;return{left:Math.floor(a),top:Math.floor(c),right:Math.floor(h),bottom:Math.floor(p)}}const tb=(e,t,n,i,r,o)=>{const a=mX(o,t,n),c=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(c,d),h=Ol(m,i,r),p=e.x+e.width/2,g=e.y+e.height/2,x=t/2-p*h,v=n/2-g*h,b=pX(e,x,v,h,t,n),S={left:Math.min(b.left-a.left,0),top:Math.min(b.top-a.top,0),right:Math.min(b.right-a.right,0),bottom:Math.min(b.bottom-a.bottom,0)};return{x:x-S.left+S.right,y:v-S.top+S.bottom,zoom:h}},Hu=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function zl(e){return e!=null&&e!=="parent"}function $s(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function lR(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function cR(e,t={width:0,height:0},n,i,r){const o={...e},a=i.get(n);if(a){const c=a.origin||r;o.x+=a.internals.positionAbsolute.x-(t.width??0)*c[0],o.y+=a.internals.positionAbsolute.y-(t.height??0)*c[1]}return o}function gj(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function hX(){let e,t;return{promise:new Promise((i,r)=>{e=i,t=r}),resolve:e,reject:t}}function gX(e){return{...eR,...e||{}}}function bu(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:i,containerBounds:r}){const{x:o,y:a}=Vr(e),c=ed({x:o-(r?.left??0),y:a-(r?.top??0)},i),{x:d,y:m}=n?Ju(c,t):c;return{xSnapped:d,ySnapped:m,...c}}const nb=e=>({width:e.offsetWidth,height:e.offsetHeight}),uR=e=>e?.getRootNode?.()||window?.document,yX=["INPUT","SELECT","TEXTAREA"];function dR(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:yX.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const fR=e=>"clientX"in e,Vr=(e,t)=>{const n=fR(e),i=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:i-(t?.left??0),y:r-(t?.top??0)}},yj=(e,t,n,i,r)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(a=>{const c=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:r,position:a.getAttribute("data-handlepos"),x:(c.left-n.left)/i,y:(c.top-n.top)/i,...nb(a)}})};function mR({sourceX:e,sourceY:t,targetX:n,targetY:i,sourceControlX:r,sourceControlY:o,targetControlX:a,targetControlY:c}){const d=e*.125+r*.375+a*.375+n*.125,m=t*.125+o*.375+c*.375+i*.125,h=Math.abs(d-e),p=Math.abs(m-t);return[d,m,h,p]}function Tf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function xj({pos:e,x1:t,y1:n,x2:i,y2:r,c:o}){switch(e){case at.Left:return[t-Tf(t-i,o),n];case at.Right:return[t+Tf(i-t,o),n];case at.Top:return[t,n-Tf(n-r,o)];case at.Bottom:return[t,n+Tf(r-n,o)]}}function pR({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:i,targetY:r,targetPosition:o=at.Top,curvature:a=.25}){const[c,d]=xj({pos:n,x1:e,y1:t,x2:i,y2:r,c:a}),[m,h]=xj({pos:o,x1:i,y1:r,x2:e,y2:t,c:a}),[p,g,x,v]=mR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:c,sourceControlY:d,targetControlX:m,targetControlY:h});return[`M${e},${t} C${c},${d} ${m},${h} ${i},${r}`,p,g,x,v]}function hR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const r=Math.abs(n-e)/2,o=n0}const bX=({source:e,sourceHandle:t,target:n,targetHandle:i})=>`xy-edge__${e}${t||""}-${n}${i||""}`,_X=(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)),kX=(e,t,n={})=>{if(!e.source||!e.target)return t;const i=n.getEdgeId||bX;let r;return iR(e)?r={...e}:r={...e,id:i(e)},_X(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function gR({sourceX:e,sourceY:t,targetX:n,targetY:i}){const[r,o,a,c]=hR({sourceX:e,sourceY:t,targetX:n,targetY:i});return[`M ${e},${t}L ${n},${i}`,r,o,a,c]}const vj={[at.Left]:{x:-1,y:0},[at.Right]:{x:1,y:0},[at.Top]:{x:0,y:-1},[at.Bottom]:{x:0,y:1}},SX=({source:e,sourcePosition:t=at.Bottom,target:n})=>t===at.Left||t===at.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function wX({source:e,sourcePosition:t=at.Bottom,target:n,targetPosition:i=at.Top,center:r,offset:o,stepPosition:a}){const c=vj[t],d=vj[i],m={x:e.x+c.x*o,y:e.y+c.y*o},h={x:n.x+d.x*o,y:n.y+d.y*o},p=SX({source:m,sourcePosition:t,target:h}),g=p.x!==0?"x":"y",x=p[g];let v=[],b,S;const w={x:0,y:0},k={x:0,y:0},[,,j,N]=hR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(c[g]*d[g]===-1){g==="x"?(b=r.x??m.x+(h.x-m.x)*a,S=r.y??(m.y+h.y)/2):(b=r.x??(m.x+h.x)/2,S=r.y??m.y+(h.y-m.y)*a);const L=[{x:b,y:m.y},{x:b,y:h.y}],A=[{x:m.x,y:S},{x:h.x,y:S}];c[g]===x?v=g==="x"?L:A:v=g==="x"?A:L}else{const L=[{x:m.x,y:h.y}],A=[{x:h.x,y:m.y}];if(g==="x"?v=c.x===x?A:L:v=c.y===x?L:A,t===i){const P=Math.abs(e[g]-n[g]);if(P<=o){const F=Math.min(o-1,o-P);c[g]===x?w[g]=(m[g]>e[g]?-1:1)*F:k[g]=(h[g]>n[g]?-1:1)*F}}if(t!==i){const P=g==="x"?"y":"x",F=c[g]===d[P],V=m[P]>h[P],Y=m[P]=G?(b=(O.x+I.x)/2,S=v[0].y):(b=v[0].x,S=(O.y+I.y)/2)}const z={x:m.x+w.x,y:m.y+w.y},T={x:h.x+k.x,y:h.y+k.y};return[[e,...z.x!==v[0].x||z.y!==v[0].y?[z]:[],...v,...T.x!==v[v.length-1].x||T.y!==v[v.length-1].y?[T]:[],n],b,S,j,N]}function CX(e,t,n,i){const r=Math.min(bj(e,t)/2,bj(t,n)/2,i),{x:o,y:a}=t;if(e.x===o&&o===n.x||e.y===a&&a===n.y)return`L${o} ${a}`;if(e.y===a){const m=e.xn.id===t):e[0])||null}function Hv(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`:""}function EX(e,{id:t,defaultColor:n,defaultMarkerStart:i,defaultMarkerEnd:r}){const o=new Set;return e.reduce((a,c)=>([c.markerStart||i,c.markerEnd||r].forEach(d=>{if(d&&typeof d=="object"){const m=Hv(d,t);o.has(m)||(a.push({id:m,color:d.color||n,...d}),o.add(m))}}),a),[]).sort((a,c)=>a.id.localeCompare(c.id))}const yR=1e3,NX=10,ib={nodeOrigin:[0,0],nodeExtent:Pu,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},IX={...ib,checkEquality:!0};function rb(e,t){const n={...e};for(const i in t)t[i]!==void 0&&(n[i]=t[i]);return n}function TX(e,t,n){const i=rb(ib,n);for(const r of e.values())if(r.parentId)ob(r,e,t,i);else{const o=Zu(r,i.nodeOrigin),a=zl(r.extent)?r.extent:i.nodeExtent,c=fa(o,a,$s(r));r.internals.positionAbsolute=c}}function RX(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],i=[];for(const r of e.handles){const o={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(o):r.type==="target"&&i.push(o)}return{source:n,target:i}}function sb(e){return e==="manual"}function Fv(e,t,n,i={}){const r=rb(IX,i),o={i:0},a=new Map(t),c=r?.elevateNodesOnSelect&&!sb(r.zIndexMode)?yR:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const h of e){let p=a.get(h.id);if(r.checkEquality&&h===p?.internals.userNode)t.set(h.id,p);else{const g=Zu(h,r.nodeOrigin),x=zl(h.extent)?h.extent:r.nodeExtent,v=fa(g,x,$s(h));p={...r.defaults,...h,measured:{width:h.measured?.width,height:h.measured?.height},internals:{positionAbsolute:v,handleBounds:RX(h,p),z:xR(h,c,r.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(d=!1),h.parentId&&ob(p,t,n,i,o),m||=h.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function AX(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 ob(e,t,n,i,r){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:c,zIndexMode:d}=rb(ib,i),m=e.parentId,h=t.get(m);if(!h){console.warn(`Parent node ${m} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}AX(e,n),r&&!h.parentId&&h.internals.rootParentIndex===void 0&&d==="auto"&&(h.internals.rootParentIndex=++r.i,h.internals.z=h.internals.z+r.i*NX),r&&h.internals.rootParentIndex!==void 0&&(r.i=h.internals.rootParentIndex);const p=o&&!sb(d)?yR:0,{x:g,y:x,z:v}=MX(e,h,a,c,p,d),{positionAbsolute:b}=e.internals,S=g!==b.x||x!==b.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:g,y:x}:b,z:v}})}function xR(e,t,n){const i=Fr(e.zIndex)?e.zIndex:0;return sb(n)?i:i+(e.selected?t:0)}function MX(e,t,n,i,r,o){const{x:a,y:c}=t.internals.positionAbsolute,d=$s(e),m=Zu(e,n),h=zl(e.extent)?fa(m,e.extent,d):m;let p=fa({x:a+h.x,y:c+h.y},i,d);e.extent==="parent"&&(p=sR(p,d,t));const g=xR(e,r,o),x=t.internals.z??0;return{x:p.x,y:p.y,z:x>=g?x+1:g}}function ab(e,t,n,i=[0,0]){const r=[],o=new Map;for(const a of e){const c=t.get(a.parentId);if(!c)continue;const d=o.get(a.parentId)?.expandedRect??Ll(c),m=aR(d,a.rect);o.set(a.parentId,{expandedRect:m,parent:c})}return o.size>0&&o.forEach(({expandedRect:a,parent:c},d)=>{const m=c.internals.positionAbsolute,h=$s(c),p=c.origin??i,g=a.x0||x>0||S||w)&&(r.push({id:d,type:"position",position:{x:c.position.x-g+S,y:c.position.y-x+w}}),n.get(d)?.forEach(k=>{e.some(j=>j.id===k.id)||r.push({id:k.id,type:"position",position:{x:k.position.x+g,y:k.position.y+x}})})),(h.width0){const x=ab(g,t,n,r);m.push(...x)}return{changes:m,updatedInternals:d}}async function OX({delta:e,panZoom:t,transform:n,translateExtent:i,width:r,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,o]],i),c=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(c)}function wj(e,t,n,i,r,o){let a=r;const c=i.get(a)||new Map;i.set(a,c.set(n,t)),a=`${r}-${e}`;const d=i.get(a)||new Map;if(i.set(a,d.set(n,t)),o){a=`${r}-${e}-${o}`;const m=i.get(a)||new Map;i.set(a,m.set(n,t))}}function vR(e,t,n){e.clear(),t.clear();for(const i of n){const{source:r,target:o,sourceHandle:a=null,targetHandle:c=null}=i,d={edgeId:i.id,source:r,target:o,sourceHandle:a,targetHandle:c},m=`${r}-${a}--${o}-${c}`,h=`${o}-${c}--${r}-${a}`;wj("source",d,h,e,r,a),wj("target",d,m,e,o,c),t.set(i.id,i)}}function bR(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:bR(n,t):!1}function Cj(e,t,n){let i=e;do{if(i?.matches?.(t))return!0;if(i===n)return!1;i=i?.parentElement}while(i);return!1}function LX(e,t,n,i){const r=new Map;for(const[o,a]of e)if((a.selected||a.id===i)&&(!a.parentId||!bR(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const c=e.get(o);c&&r.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 r}function Hy({nodeId:e,dragItems:t,nodeLookup:n,dragging:i=!0}){const r=[];for(const[a,c]of t){const d=n.get(a)?.internals.userNode;d&&r.push({...d,position:c.position,dragging:i})}if(!e)return[r[0],r];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:i}:r[0],r]}function zX({dragItems:e,snapGrid:t,x:n,y:i}){const r=e.values().next().value;if(!r)return null;const o={x:n-r.distance.x,y:i-r.distance.y},a=Ju(o,t);return{x:a.x-o.x,y:a.y-o.y}}function PX({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:i,onDragStop:r}){let o={x:null,y:null},a=0,c=new Map,d=!1,m={x:0,y:0},h=null,p=!1,g=null,x=!1,v=!1,b=null;function S({noDragClassName:k,handleSelector:j,domNode:N,isSelectable:z,nodeId:T,nodeClickDistance:M=0}){g=fr(N);function L({x:$,y:G}){const{nodeLookup:P,nodeExtent:F,snapGrid:V,snapToGrid:Y,nodeOrigin:U,onNodeDrag:Z,onSelectionDrag:W,onError:q,updateNodePositions:Q}=t();o={x:$,y:G};let D=!1;const K=c.size>1,ne=K&&F?Bv(Qu(c)):null,ee=K&&Y?zX({dragItems:c,snapGrid:V,x:$,y:G}):null;for(const[te,oe]of c){if(!P.has(te))continue;let le={x:$-oe.distance.x,y:G-oe.distance.y};Y&&(le=ee?{x:Math.round(le.x+ee.x),y:Math.round(le.y+ee.y)}:Ju(le,V));let he=null;if(K&&F&&!oe.extent&&ne){const{positionAbsolute:je}=oe.internals,Ve=je.x-ne.x+F[0][0],Ye=je.x+oe.measured.width-ne.x2+F[1][0],$e=je.y-ne.y+F[0][1],ct=je.y+oe.measured.height-ne.y2+F[1][1];he=[[Ve,$e],[Ye,ct]]}const{position:Te,positionAbsolute:be}=rR({nodeId:te,nextPosition:le,nodeLookup:P,nodeExtent:he||F,nodeOrigin:U,onError:q});D=D||oe.position.x!==Te.x||oe.position.y!==Te.y,oe.position=Te,oe.internals.positionAbsolute=be}if(v=v||D,!!D&&(Q(c,!0),b&&(i||Z||!T&&W))){const[te,oe]=Hy({nodeId:T,dragItems:c,nodeLookup:P});i?.(b,c,te,oe),Z?.(b,te,oe),T||W?.(b,oe)}}async function A(){if(!h)return;const{transform:$,panBy:G,autoPanSpeed:P,autoPanOnNodeDrag:F}=t();if(!F){d=!1,cancelAnimationFrame(a);return}const[V,Y]=oR(m,h,P);(V!==0||Y!==0)&&(o.x=(o.x??0)-V/$[2],o.y=(o.y??0)-Y/$[2],await G({x:V,y:Y})&&L(o)),a=requestAnimationFrame(A)}function O($){const{nodeLookup:G,multiSelectionActive:P,nodesDraggable:F,transform:V,snapGrid:Y,snapToGrid:U,selectNodesOnDrag:Z,onNodeDragStart:W,onSelectionDragStart:q,unselectNodesAndEdges:Q}=t();p=!0,(!Z||!z)&&!P&&T&&(G.get(T)?.selected||Q()),z&&Z&&T&&e?.(T);const D=bu($.sourceEvent,{transform:V,snapGrid:Y,snapToGrid:U,containerBounds:h});if(o=D,c=LX(G,F,D,T),c.size>0&&(n||W||!T&&q)){const[K,ne]=Hy({nodeId:T,dragItems:c,nodeLookup:G});n?.($.sourceEvent,c,K,ne),W?.($.sourceEvent,K,ne),T||q?.($.sourceEvent,ne)}}const I=zT().clickDistance(M).on("start",$=>{const{domNode:G,nodeDragThreshold:P,transform:F,snapGrid:V,snapToGrid:Y}=t();h=G?.getBoundingClientRect()||null,x=!1,v=!1,b=$.sourceEvent,P===0&&O($),o=bu($.sourceEvent,{transform:F,snapGrid:V,snapToGrid:Y,containerBounds:h}),m=Vr($.sourceEvent,h)}).on("drag",$=>{const{autoPanOnNodeDrag:G,transform:P,snapGrid:F,snapToGrid:V,nodeDragThreshold:Y,nodeLookup:U}=t(),Z=bu($.sourceEvent,{transform:P,snapGrid:F,snapToGrid:V,containerBounds:h});if(b=$.sourceEvent,($.sourceEvent.type==="touchmove"&&$.sourceEvent.touches.length>1||T&&!U.has(T))&&(x=!0),!x){if(!d&&G&&p&&(d=!0,A()),!p){const W=Vr($.sourceEvent,h),q=W.x-m.x,Q=W.y-m.y;Math.sqrt(q*q+Q*Q)>Y&&O($)}(o.x!==Z.xSnapped||o.y!==Z.ySnapped)&&c&&p&&(m=Vr($.sourceEvent,h),L(Z))}}).on("end",$=>{if(!(!p||x)&&(d=!1,p=!1,cancelAnimationFrame(a),c.size>0)){const{nodeLookup:G,updateNodePositions:P,onNodeDragStop:F,onSelectionDragStop:V}=t();if(v&&(P(c,!1),v=!1),r||F||!T&&V){const[Y,U]=Hy({nodeId:T,dragItems:c,nodeLookup:G,dragging:!1});r?.($.sourceEvent,c,Y,U),F?.($.sourceEvent,Y,U),T||V?.($.sourceEvent,U)}}}).filter($=>{const G=$.target;return!$.button&&(!k||!Cj(G,`.${k}`,N))&&(!j||Cj(G,j,N))});g.call(I)}function w(){g?.on(".drag",null)}return{update:S,destroy:w}}function BX(e,t,n){const i=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())$u(r,Ll(o))>0&&i.push(o);return i}const $X=250;function HX(e,t,n,i){let r=[],o=1/0;const a=BX(e,n,t+$X);for(const c of a){const d=[...c.internals.handleBounds?.source??[],...c.internals.handleBounds?.target??[]];for(const m of d){if(i.nodeId===m.nodeId&&i.type===m.type&&i.id===m.id)continue;const{x:h,y:p}=ma(c,m,m.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=i.type==="source"?"target":"source";return r.find(d=>d.type===c)??r[0]}return r[0]}function _R(e,t,n,i,r,o=!1){const a=i.get(e);if(!a)return null;const c=r==="strict"?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],d=(n?c?.find(m=>m.id===n):c?.[0])??null;return d&&o?{...d,...ma(a,d,d.position,!0)}:d}function kR(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function FX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const SR=()=>!0;function VX(e,{connectionMode:t,connectionRadius:n,handleId:i,nodeId:r,edgeUpdaterType:o,isTarget:a,domNode:c,nodeLookup:d,lib:m,autoPanOnConnect:h,flowId:p,panBy:g,cancelConnection:x,onConnectStart:v,onConnect:b,onConnectEnd:S,isValidConnection:w=SR,onReconnectEnd:k,updateConnection:j,getTransform:N,getFromHandle:z,autoPanSpeed:T,dragThreshold:M=1,handleDomNode:L}){const A=uR(e.target);let O=0,I;const{x:$,y:G}=Vr(e),P=kR(o,L),F=c?.getBoundingClientRect();let V=!1;if(!F||!P)return;const Y=_R(r,P,i,d,t);if(!Y)return;let U=Vr(e,F),Z=!1,W=null,q=!1,Q=null;function D(){if(!h||!F)return;const[Te,be]=oR(U,F,T);g({x:Te,y:be}),O=requestAnimationFrame(D)}const K={...Y,nodeId:r,type:P,position:Y.position},ne=d.get(r);let te={inProgress:!0,isValid:null,from:ma(ne,K,at.Left,!0),fromHandle:K,fromPosition:K.position,fromNode:ne,to:U,toHandle:null,toPosition:mj[K.position],toNode:null,pointer:U};function oe(){V=!0,j(te),v?.(e,{nodeId:r,handleId:i,handleType:P})}M===0&&oe();function le(Te){if(!V){const{x:ct,y:It}=Vr(Te),yt=ct-$,Vt=It-G;if(!(yt*yt+Vt*Vt>M*M))return;oe()}if(!z()||!K){he(Te);return}const be=N();U=Vr(Te,F),I=HX(ed(U,be,!1,[1,1]),n,d,K),Z||(D(),Z=!0);const je=wR(Te,{handle:I,connectionMode:t,fromNodeId:r,fromHandleId:i,fromType:a?"target":"source",isValidConnection:w,doc:A,lib:m,flowId:p,nodeLookup:d});Q=je.handleDomNode,W=je.connection,q=FX(!!I,je.isValid);const Ve=d.get(r),Ye=Ve?ma(Ve,K,at.Left,!0):te.from,$e={...te,from:Ye,isValid:q,to:je.toHandle&&q?Im({x:je.toHandle.x,y:je.toHandle.y},be):U,toHandle:je.toHandle,toPosition:q&&je.toHandle?je.toHandle.position:mj[K.position],toNode:je.toHandle?d.get(je.toHandle.nodeId):null,pointer:U};j($e),te=$e}function he(Te){if(!("touches"in Te&&Te.touches.length>0)){if(V){(I||Q)&&W&&q&&b?.(W);const{inProgress:be,...je}=te,Ve={...je,toPosition:te.toHandle?te.toPosition:null};S?.(Te,Ve),o&&k?.(Te,Ve)}x(),cancelAnimationFrame(O),Z=!1,q=!1,W=null,Q=null,A.removeEventListener("mousemove",le),A.removeEventListener("mouseup",he),A.removeEventListener("touchmove",le),A.removeEventListener("touchend",he)}}A.addEventListener("mousemove",le),A.addEventListener("mouseup",he),A.addEventListener("touchmove",le),A.addEventListener("touchend",he)}function wR(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:o,doc:a,lib:c,flowId:d,isValidConnection:m=SR,nodeLookup:h}){const p=o==="target",g=t?a.querySelector(`.${c}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x,y:v}=Vr(e),b=a.elementFromPoint(x,v),S=b?.classList.contains(`${c}-flow__handle`)?b:g,w={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=kR(void 0,S),j=S.getAttribute("data-nodeid"),N=S.getAttribute("data-handleid"),z=S.classList.contains("connectable"),T=S.classList.contains("connectableend");if(!j||!k)return w;const M={source:p?j:i,sourceHandle:p?N:r,target:p?i:j,targetHandle:p?r:N};w.connection=M;const A=z&&T&&(n===Dl.Strict?p&&k==="source"||!p&&k==="target":j!==i||N!==r);w.isValid=A&&m(M),w.toHandle=_R(j,k,N,h,n,!0)}return w}const Vv={onPointerDown:VX,isValid:wR};function UX({domNode:e,panZoom:t,getTransform:n,getViewScale:i}){const r=fr(e);function o({translateExtent:c,width:d,height:m,zoomStep:h=1,pannable:p=!0,zoomable:g=!0,inversePan:x=!1}){const v=j=>{if(j.sourceEvent.type!=="wheel"||!t)return;const N=n(),z=j.sourceEvent.ctrlKey&&Hu()?10:1,T=-j.sourceEvent.deltaY*(j.sourceEvent.deltaMode===1?.05:j.sourceEvent.deltaMode?1:.002)*h,M=N[2]*Math.pow(2,T*z);t.scaleTo(M)};let b=[0,0];const S=j=>{(j.sourceEvent.type==="mousedown"||j.sourceEvent.type==="touchstart")&&(b=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY])},w=j=>{const N=n();if(j.sourceEvent.type!=="mousemove"&&j.sourceEvent.type!=="touchmove"||!t)return;const z=[j.sourceEvent.clientX??j.sourceEvent.touches[0].clientX,j.sourceEvent.clientY??j.sourceEvent.touches[0].clientY],T=[z[0]-b[0],z[1]-b[1]];b=z;const M=i()*Math.max(N[2],Math.log(N[2]))*(x?-1:1),L={x:N[0]-T[0]*M,y:N[1]-T[1]*M},A=[[0,0],[d,m]];t.setViewportConstrained({x:L.x,y:L.y,zoom:N[2]},A,c)},k=QT().on("start",S).on("zoom",p?w:null).on("zoom.wheel",g?v:null);r.call(k,{})}function a(){r.on("zoom",null)}return{update:o,destroy:a,pointer:Pr}}const dp=e=>({x:e.x,y:e.y,zoom:e.k}),Fy=({x:e,y:t,zoom:n})=>lp.translate(e,t).scale(n),ul=(e,t)=>e.target.closest(`.${t}`),CR=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),qX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Vy=(e,t=0,n=qX,i=()=>{})=>{const r=typeof t=="number"&&t>0;return r||i(),r?e.transition().duration(t).ease(n).on("end",i):e},jR=e=>{const t=e.ctrlKey&&Hu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function GX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:i,panOnScrollMode:r,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:c,onPanZoom:d,onPanZoomEnd:m}){return h=>{if(ul(h,t))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(h.ctrlKey&&a){const S=Pr(h),w=jR(h),k=p*Math.pow(2,w);i.scaleTo(n,k,S,h);return}const g=h.deltaMode===1?20:1;let x=r===oa.Vertical?0:h.deltaX*g,v=r===oa.Horizontal?0:h.deltaY*g;!Hu()&&h.shiftKey&&r!==oa.Vertical&&(x=h.deltaY*g,v=0),i.translateBy(n,-(x/p)*o,-(v/p)*o,{internal:!0});const b=dp(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(h,b),e.panScrollTimeout=setTimeout(()=>{m?.(h,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c?.(h,b))}}function WX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(i,r){const o=i.type==="wheel",a=!t&&o&&!i.ctrlKey,c=ul(i,e);if(i.ctrlKey&&o&&c&&i.preventDefault(),a||c)return null;i.preventDefault(),n.call(this,i,r)}}function YX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return i=>{if(i.sourceEvent?.internal)return;const r=dp(i.transform);e.mouseButton=i.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,i.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(i.sourceEvent,r)}}function XX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:i,onPanZoom:r}){return o=>{e.usedRightMouseButton=!!(n&&CR(t,e.mouseButton??0)),o.sourceEvent?.sync||i([o.transform.x,o.transform.y,o.transform.k]),r&&!o.sourceEvent?.internal&&r?.(o.sourceEvent,dp(o.transform))}}function KX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:i,onPanZoomEnd:r,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&CR(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,i(!1),r)){const c=dp(a.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,c)},n?150:0)}}}function ZX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:i,panOnScroll:r,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:c,noPanClassName:d,lib:m,connectionInProgress:h}){return p=>{const g=e||t,x=n&&p.ctrlKey,v=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(ul(p,`${m}-flow__node`)||ul(p,`${m}-flow__edge`)))return!0;if(!i&&!g&&!r&&!o&&!n||a||h&&!v||ul(p,c)&&v||ul(p,d)&&(!v||r&&v&&!e)||!n&&p.ctrlKey&&v)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!g&&!r&&!x&&v||!i&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(i)&&!i.includes(p.button)&&p.type==="mousedown")return!1;const b=Array.isArray(i)&&i.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||v)&&b}}function QX({domNode:e,minZoom:t,maxZoom:n,translateExtent:i,viewport:r,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:c,onDraggingChange:d}){const m={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),p=QT().scaleExtent([t,n]).translateExtent(i),g=fr(e).call(p);k({x:r.x,y:r.y,zoom:Ol(r.zoom,t,n)},[[0,0],[h.width,h.height]],i);const x=g.on("wheel.zoom"),v=g.on("dblclick.zoom");p.wheelDelta(jR);function b(I,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?vu:Uf).transform(Vy(g,$?.duration,$?.ease,()=>G(!0)),I)}):Promise.resolve(!1)}function S({noWheelClassName:I,noPanClassName:$,onPaneContextMenu:G,userSelectionActive:P,panOnScroll:F,panOnDrag:V,panOnScrollMode:Y,panOnScrollSpeed:U,preventScrolling:Z,zoomOnPinch:W,zoomOnScroll:q,zoomOnDoubleClick:Q,zoomActivationKeyPressed:D,lib:K,onTransformChange:ne,connectionInProgress:ee,paneClickDistance:te,selectionOnDrag:oe}){P&&!m.isZoomingOrPanning&&w();const le=F&&!D&&!P;p.clickDistance(oe?1/0:!Fr(te)||te<0?0:te);const he=le?GX({zoomPanValues:m,noWheelClassName:I,d3Selection:g,d3Zoom:p,panOnScrollMode:Y,panOnScrollSpeed:U,zoomOnPinch:W,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:c}):WX({noWheelClassName:I,preventScrolling:Z,d3ZoomHandler:x});if(g.on("wheel.zoom",he,{passive:!1}),!P){const be=YX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});p.on("start",be);const je=XX({zoomPanValues:m,panOnDrag:V,onPaneContextMenu:!!G,onPanZoom:o,onTransformChange:ne});p.on("zoom",je);const Ve=KX({zoomPanValues:m,panOnDrag:V,panOnScroll:F,onPaneContextMenu:G,onPanZoomEnd:c,onDraggingChange:d});p.on("end",Ve)}const Te=ZX({zoomActivationKeyPressed:D,panOnDrag:V,zoomOnScroll:q,panOnScroll:F,zoomOnDoubleClick:Q,zoomOnPinch:W,userSelectionActive:P,noPanClassName:$,noWheelClassName:I,lib:K,connectionInProgress:ee});p.filter(Te),Q?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function w(){p.on("zoom",null)}async function k(I,$,G){const P=Fy(I),F=p?.constrain()(P,$,G);return F&&await b(F),new Promise(V=>V(F))}async function j(I,$){const G=Fy(I);return await b(G,$),new Promise(P=>P(G))}function N(I){if(g){const $=Fy(I),G=g.property("__zoom");(G.k!==I.zoom||G.x!==I.x||G.y!==I.y)&&p?.transform(g,$,null,{sync:!0})}}function z(){const I=g?ZT(g.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}function T(I,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?vu:Uf).scaleTo(Vy(g,$?.duration,$?.ease,()=>G(!0)),I)}):Promise.resolve(!1)}function M(I,$){return g?new Promise(G=>{p?.interpolate($?.interpolate==="linear"?vu:Uf).scaleBy(Vy(g,$?.duration,$?.ease,()=>G(!0)),I)}):Promise.resolve(!1)}function L(I){p?.scaleExtent(I)}function A(I){p?.translateExtent(I)}function O(I){const $=!Fr(I)||I<0?0:I;p?.clickDistance($)}return{update:S,destroy:w,setViewport:j,setViewportConstrained:k,getViewport:z,scaleTo:T,scaleBy:M,setScaleExtent:L,setTranslateExtent:A,syncViewport:N,setClickDistance:O}}var Pl;(function(e){e.Line="line",e.Handle="handle"})(Pl||(Pl={}));function JX({width:e,prevWidth:t,height:n,prevHeight:i,affectsX:r,affectsY:o}){const a=e-t,c=n-i,d=[a>0?1:a<0?-1:0,c>0?1:c<0?-1:0];return a&&r&&(d[0]=d[0]*-1),c&&o&&(d[1]=d[1]*-1),d}function jj(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),i=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:i,affectsY:r}}function yo(e,t){return Math.max(0,t-e)}function xo(e,t){return Math.max(0,e-t)}function Rf(e,t,n){return Math.max(0,t-e,e-n)}function Ej(e,t){return e?!t:t}function eK(e,t,n,i,r,o,a,c){let{affectsX:d,affectsY:m}=t;const{isHorizontal:h,isVertical:p}=t,g=h&&p,{xSnapped:x,ySnapped:v}=n,{minWidth:b,maxWidth:S,minHeight:w,maxHeight:k}=i,{x:j,y:N,width:z,height:T,aspectRatio:M}=e;let L=Math.floor(h?x-e.pointerX:0),A=Math.floor(p?v-e.pointerY:0);const O=z+(d?-L:L),I=T+(m?-A:A),$=-o[0]*z,G=-o[1]*T;let P=Rf(O,b,S),F=Rf(I,w,k);if(a){let U=0,Z=0;d&&L<0?U=yo(j+L+$,a[0][0]):!d&&L>0&&(U=xo(j+O+$,a[1][0])),m&&A<0?Z=yo(N+A+G,a[0][1]):!m&&A>0&&(Z=xo(N+I+G,a[1][1])),P=Math.max(P,U),F=Math.max(F,Z)}if(c){let U=0,Z=0;d&&L>0?U=xo(j+L,c[0][0]):!d&&L<0&&(U=yo(j+O,c[1][0])),m&&A>0?Z=xo(N+A,c[0][1]):!m&&A<0&&(Z=yo(N+I,c[1][1])),P=Math.max(P,U),F=Math.max(F,Z)}if(r){if(h){const U=Rf(O/M,w,k)*M;if(P=Math.max(P,U),a){let Z=0;!d&&!m||d&&!m&&g?Z=xo(N+G+O/M,a[1][1])*M:Z=yo(N+G+(d?L:-L)/M,a[0][1])*M,P=Math.max(P,Z)}if(c){let Z=0;!d&&!m||d&&!m&&g?Z=yo(N+O/M,c[1][1])*M:Z=xo(N+(d?L:-L)/M,c[0][1])*M,P=Math.max(P,Z)}}if(p){const U=Rf(I*M,b,S)/M;if(F=Math.max(F,U),a){let Z=0;!d&&!m||m&&!d&&g?Z=xo(j+I*M+$,a[1][0])/M:Z=yo(j+(m?A:-A)*M+$,a[0][0])/M,F=Math.max(F,Z)}if(c){let Z=0;!d&&!m||m&&!d&&g?Z=yo(j+I*M,c[1][0])/M:Z=xo(j+(m?A:-A)*M,c[0][0])/M,F=Math.max(F,Z)}}}A=A+(A<0?F:-F),L=L+(L<0?P:-P),r&&(g?O>I*M?A=(Ej(d,m)?-L:L)/M:L=(Ej(d,m)?-A:A)*M:h?(A=L/M,m=d):(L=A*M,d=m));const V=d?j+L:j,Y=m?N+A:N;return{width:z+(d?-L:L),height:T+(m?-A:A),x:o[0]*L*(d?-1:1)+V,y:o[1]*A*(m?-1:1)+Y}}const ER={width:0,height:0,x:0,y:0},tK={...ER,pointerX:0,pointerY:0,aspectRatio:1};function nK(e){return[[0,0],[e.measured.width,e.measured.height]]}function iK(e,t,n){const i=t.position.x+e.position.x,r=t.position.y+e.position.y,o=e.measured.width??0,a=e.measured.height??0,c=n[0]*o,d=n[1]*a;return[[i-c,r-d],[i+o-c,r+a-d]]}function rK({domNode:e,nodeId:t,getStoreItems:n,onChange:i,onEnd:r}){const o=fr(e);let a={controlDirection:jj("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:m,boundaries:h,keepAspectRatio:p,resizeDirection:g,onResizeStart:x,onResize:v,onResizeEnd:b,shouldResize:S}){let w={...ER},k={...tK};a={boundaries:h,resizeDirection:g,keepAspectRatio:p,controlDirection:jj(m)};let j,N=null,z=[],T,M,L,A=!1;const O=zT().on("start",I=>{const{nodeLookup:$,transform:G,snapGrid:P,snapToGrid:F,nodeOrigin:V,paneDomNode:Y}=n();if(j=$.get(t),!j)return;N=Y?.getBoundingClientRect()??null;const{xSnapped:U,ySnapped:Z}=bu(I.sourceEvent,{transform:G,snapGrid:P,snapToGrid:F,containerBounds:N});w={width:j.measured.width??0,height:j.measured.height??0,x:j.position.x??0,y:j.position.y??0},k={...w,pointerX:U,pointerY:Z,aspectRatio:w.width/w.height},T=void 0,j.parentId&&(j.extent==="parent"||j.expandParent)&&(T=$.get(j.parentId),M=T&&j.extent==="parent"?nK(T):void 0),z=[],L=void 0;for(const[W,q]of $)if(q.parentId===t&&(z.push({id:W,position:{...q.position},extent:q.extent}),q.extent==="parent"||q.expandParent)){const Q=iK(q,j,q.origin??V);L?L=[[Math.min(Q[0][0],L[0][0]),Math.min(Q[0][1],L[0][1])],[Math.max(Q[1][0],L[1][0]),Math.max(Q[1][1],L[1][1])]]:L=Q}x?.(I,{...w})}).on("drag",I=>{const{transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F}=n(),V=bu(I.sourceEvent,{transform:$,snapGrid:G,snapToGrid:P,containerBounds:N}),Y=[];if(!j)return;const{x:U,y:Z,width:W,height:q}=w,Q={},D=j.origin??F,{width:K,height:ne,x:ee,y:te}=eK(k,a.controlDirection,V,a.boundaries,a.keepAspectRatio,D,M,L),oe=K!==W,le=ne!==q,he=ee!==U&&oe,Te=te!==Z&≤if(!he&&!Te&&!oe&&!le)return;if((he||Te||D[0]===1||D[1]===1)&&(Q.x=he?ee:w.x,Q.y=Te?te:w.y,w.x=Q.x,w.y=Q.y,z.length>0)){const Ye=ee-U,$e=te-Z;for(const ct of z)ct.position={x:ct.position.x-Ye+D[0]*(K-W),y:ct.position.y-$e+D[1]*(ne-q)},Y.push(ct)}if((oe||le)&&(Q.width=oe&&(!a.resizeDirection||a.resizeDirection==="horizontal")?K:w.width,Q.height=le&&(!a.resizeDirection||a.resizeDirection==="vertical")?ne:w.height,w.width=Q.width,w.height=Q.height),T&&j.expandParent){const Ye=D[0]*(Q.width??0);Q.x&&Q.x{A&&(b?.(I,{...w}),r?.({...w}),A=!1)});o.call(O)}function d(){o.on(".drag",null)}return{update:c,destroy:d}}var Uy={exports:{}},qy={},Gy={exports:{}},Wy={};var Nj;function sK(){if(Nj)return Wy;Nj=1;var e=$l();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,i=e.useState,r=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function c(p,g){var x=g(),v=i({inst:{value:x,getSnapshot:g}}),b=v[0].inst,S=v[1];return o(function(){b.value=x,b.getSnapshot=g,d(b)&&S({inst:b})},[p,x,g]),r(function(){return d(b)&&S({inst:b}),p(function(){d(b)&&S({inst:b})})},[p]),a(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function m(p,g){return g()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:c;return Wy.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Wy}var Ij;function oK(){return Ij||(Ij=1,Gy.exports=sK()),Gy.exports}var Tj;function aK(){if(Tj)return qy;Tj=1;var e=$l(),t=oK();function n(m,h){return m===h&&(m!==0||1/m===1/h)||m!==m&&h!==h}var i=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,c=e.useMemo,d=e.useDebugValue;return qy.useSyncExternalStoreWithSelector=function(m,h,p,g,x){var v=o(null);if(v.current===null){var b={hasValue:!1,value:null};v.current=b}else b=v.current;v=c(function(){function w(T){if(!k){if(k=!0,j=T,T=g(T),x!==void 0&&b.hasValue){var M=b.value;if(x(M,T))return N=M}return N=T}if(M=N,i(j,T))return M;var L=g(T);return x!==void 0&&x(M,L)?(j=T,M):(j=T,N=L)}var k=!1,j,N,z=p===void 0?null:p;return[function(){return w(h())},z===null?void 0:function(){return w(z())}]},[h,p,g,x]);var S=r(m,v[0],v[1]);return a(function(){b.hasValue=!0,b.value=S},[S]),d(S),S},qy}var Rj;function lK(){return Rj||(Rj=1,Uy.exports=aK()),Uy.exports}var cK=lK();const uK=pa(cK),dK={},Aj=e=>{let t;const n=new Set,i=(h,p)=>{const g=typeof h=="function"?h(t):h;if(!Object.is(g,t)){const x=t;t=p??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,x))}},r=()=>t,d={setState:i,getState:r,getInitialState:()=>m,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(dK?"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()}},m=t=e(i,r,d);return d},fK=e=>e?Aj(e):Aj,{useDebugValue:mK}=Mt,{useSyncExternalStoreWithSelector:pK}=uK,hK=e=>e;function NR(e,t=hK,n){const i=pK(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return mK(i),i}const Mj=(e,t)=>{const n=fK(e),i=(r,o=t)=>NR(n,r,o);return Object.assign(i,n),i},gK=(e,t)=>e?Mj(e,t):Mj;function Hn(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[i,r]of e)if(!Object.is(r,t.get(i)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const i of n)if(!Object.prototype.hasOwnProperty.call(t,i)||!Object.is(e[i],t[i]))return!1;return!0}const fp=C.createContext(null),yK=fp.Provider,IR=us.error001();function on(e,t){const n=C.useContext(fp);if(n===null)throw new Error(IR);return NR(n,e,t)}function Fn(){const e=C.useContext(fp);if(e===null)throw new Error(IR);return C.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Dj={display:"none"},xK={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},TR="react-flow__node-desc",RR="react-flow__edge-desc",vK="react-flow__aria-live",bK=e=>e.ariaLiveMessage,_K=e=>e.ariaLabelConfig;function kK({rfId:e}){const t=on(bK);return u.jsx("div",{id:`${vK}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:xK,children:t})}function SK({rfId:e,disableKeyboardA11y:t}){const n=on(_K);return u.jsxs(u.Fragment,{children:[u.jsx("div",{id:`${TR}-${e}`,style:Dj,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),u.jsx("div",{id:`${RR}-${e}`,style:Dj,children:n["edge.a11yDescription.default"]}),!t&&u.jsx(kK,{rfId:e})]})}const mp=C.forwardRef(({position:e="top-left",children:t,className:n,style:i,...r},o)=>{const a=`${e}`.split("-");return u.jsx("div",{className:pi(["react-flow__panel",n,...a]),style:i,ref:o,...r,children:t})});mp.displayName="Panel";function wK({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:u.jsx(mp,{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:u.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const CK=e=>{const t=[],n=[];for(const[,i]of e.nodeLookup)i.selected&&t.push(i.internals.userNode);for(const[,i]of e.edgeLookup)i.selected&&n.push(i);return{selectedNodes:t,selectedEdges:n}},Af=e=>e.id;function jK(e,t){return Hn(e.selectedNodes.map(Af),t.selectedNodes.map(Af))&&Hn(e.selectedEdges.map(Af),t.selectedEdges.map(Af))}function EK({onSelectionChange:e}){const t=Fn(),{selectedNodes:n,selectedEdges:i}=on(CK,jK);return C.useEffect(()=>{const r={nodes:n,edges:i};e?.(r),t.getState().onSelectionChangeHandlers.forEach(o=>o(r))},[n,i,e]),null}const NK=e=>!!e.onSelectionChangeHandlers;function IK({onSelectionChange:e}){const t=on(NK);return e||t?u.jsx(EK,{onSelectionChange:e}):null}const Uv=typeof window<"u"?C.useLayoutEffect:C.useEffect,AR=[0,0],TK={x:0,y:0,zoom:1},RK=["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"],Oj=[...RK,"rfId"],AK=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}),Lj={translateExtent:Pu,nodeOrigin:AR,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function MK(e){const{setNodes:t,setEdges:n,setMinZoom:i,setMaxZoom:r,setTranslateExtent:o,setNodeExtent:a,reset:c,setDefaultNodesAndEdges:d}=on(AK,Hn),m=Fn();Uv(()=>(d(e.defaultNodes,e.defaultEdges),()=>{h.current=Lj,c()}),[]);const h=C.useRef(Lj);return Uv(()=>{for(const p of Oj){const g=e[p],x=h.current[p];g!==x&&(typeof e[p]>"u"||(p==="nodes"?t(g):p==="edges"?n(g):p==="minZoom"?i(g):p==="maxZoom"?r(g):p==="translateExtent"?o(g):p==="nodeExtent"?a(g):p==="ariaLabelConfig"?m.setState({ariaLabelConfig:gX(g)}):p==="fitView"?m.setState({fitViewQueued:g}):p==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[p]:g})))}h.current=e},Oj.map(p=>e[p])),null}function zj(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function DK(e){const[t,n]=C.useState(e==="system"?null:e);return C.useEffect(()=>{if(e!=="system"){n(e);return}const i=zj(),r=()=>n(i?.matches?"dark":"light");return r(),i?.addEventListener("change",r),()=>{i?.removeEventListener("change",r)}},[e]),t!==null?t:zj()?.matches?"dark":"light"}const Pj=typeof document<"u"?document:null;function Fu(e=null,t={target:Pj,actInsideInputWithModifier:!0}){const[n,i]=C.useState(!1),r=C.useRef(!1),o=C.useRef(new Set([])),[a,c]=C.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(p=>typeof p=="string").map(p=>p.replace("+",` -`).replace(` - -`,` -+`).split(` -`)),h=m.reduce((p,g)=>p.concat(...g),[]);return[m,h]}return[[],[]]},[e]);return C.useEffect(()=>{const d=t?.target??Pj,m=t?.actInsideInputWithModifier??!0;if(e!==null){const h=x=>{if(r.current=x.ctrlKey||x.metaKey||x.shiftKey||x.altKey,(!r.current||r.current&&!m)&&dR(x))return!1;const b=$j(x.code,c);if(o.current.add(x[b]),Bj(a,o.current,!1)){const S=x.composedPath?.()?.[0]||x.target,w=S?.nodeName==="BUTTON"||S?.nodeName==="A";t.preventDefault!==!1&&(r.current||!w)&&x.preventDefault(),i(!0)}},p=x=>{const v=$j(x.code,c);Bj(a,o.current,!0)?(i(!1),o.current.clear()):o.current.delete(x[v]),x.key==="Meta"&&o.current.clear(),r.current=!1},g=()=>{o.current.clear(),i(!1)};return d?.addEventListener("keydown",h),d?.addEventListener("keyup",p),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",h),d?.removeEventListener("keyup",p),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,i]),n}function Bj(e,t,n){return e.filter(i=>n||i.length===t.size).some(i=>i.every(r=>t.has(r)))}function $j(e,t){return t.includes(e)?"code":"key"}const OK=()=>{const e=Fn();return C.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:i}=e.getState();return i?i.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[i,r,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??i,y:t.y??r,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,i]=e.getState().transform;return{x:t,y:n,zoom:i}},setCenter:async(t,n,i)=>e.getState().setCenter(t,n,i),fitBounds:async(t,n)=>{const{width:i,height:r,minZoom:o,maxZoom:a,panZoom:c}=e.getState(),d=tb(t,i,r,o,a,n?.padding??.1);return c?(await c.setViewport(d,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:i,snapGrid:r,snapToGrid:o,domNode:a}=e.getState();if(!a)return t;const{x:c,y:d}=a.getBoundingClientRect(),m={x:t.x-c,y:t.y-d},h=n.snapGrid??r,p=n.snapToGrid??o;return ed(m,i,p,h)},flowToScreenPosition:t=>{const{transform:n,domNode:i}=e.getState();if(!i)return t;const{x:r,y:o}=i.getBoundingClientRect(),a=Im(t,n);return{x:a.x+r,y:a.y+o}}}),[])};function MR(e,t){const n=[],i=new Map,r=[];for(const o of e)if(o.type==="add"){r.push(o);continue}else if(o.type==="remove"||o.type==="replace")i.set(o.id,[o]);else{const a=i.get(o.id);a?a.push(o):i.set(o.id,[o])}for(const o of t){const a=i.get(o.id);if(!a){n.push(o);continue}if(a[0].type==="remove")continue;if(a[0].type==="replace"){n.push({...a[0].item});continue}const c={...o};for(const d of a)LK(d,c);n.push(c)}return r.length&&r.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function LK(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 DR(e,t){return MR(e,t)}function zK(e,t){return MR(e,t)}function ta(e,t){return{id:e,type:"select",selected:t}}function dl(e,t=new Set,n=!1){const i=[];for(const[r,o]of e){const a=t.has(r);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),i.push(ta(o.id,a)))}return i}function Hj({items:e=[],lookup:t}){const n=[],i=new Map(e.map(r=>[r.id,r]));for(const[r,o]of e.entries()){const a=t.get(o.id),c=a?.internals?.userNode??a;c!==void 0&&c!==o&&n.push({id:o.id,item:o,type:"replace"}),c===void 0&&n.push({item:o,type:"add",index:r})}for(const[r]of t)i.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function Fj(e){return{id:e.id,type:"remove"}}const Vj=e=>oX(e),PK=e=>iR(e);function OR(e){return C.forwardRef(e)}function Uj(e){const[t,n]=C.useState(BigInt(0)),[i]=C.useState(()=>BK(()=>n(r=>r+BigInt(1))));return Uv(()=>{const r=i.get();r.length&&(e(r),i.reset())},[t]),i}function BK(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const LR=C.createContext(null);function $K({children:e}){const t=Fn(),n=C.useCallback(c=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:h,onNodesChange:p,nodeLookup:g,fitViewQueued:x,onNodesChangeMiddlewareMap:v}=t.getState();let b=d;for(const w of c)b=typeof w=="function"?w(b):w;let S=Hj({items:b,lookup:g});for(const w of v.values())S=w(S);h&&m(b),S.length>0?p?.(S):x&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:k,setNodes:j}=t.getState();w&&j(k)})},[]),i=Uj(n),r=C.useCallback(c=>{const{edges:d=[],setEdges:m,hasDefaultEdges:h,onEdgesChange:p,edgeLookup:g}=t.getState();let x=d;for(const v of c)x=typeof v=="function"?v(x):v;h?m(x):p&&p(Hj({items:x,lookup:g}))},[]),o=Uj(r),a=C.useMemo(()=>({nodeQueue:i,edgeQueue:o}),[]);return u.jsx(LR.Provider,{value:a,children:e})}function HK(){const e=C.useContext(LR);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const FK=e=>!!e.panZoom;function lb(){const e=OK(),t=Fn(),n=HK(),i=on(FK),r=C.useMemo(()=>{const o=p=>t.getState().nodeLookup.get(p),a=p=>{n.nodeQueue.push(p)},c=p=>{n.edgeQueue.push(p)},d=p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState(),v=Vj(p)?p:g.get(p.id),b=v.parentId?cR(v.position,v.measured,v.parentId,g,x):v.position,S={...v,position:b,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return Ll(S)},m=(p,g,x={replace:!1})=>{a(v=>v.map(b=>{if(b.id===p){const S=typeof g=="function"?g(b):g;return x.replace&&Vj(S)?S:{...b,...S}}return b}))},h=(p,g,x={replace:!1})=>{c(v=>v.map(b=>{if(b.id===p){const S=typeof g=="function"?g(b):g;return x.replace&&PK(S)?S:{...b,...S}}return b}))};return{getNodes:()=>t.getState().nodes.map(p=>({...p})),getNode:p=>o(p)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:p=[]}=t.getState();return p.map(g=>({...g}))},getEdge:p=>t.getState().edgeLookup.get(p),setNodes:a,setEdges:c,addNodes:p=>{const g=Array.isArray(p)?p:[p];n.nodeQueue.push(x=>[...x,...g])},addEdges:p=>{const g=Array.isArray(p)?p:[p];n.edgeQueue.push(x=>[...x,...g])},toObject:()=>{const{nodes:p=[],edges:g=[],transform:x}=t.getState(),[v,b,S]=x;return{nodes:p.map(w=>({...w})),edges:g.map(w=>({...w})),viewport:{x:v,y:b,zoom:S}}},deleteElements:async({nodes:p=[],edges:g=[]})=>{const{nodes:x,edges:v,onNodesDelete:b,onEdgesDelete:S,triggerNodeChanges:w,triggerEdgeChanges:k,onDelete:j,onBeforeDelete:N}=t.getState(),{nodes:z,edges:T}=await dX({nodesToRemove:p,edgesToRemove:g,nodes:x,edges:v,onBeforeDelete:N}),M=T.length>0,L=z.length>0;if(M){const A=T.map(Fj);S?.(T),k(A)}if(L){const A=z.map(Fj);b?.(z),w(A)}return(L||M)&&j?.({nodes:z,edges:T}),{deletedNodes:z,deletedEdges:T}},getIntersectingNodes:(p,g=!0,x)=>{const v=hj(p),b=v?p:d(p),S=x!==void 0;return b?(x||t.getState().nodes).filter(w=>{const k=t.getState().nodeLookup.get(w.id);if(k&&!v&&(w.id===p.id||!k.internals.positionAbsolute))return!1;const j=Ll(S?w:k),N=$u(j,b);return g&&N>0||N>=j.width*j.height||N>=b.width*b.height}):[]},isNodeIntersecting:(p,g,x=!0)=>{const b=hj(p)?p:d(p);if(!b)return!1;const S=$u(b,g);return x&&S>0||S>=g.width*g.height||S>=b.width*b.height},updateNode:m,updateNodeData:(p,g,x={replace:!1})=>{m(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},updateEdge:h,updateEdgeData:(p,g,x={replace:!1})=>{h(p,v=>{const b=typeof g=="function"?g(v):g;return x.replace?{...v,data:b}:{...v,data:{...v.data,...b}}},x)},getNodesBounds:p=>{const{nodeLookup:g,nodeOrigin:x}=t.getState();return aX(p,{nodeLookup:g,nodeOrigin:x})},getHandleConnections:({type:p,id:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}-${p}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:g,nodeId:x})=>Array.from(t.getState().connectionLookup.get(`${x}${p?g?`-${p}-${g}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const g=t.getState().fitViewResolver??hX();return t.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:g}),n.nodeQueue.push(x=>[...x]),g.promise}}},[]);return C.useMemo(()=>({...r,...e,viewportInitialized:i}),[i])}const qj=e=>e.selected,VK=typeof window<"u"?window:void 0;function UK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Fn(),{deleteElements:i}=lb(),r=Fu(e,{actInsideInputWithModifier:!1}),o=Fu(t,{target:VK});C.useEffect(()=>{if(r){const{edges:a,nodes:c}=n.getState();i({nodes:c.filter(qj),edges:a.filter(qj)}),n.setState({nodesSelectionActive:!1})}},[r]),C.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function qK(e){const t=Fn();C.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const i=nb(e.current);(i.height===0||i.width===0)&&t.getState().onError?.("004",us.error004()),t.setState({width:i.width||500,height:i.height||500})};if(e.current){n(),window.addEventListener("resize",n);const i=new ResizeObserver(()=>n());return i.observe(e.current),()=>{window.removeEventListener("resize",n),i&&e.current&&i.unobserve(e.current)}}},[])}const pp={position:"absolute",width:"100%",height:"100%",top:0,left:0},GK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function WK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:i=!1,panOnScrollSpeed:r=.5,panOnScrollMode:o=oa.Free,zoomOnDoubleClick:a=!0,panOnDrag:c=!0,defaultViewport:d,translateExtent:m,minZoom:h,maxZoom:p,zoomActivationKeyCode:g,preventScrolling:x=!0,children:v,noWheelClassName:b,noPanClassName:S,onViewportChange:w,isControlledViewport:k,paneClickDistance:j,selectionOnDrag:N}){const z=Fn(),T=C.useRef(null),{userSelectionActive:M,lib:L,connectionInProgress:A}=on(GK,Hn),O=Fu(g),I=C.useRef();qK(T);const $=C.useCallback(G=>{w?.({x:G[0],y:G[1],zoom:G[2]}),k||z.setState({transform:G})},[w,k]);return C.useEffect(()=>{if(T.current){I.current=QX({domNode:T.current,minZoom:h,maxZoom:p,translateExtent:m,viewport:d,onDraggingChange:V=>z.setState(Y=>Y.paneDragging===V?Y:{paneDragging:V}),onPanZoomStart:(V,Y)=>{const{onViewportChangeStart:U,onMoveStart:Z}=z.getState();Z?.(V,Y),U?.(Y)},onPanZoom:(V,Y)=>{const{onViewportChange:U,onMove:Z}=z.getState();Z?.(V,Y),U?.(Y)},onPanZoomEnd:(V,Y)=>{const{onViewportChangeEnd:U,onMoveEnd:Z}=z.getState();Z?.(V,Y),U?.(Y)}});const{x:G,y:P,zoom:F}=I.current.getViewport();return z.setState({panZoom:I.current,transform:[G,P,F],domNode:T.current.closest(".react-flow")}),()=>{I.current?.destroy()}}},[]),C.useEffect(()=>{I.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:i,panOnScrollSpeed:r,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:c,zoomActivationKeyPressed:O,preventScrolling:x,noPanClassName:S,userSelectionActive:M,noWheelClassName:b,lib:L,onTransformChange:$,connectionInProgress:A,selectionOnDrag:N,paneClickDistance:j})},[e,t,n,i,r,o,a,c,O,x,S,M,b,L,$,A,N,j]),u.jsx("div",{className:"react-flow__renderer",ref:T,style:pp,children:v})}const YK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function XK(){const{userSelectionActive:e,userSelectionRect:t}=on(YK,Hn);return e&&t?u.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 Yy=(e,t)=>n=>{n.target===t.current&&e?.(n)},KK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function ZK({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Bu.Full,panOnDrag:i,paneClickDistance:r,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:c,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:h,onPaneMouseEnter:p,onPaneMouseMove:g,onPaneMouseLeave:x,children:v}){const b=Fn(),{userSelectionActive:S,elementsSelectable:w,dragging:k,connectionInProgress:j}=on(KK,Hn),N=w&&(e||S),z=C.useRef(null),T=C.useRef(),M=C.useRef(new Set),L=C.useRef(new Set),A=C.useRef(!1),O=U=>{if(A.current||j){A.current=!1;return}d?.(U),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},I=U=>{if(Array.isArray(i)&&i?.includes(2)){U.preventDefault();return}m?.(U)},$=h?U=>h(U):void 0,G=U=>{A.current&&(U.stopPropagation(),A.current=!1)},P=U=>{const{domNode:Z}=b.getState();if(T.current=Z?.getBoundingClientRect(),!T.current)return;const W=U.target===z.current;if(!W&&!!U.target.closest(".nokey")||!e||!(o&&W||t)||U.button!==0||!U.isPrimary)return;U.target?.setPointerCapture?.(U.pointerId),A.current=!1;const{x:D,y:K}=Vr(U.nativeEvent,T.current);b.setState({userSelectionRect:{width:0,height:0,startX:D,startY:K,x:D,y:K}}),W||(U.stopPropagation(),U.preventDefault())},F=U=>{const{userSelectionRect:Z,transform:W,nodeLookup:q,edgeLookup:Q,connectionLookup:D,triggerNodeChanges:K,triggerEdgeChanges:ne,defaultEdgeOptions:ee,resetSelectedElements:te}=b.getState();if(!T.current||!Z)return;const{x:oe,y:le}=Vr(U.nativeEvent,T.current),{startX:he,startY:Te}=Z;if(!A.current){const $e=t?0:r;if(Math.hypot(oe-he,le-Te)<=$e)return;te(),a?.(U)}A.current=!0;const be={startX:he,startY:Te,x:oe$e.id)),L.current=new Set;const Ye=ee?.selectable??!0;for(const $e of M.current){const ct=D.get($e);if(ct)for(const{edgeId:It}of ct.values()){const yt=Q.get(It);yt&&(yt.selectable??Ye)&&L.current.add(It)}}if(!gj(je,M.current)){const $e=dl(q,M.current,!0);K($e)}if(!gj(Ve,L.current)){const $e=dl(Q,L.current);ne($e)}b.setState({userSelectionRect:be,userSelectionActive:!0,nodesSelectionActive:!1})},V=U=>{U.button===0&&(U.target?.releasePointerCapture?.(U.pointerId),!S&&U.target===z.current&&b.getState().userSelectionRect&&O?.(U),b.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(c?.(U),b.setState({nodesSelectionActive:M.current.size>0})))},Y=i===!0||Array.isArray(i)&&i.includes(0);return u.jsxs("div",{className:pi(["react-flow__pane",{draggable:Y,dragging:k,selection:e}]),onClick:N?void 0:Yy(O,z),onContextMenu:Yy(I,z),onWheel:Yy($,z),onPointerEnter:N?void 0:p,onPointerMove:N?F:g,onPointerUp:N?V:void 0,onPointerDownCapture:N?P:void 0,onClickCapture:N?G:void 0,onPointerLeave:x,ref:z,style:pp,children:[v,u.jsx(XK,{})]})}function qv({id:e,store:t,unselect:n=!1,nodeRef:i}){const{addSelectedNodes:r,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:c,onError:d}=t.getState(),m=c.get(e);if(!m){d?.("012",us.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>i?.current?.blur())):r([e])}function zR({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:i,nodeId:r,isSelectable:o,nodeClickDistance:a}){const c=Fn(),[d,m]=C.useState(!1),h=C.useRef();return C.useEffect(()=>{h.current=PX({getStoreItems:()=>c.getState(),onNodeMouseDown:p=>{qv({id:p,store:c,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),C.useEffect(()=>{if(!(t||!e.current||!h.current))return h.current.update({noDragClassName:n,handleSelector:i,domNode:e.current,isSelectable:o,nodeId:r,nodeClickDistance:a}),()=>{h.current?.destroy()}},[n,i,t,o,e,r,a]),d}const QK=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function PR(){const e=Fn();return C.useCallback(n=>{const{nodeExtent:i,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:c,updateNodePositions:d,nodeLookup:m,nodeOrigin:h}=e.getState(),p=new Map,g=QK(a),x=r?o[0]:5,v=r?o[1]:5,b=n.direction.x*x*n.factor,S=n.direction.y*v*n.factor;for(const[,w]of m){if(!g(w))continue;let k={x:w.internals.positionAbsolute.x+b,y:w.internals.positionAbsolute.y+S};r&&(k=Ju(k,o));const{position:j,positionAbsolute:N}=rR({nodeId:w.id,nextPosition:k,nodeLookup:m,nodeExtent:i,nodeOrigin:h,onError:c});w.position=j,w.internals.positionAbsolute=N,p.set(w.id,w)}d(p)},[])}const cb=C.createContext(null),JK=cb.Provider;cb.Consumer;const BR=()=>C.useContext(cb),eZ=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),tZ=(e,t,n)=>i=>{const{connectionClickStartHandle:r,connectionMode:o,connection:a}=i,{fromHandle:c,toHandle:d,isValid:m}=a,h=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:c?.nodeId===e&&c?.id===t&&c?.type===n,connectingTo:h,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:o===Dl.Strict?c?.type!==n:e!==c?.nodeId||t!==c?.id,connectionInProcess:!!c,clickConnectionInProcess:!!r,valid:h&&m}};function nZ({type:e="source",position:t=at.Top,isValidConnection:n,isConnectable:i=!0,isConnectableStart:r=!0,isConnectableEnd:o=!0,id:a,onConnect:c,children:d,className:m,onMouseDown:h,onTouchStart:p,...g},x){const v=a||null,b=e==="target",S=Fn(),w=BR(),{connectOnClick:k,noPanClassName:j,rfId:N}=on(eZ,Hn),{connectingFrom:z,connectingTo:T,clickConnecting:M,isPossibleEndHandle:L,connectionInProcess:A,clickConnectionInProcess:O,valid:I}=on(tZ(w,v,e),Hn);w||S.getState().onError?.("010",us.error010());const $=F=>{const{defaultEdgeOptions:V,onConnect:Y,hasDefaultEdges:U}=S.getState(),Z={...V,...F};if(U){const{edges:W,setEdges:q}=S.getState();q(kX(Z,W))}Y?.(Z),c?.(Z)},G=F=>{if(!w)return;const V=fR(F.nativeEvent);if(r&&(V&&F.button===0||!V)){const Y=S.getState();Vv.onPointerDown(F.nativeEvent,{handleDomNode:F.currentTarget,autoPanOnConnect:Y.autoPanOnConnect,connectionMode:Y.connectionMode,connectionRadius:Y.connectionRadius,domNode:Y.domNode,nodeLookup:Y.nodeLookup,lib:Y.lib,isTarget:b,handleId:v,nodeId:w,flowId:Y.rfId,panBy:Y.panBy,cancelConnection:Y.cancelConnection,onConnectStart:Y.onConnectStart,onConnectEnd:(...U)=>S.getState().onConnectEnd?.(...U),updateConnection:Y.updateConnection,onConnect:$,isValidConnection:n||((...U)=>S.getState().isValidConnection?.(...U)??!0),getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:Y.autoPanSpeed,dragThreshold:Y.connectionDragThreshold})}V?h?.(F):p?.(F)},P=F=>{const{onClickConnectStart:V,onClickConnectEnd:Y,connectionClickStartHandle:U,connectionMode:Z,isValidConnection:W,lib:q,rfId:Q,nodeLookup:D,connection:K}=S.getState();if(!w||!U&&!r)return;if(!U){V?.(F.nativeEvent,{nodeId:w,handleId:v,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:w,type:e,id:v}});return}const ne=uR(F.target),ee=n||W,{connection:te,isValid:oe}=Vv.isValid(F.nativeEvent,{handle:{nodeId:w,id:v,type:e},connectionMode:Z,fromNodeId:U.nodeId,fromHandleId:U.id||null,fromType:U.type,isValidConnection:ee,flowId:Q,doc:ne,lib:q,nodeLookup:D});oe&&te&&$(te);const le=structuredClone(K);delete le.inProgress,le.toPosition=le.toHandle?le.toHandle.position:null,Y?.(F,le),S.setState({connectionClickStartHandle:null})};return u.jsx("div",{"data-handleid":v,"data-nodeid":w,"data-handlepos":t,"data-id":`${N}-${w}-${v}-${e}`,className:pi(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",j,m,{source:!b,target:b,connectable:i,connectablestart:r,connectableend:o,clickconnecting:M,connectingfrom:z,connectingto:T,valid:I,connectionindicator:i&&(!A||L)&&(A||O?o:r)}]),onMouseDown:G,onTouchStart:G,onClick:k?P:void 0,ref:x,...g,children:d})}const Bl=C.memo(OR(nZ));function iZ({data:e,isConnectable:t,sourcePosition:n=at.Bottom}){return u.jsxs(u.Fragment,{children:[e?.label,u.jsx(Bl,{type:"source",position:n,isConnectable:t})]})}function rZ({data:e,isConnectable:t,targetPosition:n=at.Top,sourcePosition:i=at.Bottom}){return u.jsxs(u.Fragment,{children:[u.jsx(Bl,{type:"target",position:n,isConnectable:t}),e?.label,u.jsx(Bl,{type:"source",position:i,isConnectable:t})]})}function sZ(){return null}function oZ({data:e,isConnectable:t,targetPosition:n=at.Top}){return u.jsxs(u.Fragment,{children:[u.jsx(Bl,{type:"target",position:n,isConnectable:t}),e?.label]})}const Tm={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Gj={input:iZ,default:rZ,output:oZ,group:sZ};function aZ(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}}const lZ=e=>{const{width:t,height:n,x:i,y:r}=Qu(e.nodeLookup,{filter:o=>!!o.selected});return{width:Fr(t)?t:null,height:Fr(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${i}px,${r}px)`}};function cZ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const i=Fn(),{width:r,height:o,transformString:a,userSelectionActive:c}=on(lZ,Hn),d=PR(),m=C.useRef(null);C.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const h=!c&&r!==null&&o!==null;if(zR({nodeRef:m,disabled:!h}),!h)return null;const p=e?x=>{const v=i.getState().nodes.filter(b=>b.selected);e(x,v)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(Tm,x.key)&&(x.preventDefault(),d({direction:Tm[x.key],factor:x.shiftKey?4:1}))};return u.jsx("div",{className:pi(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:u.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:r,height:o}})})}const Wj=typeof window<"u"?window:void 0,uZ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function $R({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:c,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:h,selectionMode:p,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:v,panActivationKeyCode:b,zoomActivationKeyCode:S,elementsSelectable:w,zoomOnScroll:k,zoomOnPinch:j,panOnScroll:N,panOnScrollSpeed:z,panOnScrollMode:T,zoomOnDoubleClick:M,panOnDrag:L,defaultViewport:A,translateExtent:O,minZoom:I,maxZoom:$,preventScrolling:G,onSelectionContextMenu:P,noWheelClassName:F,noPanClassName:V,disableKeyboardA11y:Y,onViewportChange:U,isControlledViewport:Z}){const{nodesSelectionActive:W,userSelectionActive:q}=on(uZ,Hn),Q=Fu(m,{target:Wj}),D=Fu(b,{target:Wj}),K=D||L,ne=D||N,ee=h&&K!==!0,te=Q||q||ee;return UK({deleteKeyCode:d,multiSelectionKeyCode:v}),u.jsx(WK,{onPaneContextMenu:o,elementsSelectable:w,zoomOnScroll:k,zoomOnPinch:j,panOnScroll:ne,panOnScrollSpeed:z,panOnScrollMode:T,zoomOnDoubleClick:M,panOnDrag:!Q&&K,defaultViewport:A,translateExtent:O,minZoom:I,maxZoom:$,zoomActivationKeyCode:S,preventScrolling:G,noWheelClassName:F,noPanClassName:V,onViewportChange:U,isControlledViewport:Z,paneClickDistance:c,selectionOnDrag:ee,children:u.jsxs(ZK,{onSelectionStart:g,onSelectionEnd:x,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:i,onPaneMouseLeave:r,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:K,isSelecting:!!te,selectionMode:p,selectionKeyPressed:Q,paneClickDistance:c,selectionOnDrag:ee,children:[e,W&&u.jsx(cZ,{onSelectionContextMenu:P,noPanClassName:V,disableKeyboardA11y:Y})]})})}$R.displayName="FlowRenderer";const dZ=C.memo($R),fZ=e=>t=>e?eb(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 mZ(e){return on(C.useCallback(fZ(e),[e]),Hn)}const pZ=e=>e.updateNodeInternals;function hZ(){const e=on(pZ),[t]=C.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const i=new Map;n.forEach(r=>{const o=r.target.getAttribute("data-id");i.set(o,{id:o,nodeElement:r.target,force:!0})}),e(i)}));return C.useEffect(()=>()=>{t?.disconnect()},[t]),t}function gZ({node:e,nodeType:t,hasDimensions:n,resizeObserver:i}){const r=Fn(),o=C.useRef(null),a=C.useRef(null),c=C.useRef(e.sourcePosition),d=C.useRef(e.targetPosition),m=C.useRef(t),h=n&&!!e.internals.handleBounds;return C.useEffect(()=>{o.current&&!e.hidden&&(!h||a.current!==o.current)&&(a.current&&i?.unobserve(a.current),i?.observe(o.current),a.current=o.current)},[h,e.hidden]),C.useEffect(()=>()=>{a.current&&(i?.unobserve(a.current),a.current=null)},[]),C.useEffect(()=>{if(o.current){const p=m.current!==t,g=c.current!==e.sourcePosition,x=d.current!==e.targetPosition;(p||g||x)&&(m.current=t,c.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function yZ({id:e,onClick:t,onMouseEnter:n,onMouseMove:i,onMouseLeave:r,onContextMenu:o,onDoubleClick:a,nodesDraggable:c,elementsSelectable:d,nodesConnectable:m,nodesFocusable:h,resizeObserver:p,noDragClassName:g,noPanClassName:x,disableKeyboardA11y:v,rfId:b,nodeTypes:S,nodeClickDistance:w,onError:k}){const{node:j,internals:N,isParent:z}=on(oe=>{const le=oe.nodeLookup.get(e),he=oe.parentLookup.has(e);return{node:le,internals:le.internals,isParent:he}},Hn);let T=j.type||"default",M=S?.[T]||Gj[T];M===void 0&&(k?.("003",us.error003(T)),T="default",M=S?.default||Gj.default);const L=!!(j.draggable||c&&typeof j.draggable>"u"),A=!!(j.selectable||d&&typeof j.selectable>"u"),O=!!(j.connectable||m&&typeof j.connectable>"u"),I=!!(j.focusable||h&&typeof j.focusable>"u"),$=Fn(),G=lR(j),P=gZ({node:j,nodeType:T,hasDimensions:G,resizeObserver:p}),F=zR({nodeRef:P,disabled:j.hidden||!L,noDragClassName:g,handleSelector:j.dragHandle,nodeId:e,isSelectable:A,nodeClickDistance:w}),V=PR();if(j.hidden)return null;const Y=$s(j),U=aZ(j),Z=A||L||t||n||i||r,W=n?oe=>n(oe,{...N.userNode}):void 0,q=i?oe=>i(oe,{...N.userNode}):void 0,Q=r?oe=>r(oe,{...N.userNode}):void 0,D=o?oe=>o(oe,{...N.userNode}):void 0,K=a?oe=>a(oe,{...N.userNode}):void 0,ne=oe=>{const{selectNodesOnDrag:le,nodeDragThreshold:he}=$.getState();A&&(!le||!L||he>0)&&qv({id:e,store:$,nodeRef:P}),t&&t(oe,{...N.userNode})},ee=oe=>{if(!(dR(oe.nativeEvent)||v)){if(JT.includes(oe.key)&&A){const le=oe.key==="Escape";qv({id:e,store:$,unselect:le,nodeRef:P})}else if(L&&j.selected&&Object.prototype.hasOwnProperty.call(Tm,oe.key)){oe.preventDefault();const{ariaLabelConfig:le}=$.getState();$.setState({ariaLiveMessage:le["node.a11yDescription.ariaLiveMessage"]({direction:oe.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),V({direction:Tm[oe.key],factor:oe.shiftKey?4:1})}}},te=()=>{if(v||!P.current?.matches(":focus-visible"))return;const{transform:oe,width:le,height:he,autoPanOnNodeFocus:Te,setCenter:be}=$.getState();if(!Te)return;eb(new Map([[e,j]]),{x:0,y:0,width:le,height:he},oe,!0).length>0||be(j.position.x+Y.width/2,j.position.y+Y.height/2,{zoom:oe[2]})};return u.jsx("div",{className:pi(["react-flow__node",`react-flow__node-${T}`,{[x]:L},j.className,{selected:j.selected,selectable:A,parent:z,draggable:L,dragging:F}]),ref:P,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:Z?"all":"none",visibility:G?"visible":"hidden",...j.style,...U},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:W,onMouseMove:q,onMouseLeave:Q,onContextMenu:D,onClick:ne,onDoubleClick:K,onKeyDown:I?ee:void 0,tabIndex:I?0:void 0,onFocus:I?te:void 0,role:j.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${TR}-${b}`,"aria-label":j.ariaLabel,...j.domAttributes,children:u.jsx(JK,{value:e,children:u.jsx(M,{id:e,data:j.data,type:T,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:j.selected??!1,selectable:A,draggable:L,deletable:j.deletable??!0,isConnectable:O,sourcePosition:j.sourcePosition,targetPosition:j.targetPosition,dragging:F,dragHandle:j.dragHandle,zIndex:N.z,parentId:j.parentId,...Y})})})}var xZ=C.memo(yZ);const vZ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function HR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:i,elementsSelectable:r,onError:o}=on(vZ,Hn),a=mZ(e.onlyRenderVisibleElements),c=hZ();return u.jsx("div",{className:"react-flow__nodes",style:pp,children:a.map(d=>u.jsx(xZ,{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:i,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}HR.displayName="NodeRenderer";const bZ=C.memo(HR);function _Z(e){return on(C.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const i=[];if(n.width&&n.height)for(const r of n.edges){const o=n.nodeLookup.get(r.source),a=n.nodeLookup.get(r.target);o&&a&&vX({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&i.push(r.id)}return i},[e]),Hn)}const kZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return u.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},SZ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return u.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Yj={[Em.Arrow]:kZ,[Em.ArrowClosed]:SZ};function wZ(e){const t=Fn();return C.useMemo(()=>Object.prototype.hasOwnProperty.call(Yj,e)?Yj[e]:(t.getState().onError?.("009",us.error009(e)),null),[e])}const CZ=({id:e,type:t,color:n,width:i=12.5,height:r=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:c="auto-start-reverse"})=>{const d=wZ(t);return d?u.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:c,refX:"0",refY:"0",children:u.jsx(d,{color:n,strokeWidth:a})}):null},FR=({defaultColor:e,rfId:t})=>{const n=on(o=>o.edges),i=on(o=>o.defaultEdgeOptions),r=C.useMemo(()=>EX(n,{id:t,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd}),[n,i,t,e]);return r.length?u.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:u.jsx("defs",{children:r.map(o=>u.jsx(CZ,{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};FR.displayName="MarkerDefinitions";var jZ=C.memo(FR);function VR({x:e,y:t,label:n,labelStyle:i,labelShowBg:r=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:c=2,children:d,className:m,...h}){const[p,g]=C.useState({x:1,y:0,width:0,height:0}),x=pi(["react-flow__edge-textwrapper",m]),v=C.useRef(null);return C.useEffect(()=>{if(v.current){const b=v.current.getBBox();g({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?u.jsxs("g",{transform:`translate(${e-p.width/2} ${t-p.height/2})`,className:x,visibility:p.width?"visible":"hidden",...h,children:[r&&u.jsx("rect",{width:p.width+2*a[0],x:-a[0],y:-a[1],height:p.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:c,ry:c}),u.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:v,style:i,children:n}),d]}):null}VR.displayName="EdgeText";const EZ=C.memo(VR);function hp({path:e,labelX:t,labelY:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d,interactionWidth:m=20,...h}){return u.jsxs(u.Fragment,{children:[u.jsx("path",{...h,d:e,fill:"none",className:pi(["react-flow__edge-path",h.className])}),m?u.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,i&&Fr(t)&&Fr(n)?u.jsx(EZ,{x:t,y:n,label:i,labelStyle:r,labelShowBg:o,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:d}):null]})}function Xj({pos:e,x1:t,y1:n,x2:i,y2:r}){return e===at.Left||e===at.Right?[.5*(t+i),n]:[t,.5*(n+r)]}function UR({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:i,targetY:r,targetPosition:o=at.Top}){const[a,c]=Xj({pos:n,x1:e,y1:t,x2:i,y2:r}),[d,m]=Xj({pos:o,x1:i,y1:r,x2:e,y2:t}),[h,p,g,x]=mR({sourceX:e,sourceY:t,targetX:i,targetY:r,sourceControlX:a,sourceControlY:c,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${c} ${d},${m} ${i},${r}`,h,p,g,x]}function qR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a,targetPosition:c,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:w})=>{const[k,j,N]=UR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c}),z=e.isInternal?void 0:t;return u.jsx(hp,{id:z,path:k,labelX:j,labelY:N,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:w})})}const NZ=qR({isInternal:!1}),GR=qR({isInternal:!0});NZ.displayName="SimpleBezierEdge";GR.displayName="SimpleBezierEdgeInternal";function WR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,sourcePosition:x=at.Bottom,targetPosition:v=at.Top,markerEnd:b,markerStart:S,pathOptions:w,interactionWidth:k})=>{const[j,N,z]=$v({sourceX:n,sourceY:i,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:w?.borderRadius,offset:w?.offset,stepPosition:w?.stepPosition}),T=e.isInternal?void 0:t;return u.jsx(hp,{id:T,path:j,labelX:N,labelY:z,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:S,interactionWidth:k})})}const YR=WR({isInternal:!1}),XR=WR({isInternal:!0});YR.displayName="SmoothStepEdge";XR.displayName="SmoothStepEdgeInternal";function KR(e){return C.memo(({id:t,...n})=>{const i=e.isInternal?void 0:t;return u.jsx(YR,{...n,id:i,pathOptions:C.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const IZ=KR({isInternal:!1}),ZR=KR({isInternal:!0});IZ.displayName="StepEdge";ZR.displayName="StepEdgeInternal";function QR(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})=>{const[S,w,k]=gR({sourceX:n,sourceY:i,targetX:r,targetY:o}),j=e.isInternal?void 0:t;return u.jsx(hp,{id:j,path:S,labelX:w,labelY:k,label:a,labelStyle:c,labelShowBg:d,labelBgStyle:m,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:b})})}const TZ=QR({isInternal:!1}),JR=QR({isInternal:!0});TZ.displayName="StraightEdge";JR.displayName="StraightEdgeInternal";function eA(e){return C.memo(({id:t,sourceX:n,sourceY:i,targetX:r,targetY:o,sourcePosition:a=at.Bottom,targetPosition:c=at.Top,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,pathOptions:w,interactionWidth:k})=>{const[j,N,z]=pR({sourceX:n,sourceY:i,sourcePosition:a,targetX:r,targetY:o,targetPosition:c,curvature:w?.curvature}),T=e.isInternal?void 0:t;return u.jsx(hp,{id:T,path:j,labelX:N,labelY:z,label:d,labelStyle:m,labelShowBg:h,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:k})})}const RZ=eA({isInternal:!1}),tA=eA({isInternal:!0});RZ.displayName="BezierEdge";tA.displayName="BezierEdgeInternal";const Kj={default:tA,straight:JR,step:ZR,smoothstep:XR,simplebezier:GR},Zj={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},AZ=(e,t,n)=>n===at.Left?e-t:n===at.Right?e+t:e,MZ=(e,t,n)=>n===at.Top?e-t:n===at.Bottom?e+t:e,Qj="react-flow__edgeupdater";function Jj({position:e,centerX:t,centerY:n,radius:i=10,onMouseDown:r,onMouseEnter:o,onMouseOut:a,type:c}){return u.jsx("circle",{onMouseDown:r,onMouseEnter:o,onMouseOut:a,className:pi([Qj,`${Qj}-${c}`]),cx:AZ(t,i,e),cy:MZ(n,i,e),r:i,stroke:"transparent",fill:"transparent"})}function DZ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:i,sourceY:r,targetX:o,targetY:a,sourcePosition:c,targetPosition:d,onReconnect:m,onReconnectStart:h,onReconnectEnd:p,setReconnecting:g,setUpdateHover:x}){const v=Fn(),b=(N,z)=>{if(N.button!==0)return;const{autoPanOnConnect:T,domNode:M,connectionMode:L,connectionRadius:A,lib:O,onConnectStart:I,cancelConnection:$,nodeLookup:G,rfId:P,panBy:F,updateConnection:V}=v.getState(),Y=z.type==="target",U=(q,Q)=>{g(!1),p?.(q,n,z.type,Q)},Z=q=>m?.(n,q),W=(q,Q)=>{g(!0),h?.(N,n,z.type),I?.(q,Q)};Vv.onPointerDown(N.nativeEvent,{autoPanOnConnect:T,connectionMode:L,connectionRadius:A,domNode:M,handleId:z.id,nodeId:z.nodeId,nodeLookup:G,isTarget:Y,edgeUpdaterType:z.type,lib:O,flowId:P,cancelConnection:$,panBy:F,isValidConnection:(...q)=>v.getState().isValidConnection?.(...q)??!0,onConnect:Z,onConnectStart:W,onConnectEnd:(...q)=>v.getState().onConnectEnd?.(...q),onReconnectEnd:U,updateConnection:V,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},S=N=>b(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),w=N=>b(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),k=()=>x(!0),j=()=>x(!1);return u.jsxs(u.Fragment,{children:[(e===!0||e==="source")&&u.jsx(Jj,{position:c,centerX:i,centerY:r,radius:t,onMouseDown:S,onMouseEnter:k,onMouseOut:j,type:"source"}),(e===!0||e==="target")&&u.jsx(Jj,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:w,onMouseEnter:k,onMouseOut:j,type:"target"})]})}function OZ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:i,onClick:r,onDoubleClick:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,rfId:v,edgeTypes:b,noPanClassName:S,onError:w,disableKeyboardA11y:k}){let j=on(be=>be.edgeLookup.get(e));const N=on(be=>be.defaultEdgeOptions);j=N?{...N,...j}:j;let z=j.type||"default",T=b?.[z]||Kj[z];T===void 0&&(w?.("011",us.error011(z)),z="default",T=b?.default||Kj.default);const M=!!(j.focusable||t&&typeof j.focusable>"u"),L=typeof p<"u"&&(j.reconnectable||n&&typeof j.reconnectable>"u"),A=!!(j.selectable||i&&typeof j.selectable>"u"),O=C.useRef(null),[I,$]=C.useState(!1),[G,P]=C.useState(!1),F=Fn(),{zIndex:V,sourceX:Y,sourceY:U,targetX:Z,targetY:W,sourcePosition:q,targetPosition:Q}=on(C.useCallback(be=>{const je=be.nodeLookup.get(j.source),Ve=be.nodeLookup.get(j.target);if(!je||!Ve)return{zIndex:j.zIndex,...Zj};const Ye=jX({id:e,sourceNode:je,targetNode:Ve,sourceHandle:j.sourceHandle||null,targetHandle:j.targetHandle||null,connectionMode:be.connectionMode,onError:w});return{zIndex:xX({selected:j.selected,zIndex:j.zIndex,sourceNode:je,targetNode:Ve,elevateOnSelect:be.elevateEdgesOnSelect,zIndexMode:be.zIndexMode}),...Ye||Zj}},[j.source,j.target,j.sourceHandle,j.targetHandle,j.selected,j.zIndex]),Hn),D=C.useMemo(()=>j.markerStart?`url('#${Hv(j.markerStart,v)}')`:void 0,[j.markerStart,v]),K=C.useMemo(()=>j.markerEnd?`url('#${Hv(j.markerEnd,v)}')`:void 0,[j.markerEnd,v]);if(j.hidden||Y===null||U===null||Z===null||W===null)return null;const ne=be=>{const{addSelectedEdges:je,unselectNodesAndEdges:Ve,multiSelectionActive:Ye}=F.getState();A&&(F.setState({nodesSelectionActive:!1}),j.selected&&Ye?(Ve({nodes:[],edges:[j]}),O.current?.blur()):je([e])),r&&r(be,j)},ee=o?be=>{o(be,{...j})}:void 0,te=a?be=>{a(be,{...j})}:void 0,oe=c?be=>{c(be,{...j})}:void 0,le=d?be=>{d(be,{...j})}:void 0,he=m?be=>{m(be,{...j})}:void 0,Te=be=>{if(!k&&JT.includes(be.key)&&A){const{unselectNodesAndEdges:je,addSelectedEdges:Ve}=F.getState();be.key==="Escape"?(O.current?.blur(),je({edges:[j]})):Ve([e])}};return u.jsx("svg",{style:{zIndex:V},children:u.jsxs("g",{className:pi(["react-flow__edge",`react-flow__edge-${z}`,j.className,S,{selected:j.selected,animated:j.animated,inactive:!A&&!r,updating:I,selectable:A}]),onClick:ne,onDoubleClick:ee,onContextMenu:te,onMouseEnter:oe,onMouseMove:le,onMouseLeave:he,onKeyDown:M?Te:void 0,tabIndex:M?0:void 0,role:j.ariaRole??(M?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":j.ariaLabel===null?void 0:j.ariaLabel||`Edge from ${j.source} to ${j.target}`,"aria-describedby":M?`${RR}-${v}`:void 0,ref:O,...j.domAttributes,children:[!G&&u.jsx(T,{id:e,source:j.source,target:j.target,type:j.type,selected:j.selected,animated:j.animated,selectable:A,deletable:j.deletable??!0,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,sourceX:Y,sourceY:U,targetX:Z,targetY:W,sourcePosition:q,targetPosition:Q,data:j.data,style:j.style,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerStart:D,markerEnd:K,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth}),L&&u.jsx(DZ,{edge:j,isReconnectable:L,reconnectRadius:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:x,sourceX:Y,sourceY:U,targetX:Z,targetY:W,sourcePosition:q,targetPosition:Q,setUpdateHover:$,setReconnecting:P})]})})}var LZ=C.memo(OZ);const zZ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function nA({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:i,noPanClassName:r,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:c,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:h,reconnectRadius:p,onEdgeDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,disableKeyboardA11y:b}){const{edgesFocusable:S,edgesReconnectable:w,elementsSelectable:k,onError:j}=on(zZ,Hn),N=_Z(t);return u.jsxs("div",{className:"react-flow__edges",children:[u.jsx(jZ,{defaultColor:e,rfId:n}),N.map(z=>u.jsx(LZ,{id:z,edgesFocusable:S,edgesReconnectable:w,elementsSelectable:k,noPanClassName:r,onReconnect:o,onContextMenu:a,onMouseEnter:c,onMouseMove:d,onMouseLeave:m,onClick:h,reconnectRadius:p,onDoubleClick:g,onReconnectStart:x,onReconnectEnd:v,rfId:n,onError:j,edgeTypes:i,disableKeyboardA11y:b},z))]})}nA.displayName="EdgeRenderer";const PZ=C.memo(nA),BZ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function $Z({children:e}){const t=on(BZ);return u.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function HZ(e){const t=lb(),n=C.useRef(!1);C.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const FZ=e=>e.panZoom?.syncViewport;function VZ(e){const t=on(FZ),n=Fn();return C.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function UZ(e){return e.connection.inProgress?{...e.connection,to:ed(e.connection.to,e.transform)}:{...e.connection}}function qZ(e){return UZ}function GZ(e){const t=qZ();return on(t,Hn)}const WZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function YZ({containerStyle:e,style:t,type:n,component:i}){const{nodesConnectable:r,width:o,height:a,isValid:c,inProgress:d}=on(WZ,Hn);return!(o&&r&&d)?null:u.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:u.jsx("g",{className:pi(["react-flow__connection",nR(c)]),children:u.jsx(iA,{style:t,type:n,CustomComponent:i,isValid:c})})})}const iA=({style:e,type:t=bo.Bezier,CustomComponent:n,isValid:i})=>{const{inProgress:r,from:o,fromNode:a,fromHandle:c,fromPosition:d,to:m,toNode:h,toHandle:p,toPosition:g,pointer:x}=GZ();if(!r)return;if(n)return u.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:c,fromX:o.x,fromY:o.y,toX:m.x,toY:m.y,fromPosition:d,toPosition:g,connectionStatus:nR(i),toNode:h,toHandle:p,pointer:x});let v="";const b={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case bo.Bezier:[v]=pR(b);break;case bo.SimpleBezier:[v]=UR(b);break;case bo.Step:[v]=$v({...b,borderRadius:0});break;case bo.SmoothStep:[v]=$v(b);break;default:[v]=gR(b)}return u.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};iA.displayName="ConnectionLine";const XZ={};function e2(e=XZ){C.useRef(e),Fn(),C.useEffect(()=>{},[e])}function KZ(){Fn(),C.useRef(!1),C.useEffect(()=>{},[])}function rA({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:i,onEdgeClick:r,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:g,onSelectionEnd:x,connectionLineType:v,connectionLineStyle:b,connectionLineComponent:S,connectionLineContainerStyle:w,selectionKeyCode:k,selectionOnDrag:j,selectionMode:N,multiSelectionKeyCode:z,panActivationKeyCode:T,zoomActivationKeyCode:M,deleteKeyCode:L,onlyRenderVisibleElements:A,elementsSelectable:O,defaultViewport:I,translateExtent:$,minZoom:G,maxZoom:P,preventScrolling:F,defaultMarkerColor:V,zoomOnScroll:Y,zoomOnPinch:U,panOnScroll:Z,panOnScrollSpeed:W,panOnScrollMode:q,zoomOnDoubleClick:Q,panOnDrag:D,onPaneClick:K,onPaneMouseEnter:ne,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneScroll:oe,onPaneContextMenu:le,paneClickDistance:he,nodeClickDistance:Te,onEdgeContextMenu:be,onEdgeMouseEnter:je,onEdgeMouseMove:Ve,onEdgeMouseLeave:Ye,reconnectRadius:$e,onReconnect:ct,onReconnectStart:It,onReconnectEnd:yt,noDragClassName:Vt,noWheelClassName:ge,noPanClassName:me,disableKeyboardA11y:Ge,nodeExtent:Ke,rfId:pt,viewport:ce,onViewportChange:Ce}){return e2(e),e2(t),KZ(),HZ(n),VZ(ce),u.jsx(dZ,{onPaneClick:K,onPaneMouseEnter:ne,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneContextMenu:le,onPaneScroll:oe,paneClickDistance:he,deleteKeyCode:L,selectionKeyCode:k,selectionOnDrag:j,selectionMode:N,onSelectionStart:g,onSelectionEnd:x,multiSelectionKeyCode:z,panActivationKeyCode:T,zoomActivationKeyCode:M,elementsSelectable:O,zoomOnScroll:Y,zoomOnPinch:U,zoomOnDoubleClick:Q,panOnScroll:Z,panOnScrollSpeed:W,panOnScrollMode:q,panOnDrag:D,defaultViewport:I,translateExtent:$,minZoom:G,maxZoom:P,onSelectionContextMenu:p,preventScrolling:F,noDragClassName:Vt,noWheelClassName:ge,noPanClassName:me,disableKeyboardA11y:Ge,onViewportChange:Ce,isControlledViewport:!!ce,children:u.jsxs($Z,{children:[u.jsx(PZ,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:ct,onReconnectStart:It,onReconnectEnd:yt,onlyRenderVisibleElements:A,onEdgeContextMenu:be,onEdgeMouseEnter:je,onEdgeMouseMove:Ve,onEdgeMouseLeave:Ye,reconnectRadius:$e,defaultMarkerColor:V,noPanClassName:me,disableKeyboardA11y:Ge,rfId:pt}),u.jsx(YZ,{style:b,type:v,component:S,containerStyle:w}),u.jsx("div",{className:"react-flow__edgelabel-renderer"}),u.jsx(bZ,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:o,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:h,nodeClickDistance:Te,onlyRenderVisibleElements:A,noPanClassName:me,noDragClassName:Vt,disableKeyboardA11y:Ge,nodeExtent:Ke,rfId:pt}),u.jsx("div",{className:"react-flow__viewport-portal"})]})})}rA.displayName="GraphView";const ZZ=C.memo(rA),t2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d=.5,maxZoom:m=2,nodeOrigin:h,nodeExtent:p,zIndexMode:g="basic"}={})=>{const x=new Map,v=new Map,b=new Map,S=new Map,w=i??t??[],k=n??e??[],j=h??[0,0],N=p??Pu;vR(b,S,w);const{nodesInitialized:z}=Fv(k,x,v,{nodeOrigin:j,nodeExtent:N,zIndexMode:g});let T=[0,0,1];if(a&&r&&o){const M=Qu(x,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:L,y:A,zoom:O}=tb(M,r,o,d,m,c?.padding??.1);T=[L,A,O]}return{rfId:"1",width:r??0,height:o??0,transform:T,nodes:k,nodesInitialized:z,nodeLookup:x,parentLookup:v,edges:w,edgeLookup:S,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:i!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:Pu,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Dl.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:j,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:a??!1,fitViewOptions:c,fitViewResolver:null,connection:{...tR},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:fX,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:eR,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},QZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g})=>gK((x,v)=>{async function b(){const{nodeLookup:S,panZoom:w,fitViewOptions:k,fitViewResolver:j,width:N,height:z,minZoom:T,maxZoom:M}=v();w&&(await uX({nodes:S,width:N,height:z,panZoom:w,minZoom:T,maxZoom:M},k),j?.resolve(!0),x({fitViewResolver:null}))}return{...t2({nodes:e,edges:t,width:r,height:o,fitView:a,fitViewOptions:c,minZoom:d,maxZoom:m,nodeOrigin:h,nodeExtent:p,defaultNodes:n,defaultEdges:i,zIndexMode:g}),setNodes:S=>{const{nodeLookup:w,parentLookup:k,nodeOrigin:j,elevateNodesOnSelect:N,fitViewQueued:z,zIndexMode:T,nodesSelectionActive:M}=v(),{nodesInitialized:L,hasSelectedNodes:A}=Fv(S,w,k,{nodeOrigin:j,nodeExtent:p,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:T}),O=M&&A;z&&L?(b(),x({nodes:S,nodesInitialized:L,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:O})):x({nodes:S,nodesInitialized:L,nodesSelectionActive:O})},setEdges:S=>{const{connectionLookup:w,edgeLookup:k}=v();vR(w,k,S),x({edges:S})},setDefaultNodesAndEdges:(S,w)=>{if(S){const{setNodes:k}=v();k(S),x({hasDefaultNodes:!0})}if(w){const{setEdges:k}=v();k(w),x({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:w,nodeLookup:k,parentLookup:j,domNode:N,nodeOrigin:z,nodeExtent:T,debug:M,fitViewQueued:L,zIndexMode:A}=v(),{changes:O,updatedInternals:I}=DX(S,k,j,N,z,T,A);I&&(TX(k,j,{nodeOrigin:z,nodeExtent:T,zIndexMode:A}),L?(b(),x({fitViewQueued:!1,fitViewOptions:void 0})):x({}),O?.length>0&&(M&&console.log("React Flow: trigger node changes",O),w?.(O)))},updateNodePositions:(S,w=!1)=>{const k=[];let j=[];const{nodeLookup:N,triggerNodeChanges:z,connection:T,updateConnection:M,onNodesChangeMiddlewareMap:L}=v();for(const[A,O]of S){const I=N.get(A),$=!!(I?.expandParent&&I?.parentId&&O?.position),G={id:A,type:"position",position:$?{x:Math.max(0,O.position.x),y:Math.max(0,O.position.y)}:O.position,dragging:w};if(I&&T.inProgress&&T.fromNode.id===I.id){const P=ma(I,T.fromHandle,at.Left,!0);M({...T,from:P})}$&&I.parentId&&k.push({id:A,parentId:I.parentId,rect:{...O.internals.positionAbsolute,width:O.measured.width??0,height:O.measured.height??0}}),j.push(G)}if(k.length>0){const{parentLookup:A,nodeOrigin:O}=v(),I=ab(k,N,A,O);j.push(...I)}for(const A of L.values())j=A(j);z(j)},triggerNodeChanges:S=>{const{onNodesChange:w,setNodes:k,nodes:j,hasDefaultNodes:N,debug:z}=v();if(S?.length){if(N){const T=DR(S,j);k(T)}z&&console.log("React Flow: trigger node changes",S),w?.(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:w,setEdges:k,edges:j,hasDefaultEdges:N,debug:z}=v();if(S?.length){if(N){const T=zK(S,j);k(T)}z&&console.log("React Flow: trigger edge changes",S),w?.(S)}},addSelectedNodes:S=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:z}=v();if(w){const T=S.map(M=>ta(M,!0));N(T);return}N(dl(j,new Set([...S]),!0)),z(dl(k))},addSelectedEdges:S=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:j,triggerNodeChanges:N,triggerEdgeChanges:z}=v();if(w){const T=S.map(M=>ta(M,!0));z(T);return}z(dl(k,new Set([...S]))),N(dl(j,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:w}={})=>{const{edges:k,nodes:j,nodeLookup:N,triggerNodeChanges:z,triggerEdgeChanges:T}=v(),M=S||j,L=w||k,A=[];for(const I of M){if(!I.selected)continue;const $=N.get(I.id);$&&($.selected=!1),A.push(ta(I.id,!1))}const O=[];for(const I of L)I.selected&&O.push(ta(I.id,!1));z(A),T(O)},setMinZoom:S=>{const{panZoom:w,maxZoom:k}=v();w?.setScaleExtent([S,k]),x({minZoom:S})},setMaxZoom:S=>{const{panZoom:w,minZoom:k}=v();w?.setScaleExtent([k,S]),x({maxZoom:S})},setTranslateExtent:S=>{v().panZoom?.setTranslateExtent(S),x({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:w,triggerNodeChanges:k,triggerEdgeChanges:j,elementsSelectable:N}=v();if(!N)return;const z=w.reduce((M,L)=>L.selected?[...M,ta(L.id,!1)]:M,[]),T=S.reduce((M,L)=>L.selected?[...M,ta(L.id,!1)]:M,[]);k(z),j(T)},setNodeExtent:S=>{const{nodes:w,nodeLookup:k,parentLookup:j,nodeOrigin:N,elevateNodesOnSelect:z,nodeExtent:T,zIndexMode:M}=v();S[0][0]===T[0][0]&&S[0][1]===T[0][1]&&S[1][0]===T[1][0]&&S[1][1]===T[1][1]||(Fv(w,k,j,{nodeOrigin:N,nodeExtent:S,elevateNodesOnSelect:z,checkEquality:!1,zIndexMode:M}),x({nodeExtent:S}))},panBy:S=>{const{transform:w,width:k,height:j,panZoom:N,translateExtent:z}=v();return OX({delta:S,panZoom:N,transform:w,translateExtent:z,width:k,height:j})},setCenter:async(S,w,k)=>{const{width:j,height:N,maxZoom:z,panZoom:T}=v();if(!T)return Promise.resolve(!1);const M=typeof k?.zoom<"u"?k.zoom:z;return await T.setViewport({x:j/2-S*M,y:N/2-w*M,zoom:M},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{x({connection:{...tR}})},updateConnection:S=>{x({connection:S})},reset:()=>x({...t2()})}},Object.is);function sA({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:i,initialWidth:r,initialHeight:o,initialMinZoom:a,initialMaxZoom:c,initialFitViewOptions:d,fitView:m,nodeOrigin:h,nodeExtent:p,zIndexMode:g,children:x}){const[v]=C.useState(()=>QZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,width:r,height:o,fitView:m,minZoom:a,maxZoom:c,fitViewOptions:d,nodeOrigin:h,nodeExtent:p,zIndexMode:g}));return u.jsx(yK,{value:v,children:u.jsx($K,{children:x})})}function JZ({children:e,nodes:t,edges:n,defaultNodes:i,defaultEdges:r,width:o,height:a,fitView:c,fitViewOptions:d,minZoom:m,maxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x}){return C.useContext(fp)?u.jsx(u.Fragment,{children:e}):u.jsx(sA,{initialNodes:t,initialEdges:n,defaultNodes:i,defaultEdges:r,initialWidth:o,initialHeight:a,fitView:c,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:h,nodeOrigin:p,nodeExtent:g,zIndexMode:x,children:e})}const eQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function tQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:i,className:r,nodeTypes:o,edgeTypes:a,onNodeClick:c,onEdgeClick:d,onInit:m,onMove:h,onMoveStart:p,onMoveEnd:g,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:S,onClickConnectEnd:w,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:z,onNodeDoubleClick:T,onNodeDragStart:M,onNodeDrag:L,onNodeDragStop:A,onNodesDelete:O,onEdgesDelete:I,onDelete:$,onSelectionChange:G,onSelectionDragStart:P,onSelectionDrag:F,onSelectionDragStop:V,onSelectionContextMenu:Y,onSelectionStart:U,onSelectionEnd:Z,onBeforeDelete:W,connectionMode:q,connectionLineType:Q=bo.Bezier,connectionLineStyle:D,connectionLineComponent:K,connectionLineContainerStyle:ne,deleteKeyCode:ee="Backspace",selectionKeyCode:te="Shift",selectionOnDrag:oe=!1,selectionMode:le=Bu.Full,panActivationKeyCode:he="Space",multiSelectionKeyCode:Te=Hu()?"Meta":"Control",zoomActivationKeyCode:be=Hu()?"Meta":"Control",snapToGrid:je,snapGrid:Ve,onlyRenderVisibleElements:Ye=!1,selectNodesOnDrag:$e,nodesDraggable:ct,autoPanOnNodeFocus:It,nodesConnectable:yt,nodesFocusable:Vt,nodeOrigin:ge=AR,edgesFocusable:me,edgesReconnectable:Ge,elementsSelectable:Ke=!0,defaultViewport:pt=TK,minZoom:ce=.5,maxZoom:Ce=2,translateExtent:Le=Pu,preventScrolling:Fe=!0,nodeExtent:Qe,defaultMarkerColor:wt="#b1b1b7",zoomOnScroll:Ct=!0,zoomOnPinch:dt=!0,panOnScroll:_e=!1,panOnScrollSpeed:et=.5,panOnScrollMode:Ze=oa.Free,zoomOnDoubleClick:it=!0,panOnDrag:De=!0,onPaneClick:Pt,onPaneMouseEnter:ri,onPaneMouseMove:Bt,onPaneMouseLeave:Dt,onPaneScroll:Cn,onPaneContextMenu:Tt,paneClickDistance:$t=1,nodeClickDistance:Mn=0,children:xt,onReconnect:Jn,onReconnectStart:Nn,onReconnectEnd:tt,onEdgeContextMenu:an,onEdgeDoubleClick:Vn,onEdgeMouseEnter:mn,onEdgeMouseMove:ht,onEdgeMouseLeave:ut,reconnectRadius:hi=10,onNodesChange:Dn,onEdgesChange:en,noDragClassName:Ht="nodrag",noWheelClassName:Ft="nowheel",noPanClassName:Un="nopan",fitView:Ae,fitViewOptions:Et,connectOnClick:ln,attributionPosition:gi,proOptions:xn,defaultEdgeOptions:vt,elevateNodesOnSelect:Ei=!0,elevateEdgesOnSelect:yi=!1,disableKeyboardA11y:ei=!1,autoPanOnConnect:pn,autoPanOnNodeDrag:Xt,autoPanSpeed:qt,connectionRadius:Kt,isValidConnection:In,onError:On,style:ti,id:ki,nodeDragThreshold:cn,connectionDragThreshold:Ln,viewport:zn,onViewportChange:Gn,width:Xe,height:Pn,colorMode:qn="light",debug:vn,onScroll:pe,ariaLabelConfig:ke,zIndexMode:Me="basic",...bt},Rt){const ue=ki||"1",we=DK(qn),Oe=C.useCallback(Ue=>{Ue.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),pe?.(Ue)},[pe]);return u.jsx("div",{"data-testid":"rf__wrapper",...bt,onScroll:Oe,style:{...ti,...eQ},ref:Rt,className:pi(["react-flow",r,we]),id:ki,role:"application",children:u.jsxs(JZ,{nodes:e,edges:t,width:Xe,height:Pn,fitView:Ae,fitViewOptions:Et,minZoom:ce,maxZoom:Ce,nodeOrigin:ge,nodeExtent:Qe,zIndexMode:Me,children:[u.jsx(MK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:i,onConnect:x,onConnectStart:v,onConnectEnd:b,onClickConnectStart:S,onClickConnectEnd:w,nodesDraggable:ct,autoPanOnNodeFocus:It,nodesConnectable:yt,nodesFocusable:Vt,edgesFocusable:me,edgesReconnectable:Ge,elementsSelectable:Ke,elevateNodesOnSelect:Ei,elevateEdgesOnSelect:yi,minZoom:ce,maxZoom:Ce,nodeExtent:Qe,onNodesChange:Dn,onEdgesChange:en,snapToGrid:je,snapGrid:Ve,connectionMode:q,translateExtent:Le,connectOnClick:ln,defaultEdgeOptions:vt,fitView:Ae,fitViewOptions:Et,onNodesDelete:O,onEdgesDelete:I,onDelete:$,onNodeDragStart:M,onNodeDrag:L,onNodeDragStop:A,onSelectionDrag:F,onSelectionDragStart:P,onSelectionDragStop:V,onMove:h,onMoveStart:p,onMoveEnd:g,noPanClassName:Un,nodeOrigin:ge,rfId:ue,autoPanOnConnect:pn,autoPanOnNodeDrag:Xt,autoPanSpeed:qt,onError:On,connectionRadius:Kt,isValidConnection:In,selectNodesOnDrag:$e,nodeDragThreshold:cn,connectionDragThreshold:Ln,onBeforeDelete:W,debug:vn,ariaLabelConfig:ke,zIndexMode:Me}),u.jsx(ZZ,{onInit:m,onNodeClick:c,onEdgeClick:d,onNodeMouseEnter:k,onNodeMouseMove:j,onNodeMouseLeave:N,onNodeContextMenu:z,onNodeDoubleClick:T,nodeTypes:o,edgeTypes:a,connectionLineType:Q,connectionLineStyle:D,connectionLineComponent:K,connectionLineContainerStyle:ne,selectionKeyCode:te,selectionOnDrag:oe,selectionMode:le,deleteKeyCode:ee,multiSelectionKeyCode:Te,panActivationKeyCode:he,zoomActivationKeyCode:be,onlyRenderVisibleElements:Ye,defaultViewport:pt,translateExtent:Le,minZoom:ce,maxZoom:Ce,preventScrolling:Fe,zoomOnScroll:Ct,zoomOnPinch:dt,zoomOnDoubleClick:it,panOnScroll:_e,panOnScrollSpeed:et,panOnScrollMode:Ze,panOnDrag:De,onPaneClick:Pt,onPaneMouseEnter:ri,onPaneMouseMove:Bt,onPaneMouseLeave:Dt,onPaneScroll:Cn,onPaneContextMenu:Tt,paneClickDistance:$t,nodeClickDistance:Mn,onSelectionContextMenu:Y,onSelectionStart:U,onSelectionEnd:Z,onReconnect:Jn,onReconnectStart:Nn,onReconnectEnd:tt,onEdgeContextMenu:an,onEdgeDoubleClick:Vn,onEdgeMouseEnter:mn,onEdgeMouseMove:ht,onEdgeMouseLeave:ut,reconnectRadius:hi,defaultMarkerColor:wt,noDragClassName:Ht,noWheelClassName:Ft,noPanClassName:Un,rfId:ue,disableKeyboardA11y:ei,nodeExtent:Qe,viewport:zn,onViewportChange:Gn}),u.jsx(IK,{onSelectionChange:G}),xt,u.jsx(wK,{proOptions:xn,position:gi}),u.jsx(SK,{rfId:ue,disableKeyboardA11y:ei})]})})}var nQ=OR(tQ);function iQ({dimensions:e,lineWidth:t,variant:n,className:i}){return u.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:pi(["react-flow__background-pattern",n,i])})}function rQ({radius:e,className:t}){return u.jsx("circle",{cx:e,cy:e,r:e,className:pi(["react-flow__background-pattern","dots",t])})}var wo;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(wo||(wo={}));const sQ={[wo.Dots]:1,[wo.Lines]:1,[wo.Cross]:6},oQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function oA({id:e,variant:t=wo.Dots,gap:n=20,size:i,lineWidth:r=1,offset:o=0,color:a,bgColor:c,style:d,className:m,patternClassName:h}){const p=C.useRef(null),{transform:g,patternId:x}=on(oQ,Hn),v=i||sQ[t],b=t===wo.Dots,S=t===wo.Cross,w=Array.isArray(n)?n:[n,n],k=[w[0]*g[2]||1,w[1]*g[2]||1],j=v*g[2],N=Array.isArray(o)?o:[o,o],z=S?[j,j]:k,T=[N[0]*g[2]||1+z[0]/2,N[1]*g[2]||1+z[1]/2],M=`${x}${e||""}`;return u.jsxs("svg",{className:pi(["react-flow__background",m]),style:{...d,...pp,"--xy-background-color-props":c,"--xy-background-pattern-color-props":a},ref:p,"data-testid":"rf__background",children:[u.jsx("pattern",{id:M,x:g[0]%k[0],y:g[1]%k[1],width:k[0],height:k[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${T[0]},-${T[1]})`,children:b?u.jsx(rQ,{radius:j/2,className:h}):u.jsx(iQ,{dimensions:z,lineWidth:r,variant:t,className:h})}),u.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${M})`})]})}oA.displayName="Background";const aQ=C.memo(oA);function lQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:u.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function cQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:u.jsx("path",{d:"M0 0h32v4.2H0z"})})}function uQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:u.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 dQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.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 fQ(){return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:u.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 Mf({children:e,className:t,...n}){return u.jsx("button",{type:"button",className:pi(["react-flow__controls-button",t]),...n,children:e})}const mQ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function aA({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:i=!0,fitViewOptions:r,onZoomIn:o,onZoomOut:a,onFitView:c,onInteractiveChange:d,className:m,children:h,position:p="bottom-left",orientation:g="vertical","aria-label":x}){const v=Fn(),{isInteractive:b,minZoomReached:S,maxZoomReached:w,ariaLabelConfig:k}=on(mQ,Hn),{zoomIn:j,zoomOut:N,fitView:z}=lb(),T=()=>{j(),o?.()},M=()=>{N(),a?.()},L=()=>{z(r),c?.()},A=()=>{v.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),d?.(!b)},O=g==="horizontal"?"horizontal":"vertical";return u.jsxs(mp,{className:pi(["react-flow__controls",O,m]),position:p,style:e,"data-testid":"rf__controls","aria-label":x??k["controls.ariaLabel"],children:[t&&u.jsxs(u.Fragment,{children:[u.jsx(Mf,{onClick:T,className:"react-flow__controls-zoomin",title:k["controls.zoomIn.ariaLabel"],"aria-label":k["controls.zoomIn.ariaLabel"],disabled:w,children:u.jsx(lQ,{})}),u.jsx(Mf,{onClick:M,className:"react-flow__controls-zoomout",title:k["controls.zoomOut.ariaLabel"],"aria-label":k["controls.zoomOut.ariaLabel"],disabled:S,children:u.jsx(cQ,{})})]}),n&&u.jsx(Mf,{className:"react-flow__controls-fitview",onClick:L,title:k["controls.fitView.ariaLabel"],"aria-label":k["controls.fitView.ariaLabel"],children:u.jsx(uQ,{})}),i&&u.jsx(Mf,{className:"react-flow__controls-interactive",onClick:A,title:k["controls.interactive.ariaLabel"],"aria-label":k["controls.interactive.ariaLabel"],children:b?u.jsx(fQ,{}):u.jsx(dQ,{})}),h]})}aA.displayName="Controls";const pQ=C.memo(aA);function hQ({id:e,x:t,y:n,width:i,height:r,style:o,color:a,strokeColor:c,strokeWidth:d,className:m,borderRadius:h,shapeRendering:p,selected:g,onClick:x}){const{background:v,backgroundColor:b}=o||{},S=a||v||b;return u.jsx("rect",{className:pi(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:h,ry:h,width:i,height:r,style:{fill:S,stroke:c,strokeWidth:d},shapeRendering:p,onClick:x?w=>x(w,e):void 0})}const gQ=C.memo(hQ),yQ=e=>e.nodes.map(t=>t.id),Xy=e=>e instanceof Function?e:()=>e;function xQ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:i=5,nodeStrokeWidth:r,nodeComponent:o=gQ,onClick:a}){const c=on(yQ,Hn),d=Xy(t),m=Xy(e),h=Xy(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return u.jsx(u.Fragment,{children:c.map(g=>u.jsx(bQ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:h,nodeBorderRadius:i,nodeStrokeWidth:r,NodeComponent:o,onClick:a,shapeRendering:p},g))})}function vQ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:i,nodeBorderRadius:r,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:c,onClick:d}){const{node:m,x:h,y:p,width:g,height:x}=on(v=>{const b=v.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const S=b.internals.userNode,{x:w,y:k}=b.internals.positionAbsolute,{width:j,height:N}=$s(S);return{node:S,x:w,y:k,width:j,height:N}},Hn);return!m||m.hidden||!lR(m)?null:u.jsx(c,{x:h,y:p,width:g,height:x,style:m.style,selected:!!m.selected,className:i(m),color:t(m),borderRadius:r,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const bQ=C.memo(vQ);var _Q=C.memo(xQ);const kQ=200,SQ=150,wQ=e=>!e.hidden,CQ=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?aR(Qu(e.nodeLookup,{filter:wQ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},jQ="react-flow__minimap-desc";function lA({style:e,className:t,nodeStrokeColor:n,nodeColor:i,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:c,bgColor:d,maskColor:m,maskStrokeColor:h,maskStrokeWidth:p,position:g="bottom-right",onClick:x,onNodeClick:v,pannable:b=!1,zoomable:S=!1,ariaLabel:w,inversePan:k,zoomStep:j=1,offsetScale:N=5}){const z=Fn(),T=C.useRef(null),{boundingRect:M,viewBB:L,rfId:A,panZoom:O,translateExtent:I,flowWidth:$,flowHeight:G,ariaLabelConfig:P}=on(CQ,Hn),F=e?.width??kQ,V=e?.height??SQ,Y=M.width/F,U=M.height/V,Z=Math.max(Y,U),W=Z*F,q=Z*V,Q=N*Z,D=M.x-(W-M.width)/2-Q,K=M.y-(q-M.height)/2-Q,ne=W+Q*2,ee=q+Q*2,te=`${jQ}-${A}`,oe=C.useRef(0),le=C.useRef();oe.current=Z,C.useEffect(()=>{if(T.current&&O)return le.current=UX({domNode:T.current,panZoom:O,getTransform:()=>z.getState().transform,getViewScale:()=>oe.current}),()=>{le.current?.destroy()}},[O]),C.useEffect(()=>{le.current?.update({translateExtent:I,width:$,height:G,inversePan:k,pannable:b,zoomStep:j,zoomable:S})},[b,S,k,j,I,$,G]);const he=x?je=>{const[Ve,Ye]=le.current?.pointer(je)||[0,0];x(je,{x:Ve,y:Ye})}:void 0,Te=v?C.useCallback((je,Ve)=>{const Ye=z.getState().nodeLookup.get(Ve).internals.userNode;v(je,Ye)},[]):void 0,be=w??P["minimap.ariaLabel"];return u.jsx(mp,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof m=="string"?m:void 0,"--xy-minimap-mask-stroke-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*Z:void 0,"--xy-minimap-node-background-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:pi(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:u.jsxs("svg",{width:F,height:V,viewBox:`${D} ${K} ${ne} ${ee}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":te,ref:T,onClick:he,children:[be&&u.jsx("title",{id:te,children:be}),u.jsx(_Q,{onClick:Te,nodeColor:i,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:c}),u.jsx("path",{className:"react-flow__minimap-mask",d:`M${D-Q},${K-Q}h${ne+Q*2}v${ee+Q*2}h${-ne-Q*2}z - M${L.x},${L.y}h${L.width}v${L.height}h${-L.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}lA.displayName="MiniMap";const EQ=C.memo(lA),NQ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,IQ={[Pl.Line]:"right",[Pl.Handle]:"bottom-right"};function TQ({nodeId:e,position:t,variant:n=Pl.Handle,className:i,style:r=void 0,children:o,color:a,minWidth:c=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:g,autoScale:x=!0,shouldResize:v,onResizeStart:b,onResize:S,onResizeEnd:w}){const k=BR(),j=typeof e=="string"?e:k,N=Fn(),z=C.useRef(null),T=n===Pl.Handle,M=on(C.useCallback(NQ(T&&x),[T,x]),Hn),L=C.useRef(null),A=t??IQ[n];C.useEffect(()=>{if(!(!z.current||!j))return L.current||(L.current=rK({domNode:z.current,nodeId:j,getStoreItems:()=>{const{nodeLookup:I,transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F,domNode:V}=N.getState();return{nodeLookup:I,transform:$,snapGrid:G,snapToGrid:P,nodeOrigin:F,paneDomNode:V}},onChange:(I,$)=>{const{triggerNodeChanges:G,nodeLookup:P,parentLookup:F,nodeOrigin:V}=N.getState(),Y=[],U={x:I.x,y:I.y},Z=P.get(j);if(Z&&Z.expandParent&&Z.parentId){const W=Z.origin??V,q=I.width??Z.measured.width??0,Q=I.height??Z.measured.height??0,D={id:Z.id,parentId:Z.parentId,rect:{width:q,height:Q,...cR({x:I.x??Z.position.x,y:I.y??Z.position.y},{width:q,height:Q},Z.parentId,P,W)}},K=ab([D],P,F,V);Y.push(...K),U.x=I.x?Math.max(W[0]*q,I.x):void 0,U.y=I.y?Math.max(W[1]*Q,I.y):void 0}if(U.x!==void 0&&U.y!==void 0){const W={id:j,type:"position",position:{...U}};Y.push(W)}if(I.width!==void 0&&I.height!==void 0){const q={id:j,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};Y.push(q)}for(const W of $){const q={...W,type:"position"};Y.push(q)}G(Y)},onEnd:({width:I,height:$})=>{const G={id:j,type:"dimensions",resizing:!1,dimensions:{width:I,height:$}};N.getState().triggerNodeChanges([G])}})),L.current.update({controlPosition:A,boundaries:{minWidth:c,minHeight:d,maxWidth:m,maxHeight:h},keepAspectRatio:p,resizeDirection:g,onResizeStart:b,onResize:S,onResizeEnd:w,shouldResize:v}),()=>{L.current?.destroy()}},[A,c,d,m,h,p,b,S,w,v]);const O=A.split("-");return u.jsx("div",{className:pi(["react-flow__resize-control","nodrag",...O,n,i]),ref:z,style:{...r,scale:M,...a&&{[T?"backgroundColor":"borderColor"]:a}},children:o})}C.memo(TQ);const RQ=C.memo(function({data:t}){const n=["oc-canvas-node",t.isOwner&&"is-owner",t.isSelected&&"is-selected",t.isDropTarget&&"is-drop-target",t.externalTeamBoundary&&"is-external-team-boundary"].filter(Boolean).join(" "),i=Yu(t.icon);return u.jsxs("div",{className:n,children:[u.jsx(Bl,{type:"target",position:at.Top,className:"oc-canvas-handle"}),u.jsxs("div",{className:"oc-canvas-node-row",children:[u.jsx("div",{className:"oc-canvas-node-chip",children:u.jsx("span",{className:"oc-canvas-node-chip-icon",style:{WebkitMaskImage:`url("${i}")`,maskImage:`url("${i}")`},"aria-hidden":!0})}),u.jsxs("div",{className:"oc-canvas-node-text",children:[u.jsx("span",{className:"oc-canvas-node-name",children:t.name}),t.externalTeamLabel&&u.jsx("span",{className:"oc-canvas-node-team",title:t.externalTeamLabel,children:t.externalTeamBoundary?"JiuwenSwarm Team":t.externalTeamLabel}),u.jsxs("div",{className:"oc-canvas-node-meta",children:[t.employeeNames.length>0?u.jsxs("span",{className:"oc-canvas-node-person",title:t.employeeNames.join(", "),children:[t.employeeNames[0],t.employeeNames.length>1?` +${t.employeeNames.length-1}`:""]}):u.jsx("span",{className:"oc-canvas-node-id",children:t.roleId}),t.employeeCount>0&&u.jsx("span",{className:"oc-canvas-node-badge",children:t.employeeCount})]})]})]}),u.jsx(Bl,{type:"source",position:at.Bottom,className:"oc-canvas-handle"})]})});var Ky,n2;function ub(){if(n2)return Ky;n2=1;var e="\0",t="\0",n="";class i{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(h){h&&(this._isDirected=Object.hasOwn(h,"directed")?h.directed:!0,this._isMultigraph=Object.hasOwn(h,"multigraph")?h.multigraph:!1,this._isCompound=Object.hasOwn(h,"compound")?h.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(h){return this._label=h,this}graph(){return this._label}setDefaultNodeLabel(h){return this._defaultNodeLabelFn=h,typeof h!="function"&&(this._defaultNodeLabelFn=()=>h),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var h=this;return this.nodes().filter(p=>Object.keys(h._in[p]).length===0)}sinks(){var h=this;return this.nodes().filter(p=>Object.keys(h._out[p]).length===0)}setNodes(h,p){var g=arguments,x=this;return h.forEach(function(v){g.length>1?x.setNode(v,p):x.setNode(v)}),this}setNode(h,p){return Object.hasOwn(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=p),this):(this._nodes[h]=arguments.length>1?p:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=t,this._children[h]={},this._children[t][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)}node(h){return this._nodes[h]}hasNode(h){return Object.hasOwn(this._nodes,h)}removeNode(h){var p=this;if(Object.hasOwn(this._nodes,h)){var g=x=>p.removeEdge(p._edgeObjs[x]);delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],this.children(h).forEach(function(x){p.setParent(x)}),delete this._children[h]),Object.keys(this._in[h]).forEach(g),delete this._in[h],delete this._preds[h],Object.keys(this._out[h]).forEach(g),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this}setParent(h,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===h)throw new Error("Setting "+p+" as parent of "+h+" would create a cycle");this.setNode(p)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=p,this._children[p][h]=!0,this}_removeFromParentsChildList(h){delete this._children[this._parent[h]][h]}parent(h){if(this._isCompound){var p=this._parent[h];if(p!==t)return p}}children(h=t){if(this._isCompound){var p=this._children[h];if(p)return Object.keys(p)}else{if(h===t)return this.nodes();if(this.hasNode(h))return[]}}predecessors(h){var p=this._preds[h];if(p)return Object.keys(p)}successors(h){var p=this._sucs[h];if(p)return Object.keys(p)}neighbors(h){var p=this.predecessors(h);if(p){const x=new Set(p);for(var g of this.successors(h))x.add(g);return Array.from(x.values())}}isLeaf(h){var p;return this.isDirected()?p=this.successors(h):p=this.neighbors(h),p.length===0}filterNodes(h){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([b,S]){h(b)&&p.setNode(b,S)}),Object.values(this._edgeObjs).forEach(function(b){p.hasNode(b.v)&&p.hasNode(b.w)&&p.setEdge(b,g.edge(b))});var x={};function v(b){var S=g.parent(b);return S===void 0||p.hasNode(S)?(x[b]=S,S):S in x?x[S]:v(S)}return this._isCompound&&p.nodes().forEach(b=>p.setParent(b,v(b))),p}setDefaultEdgeLabel(h){return this._defaultEdgeLabelFn=h,typeof h!="function"&&(this._defaultEdgeLabelFn=()=>h),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(h,p){var g=this,x=arguments;return h.reduce(function(v,b){return x.length>1?g.setEdge(v,b,p):g.setEdge(v,b),b}),this}setEdge(){var h,p,g,x,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(h=b.v,p=b.w,g=b.name,arguments.length===2&&(x=arguments[1],v=!0)):(h=b,p=arguments[1],g=arguments[3],arguments.length>2&&(x=arguments[2],v=!0)),h=""+h,p=""+p,g!==void 0&&(g=""+g);var S=a(this._isDirected,h,p,g);if(Object.hasOwn(this._edgeLabels,S))return v&&(this._edgeLabels[S]=x),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(p),this._edgeLabels[S]=v?x:this._defaultEdgeLabelFn(h,p,g);var w=c(this._isDirected,h,p,g);return h=w.v,p=w.w,Object.freeze(w),this._edgeObjs[S]=w,r(this._preds[p],h),r(this._sucs[h],p),this._in[p][S]=w,this._out[h][S]=w,this._edgeCount++,this}edge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return this._edgeLabels[x]}edgeAsObj(){const h=this.edge(...arguments);return typeof h!="object"?{label:h}:h}hasEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g);return Object.hasOwn(this._edgeLabels,x)}removeEdge(h,p,g){var x=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,h,p,g),v=this._edgeObjs[x];return v&&(h=v.v,p=v.w,delete this._edgeLabels[x],delete this._edgeObjs[x],o(this._preds[p],h),o(this._sucs[h],p),delete this._in[p][x],delete this._out[h][x],this._edgeCount--),this}inEdges(h,p){var g=this._in[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.v===p):x}}outEdges(h,p){var g=this._out[h];if(g){var x=Object.values(g);return p?x.filter(v=>v.w===p):x}}nodeEdges(h,p){var g=this.inEdges(h,p);if(g)return g.concat(this.outEdges(h,p))}}function r(m,h){m[h]?m[h]++:m[h]=1}function o(m,h){--m[h]||delete m[h]}function a(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}return x+n+v+n+(g===void 0?e:g)}function c(m,h,p,g){var x=""+h,v=""+p;if(!m&&x>v){var b=x;x=v,v=b}var S={v:x,w:v};return g&&(S.name=g),S}function d(m,h){return a(m,h.v,h.w,h.name)}return Ky=i,Ky}var Zy,i2;function AQ(){return i2||(i2=1,Zy="2.2.4"),Zy}var Qy,r2;function MQ(){return r2||(r2=1,Qy={Graph:ub(),version:AQ()}),Qy}var Jy,s2;function DQ(){if(s2)return Jy;s2=1;var e=ub();Jy={write:t,read:r};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:i(o)};return o.graph()!==void 0&&(a.value=structuredClone(o.graph())),a}function n(o){return o.nodes().map(function(a){var c=o.node(a),d=o.parent(a),m={v:a};return c!==void 0&&(m.value=c),d!==void 0&&(m.parent=d),m})}function i(o){return o.edges().map(function(a){var c=o.edge(a),d={v:a.v,w:a.w};return a.name!==void 0&&(d.name=a.name),c!==void 0&&(d.value=c),d})}function r(o){var a=new e(o.options).setGraph(o.value);return o.nodes.forEach(function(c){a.setNode(c.v,c.value),c.parent&&a.setParent(c.v,c.parent)}),o.edges.forEach(function(c){a.setEdge({v:c.v,w:c.w,name:c.name},c.value)}),a}return Jy}var ex,o2;function OQ(){if(o2)return ex;o2=1,ex=e;function e(t){var n={},i=[],r;function o(a){Object.hasOwn(n,a)||(n[a]=!0,r.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){r=[],o(a),r.length&&i.push(r)}),i}return ex}var tx,a2;function cA(){if(a2)return tx;a2=1;class e{_arr=[];_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 i=this._keyIndices[n];if(i!==void 0)return this._arr[i].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,i){var r=this._keyIndices;if(n=String(n),!Object.hasOwn(r,n)){var o=this._arr,a=o.length;return r[n]=a,o.push({key:n,priority:i}),this._decrease(a),!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,i){var r=this._keyIndices[n];if(i>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[r].priority+" New: "+i);this._arr[r].priority=i,this._decrease(r)}_heapify(n){var i=this._arr,r=2*n,o=r+1,a=n;r>1,!(i[o].priority1;function n(r,o,a,c){return i(r,String(o),a||t,c||function(d){return r.outEdges(d)})}function i(r,o,a,c){var d={},m=new e,h,p,g=function(x){var v=x.v!==h?x.v:x.w,b=d[v],S=a(x),w=p.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+x+" Weight: "+S);w0&&(h=m.removeMin(),p=d[h],p.distance!==Number.POSITIVE_INFINITY);)c(h).forEach(g);return d}return nx}var ix,c2;function LQ(){if(c2)return ix;c2=1;var e=uA();ix=t;function t(n,i,r){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,i,r),o},{})}return ix}var rx,u2;function dA(){if(u2)return rx;u2=1,rx=e;function e(t){var n=0,i=[],r={},o=[];function a(c){var d=r[c]={onStack:!0,lowlink:n,index:n++};if(i.push(c),t.successors(c).forEach(function(p){Object.hasOwn(r,p)?r[p].onStack&&(d.lowlink=Math.min(d.lowlink,r[p].index)):(a(p),d.lowlink=Math.min(d.lowlink,r[p].lowlink))}),d.lowlink===d.index){var m=[],h;do h=i.pop(),r[h].onStack=!1,m.push(h);while(c!==h);o.push(m)}}return t.nodes().forEach(function(c){Object.hasOwn(r,c)||a(c)}),o}return rx}var sx,d2;function zQ(){if(d2)return sx;d2=1;var e=dA();sx=t;function t(n){return e(n).filter(function(i){return i.length>1||i.length===1&&n.hasEdge(i[0],i[0])})}return sx}var ox,f2;function PQ(){if(f2)return ox;f2=1,ox=t;var e=()=>1;function t(i,r,o){return n(i,r||e,o||function(a){return i.outEdges(a)})}function n(i,r,o){var a={},c=i.nodes();return c.forEach(function(d){a[d]={},a[d][d]={distance:0},c.forEach(function(m){d!==m&&(a[d][m]={distance:Number.POSITIVE_INFINITY})}),o(d).forEach(function(m){var h=m.v===d?m.w:m.v,p=r(m);a[d][h]={distance:p,predecessor:d}})}),c.forEach(function(d){var m=a[d];c.forEach(function(h){var p=a[h];c.forEach(function(g){var x=p[d],v=m[g],b=p[g],S=x.distance+v.distance;Sr.successors(p):p=>r.neighbors(p),d=a==="post"?t:n,m=[],h={};return o.forEach(p=>{if(!r.hasNode(p))throw new Error("Graph does not have node: "+p);d(p,c,h,m)}),m}function t(r,o,a,c){for(var d=[[r,!1]];d.length>0;){var m=d.pop();m[1]?c.push(m[0]):Object.hasOwn(a,m[0])||(a[m[0]]=!0,d.push([m[0],!0]),i(o(m[0]),h=>d.push([h,!1])))}}function n(r,o,a,c){for(var d=[r];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,c.push(m),i(o(m),h=>d.push(h)))}}function i(r,o){for(var a=r.length;a--;)o(r[a],a,r);return r}return cx}var ux,g2;function $Q(){if(g2)return ux;g2=1;var e=mA();ux=t;function t(n,i){return e(n,i,"post")}return ux}var dx,y2;function HQ(){if(y2)return dx;y2=1;var e=mA();dx=t;function t(n,i){return e(n,i,"pre")}return dx}var fx,x2;function FQ(){if(x2)return fx;x2=1;var e=ub(),t=cA();fx=n;function n(i,r){var o=new e,a={},c=new t,d;function m(p){var g=p.v===d?p.w:p.v,x=c.priority(g);if(x!==void 0){var v=r(p);v0;){if(d=c.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(h)throw new Error("Input graph is not connected: "+i);h=!0}i.nodeEdges(d).forEach(m)}return o}return fx}var mx,v2;function VQ(){return v2||(v2=1,mx={components:OQ(),dijkstra:uA(),dijkstraAll:LQ(),findCycles:zQ(),floydWarshall:PQ(),isAcyclic:BQ(),postorder:$Q(),preorder:HQ(),prim:FQ(),tarjan:dA(),topsort:fA()}),mx}var px,b2;function Gr(){if(b2)return px;b2=1;var e=MQ();return px={Graph:e.Graph,json:DQ(),alg:VQ(),version:e.version},px}var hx,_2;function UQ(){if(_2)return hx;_2=1;class e{constructor(){let r={};r._next=r._prev=r,this._sentinel=r}dequeue(){let r=this._sentinel,o=r._prev;if(o!==r)return t(o),o}enqueue(r){let o=this._sentinel;r._prev&&r._next&&t(r),r._next=o._next,o._next._prev=r,o._next=r,r._prev=o}toString(){let r=[],o=this._sentinel,a=o._prev;for(;a!==o;)r.push(JSON.stringify(a,n)),a=a._prev;return"["+r.join(", ")+"]"}}function t(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function n(i,r){if(i!=="_next"&&i!=="_prev")return r}return hx=e,hx}var gx,k2;function qQ(){if(k2)return gx;k2=1;let e=Gr().Graph,t=UQ();gx=i;let n=()=>1;function i(m,h){if(m.nodeCount()<=1)return[];let p=a(m,h||n);return r(p.graph,p.buckets,p.zeroIdx).flatMap(x=>m.outEdges(x.v,x.w))}function r(m,h,p){let g=[],x=h[h.length-1],v=h[0],b;for(;m.nodeCount();){for(;b=v.dequeue();)o(m,h,p,b);for(;b=x.dequeue();)o(m,h,p,b);if(m.nodeCount()){for(let S=h.length-2;S>0;--S)if(b=h[S].dequeue(),b){g=g.concat(o(m,h,p,b,!0));break}}}return g}function o(m,h,p,g,x){let v=x?[]:void 0;return m.inEdges(g.v).forEach(b=>{let S=m.edge(b),w=m.node(b.v);x&&v.push({v:b.v,w:b.w}),w.out-=S,c(h,p,w)}),m.outEdges(g.v).forEach(b=>{let S=m.edge(b),w=b.w,k=m.node(w);k.in-=S,c(h,p,k)}),m.removeNode(g.v),v}function a(m,h){let p=new e,g=0,x=0;m.nodes().forEach(S=>{p.setNode(S,{v:S,in:0,out:0})}),m.edges().forEach(S=>{let w=p.edge(S.v,S.w)||0,k=h(S),j=w+k;p.setEdge(S.v,S.w,j),x=Math.max(x,p.node(S.v).out+=k),g=Math.max(g,p.node(S.w).in+=k)});let v=d(x+g+3).map(()=>new t),b=g+1;return p.nodes().forEach(S=>{c(v,b,p.node(S))}),{graph:p,buckets:v,zeroIdx:b}}function c(m,h,p){p.out?p.in?m[p.out-p.in+h].enqueue(p):m[m.length-1].enqueue(p):m[0].enqueue(p)}function d(m){const h=[];for(let p=0;pA.setNode(O,L.node(O))),L.edges().forEach(O=>{let I=A.edge(O.v,O.w)||{weight:0,minlen:1},$=L.edge(O);A.setEdge(O.v,O.w,{weight:I.weight+$.weight,minlen:Math.max(I.minlen,$.minlen)})}),A}function i(L){let A=new e({multigraph:L.isMultigraph()}).setGraph(L.graph());return L.nodes().forEach(O=>{L.children(O).length||A.setNode(O,L.node(O))}),L.edges().forEach(O=>{A.setEdge(O,L.edge(O))}),A}function r(L){let A=L.nodes().map(O=>{let I={};return L.outEdges(O).forEach($=>{I[$.w]=(I[$.w]||0)+L.edge($).weight}),I});return M(L.nodes(),A)}function o(L){let A=L.nodes().map(O=>{let I={};return L.inEdges(O).forEach($=>{I[$.v]=(I[$.v]||0)+L.edge($).weight}),I});return M(L.nodes(),A)}function a(L,A){let O=L.x,I=L.y,$=A.x-O,G=A.y-I,P=L.width/2,F=L.height/2;if(!$&&!G)throw new Error("Not possible to find intersection inside of the rectangle");let V,Y;return Math.abs(G)*P>Math.abs($)*F?(G<0&&(F=-F),V=F*$/G,Y=F):($<0&&(P=-P),V=P,Y=P*G/$),{x:O+V,y:I+Y}}function c(L){let A=N(v(L)+1).map(()=>[]);return L.nodes().forEach(O=>{let I=L.node(O),$=I.rank;$!==void 0&&(A[$][I.order]=O)}),A}function d(L){let A=L.nodes().map(I=>{let $=L.node(I).rank;return $===void 0?Number.MAX_VALUE:$}),O=x(Math.min,A);L.nodes().forEach(I=>{let $=L.node(I);Object.hasOwn($,"rank")&&($.rank-=O)})}function m(L){let A=L.nodes().map(P=>L.node(P).rank),O=x(Math.min,A),I=[];L.nodes().forEach(P=>{let F=L.node(P).rank-O;I[F]||(I[F]=[]),I[F].push(P)});let $=0,G=L.graph().nodeRankFactor;Array.from(I).forEach((P,F)=>{P===void 0&&F%G!==0?--$:P!==void 0&&$&&P.forEach(V=>L.node(V).rank+=$)})}function h(L,A,O,I){let $={width:0,height:0};return arguments.length>=4&&($.rank=O,$.order=I),t(L,"border",$,A)}function p(L,A=g){const O=[];for(let I=0;Ig){const O=p(A);return L.apply(null,O.map(I=>L.apply(null,I)))}else return L.apply(null,A)}function v(L){const O=L.nodes().map(I=>{let $=L.node(I).rank;return $===void 0?Number.MIN_VALUE:$});return x(Math.max,O)}function b(L,A){let O={lhs:[],rhs:[]};return L.forEach(I=>{A(I)?O.lhs.push(I):O.rhs.push(I)}),O}function S(L,A){let O=Date.now();try{return A()}finally{console.log(L+" time: "+(Date.now()-O)+"ms")}}function w(L,A){return A()}let k=0;function j(L){var A=++k;return L+(""+A)}function N(L,A,O=1){A==null&&(A=L,L=0);let I=G=>GAI[A]),Object.entries(L).reduce((I,[$,G])=>(I[$]=O(G,$),I),{})}function M(L,A){return L.reduce((O,I,$)=>(O[I]=A[$],O),{})}return yx}var xx,w2;function GQ(){if(w2)return xx;w2=1;let e=qQ(),t=mi().uniqueId;xx={run:n,undo:r};function n(o){(o.graph().acyclicer==="greedy"?e(o,c(o)):i(o)).forEach(d=>{let m=o.edge(d);o.removeEdge(d),m.forwardName=d.name,m.reversed=!0,o.setEdge(d.w,d.v,m,t("rev"))});function c(d){return m=>d.edge(m).weight}}function i(o){let a=[],c={},d={};function m(h){Object.hasOwn(d,h)||(d[h]=!0,c[h]=!0,o.outEdges(h).forEach(p=>{Object.hasOwn(c,p.w)?a.push(p):m(p.w)}),delete c[h])}return o.nodes().forEach(m),a}function r(o){o.edges().forEach(a=>{let c=o.edge(a);if(c.reversed){o.removeEdge(a);let d=c.forwardName;delete c.reversed,delete c.forwardName,o.setEdge(a.w,a.v,c,d)}})}return xx}var vx,C2;function WQ(){if(C2)return vx;C2=1;let e=mi();vx={run:t,undo:i};function t(r){r.graph().dummyChains=[],r.edges().forEach(o=>n(r,o))}function n(r,o){let a=o.v,c=r.node(a).rank,d=o.w,m=r.node(d).rank,h=o.name,p=r.edge(o),g=p.labelRank;if(m===c+1)return;r.removeEdge(o);let x,v,b;for(b=0,++c;c{let a=r.node(o),c=a.edgeLabel,d;for(r.setEdge(a.edgeObj,c);a.dummy;)d=r.successors(o)[0],r.removeNode(o),c.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(c.x=a.x,c.y=a.y,c.width=a.width,c.height=a.height),o=d,a=r.node(o)})}return vx}var bx,j2;function Rm(){if(j2)return bx;j2=1;const{applyWithChunking:e}=mi();bx={longestPath:t,slack:n};function t(i){var r={};function o(a){var c=i.node(a);if(Object.hasOwn(r,a))return c.rank;r[a]=!0;let d=i.outEdges(a).map(h=>h==null?Number.POSITIVE_INFINITY:o(h.w)-i.edge(h).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),c.rank=m}i.sources().forEach(o)}function n(i,r){return i.node(r.w).rank-i.node(r.v).rank-i.edge(r).minlen}return bx}var _x,E2;function pA(){if(E2)return _x;E2=1;var e=Gr().Graph,t=Rm().slack;_x=n;function n(a){var c=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();c.setNode(d,{});for(var h,p;i(c,a){var p=h.v,g=m===p?h.w:p;!a.hasNode(g)&&!t(c,h)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function r(a,c){return c.edges().reduce((m,h)=>{let p=Number.POSITIVE_INFINITY;return a.hasNode(h.v)!==a.hasNode(h.w)&&(p=t(c,h)),pc.node(m).rank+=d)}return _x}var kx,N2;function YQ(){if(N2)return kx;N2=1;var e=pA(),t=Rm().slack,n=Rm().longestPath,i=Gr().alg.preorder,r=Gr().alg.postorder,o=mi().simplify;kx=a,a.initLowLimValues=h,a.initCutValues=c,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=v;function a(k){k=o(k),n(k);var j=e(k);h(j),c(j,k);for(var N,z;N=g(j);)z=x(j,k,N),v(j,k,N,z)}function c(k,j){var N=r(k,k.nodes());N=N.slice(0,N.length-1),N.forEach(z=>d(k,j,z))}function d(k,j,N){var z=k.node(N),T=z.parent;k.edge(N,T).cutvalue=m(k,j,N)}function m(k,j,N){var z=k.node(N),T=z.parent,M=!0,L=j.edge(N,T),A=0;return L||(M=!1,L=j.edge(T,N)),A=L.weight,j.nodeEdges(N).forEach(O=>{var I=O.v===N,$=I?O.w:O.v;if($!==T){var G=I===M,P=j.edge(O).weight;if(A+=G?P:-P,S(k,N,$)){var F=k.edge(N,$).cutvalue;A+=G?-F:F}}}),A}function h(k,j){arguments.length<2&&(j=k.nodes()[0]),p(k,{},1,j)}function p(k,j,N,z,T){var M=N,L=k.node(z);return j[z]=!0,k.neighbors(z).forEach(A=>{Object.hasOwn(j,A)||(N=p(k,j,N,A,z))}),L.low=M,L.lim=N++,T?L.parent=T:delete L.parent,N}function g(k){return k.edges().find(j=>k.edge(j).cutvalue<0)}function x(k,j,N){var z=N.v,T=N.w;j.hasEdge(z,T)||(z=N.w,T=N.v);var M=k.node(z),L=k.node(T),A=M,O=!1;M.lim>L.lim&&(A=L,O=!0);var I=j.edges().filter($=>O===w(k,k.node($.v),A)&&O!==w(k,k.node($.w),A));return I.reduce(($,G)=>t(j,G)!j.node(T).parent),z=i(k,N);z=z.slice(1),z.forEach(T=>{var M=k.node(T).parent,L=j.edge(T,M),A=!1;L||(L=j.edge(M,T),A=!0),j.node(T).rank=j.node(M).rank+(A?L.minlen:-L.minlen)})}function S(k,j,N){return k.hasEdge(j,N)}function w(k,j,N){return N.low<=j.lim&&j.lim<=N.lim}return kx}var Sx,I2;function XQ(){if(I2)return Sx;I2=1;var e=Rm(),t=e.longestPath,n=pA(),i=YQ();Sx=r;function r(d){var m=d.graph().ranker;if(m instanceof Function)return m(d);switch(d.graph().ranker){case"network-simplex":c(d);break;case"tight-tree":a(d);break;case"longest-path":o(d);break;case"none":break;default:c(d)}}var o=t;function a(d){t(d),n(d)}function c(d){i(d)}return Sx}var wx,T2;function KQ(){if(T2)return wx;T2=1,wx=e;function e(i){let r=n(i);i.graph().dummyChains.forEach(o=>{let a=i.node(o),c=a.edgeObj,d=t(i,r,c.v,c.w),m=d.path,h=d.lca,p=0,g=m[p],x=!0;for(;o!==c.w;){if(a=i.node(o),x){for(;(g=m[p])!==h&&i.node(g).maxRankm||h>r[p].lim));for(g=p,p=a;(p=i.parent(p))!==g;)d.push(p);return{path:c.concat(d.reverse()),lca:g}}function n(i){let r={},o=0;function a(c){let d=o;i.children(c).forEach(a),r[c]={low:d,lim:o++}}return i.children().forEach(a),r}return wx}var Cx,R2;function ZQ(){if(R2)return Cx;R2=1;let e=mi();Cx={run:t,cleanup:o};function t(a){let c=e.addDummyNode(a,"root",{},"_root"),d=i(a),m=Object.values(d),h=e.applyWithChunking(Math.max,m)-1,p=2*h+1;a.graph().nestingRoot=c,a.edges().forEach(x=>a.edge(x).minlen*=p);let g=r(a)+1;a.children().forEach(x=>n(a,c,p,g,h,d,x)),a.graph().nodeRankFactor=p}function n(a,c,d,m,h,p,g){let x=a.children(g);if(!x.length){g!==c&&a.setEdge(c,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),b=e.addBorderNode(a,"_bb"),S=a.node(g);a.setParent(v,g),S.borderTop=v,a.setParent(b,g),S.borderBottom=b,x.forEach(w=>{n(a,c,d,m,h,p,w);let k=a.node(w),j=k.borderTop?k.borderTop:w,N=k.borderBottom?k.borderBottom:w,z=k.borderTop?m:2*m,T=j!==N?1:h-p[g]+1;a.setEdge(v,j,{weight:z,minlen:T,nestingEdge:!0}),a.setEdge(N,b,{weight:z,minlen:T,nestingEdge:!0})}),a.parent(g)||a.setEdge(c,v,{weight:0,minlen:h+p[g]})}function i(a){var c={};function d(m,h){var p=a.children(m);p&&p.length&&p.forEach(g=>d(g,h+1)),c[m]=h}return a.children().forEach(m=>d(m,1)),c}function r(a){return a.edges().reduce((c,d)=>c+a.edge(d).weight,0)}function o(a){var c=a.graph();a.removeNode(c.nestingRoot),delete c.nestingRoot,a.edges().forEach(d=>{var m=a.edge(d);m.nestingEdge&&a.removeEdge(d)})}return Cx}var jx,A2;function QQ(){if(A2)return jx;A2=1;let e=mi();jx=t;function t(i){function r(o){let a=i.children(o),c=i.node(o);if(a.length&&a.forEach(r),Object.hasOwn(c,"minRank")){c.borderLeft=[],c.borderRight=[];for(let d=c.minRank,m=c.maxRank+1;di(d.node(m))),d.edges().forEach(m=>i(d.edge(m)))}function i(d){let m=d.width;d.width=d.height,d.height=m}function r(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(o),Object.hasOwn(h,"y")&&o(h)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>c(d.node(m))),d.edges().forEach(m=>{let h=d.edge(m);h.points.forEach(c),Object.hasOwn(h,"x")&&c(h)})}function c(d){let m=d.x;d.x=d.y,d.y=m}return Ex}var Nx,D2;function eJ(){if(D2)return Nx;D2=1;let e=mi();Nx=t;function t(n){let i={},r=n.nodes().filter(h=>!n.children(h).length),o=r.map(h=>n.node(h).rank),a=e.applyWithChunking(Math.max,o),c=e.range(a+1).map(()=>[]);function d(h){if(i[h])return;i[h]=!0;let p=n.node(h);c[p.rank].push(h),n.successors(h).forEach(d)}return r.sort((h,p)=>n.node(h).rank-n.node(p).rank).forEach(d),c}return Nx}var Ix,O2;function tJ(){if(O2)return Ix;O2=1;let e=mi().zipObject;Ix=t;function t(i,r){let o=0;for(let a=1;ax)),c=r.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,v)=>x.pos-v.pos)),d=1;for(;d{let x=g.pos+d;h[x]+=g.weight;let v=0;for(;x>0;)x%2&&(v+=h[x+1]),x=x-1>>1,h[x]+=g.weight;p+=g.weight*v}),p}return Ix}var Tx,L2;function nJ(){if(L2)return Tx;L2=1,Tx=e;function e(t,n=[]){return n.map(i=>{let r=t.inEdges(i);if(r.length){let o=r.reduce((a,c)=>{let d=t.edge(c),m=t.node(c.v);return{sum:a.sum+d.weight*m.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:i}})}return Tx}var Rx,z2;function iJ(){if(z2)return Rx;z2=1;let e=mi();Rx=t;function t(r,o){let a={};r.forEach((d,m)=>{let h=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(h.barycenter=d.barycenter,h.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],h=a[d.w];m!==void 0&&h!==void 0&&(h.indegree++,m.out.push(a[d.w]))});let c=Object.values(a).filter(d=>!d.indegree);return n(c)}function n(r){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&i(d,m)}}function c(d){return m=>{m.in.push(d),--m.indegree===0&&r.push(m)}}for(;r.length;){let d=r.pop();o.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(c(d))}return o.filter(d=>!d.merged).map(d=>e.pick(d,["vs","i","barycenter","weight"]))}function i(r,o){let a=0,c=0;r.weight&&(a+=r.barycenter*r.weight,c+=r.weight),o.weight&&(a+=o.barycenter*o.weight,c+=o.weight),r.vs=o.vs.concat(r.vs),r.barycenter=a/c,r.weight=c,r.i=Math.min(o.i,r.i),o.merged=!0}return Rx}var Ax,P2;function rJ(){if(P2)return Ax;P2=1;let e=mi();Ax=t;function t(r,o){let a=e.partition(r,v=>Object.hasOwn(v,"barycenter")),c=a.lhs,d=a.rhs.sort((v,b)=>b.i-v.i),m=[],h=0,p=0,g=0;c.sort(i(!!o)),g=n(m,d,g),c.forEach(v=>{g+=v.vs.length,m.push(v.vs),h+=v.barycenter*v.weight,p+=v.weight,g=n(m,d,g)});let x={vs:m.flat(!0)};return p&&(x.barycenter=h/p,x.weight=p),x}function n(r,o,a){let c;for(;o.length&&(c=o[o.length-1]).i<=a;)o.pop(),r.push(c.vs),a++;return a}function i(r){return(o,a)=>o.barycentera.barycenter?1:r?a.i-o.i:o.i-a.i}return Ax}var Mx,B2;function sJ(){if(B2)return Mx;B2=1;let e=nJ(),t=iJ(),n=rJ();Mx=i;function i(a,c,d,m){let h=a.children(c),p=a.node(c),g=p?p.borderLeft:void 0,x=p?p.borderRight:void 0,v={};g&&(h=h.filter(k=>k!==g&&k!==x));let b=e(a,h);b.forEach(k=>{if(a.children(k.v).length){let j=i(a,k.v,d,m);v[k.v]=j,Object.hasOwn(j,"barycenter")&&o(k,j)}});let S=t(b,d);r(S,v);let w=n(S,m);if(g&&(w.vs=[g,w.vs,x].flat(!0),a.predecessors(g).length)){let k=a.node(a.predecessors(g)[0]),j=a.node(a.predecessors(x)[0]);Object.hasOwn(w,"barycenter")||(w.barycenter=0,w.weight=0),w.barycenter=(w.barycenter*w.weight+k.order+j.order)/(w.weight+2),w.weight+=2}return w}function r(a,c){a.forEach(d=>{d.vs=d.vs.flatMap(m=>c[m]?c[m].vs:m)})}function o(a,c){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+c.barycenter*c.weight)/(a.weight+c.weight),a.weight+=c.weight):(a.barycenter=c.barycenter,a.weight=c.weight)}return Mx}var Dx,$2;function oJ(){if($2)return Dx;$2=1;let e=Gr().Graph,t=mi();Dx=n;function n(r,o,a,c){c||(c=r.nodes());let d=i(r),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(h=>r.node(h));return c.forEach(h=>{let p=r.node(h),g=r.parent(h);(p.rank===o||p.minRank<=o&&o<=p.maxRank)&&(m.setNode(h),m.setParent(h,g||d),r[a](h).forEach(x=>{let v=x.v===h?x.w:x.v,b=m.edge(v,h),S=b!==void 0?b.weight:0;m.setEdge(v,h,{weight:r.edge(x).weight+S})}),Object.hasOwn(p,"minRank")&&m.setNode(h,{borderLeft:p.borderLeft[o],borderRight:p.borderRight[o]}))}),m}function i(r){for(var o;r.hasNode(o=t.uniqueId("_root")););return o}return Dx}var Ox,H2;function aJ(){if(H2)return Ox;H2=1,Ox=e;function e(t,n,i){let r={},o;i.forEach(a=>{let c=t.parent(a),d,m;for(;c;){if(d=t.parent(c),d?(m=r[d],r[d]=c):(m=o,o=c),m&&m!==c){n.setEdge(m,c);return}c=d}})}return Ox}var Lx,F2;function lJ(){if(F2)return Lx;F2=1;let e=eJ(),t=tJ(),n=sJ(),i=oJ(),r=aJ(),o=Gr().Graph,a=mi();Lx=c;function c(p,g){if(g&&typeof g.customOrder=="function"){g.customOrder(p,c);return}let x=a.maxRank(p),v=d(p,a.range(1,x+1),"inEdges"),b=d(p,a.range(x-1,-1,-1),"outEdges"),S=e(p);if(h(p,S),g&&g.disableOptimalOrderHeuristic)return;let w=Number.POSITIVE_INFINITY,k;for(let j=0,N=0;N<4;++j,++N){m(j%2?v:b,j%4>=2),S=a.buildLayerMatrix(p);let z=t(p,S);z{v.has(S)||v.set(S,[]),v.get(S).push(w)};for(const S of p.nodes()){const w=p.node(S);if(typeof w.rank=="number"&&b(w.rank,S),typeof w.minRank=="number"&&typeof w.maxRank=="number")for(let k=w.minRank;k<=w.maxRank;k++)k!==w.rank&&b(k,S)}return g.map(function(S){return i(p,S,x,v.get(S)||[])})}function m(p,g){let x=new o;p.forEach(function(v){let b=v.graph().root,S=n(v,b,x,g);S.vs.forEach((w,k)=>v.node(w).order=k),r(v,x,S.vs)})}function h(p,g){Object.values(g).forEach(x=>x.forEach((v,b)=>p.node(v).order=b))}return Lx}var zx,V2;function cJ(){if(V2)return zx;V2=1;let e=Gr().Graph,t=mi();zx={positionX:x,findType1Conflicts:n,findType2Conflicts:i,addConflict:o,hasConflict:a,verticalAlignment:c,horizontalCompaction:d,alignCoordinates:p,findSmallestWidthAlignment:h,balance:g};function n(S,w){let k={};function j(N,z){let T=0,M=0,L=N.length,A=z[z.length-1];return z.forEach((O,I)=>{let $=r(S,O),G=$?S.node($).order:L;($||O===A)&&(z.slice(M,I+1).forEach(P=>{S.predecessors(P).forEach(F=>{let V=S.node(F),Y=V.order;(Y{O=z[I],S.node(O).dummy&&S.predecessors(O).forEach($=>{let G=S.node($);G.dummy&&(G.orderA)&&o(k,$,O)})})}function N(z,T){let M=-1,L,A=0;return T.forEach((O,I)=>{if(S.node(O).dummy==="border"){let $=S.predecessors(O);$.length&&(L=S.node($[0]).order,j(T,A,I,M,L),A=I,M=L)}j(T,A,T.length,L,z.length)}),T}return w.length&&w.reduce(N),k}function r(S,w){if(S.node(w).dummy)return S.predecessors(w).find(k=>S.node(k).dummy)}function o(S,w,k){if(w>k){let N=w;w=k,k=N}let j=S[w];j||(S[w]=j={}),j[k]=!0}function a(S,w,k){if(w>k){let j=w;w=k,k=j}return!!S[w]&&Object.hasOwn(S[w],k)}function c(S,w,k,j){let N={},z={},T={};return w.forEach(M=>{M.forEach((L,A)=>{N[L]=L,z[L]=L,T[L]=A})}),w.forEach(M=>{let L=-1;M.forEach(A=>{let O=j(A);if(O.length){O=O.sort(($,G)=>T[$]-T[G]);let I=(O.length-1)/2;for(let $=Math.floor(I),G=Math.ceil(I);$<=G;++$){let P=O[$];z[A]===A&&LMath.max($,z[G.v]+T.edge(G)),0)}function O(I){let $=T.outEdges(I).reduce((P,F)=>Math.min(P,z[F.w]-T.edge(F)),Number.POSITIVE_INFINITY),G=S.node(I);$!==Number.POSITIVE_INFINITY&&G.borderType!==M&&(z[I]=Math.max(z[I],$))}return L(A,T.predecessors.bind(T)),L(O,T.successors.bind(T)),Object.keys(j).forEach(I=>z[I]=z[k[I]]),z}function m(S,w,k,j){let N=new e,z=S.graph(),T=v(z.nodesep,z.edgesep,j);return w.forEach(M=>{let L;M.forEach(A=>{let O=k[A];if(N.setNode(O),L){var I=k[L],$=N.edge(I,O);N.setEdge(I,O,Math.max(T(S,A,L),$||0))}L=A})}),N}function h(S,w){return Object.values(w).reduce((k,j)=>{let N=Number.NEGATIVE_INFINITY,z=Number.POSITIVE_INFINITY;Object.entries(j).forEach(([M,L])=>{let A=b(S,M)/2;N=Math.max(L+A,N),z=Math.min(L-A,z)});const T=N-z;return T{["l","r"].forEach(T=>{let M=z+T,L=S[M];if(L===w)return;let A=Object.values(L),O=j-t.applyWithChunking(Math.min,A);T!=="l"&&(O=N-t.applyWithChunking(Math.max,A)),O&&(S[M]=t.mapValues(L,I=>I+O))})})}function g(S,w){return t.mapValues(S.ul,(k,j)=>{if(w)return S[w.toLowerCase()][j];{let N=Object.values(S).map(z=>z[j]).sort((z,T)=>z-T);return(N[1]+N[2])/2}})}function x(S){let w=t.buildLayerMatrix(S),k=Object.assign(n(S,w),i(S,w)),j={},N;["u","d"].forEach(T=>{N=T==="u"?w:Object.values(w).reverse(),["l","r"].forEach(M=>{M==="r"&&(N=N.map(I=>Object.values(I).reverse()));let L=(T==="u"?S.predecessors:S.successors).bind(S),A=c(S,N,k,L),O=d(S,N,A.root,A.align,M==="r");M==="r"&&(O=t.mapValues(O,I=>-I)),j[T+M]=O})});let z=h(S,j);return p(j,z),g(j,S.graph().align)}function v(S,w,k){return(j,N,z)=>{let T=j.node(N),M=j.node(z),L=0,A;if(L+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":A=-T.width/2;break;case"r":A=T.width/2;break}if(A&&(L+=k?A:-A),A=0,L+=(T.dummy?w:S)/2,L+=(M.dummy?w:S)/2,L+=M.width/2,Object.hasOwn(M,"labelpos"))switch(M.labelpos.toLowerCase()){case"l":A=M.width/2;break;case"r":A=-M.width/2;break}return A&&(L+=k?A:-A),A=0,L}}function b(S,w){return S.node(w).width}return zx}var Px,U2;function uJ(){if(U2)return Px;U2=1;let e=mi(),t=cJ().positionX;Px=n;function n(r){r=e.asNonCompoundGraph(r),i(r),Object.entries(t(r)).forEach(([o,a])=>r.node(o).x=a)}function i(r){let o=e.buildLayerMatrix(r),a=r.graph().ranksep,c=0;o.forEach(d=>{const m=d.reduce((h,p)=>{const g=r.node(p).height;return h>g?h:g},0);d.forEach(h=>r.node(h).y=c+m/2),c+=m+a})}return Px}var Bx,q2;function dJ(){if(q2)return Bx;q2=1;let e=GQ(),t=WQ(),n=XQ(),i=mi().normalizeRanks,r=KQ(),o=mi().removeEmptyRanks,a=ZQ(),c=QQ(),d=JQ(),m=lJ(),h=uJ(),p=mi(),g=Gr().Graph;Bx=x;function x(D,K){let ne=K&&K.debugTiming?p.time:p.notime;ne("layout",()=>{let ee=ne(" buildLayoutGraph",()=>L(D));ne(" runLayout",()=>v(ee,ne,K)),ne(" updateInputGraph",()=>b(D,ee))})}function v(D,K,ne){K(" makeSpaceForEdgeLabels",()=>A(D)),K(" removeSelfEdges",()=>U(D)),K(" acyclic",()=>e.run(D)),K(" nestingGraph.run",()=>a.run(D)),K(" rank",()=>n(p.asNonCompoundGraph(D))),K(" injectEdgeLabelProxies",()=>O(D)),K(" removeEmptyRanks",()=>o(D)),K(" nestingGraph.cleanup",()=>a.cleanup(D)),K(" normalizeRanks",()=>i(D)),K(" assignRankMinMax",()=>I(D)),K(" removeEdgeLabelProxies",()=>$(D)),K(" normalize.run",()=>t.run(D)),K(" parentDummyChains",()=>r(D)),K(" addBorderSegments",()=>c(D)),K(" order",()=>m(D,ne)),K(" insertSelfEdges",()=>Z(D)),K(" adjustCoordinateSystem",()=>d.adjust(D)),K(" position",()=>h(D)),K(" positionSelfEdges",()=>W(D)),K(" removeBorderNodes",()=>Y(D)),K(" normalize.undo",()=>t.undo(D)),K(" fixupEdgeLabelCoords",()=>F(D)),K(" undoCoordinateSystem",()=>d.undo(D)),K(" translateGraph",()=>G(D)),K(" assignNodeIntersects",()=>P(D)),K(" reversePoints",()=>V(D)),K(" acyclic.undo",()=>e.undo(D))}function b(D,K){D.nodes().forEach(ne=>{let ee=D.node(ne),te=K.node(ne);ee&&(ee.x=te.x,ee.y=te.y,ee.rank=te.rank,K.children(ne).length&&(ee.width=te.width,ee.height=te.height))}),D.edges().forEach(ne=>{let ee=D.edge(ne),te=K.edge(ne);ee.points=te.points,Object.hasOwn(te,"x")&&(ee.x=te.x,ee.y=te.y)}),D.graph().width=K.graph().width,D.graph().height=K.graph().height}let S=["nodesep","edgesep","ranksep","marginx","marginy"],w={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},k=["acyclicer","ranker","rankdir","align"],j=["width","height","rank"],N={width:0,height:0},z=["minlen","weight","width","height","labeloffset"],T={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},M=["labelpos"];function L(D){let K=new g({multigraph:!0,compound:!0}),ne=Q(D.graph());return K.setGraph(Object.assign({},w,q(ne,S),p.pick(ne,k))),D.nodes().forEach(ee=>{let te=Q(D.node(ee));const oe=q(te,j);Object.keys(N).forEach(le=>{oe[le]===void 0&&(oe[le]=N[le])}),K.setNode(ee,oe),K.setParent(ee,D.parent(ee))}),D.edges().forEach(ee=>{let te=Q(D.edge(ee));K.setEdge(ee,Object.assign({},T,q(te,z),p.pick(te,M)))}),K}function A(D){let K=D.graph();K.ranksep/=2,D.edges().forEach(ne=>{let ee=D.edge(ne);ee.minlen*=2,ee.labelpos.toLowerCase()!=="c"&&(K.rankdir==="TB"||K.rankdir==="BT"?ee.width+=ee.labeloffset:ee.height+=ee.labeloffset)})}function O(D){D.edges().forEach(K=>{let ne=D.edge(K);if(ne.width&&ne.height){let ee=D.node(K.v),oe={rank:(D.node(K.w).rank-ee.rank)/2+ee.rank,e:K};p.addDummyNode(D,"edge-proxy",oe,"_ep")}})}function I(D){let K=0;D.nodes().forEach(ne=>{let ee=D.node(ne);ee.borderTop&&(ee.minRank=D.node(ee.borderTop).rank,ee.maxRank=D.node(ee.borderBottom).rank,K=Math.max(K,ee.maxRank))}),D.graph().maxRank=K}function $(D){D.nodes().forEach(K=>{let ne=D.node(K);ne.dummy==="edge-proxy"&&(D.edge(ne.e).labelRank=ne.rank,D.removeNode(K))})}function G(D){let K=Number.POSITIVE_INFINITY,ne=0,ee=Number.POSITIVE_INFINITY,te=0,oe=D.graph(),le=oe.marginx||0,he=oe.marginy||0;function Te(be){let je=be.x,Ve=be.y,Ye=be.width,$e=be.height;K=Math.min(K,je-Ye/2),ne=Math.max(ne,je+Ye/2),ee=Math.min(ee,Ve-$e/2),te=Math.max(te,Ve+$e/2)}D.nodes().forEach(be=>Te(D.node(be))),D.edges().forEach(be=>{let je=D.edge(be);Object.hasOwn(je,"x")&&Te(je)}),K-=le,ee-=he,D.nodes().forEach(be=>{let je=D.node(be);je.x-=K,je.y-=ee}),D.edges().forEach(be=>{let je=D.edge(be);je.points.forEach(Ve=>{Ve.x-=K,Ve.y-=ee}),Object.hasOwn(je,"x")&&(je.x-=K),Object.hasOwn(je,"y")&&(je.y-=ee)}),oe.width=ne-K+le,oe.height=te-ee+he}function P(D){D.edges().forEach(K=>{let ne=D.edge(K),ee=D.node(K.v),te=D.node(K.w),oe,le;ne.points?(oe=ne.points[0],le=ne.points[ne.points.length-1]):(ne.points=[],oe=te,le=ee),ne.points.unshift(p.intersectRect(ee,oe)),ne.points.push(p.intersectRect(te,le))})}function F(D){D.edges().forEach(K=>{let ne=D.edge(K);if(Object.hasOwn(ne,"x"))switch((ne.labelpos==="l"||ne.labelpos==="r")&&(ne.width-=ne.labeloffset),ne.labelpos){case"l":ne.x-=ne.width/2+ne.labeloffset;break;case"r":ne.x+=ne.width/2+ne.labeloffset;break}})}function V(D){D.edges().forEach(K=>{let ne=D.edge(K);ne.reversed&&ne.points.reverse()})}function Y(D){D.nodes().forEach(K=>{if(D.children(K).length){let ne=D.node(K),ee=D.node(ne.borderTop),te=D.node(ne.borderBottom),oe=D.node(ne.borderLeft[ne.borderLeft.length-1]),le=D.node(ne.borderRight[ne.borderRight.length-1]);ne.width=Math.abs(le.x-oe.x),ne.height=Math.abs(te.y-ee.y),ne.x=oe.x+ne.width/2,ne.y=ee.y+ne.height/2}}),D.nodes().forEach(K=>{D.node(K).dummy==="border"&&D.removeNode(K)})}function U(D){D.edges().forEach(K=>{if(K.v===K.w){var ne=D.node(K.v);ne.selfEdges||(ne.selfEdges=[]),ne.selfEdges.push({e:K,label:D.edge(K)}),D.removeEdge(K)}})}function Z(D){var K=p.buildLayerMatrix(D);K.forEach(ne=>{var ee=0;ne.forEach((te,oe)=>{var le=D.node(te);le.order=oe+ee,(le.selfEdges||[]).forEach(he=>{p.addDummyNode(D,"selfedge",{width:he.label.width,height:he.label.height,rank:le.rank,order:oe+ ++ee,e:he.e,label:he.label},"_se")}),delete le.selfEdges})})}function W(D){D.nodes().forEach(K=>{var ne=D.node(K);if(ne.dummy==="selfedge"){var ee=D.node(ne.e.v),te=ee.x+ee.width/2,oe=ee.y,le=ne.x-te,he=ee.height/2;D.setEdge(ne.e,ne.label),D.removeNode(K),ne.label.points=[{x:te+2*le/3,y:oe-he},{x:te+5*le/6,y:oe-he},{x:te+le,y:oe},{x:te+5*le/6,y:oe+he},{x:te+2*le/3,y:oe+he}],ne.label.x=ne.x,ne.label.y=ne.y}})}function q(D,K){return p.mapValues(p.pick(D,K),Number)}function Q(D){var K={};return D&&Object.entries(D).forEach(([ne,ee])=>{typeof ne=="string"&&(ne=ne.toLowerCase()),K[ne]=ee}),K}return Bx}var $x,G2;function fJ(){if(G2)return $x;G2=1;let e=mi(),t=Gr().Graph;$x={debugOrdering:n};function n(i){let r=e.buildLayerMatrix(i),o=new t({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),r.forEach((a,c)=>{let d="layer"+c;o.setNode(d,{rank:"same"}),a.reduce((m,h)=>(o.setEdge(m,h,{style:"invis"}),h))}),o}return $x}var Hx,W2;function mJ(){return W2||(W2=1,Hx="1.1.8"),Hx}var Fx,Y2;function pJ(){return Y2||(Y2=1,Fx={graphlib:Gr(),layout:dJ(),debug:fJ(),util:{time:mi().time,notime:mi().notime},version:mJ()}),Fx}var hJ=pJ();const X2=pa(hJ);function gJ(e,t,n={}){const i=new X2.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const r=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>i.setNode(a.id,{width:r,height:o})),t.forEach(a=>i.setEdge(a.source,a.target)),X2.layout(i),e.map(a=>{const{x:c,y:d}=i.node(a.id);return{...a,position:{x:c-r/2,y:d-o/2}}})}const yJ={roleNode:RQ},xJ=C.forwardRef(function(t,n){return u.jsx(sA,{children:u.jsx(vJ,{...t,forwardedRef:n})})});function vJ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:i,onSelectRole:r,onReparent:o,readOnly:a,forwardedRef:c}){const d=C.useMemo(()=>{const O=new Map;for(const I of t){const $=I.role_ids?.length?I.role_ids:[I.role_id];for(const G of $){if(!G)continue;const P=O.get(G)??[];P.push(I),O.set(G,P)}}return O},[t]),m=C.useCallback(O=>n?n[O]??[]:(d.get(O)??[]).filter(I=>!I.is_default_employee).map(I=>I.name).filter(Boolean),[d,n]),[h,p]=C.useState(0),g=C.useMemo(()=>e.map(O=>O.role_id).sort().join("|"),[e]),x=C.useRef(g);C.useEffect(()=>{x.current!==g&&(x.current=g,p(O=>O+1))},[g]),C.useImperativeHandle(c,()=>({autoLayout:()=>p(O=>O+1)}),[]);const[v,b]=C.useState(null),[S,w]=C.useState({});C.useEffect(()=>{w({})},[h]);const k=C.useMemo(()=>{const O={id:"owner",type:"roleNode",position:{x:0,y:0},draggable:!1,data:{roleId:"owner",name:"You (Owner)",responsibility:"",icon:null,employeeCount:0,employeeNames:[],isOwner:!0,isSelected:!1,isDropTarget:!1,externalTeamLabel:void 0,externalTeamBoundary:!1}},I=e.map(F=>({id:F.role_id,type:"roleNode",position:{x:0,y:0},draggable:!0,data:{roleId:F.role_id,name:F.name,responsibility:F.responsibility,icon:F.icon??null,employeeCount:m(F.role_id).length,employeeNames:m(F.role_id),isOwner:!1,isSelected:!1,isDropTarget:!1,externalTeamLabel:F.covered_by_external_team?F.external_team_boundary?"JiuwenSwarm Team":`via ${F.external_team_boundary_role_id??"team boundary"}`:void 0,externalTeamBoundary:!!F.external_team_boundary}})),$=[O,...I],G=e.map(F=>({id:`e-${F.reports_to}-${F.role_id}`,source:F.reports_to,target:F.role_id,type:"smoothstep"}));return{nodes:gJ($,G),edges:G}},[h,a]),j=C.useMemo(()=>k.nodes.map(O=>{if(O.id==="owner")return O;const I=e.find(G=>G.role_id===O.id);if(!I)return O;const $=S[O.id];return{...O,position:$??O.position,draggable:!0,data:{...O.data,name:I.name,responsibility:I.responsibility,icon:I.icon??null,employeeCount:m(I.role_id).length,employeeNames:m(I.role_id),isSelected:I.role_id===i,isDropTarget:I.role_id===v,externalTeamLabel:I.covered_by_external_team?I.external_team_boundary?"JiuwenSwarm Team":`via ${I.external_team_boundary_role_id??"team boundary"}`:void 0,externalTeamBoundary:!!I.external_team_boundary}}}),[k.nodes,e,d,m,i,v,a,S]),[N,z]=C.useState(j);C.useEffect(()=>{z(j)},[j]);const T=C.useCallback(O=>{z(I=>DR(O,I))},[]),M=C.useCallback((O,I)=>{if(a)return;const $=220,G=80,P={x:I.position.x+$/2,y:I.position.y+G/2},F=N.find(V=>V.id===I.id?!1:P.x>=V.position.x&&P.x<=V.position.x+$&&P.y>=V.position.y&&P.y<=V.position.y+G);b(F?.id??null)},[N,a]),L=C.useCallback((O,I)=>{const $=v;b(null);const G=()=>w(P=>({...P,[I.id]:{x:I.position.x,y:I.position.y}}));if(a||!$||$===I.id||hA(e,I.id,$)){G();return}o(I.id,$),p(P=>P+1)},[v,e,a,o]),A=C.useCallback((O,I)=>{r(I.id==="owner"?null:I.id)},[r]);return u.jsx("div",{style:{width:"100%",height:"100%"},children:u.jsxs(nQ,{nodes:N,edges:k.edges,nodeTypes:yJ,onNodesChange:T,onNodeDrag:M,onNodeDragStop:L,onNodeClick:A,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[u.jsx(aQ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),u.jsx(pQ,{showInteractive:!1}),u.jsx(EQ,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function hA(e,t,n){const i=e.filter(r=>r.reports_to===t).map(r=>r.role_id);for(const r of i)if(r===n||hA(e,r,n))return!0;return!1}function bJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onUpdateRole:a,onDeleteRole:c,onBindExternalTeam:d,onUnbindExternalTeam:m,savedOrgsList:h,activeSavedOrg:p,currentOrgVersion:g,versionAtLoad:x,onSavedOrgsList:v,onSavedOrgSaveAs:b,onSavedOrgLoad:S,onSavedOrgDelete:w}){const[k,j]=C.useState("canvas"),[N,z]=C.useState(null),T=C.useRef(null),M=C.useMemo(()=>e.find(G=>G.role_id===N)??null,[e,N]),L=C.useCallback((G,P)=>{i&&a(G,{reports_to:P})},[a,i]),A=C.useCallback(()=>{T.current?.autoLayout()},[]),O=C.useCallback(()=>{if(!i)return;const G=new Set(e.map(V=>V.role_id));let P="new_role",F=1;for(;G.has(P);)F+=1,P=`new_role_${F}`;o(P,"New Role","","owner",null),z(P)},[e,o,i]),I=C.useCallback(()=>{if(!i||!M)return;const G=new Set(e.map(V=>V.role_id));let P=`${M.role_id}_copy`,F=1;for(;G.has(P);)F+=1,P=`${M.role_id}_copy_${F}`;o(P,`${M.name} (copy)`,M.responsibility,M.reports_to,M.icon),z(P)},[e,o,M,i]),$=C.useRef(null);return C.useEffect(()=>{const G=P=>{const F=P.target;if(!(F&&(F.tagName==="INPUT"||F.tagName==="TEXTAREA"||F.tagName==="SELECT"||F.isContentEditable))&&!($.current&&!$.current.contains(F))){if(P.key==="Escape"&&N){z(null),P.preventDefault();return}if(P.key==="Delete"&&N&&i){c(N),z(null),P.preventDefault();return}if((P.metaKey||P.ctrlKey)&&P.key.toLowerCase()==="d"&&N&&i){I(),P.preventDefault();return}if(P.key.toLowerCase()==="f"&&k==="canvas"){A(),P.preventDefault();return}}};return window.addEventListener("keydown",G),()=>window.removeEventListener("keydown",G)},[N,i,k,c,A,I]),u.jsxs("div",{className:"se-container",ref:$,children:[u.jsxs("div",{className:"se-toolbar",children:[u.jsxs("div",{className:"se-view-switcher",role:"tablist","aria-label":"Editor view",children:[u.jsx("button",{role:"tab","aria-selected":k==="canvas",className:`se-view-btn${k==="canvas"?" is-active":""}`,onClick:()=>j("canvas"),children:"Canvas"}),u.jsx("button",{role:"tab","aria-selected":k==="table",className:`se-view-btn${k==="table"?" is-active":""}`,onClick:()=>j("table"),children:"Table"})]}),u.jsxs("div",{className:`se-toolbar-actions${i?"":" se-toolbar-actions--readonly"}`,children:[i?u.jsxs("div",{className:"se-saved-org-control",children:[u.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),u.jsx(CU,{savedOrgs:h??null,activeName:p??null,isDirty:x!=null&&(g??0)!==x,onRefresh:v??(()=>{}),onSaveAs:b??(()=>{}),onLoad:S??(()=>{}),onDelete:w??(()=>{})})]}):u.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),u.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),k==="canvas"&&u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:A,children:"Auto-layout"}),i&&u.jsx("button",{className:"btn btn-primary btn-sm",onClick:O,children:"+ Add role"})]})]}),u.jsxs("div",{className:"se-body",children:[k==="canvas"?u.jsx(xJ,{ref:T,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:N,onSelectRole:z,onReparent:L,readOnly:!i}):u.jsx(jq,{roles:e,employees:t,selectedIds:N?[N]:[],onSelectRow:G=>z(G),onUpdateRole:a,onDeleteRole:c,readOnly:!i}),M&&u.jsx(TU,{role:M,allRoles:e,employees:t,readOnly:!i,teamBindingEditable:!0,organizationId:r,onUpdateRole:a,onBindExternalTeam:d,onUnbindExternalTeam:m,onDeleteRole:G=>{c(G),z(null)},onClose:()=>z(null)})]})]})}const os={rocket:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M13.13 22.19L11.5 18.36c3.07-1.39 5.51-3.94 6.69-7.07L22 13l-8.87 9.19zM5.64 12.5L2 10.87l9.19-8.87 1.63 3.81c-3.13 1.18-5.68 3.62-7.07 6.69zM14.54 9.46c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0 .78 2.05 0 2.83c-.79.78-2.05.78-2.83 0zM8 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z'/%3E%3C/svg%3E",people:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",check:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",addPerson:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",trash:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E",team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",deploy:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z'/%3E%3C/svg%3E",person:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function _J({onComplete:e,onSwitchToTab:t}){const[n,i]=C.useState(1),[r,o]=C.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...r,{name:"",resp:"",parent:"owner"}]),c=(g,x,v)=>{const b=[...r];b[g][x]=v,o(b)},d=g=>{r.length<=1||o(r.filter((x,v)=>v!==g))},m=r.filter(g=>g.name.trim()),h=m.map(g=>g.name.trim()).filter(Boolean),p=()=>{e(m.map(g=>({name:g.name.trim(),responsibility:g.resp.trim(),reportsTo:g.parent})))};return u.jsxs("div",{className:"qs-wizard",children:[u.jsxs("div",{className:"qs-header",children:[u.jsx("img",{src:os.rocket,alt:"",className:"qs-header-icon"}),u.jsxs("div",{children:[u.jsx("h3",{className:"qs-header-title",children:"Build Your Team"}),u.jsxs("p",{className:"qs-header-sub",children:["Create an org team in a few steps, or ",u.jsx("button",{className:"qs-link-btn",onClick:()=>t("architecture"),children:"use a template"})]})]})]}),u.jsx("div",{className:"qs-progress",children:[{n:1,icon:os.people,label:"Team Members"},{n:2,icon:os.check,label:"Preview"}].map(g=>u.jsxs("div",{className:`qs-step${n===g.n?" qs-step-active":n>g.n?" qs-step-done":""}`,children:[u.jsx("img",{src:g.icon,alt:"",className:"qs-step-icon"}),u.jsx("span",{children:g.label})]},g.n))}),n===1&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Who's on your team?"}),u.jsx("p",{className:"qs-hint",children:"Add each team member with their name and what they do."}),u.jsx("div",{className:"qs-members",children:r.map((g,x)=>u.jsxs("div",{className:"qs-member-row",children:[u.jsx("input",{className:"qs-member-name",value:g.name,placeholder:"Role name (e.g. Engineer)",onChange:v=>c(x,"name",v.target.value)}),u.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>c(x,"resp",v.target.value)}),u.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>c(x,"parent",v.target.value),children:[u.jsx("option",{value:"owner",children:"Reports to you"}),h.filter(v=>v!==g.name.trim()).map(v=>u.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),r.length>1&&u.jsx("button",{className:"qs-remove-btn",onClick:()=>d(x),title:"Remove",children:u.jsx("img",{src:os.trash,alt:"",className:"qs-remove-icon"})})]},x))}),u.jsxs("button",{className:"qs-add-member",onClick:a,children:[u.jsx("img",{src:os.addPerson,alt:"",className:"qs-add-icon"})," Add another member"]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("span",{}),u.jsx("button",{className:"oc-btn-primary",onClick:()=>i(2),disabled:m.length===0,children:"Next: Preview →"})]})]}),n===2&&u.jsxs("div",{className:"qs-panel",children:[u.jsx("h4",{children:"Your team at a glance"}),u.jsxs("div",{className:"qs-preview",children:[u.jsxs("div",{className:"qs-preview-section",children:[u.jsxs("h5",{children:["Team (",m.length," members)"]}),m.map((g,x)=>u.jsxs("div",{className:"qs-preview-member",children:[u.jsx("strong",{children:g.name}),g.resp&&u.jsxs("span",{className:"qs-preview-resp",children:[" — ",g.resp]}),u.jsx("span",{className:"qs-preview-parent",children:g.parent==="owner"?" (reports to you)":` (managed by ${g.parent})`})]},x))]}),u.jsxs("div",{className:"qs-preview-section",children:[u.jsx("h5",{children:"Actor Runtime"}),u.jsx("p",{children:"Seat routing and delegation will be derived from your reporting structure and any team seats you configure later."})]})]}),u.jsxs("div",{className:"qs-nav",children:[u.jsx("button",{className:"oc-btn-ghost",onClick:()=>i(1),children:"← Back"}),u.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:p,children:"Create Team"})]})]})]})}function kJ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onBulkAddRoles:a,onUpdateRole:c,onDeleteRole:d,onBindExternalTeam:m,onUnbindExternalTeam:h,onExport:p,onImportEmployee:g,onResetArchitecture:x,onSwitchToTab:v,savedOrgsList:b,activeSavedOrg:S,currentOrgVersion:w,versionAtLoad:k,onSavedOrgsList:j,onSavedOrgSaveAs:N,onSavedOrgLoad:z,onSavedOrgDelete:T}){const[M,L]=C.useState(!1),[A,O]=C.useState(!1),[I,$]=C.useState(""),[G,P]=C.useState(""),[F,V]=C.useState(""),[Y,U]=C.useState("1.0.0"),Z=C.useMemo(()=>{const te=new Map;for(const oe of t){const le=oe.role_ids?.length?oe.role_ids:[oe.role_id];for(const he of le){if(!he)continue;const Te=te.get(he)||[];Te.push(oe),te.set(he,Te)}}return te},[t]),W=()=>{!I.trim()||!G.trim()||(p({package_id:I.trim(),name:G.trim(),description:F,version:Y}),O(!1),$(""),P(""),V(""),U("1.0.0"))},q=C.useRef(null);C.useEffect(()=>{M&&e.length>0&&(L(!1),q.current&&(clearTimeout(q.current),q.current=null))},[e.length,M]),C.useEffect(()=>{if(M)return q.current=setTimeout(()=>L(!1),1e4),()=>{q.current&&clearTimeout(q.current)}},[M]);const Q=te=>{const oe=new Map,le=new Set,he=[];for(const Te of te){let be=Te.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!be)continue;let je=be,Ve=2;for(;le.has(je);)je=`${be}-${Ve++}`;le.add(je),oe.set(Te.name,je);const Ye=Te.reportsTo==="owner"?"owner":oe.get(Te.reportsTo)||"owner";he.push({role_id:je,name:Te.name,responsibility:Te.responsibility,reports_to:Ye})}if(he.length!==0)if(a)L(!0),a(he);else{for(const Te of he)o(Te.role_id,Te.name,Te.responsibility,Te.reports_to);L(!0)}},D=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&x?.()},K=C.useMemo(()=>{let te=0;for(const oe of e)(oe.covered_by_external_team||(Z.get(oe.role_id)??[]).length>0)&&(te+=1);return te},[e,Z]),ne=C.useMemo(()=>t.filter(te=>te.linked_agent_id).length,[t]),ee=Math.max(0,e.filter(te=>!te.covered_by_external_team&&(Z.get(te.role_id)??[]).length===0).length);return i&&e.length===0?u.jsx("div",{className:"team-view",children:M?u.jsx("div",{className:"qs-wizard",children:u.jsxs("div",{className:"qs-loading",children:[u.jsx("span",{className:"spinner-inline"})," Setting up your team..."]})}):u.jsx(_J,{onComplete:Q,onSwitchToTab:v})}):u.jsxs("div",{className:"team-view",children:[u.jsxs("div",{className:`team-command-bar${i?" team-command-bar--editable":" team-command-bar--readonly"}`,children:[u.jsxs("div",{className:"team-command-copy",children:[u.jsx("span",{className:"team-command-eyebrow",children:i?"Saved org workspace":"Corporate baseline"}),u.jsx("span",{className:"team-command-title",children:i?"Editable company architecture":"Built-in company architecture"})]}),u.jsxs("div",{className:"team-command-metrics",children:[u.jsxs("span",{children:[u.jsx("b",{children:K})," staffed roles"]}),u.jsxs("span",{children:[u.jsx("b",{children:ee})," vacant"]}),u.jsxs("span",{children:[u.jsx("b",{children:ne})," in office"]})]}),i&&u.jsxs("div",{className:"team-command-actions",children:[u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>v("employees"),children:[u.jsx("img",{src:os.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),u.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>O(!0),children:"Export Package"}),x&&u.jsxs("button",{className:"myorg-reset-btn",onClick:D,children:[u.jsx("img",{src:os.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!i&&u.jsx("div",{className:"team-readonly-strip",children:"Corporate role structure is fixed. Execution scope can still bind a role subtree to one JiuwenSwarm Team."}),u.jsx(bJ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:i,organizationId:r,onAddRole:o,onUpdateRole:c,onDeleteRole:d,onBindExternalTeam:m,onUnbindExternalTeam:h,savedOrgsList:b??null,activeSavedOrg:S??null,currentOrgVersion:w??0,versionAtLoad:k??null,onSavedOrgsList:j,onSavedOrgSaveAs:N,onSavedOrgLoad:z,onSavedOrgDelete:T}),A&&u.jsxs("div",{className:"myorg-form",children:[u.jsx("h4",{className:"myorg-form-title",children:"Export as .opcpkg"}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Package ID"}),u.jsx("input",{value:I,onChange:te=>$(te.target.value),placeholder:"my-architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Name"}),u.jsx("input",{value:G,onChange:te=>P(te.target.value),placeholder:"My Architecture"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Description"}),u.jsx("input",{value:F,onChange:te=>V(te.target.value),placeholder:"An org team structure"})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Version"}),u.jsx("input",{value:Y,onChange:te=>U(te.target.value)})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:W,disabled:!I.trim()||!G.trim(),children:"Export"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>O(!1),children:"Cancel"})]})]}),u.jsxs("div",{className:"myorg-section",children:[u.jsxs("div",{className:"myorg-section-header",children:[u.jsx("img",{src:os.team,alt:"",className:"myorg-section-icon"}),u.jsx("h3",{className:"myorg-section-title",children:"Team Roster"}),u.jsxs("span",{className:"myorg-section-count",children:[t.length," members"]}),u.jsx("span",{className:"myorg-section-spacer"}),u.jsxs("span",{className:"myorg-section-note",children:[K,"/",e.length," staffed"]})]}),u.jsx("div",{className:"team-roster-grid",children:e.map(te=>{const oe=Z.get(te.role_id)||[],le=!!te.covered_by_external_team;return u.jsxs("div",{className:`team-roster-card${le?" team-roster-card--external":""}`,children:[u.jsxs("div",{className:"team-roster-card-header",children:[u.jsx("img",{src:Yu(te.icon),alt:"",className:"team-roster-card-icon"}),u.jsx("span",{className:"team-roster-role-name",children:te.name}),u.jsx("span",{className:"team-roster-count",children:le?"team":oe.length||"vacant"})]}),le?u.jsxs("div",{className:"team-roster-external",children:[u.jsx("b",{children:te.external_team_boundary?"JiuwenSwarm Team boundary":"Covered by external team"}),u.jsx("span",{children:te.external_team_boundary?"No separate role recruitment; Jiuwen manages internal staffing.":`Inherited from ${te.external_team_boundary_role_id??"team boundary"}.`})]}):oe.length>0?oe.map(he=>u.jsxs("div",{className:"team-roster-emp",children:[u.jsx("img",{src:os.person,alt:"",className:"team-roster-emp-avatar"}),u.jsxs("div",{className:"team-roster-emp-info",children:[u.jsx("span",{className:"team-roster-emp-name",children:he.name}),u.jsx("span",{className:`team-roster-seniority team-roster-seniority--${he.seniority}`,children:he.seniority})]}),he.linked_agent_id?u.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):g&&he.role_id?u.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>g(he.employee_id),title:"Add this employee to the office workspace",children:[u.jsx("img",{src:os.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},he.employee_id)):u.jsxs("div",{className:"team-roster-vacant",children:[u.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),i&&u.jsx("button",{className:"team-roster-hire-btn",onClick:()=>v("employees"),children:"Hire"})]})]},te.role_id)})})]})]})}function gp(e){if(e.adaptive&&typeof e.adaptive=="object")return e.adaptive;const t=e.metadata;if(t&&typeof t=="object"&&t.adaptive&&typeof t.adaptive=="object")return t.adaptive}function SJ(e){const t=gp(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(i=>i&&typeof i=="object").filter(i=>!!(i.required??!0)&&!i.satisfied).map(i=>String(i.name??"").trim()).filter(Boolean)}function wJ(e){const n=gp(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function CJ(e){const t=gp(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function jJ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:i,frontier:r,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:c,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:h,onUpdateRuntimePolicy:p}){const g=e.filter(S=>(d??[]).includes(S.role_id)),x=c||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!x,b=new Map(e.map(S=>[S.role_id,S.name]));return u.jsxs("div",{className:"wfe-container",children:[u.jsxs("div",{className:"wfe-header",children:[u.jsx("h3",{className:"wfe-title",children:"Actor Runtime"}),u.jsx("span",{className:"wfe-profile-badge",children:o})]}),u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Final decider"}),u.jsxs("select",{value:x,disabled:m,onChange:S=>{m||h?.({final_decider_role_id:S.target.value||null})},children:[u.jsx("option",{value:"",children:g.length>1?"Select top-level role":"Auto-select only top-level role"}),g.map(S=>u.jsx("option",{value:S.role_id,children:S.name},S.role_id))]})]}),u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Runtime wakeups, delegation, approvals, and recovery are seat-scoped."}),v&&u.jsx("div",{className:"org-toast org-toast--warn",style:{margin:"0 0 8px"},children:"Multiple top-level roles exist. Select one final decider before company execution can start."})]})}),t.length||n.length||i.length?u.jsx("div",{className:"myorg-collapsible",style:{margin:"0 0 8px"},children:u.jsxs("div",{className:"myorg-collapsible-body",style:{display:"block"},children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Runtime"}),u.jsxs("div",{children:[r.status||"running",r.run_id?` (${r.run_id.slice(0,8)})`:""]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Frontier"}),u.jsxs("div",{children:[r.running_count??0," running, ",r.ready_count??0," ready, ",r.blocked_count??0," blocked, ",r.waiting_count??0," waiting"]})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Teams"}),u.jsx("div",{children:t.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Seats"}),u.jsx("div",{children:n.length})]}),u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Work items"}),u.jsx("div",{children:i.length})]}),i.length>0&&u.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:i.slice(0,6).map(S=>{const w=gp(S),k=typeof w?.normalized_state=="string"?w.normalized_state:"",j=typeof w?.blocked_reason=="string"?w.blocked_reason:S.blocked_reason??"",N=wJ(S),z=SJ(S),T=CJ(S),M=[j?`waiting ${j}`:"",N?`gate ${b.get(N)??N}`:"",z.length?`signals ${z.join(", ")}`:"",T?`confidence ${T}`:"",k==="invalidated"?"invalidated":""].filter(Boolean);return u.jsxs("div",{style:{marginBottom:6},children:[u.jsxs("div",{children:[b.get(S.role_id)??S.role_id,": ",S.title," [",S.phase,"]",S.kanban_column&&u.jsxs("span",{style:{opacity:.5},children:[" · ",S.kanban_column]}),S.batch_id&&u.jsxs("span",{style:{opacity:.5},children:[" batch:",S.batch_id]}),k&&k!==S.phase&&u.jsxs("span",{style:{opacity:.7},children:[" state:",k]})]}),M.length>0&&u.jsx("div",{style:{marginLeft:12,opacity:.85},children:M.join(" • ")})]},S.work_item_id)})})]})}):null]})}function EJ({pkg:e,onUninstall:t,uninstallingId:n}){const i=n===e.package_id;return u.jsxs("div",{className:"pkg-card",children:[u.jsxs("div",{className:"pkg-card-header",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",alt:"package",className:"pkg-card-icon"}),u.jsxs("div",{className:"pkg-card-title-wrap",children:[u.jsx("span",{className:"pkg-card-name",children:e.name||e.package_id}),u.jsxs("span",{className:"pkg-card-version",children:["v",e.version]})]})]}),u.jsxs("div",{className:"pkg-card-stats",children:[u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E",alt:"roles",className:"pkg-stat-icon"}),e.role_ids.length," roles"]}),u.jsxs("span",{className:"pkg-card-stat",children:[u.jsx("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E",alt:"templates",className:"pkg-stat-icon"}),e.template_ids.length," templates"]})]}),e.installed_at&&u.jsxs("div",{className:"pkg-card-date",children:["Installed ",new Date(e.installed_at).toLocaleDateString()]}),t&&u.jsx("div",{className:"pkg-card-actions",children:u.jsx("button",{className:"pkg-btn pkg-btn-danger",disabled:i,onClick:r=>{r.stopPropagation(),t(e.package_id)},children:i?"Removing...":"Uninstall"})})]})}function Vx({icon:e,title:t,count:n,extra:i,children:r,defaultExpanded:o=!1}){const[a,c]=C.useState(o);return u.jsxs("div",{className:"myorg-collapsible",children:[u.jsxs("button",{className:"myorg-collapsible-toggle",onClick:()=>c(!a),children:[u.jsx("span",{className:"myorg-toggle-icon",children:a?"▾":"▸"}),u.jsx("img",{src:e,alt:"",className:"myorg-section-icon"}),u.jsx("span",{className:"myorg-collapsible-title",children:t}),u.jsx("span",{className:"myorg-collapsible-count",children:n}),i&&u.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:i})]}),a&&u.jsx("div",{className:"myorg-collapsible-body",children:r})]})}const ss={search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E",arch:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",packages:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z'/%3E%3C/svg%3E",channels:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z'/%3E%3C/svg%3E",reorg:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z'/%3E%3C/svg%3E",importPkg:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E",arrow:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E",gateReview:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f59e0b' d='M12 2L4 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-3zm-2 16l-4-4 1.41-1.41L10 15.17l6.59-6.59L18 10l-8 8z'/%3E%3C/svg%3E",gateApproval:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",gateHold:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ef4444' d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E"},Gv={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function NJ({presets:e,installedIds:t,previewData:n,applyingPresetId:i,readOnly:r,onPreview:o,onApplyPreset:a,onClearPreview:c,installedPackages:d,channels:m,reorgProposals:h,isCustomMode:p,onReorgDecide:g,onMarketInstall:x,onMarketUninstall:v}){const[b,S]=C.useState(""),[w,k]=C.useState(null),[j,N]=C.useState(null),[z,T]=C.useState(!1),[M,L]=C.useState(""),[A,O]=C.useState(null),[I,$]=C.useState(null),[G,P]=C.useState(()=>new Set),[F,V]=C.useState({}),Y=C.useMemo(()=>{const D=new Set;for(const K of e)K.category&&D.add(K.category);return Array.from(D).sort()},[e]),U=C.useMemo(()=>{const D=new Set;for(const K of e)K.collaboration_pattern&&D.add(K.collaboration_pattern);return Array.from(D).sort()},[e]),Z=C.useMemo(()=>{let D=e;if(w&&(D=D.filter(K=>K.category===w)),j&&(D=D.filter(K=>K.collaboration_pattern===j)),b.trim()){const K=b.trim().toLowerCase();D=D.filter(ne=>ne.name.toLowerCase().includes(K)||ne.description.toLowerCase().includes(K)||ne.tags.some(ee=>ee.toLowerCase().includes(K))||(Gv[ne.collaboration_pattern]||"").toLowerCase().includes(K))}return D},[e,w,j,b]),W=()=>{M.trim()&&(x(M.trim(),"namespace"),T(!1),L(""))},q=D=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(O(D),v(D),setTimeout(()=>O(null),3e3))},Q=async(D,K)=>{if(!(!D.checkpoint_id||D.checkpoint_status!=="pending")){$(D.proposal_id),V(ne=>({...ne,[D.proposal_id]:""}));try{const ne=await g(D,K);if(!ne.accepted){V(ee=>({...ee,[D.proposal_id]:ne.reason||ne.error||"Decision was not accepted."}));return}P(ee=>{const te=new Set(ee);return te.add(D.proposal_id),te})}catch(ne){V(ee=>({...ee,[D.proposal_id]:ne instanceof Error?ne.message:"Decision failed."}))}finally{$(ne=>ne===D.proposal_id?null:ne)}}};return u.jsxs("div",{className:"mkt-container","data-testid":"architecture-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:ss.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:b,onChange:D=>S(D.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[Z.length," architectures"]})]}),u.jsxs("div",{className:"mkt-filters",children:[Y.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${w?"":" active"}`,onClick:()=>k(null),children:"All"}),Y.map(D=>u.jsx("button",{className:`mkt-pill${w===D?" active":""}`,onClick:()=>k(w===D?null:D),children:D},D))]}),U.length>0&&u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),U.map(D=>u.jsx("button",{className:`mkt-pill mkt-pill-pattern${j===D?" active":""}`,onClick:()=>N(j===D?null:D),children:Gv[D]||D},D))]})]}),Z.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:ss.arch,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),u.jsx("span",{className:"mkt-section-count",children:Z.length})]}),u.jsx("div",{className:"mkt-arch-grid",children:Z.map(D=>u.jsx(IJ,{preset:D,isInstalled:t.has(D.id),isApplying:i===D.id,readOnly:r,onPreview:()=>o(D.id),onApply:()=>a(D.id,"namespace")},D.id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:"No architectures match your search."})}),u.jsxs(Vx,{icon:ss.packages,title:"Installed Packages",count:d.length,extra:p?u.jsxs("button",{className:"myorg-inline-btn",onClick:()=>T(!z),children:[u.jsx("img",{src:ss.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[p&&z&&u.jsxs("div",{className:"myorg-form",children:[u.jsxs("div",{className:"oc-form-row",children:[u.jsx("label",{children:"Path"}),u.jsx("input",{value:M,onChange:D=>L(D.target.value),placeholder:"/path/to/package.opcpkg"})]}),u.jsxs("div",{className:"oc-form-actions",children:[u.jsx("button",{className:"oc-btn-primary",onClick:W,disabled:!M.trim(),children:"Install"}),u.jsx("button",{className:"oc-btn-ghost",onClick:()=>T(!1),children:"Cancel"})]})]}),d.length>0?u.jsx("div",{className:"pkg-grid",children:d.map(D=>u.jsx(EJ,{pkg:D,onUninstall:p?q:void 0,uninstallingId:A},D.package_id))}):u.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),u.jsx(Vx,{icon:ss.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?u.jsx("div",{className:"org-channels-grid",children:m.map(D=>u.jsxs("div",{className:`org-channel-card${D.running?" org-ch-running":""}${D.enabled?"":" org-ch-disabled"}`,children:[u.jsxs("div",{className:"org-ch-header",children:[u.jsx("span",{className:`org-ch-dot${D.running?" running":D.ready?" ready":D.configured?" configured":""}`}),u.jsx("span",{className:"org-ch-name",children:D.name})]}),u.jsxs("div",{className:"org-ch-status-row",children:[D.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),D.running&&u.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!D.enabled&&u.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},D.name))}):u.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),h.length>0&&u.jsx(Vx,{icon:ss.reorg,title:"Reorg Proposals",count:h.length,children:u.jsx("div",{className:"org-reorg-list",children:h.map(D=>{const K=D.status==="proposed",ne=I===D.proposal_id,ee=G.has(D.proposal_id),te=K&&p&&D.checkpoint_status==="pending"&&!!D.checkpoint_id&&!ee;return u.jsxs("div",{className:`org-reorg-card org-reorg-${D.status}`,children:[u.jsxs("div",{className:"org-reorg-header",children:[u.jsx("span",{className:"org-reorg-title",children:D.title||D.summary||"Untitled"}),u.jsx("span",{className:"org-reorg-status",children:D.status})]}),D.summary&&u.jsx("div",{className:"org-reorg-summary",children:D.summary}),te&&u.jsxs("div",{className:"org-reorg-actions",children:[u.jsx("button",{className:"org-reorg-approve",disabled:ne,onClick:()=>{Q(D,!0)},children:ne?"Submitting…":"Approve"}),u.jsx("button",{className:"org-reorg-deny",disabled:ne,onClick:()=>{Q(D,!1)},children:"Deny"})]}),K&&p&&ee&&u.jsx("div",{className:"org-reorg-status",children:"Decision submitted"}),K&&p&&D.user_confirmation_required&&!D.checkpoint_id&&!ee&&u.jsx("div",{className:"org-reorg-status",children:"Approval is unavailable until its review checkpoint is restored."}),F[D.proposal_id]&&u.jsx("div",{className:"org-reorg-status",children:F[D.proposal_id]})]},D.proposal_id)})})}),n&&u.jsx(TJ,{data:n,isInstalled:t.has(n.id),isApplying:i===n.id,onApply:()=>a(n.id,"namespace"),onClose:c})]})}function IJ({preset:e,isInstalled:t,isApplying:n,readOnly:i,onPreview:r,onApply:o}){const a=Gv[e.collaboration_pattern]||e.collaboration_pattern;return u.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:r,children:[u.jsxs("div",{className:"mkt-arch-header",children:[u.jsx("span",{className:"mkt-arch-emoji",children:e.emoji}),u.jsxs("div",{className:"mkt-arch-title-wrap",children:[u.jsx("span",{className:"mkt-arch-name",children:e.name}),u.jsxs("div",{className:"mkt-arch-badges",children:[u.jsx("span",{className:"mkt-arch-category",children:e.category}),e.collaboration_pattern&&u.jsx("span",{className:"mkt-arch-pattern",children:a})]})]})]}),e.dag_summary&&u.jsx("div",{className:"mkt-arch-dag-summary",children:e.dag_summary}),u.jsx("div",{className:"mkt-arch-desc",children:e.description}),u.jsxs("div",{className:"mkt-arch-stats",children:[u.jsxs("span",{className:"mkt-arch-stat",children:[e.roles_count," roles"]}),u.jsxs("span",{className:"mkt-arch-stat",children:[e.work_item_templates_count," templates"]}),e.gates_count>0&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.gates_count," checkpoints"]}),e.team_size&&u.jsxs("span",{className:"mkt-arch-stat",children:[e.team_size," people"]})]}),e.tags.length>0&&u.jsx("div",{className:"mkt-arch-tags",children:e.tags.slice(0,4).map(c=>u.jsx("span",{className:"mkt-tag",children:c},c))}),u.jsxs("div",{className:"mkt-arch-actions",children:[t?u.jsx("span",{className:"mkt-installed-badge",children:"Installed"}):i?null:u.jsx("button",{className:"mkt-btn mkt-btn-primary mkt-btn-sm",disabled:n,onClick:c=>{c.stopPropagation(),o()},children:n?"Applying...":"Use This"}),u.jsx("button",{className:"mkt-btn mkt-btn-ghost mkt-btn-sm",onClick:c=>{c.stopPropagation(),r()},children:"Preview"})]})]})}function TJ({data:e,isInstalled:t,isApplying:n,onApply:i,onClose:r}){return u.jsx("div",{className:"mkt-modal-overlay",onClick:r,children:u.jsxs("div",{className:"mkt-modal",onClick:o=>o.stopPropagation(),children:[u.jsxs("div",{className:"mkt-modal-header",style:{borderBottomColor:e.color||"var(--border)"},children:[u.jsx("span",{className:"mkt-modal-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"mkt-modal-name",children:e.name}),u.jsx("span",{className:"mkt-modal-category",children:e.category})]}),u.jsx("button",{className:"mkt-modal-close",onClick:r,children:"×"})]}),u.jsxs("div",{className:"mkt-modal-body",children:[u.jsx("p",{className:"mkt-modal-desc",children:e.description}),e.tags.length>0&&u.jsxs("div",{className:"mkt-modal-section",children:[u.jsx("div",{className:"mkt-modal-label",children:"Tags"}),u.jsx("div",{className:"mkt-modal-tags",children:e.tags.map(o=>u.jsx("span",{className:"mkt-tag",children:o},o))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Roles (",e.roles.length,")"]}),u.jsx("div",{className:"mkt-role-list",children:e.roles.map(o=>u.jsxs("div",{className:"mkt-role-item",children:[u.jsxs("div",{className:"mkt-role-name",children:[o.name," ",u.jsx("code",{children:o.id})]}),u.jsx("div",{className:"mkt-role-resp",children:o.responsibility}),u.jsxs("div",{className:"mkt-role-meta",children:["reports to: ",u.jsx("code",{children:o.reports_to}),o.can_spawn&&o.can_spawn.length>0&&u.jsxs(u.Fragment,{children:[" · spawns: ",o.can_spawn.map(a=>u.jsx("code",{children:a},a))]})]})]},o.id))})]}),u.jsxs("div",{className:"mkt-modal-section",children:[u.jsxs("div",{className:"mkt-modal-label",children:["Work item templates (",e.work_item_templates.length," templates)"]}),u.jsx("div",{className:"mkt-dag-wrap",children:u.jsx(RJ,{templates:e.work_item_templates})})]})]}),u.jsx("div",{className:"mkt-modal-footer",children:t?u.jsx("span",{className:"mkt-installed-badge",children:"Already Installed"}):u.jsx("button",{className:"mkt-btn mkt-btn-primary",disabled:n,onClick:i,children:n?"Applying...":"Use This Architecture"})})]})})}function RJ({templates:e}){const t=[];let n="__init__",i=[];for(const r of e)r.parallel_group!==n?(i.length>0&&t.push({group:n,templates:i}),n=r.parallel_group,i=[r]):i.push(r);return i.length>0&&t.push({group:n,templates:i}),u.jsx("div",{className:"org-dag",children:t.map((r,o)=>u.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&u.jsx("div",{className:"org-dag-arrow",children:u.jsx("img",{src:ss.arrow,alt:"→",className:"org-dag-arrow-icon"})}),u.jsxs("div",{className:`org-dag-group${r.templates.length>1?" org-dag-parallel":""}`,children:[r.templates.length>1&&u.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),r.templates.map(a=>u.jsxs("div",{className:"org-dag-node",children:[u.jsxs("div",{className:"org-dag-node-header",children:[u.jsx("span",{className:"org-dag-node-title",children:a.title}),u.jsx("span",{className:"org-dag-node-role",children:a.role_id})]}),u.jsx("div",{className:"org-dag-node-id",children:a.id}),a.gate&&u.jsxs("div",{className:`org-dag-gate org-gate-${a.gate.type}`,children:[u.jsx("img",{src:a.gate.type==="review"?ss.gateReview:a.gate.type==="approval"?ss.gateApproval:ss.gateHold,alt:"",className:"org-gate-icon"}),u.jsx("span",{children:a.gate.type}),a.gate.reviewer_role&&u.jsxs("span",{className:"org-gate-reviewer",children:["by ",a.gate.reviewer_role]})]})]},a.id))]})]},o))})}function AJ(e){const t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function MJ({template:e,hiringId:t,onHire:n,onClick:i}){const r=t===e.template_id,o=e.color?{background:`color-mix(in srgb, ${e.color} 18%, transparent)`,color:e.color,boxShadow:`inset 0 0 0 1px color-mix(in srgb, ${e.color} 28%, transparent)`}:void 0,a=[],c=new Set;for(const h of[...e.tags,...e.domains])c.has(h)||(c.add(h),a.push(h));const d=a.slice(0,3),m=a.length-d.length;return u.jsxs("div",{className:"tm-card",onClick:()=>i(e),children:[u.jsxs("div",{className:"tm-card-head",children:[u.jsx("div",{className:"tm-card-avatar",style:o,"aria-hidden":!0,children:e.emoji?u.jsx("span",{className:"tm-card-avatar-emoji",children:e.emoji}):u.jsx("span",{className:"tm-card-avatar-mono",children:AJ(e.name)})}),u.jsxs("div",{className:"tm-card-head-text",children:[u.jsxs("div",{className:"tm-card-name-row",children:[u.jsx("span",{className:"tm-card-name",title:e.name,children:e.name}),e.preferred_external_agent&&u.jsx("span",{className:"tm-card-agent-badge",title:`Agent: ${e.preferred_external_agent}`,children:e.preferred_external_agent})]}),e.category&&u.jsx("span",{className:"tm-card-category",children:e.category})]})]}),u.jsxs("div",{className:"tm-card-body",children:[e.vibe&&u.jsxs("div",{className:"tm-card-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("div",{className:"tm-card-desc",children:e.description})]}),d.length>0&&u.jsxs("div",{className:"tm-card-chips",children:[d.map(h=>u.jsx("span",{className:"tm-card-chip",children:h},h)),m>0&&u.jsxs("span",{className:"tm-card-chip tm-card-chip-more",children:["+",m]})]}),u.jsx("div",{className:"tm-card-footer",children:u.jsx("button",{className:"tm-card-hire-btn",disabled:r,onClick:h=>{h.stopPropagation(),n(e.template_id)},children:r?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const gA=e=>e,yA=e=>e;function DJ({template:e,vacantRoles:t,hiringId:n,readOnly:i,onHire:r,onClose:o}){const[a,c]=C.useState(""),d=n===e.template_id,m=t.length===0,h=!i&&!d&&!m&&a!=="";C.useEffect(()=>{c("")},[e.template_id]);const p=()=>{h&&r(yA(e.template_id),gA(a))};return u.jsx("div",{className:"tm-detail-overlay",onClick:o,children:u.jsxs("div",{className:"tm-detail-modal",onClick:g=>g.stopPropagation(),children:[u.jsxs("div",{className:"tm-detail-header",style:{borderBottomColor:e.color||"var(--border)"},children:[e.emoji&&u.jsx("span",{className:"tm-detail-emoji",children:e.emoji}),u.jsxs("div",{children:[u.jsx("h2",{className:"tm-detail-name",children:e.name}),u.jsx("span",{className:"tm-detail-category",children:e.category})]}),u.jsx("button",{className:"tm-detail-close",onClick:o,children:"×"})]}),u.jsxs("div",{className:"tm-detail-body",children:[e.vibe&&u.jsxs("blockquote",{className:"tm-detail-vibe",children:['"',e.vibe,'"']}),e.description&&u.jsx("p",{className:"tm-detail-desc",children:e.description}),e.domains.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Domains"}),u.jsx("div",{className:"tm-detail-tags",children:e.domains.map(g=>u.jsx("span",{className:"org-domain-tag",children:g},g))})]}),e.tags.length>0&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Tags"}),u.jsx("div",{className:"tm-detail-tags",children:e.tags.map(g=>u.jsx("span",{className:"org-tool-tag",children:g},g))})]}),e.preferred_external_agent&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Recommended Agent"}),u.jsx("span",{className:"tm-card-agent-badge",children:e.preferred_external_agent})]}),!i&&u.jsxs("div",{className:"tm-detail-section",children:[u.jsx("div",{className:"tm-detail-label",children:"Hire into role"}),m?u.jsx("p",{className:"tm-detail-vacancy-empty",children:"No vacant roles. Create a role in the Team tab first."}):u.jsx("div",{className:"tm-detail-role-list",role:"listbox","aria-label":"Vacant roles",children:t.map(g=>{const x=g.role_id===a;return u.jsxs("button",{type:"button",role:"option","aria-selected":x,className:`tm-detail-role-row${x?" is-selected":""}`,onClick:()=>c(g.role_id),children:[u.jsx("span",{className:"tm-detail-role-name",children:g.name}),g.responsibility&&u.jsx("span",{className:"tm-detail-role-resp",children:g.responsibility})]},g.role_id)})})]})]}),!i&&u.jsx("div",{className:"tm-detail-footer",children:u.jsx("button",{className:"tm-detail-hire-btn",disabled:!h,onClick:p,children:d?u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function OJ({open:e,template:t,vacantRoles:n,onConfirm:i,onClose:r}){const[o,a]=C.useState("");if(C.useEffect(()=>{e&&a("")},[e,t?.template_id]),C.useEffect(()=>{if(!e)return;const h=p=>{p.key==="Escape"&&r()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[e,r]),!e||!t)return null;const c=n.length===0,d=!c&&o!=="",m=()=>{d&&i(yA(t.template_id),gA(o))};return u.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:r,children:u.jsxs("div",{className:"htr-modal",onMouseDown:h=>h.stopPropagation(),children:[u.jsxs("header",{className:"htr-header",children:[u.jsxs("div",{children:[u.jsxs("h3",{className:"htr-title",children:["Hire ",t.name]}),u.jsx("p",{className:"htr-subtitle",children:"Pick the role to fill with this employee."})]}),u.jsx("button",{className:"htr-close",type:"button",onClick:r,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"htr-body",children:c?u.jsxs("div",{className:"htr-empty",children:[u.jsx("p",{className:"htr-empty-title",children:"No vacant roles."}),u.jsx("p",{className:"htr-empty-hint",children:"Add a role in the Team tab first, then come back to hire."})]}):u.jsx("div",{className:"htr-role-list",role:"listbox","aria-label":"Vacant roles",children:n.map(h=>{const p=h.role_id===o;return u.jsxs("button",{type:"button",role:"option","aria-selected":p,className:`htr-role-row${p?" is-selected":""}`,onClick:()=>a(h.role_id),children:[u.jsx("span",{className:"htr-role-name",children:h.name}),h.responsibility&&u.jsx("span",{className:"htr-role-resp",children:h.responsibility})]},h.role_id)})})}),u.jsxs("footer",{className:"htr-footer",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:r,children:c?"Close":"Cancel"}),!c&&u.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const K2={search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E",talent:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"};function LJ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:i,onHireTalent:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(null),[p,g]=C.useState(null),x=C.useMemo(()=>{const S=new Set;for(const w of e)w.category&&S.add(w.category);return Array.from(S).sort()},[e]),v=C.useMemo(()=>{let S=e;if(c&&(S=S.filter(w=>w.category===c)),o.trim()){const w=o.trim().toLowerCase();S=S.filter(k=>k.name.toLowerCase().includes(w)||k.description.toLowerCase().includes(w)||k.domains.some(j=>j.toLowerCase().includes(w))||k.tags.some(j=>j.toLowerCase().includes(w))||(k.vibe??"").toLowerCase().includes(w))}return S},[e,c,o]),b=S=>{if(i)return;const w=e.find(k=>k.template_id===S);w&&g(w)};return u.jsxs("div",{className:"mkt-container","data-testid":"employees-marketplace",children:[u.jsxs("div",{className:"mkt-toolbar",children:[u.jsxs("div",{className:"mkt-search-wrap",children:[u.jsx("img",{src:K2.search,alt:"",className:"mkt-search-icon"}),u.jsx("input",{className:"mkt-search",placeholder:"Search talent templates...",value:o,onChange:S=>a(S.target.value)})]}),u.jsxs("span",{className:"mkt-count",children:[v.length," employees",t.length>0&&u.jsxs(u.Fragment,{children:[" · ",t.length," vacant role",t.length===1?"":"s"]})]})]}),x.length>0&&u.jsx("div",{className:"mkt-filters",children:u.jsxs("div",{className:"mkt-pill-row",children:[u.jsx("button",{className:`mkt-pill${c?"":" active"}`,onClick:()=>d(null),children:"All"}),x.map(S=>u.jsx("button",{className:`mkt-pill${c===S?" active":""}`,onClick:()=>d(c===S?null:S),children:S},S))]})}),v.length>0?u.jsxs("div",{className:"mkt-section",children:[u.jsxs("div",{className:"mkt-section-header",children:[u.jsx("img",{src:K2.talent,alt:"",className:"mkt-section-icon"}),u.jsx("h3",{className:"mkt-section-title",children:"Talent Templates"}),u.jsx("span",{className:"mkt-section-count",children:v.length})]}),u.jsx("div",{className:"tm-grid",children:v.map(S=>u.jsx(MJ,{template:S,hiringId:n,onHire:b,onClick:h},S.template_id))})]}):u.jsx("div",{className:"mkt-empty",children:u.jsx("p",{children:e.length===0?"No talent templates available.":"No employees match your search."})}),m&&u.jsx(DJ,{template:m,vacantRoles:t,hiringId:n,readOnly:i,onHire:(S,w)=>{i||(r(S,w),h(null))},onClose:()=>h(null)}),u.jsx(OJ,{open:p!==null,template:p,vacantRoles:t,onConfirm:(S,w)=>{r(S,w),g(null)},onClose:()=>g(null)})]})}const iu={download:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E",upload:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z'/%3E%3C/svg%3E",check:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E",warn:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ef4444' d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E"};function zJ({onExport:e,onImport:t,configExportYaml:n,importPreview:i,importError:r}){const[o,a]=C.useState(""),[c,d]=C.useState(null),[m,h]=C.useState(!1),p=C.useRef(!1),g=C.useRef(null);C.useEffect(()=>{if(!p.current||!n||n===g.current)return;g.current=n,p.current=!1;const k=new Blob([n],{type:"application/x-yaml"}),j=URL.createObjectURL(k),N=document.createElement("a");N.href=j;const z=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);N.download=`org_config_${z}.yaml`,document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(j)},[n]),C.useEffect(()=>{h(!1)},[o]),C.useEffect(()=>{i&&!r&&h(!0)},[i,r]);const x=()=>{p.current=!0,e()},v=k=>{const j=k.target.files?.[0];if(!j)return;d(j.name);const N=new FileReader;N.onload=()=>{const z=N.result;typeof z=="string"&&a(z)},N.readAsText(j),k.target.value=""},b=()=>{o.trim()&&t(o,!0)},S=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),h(!1),a(""),d(null))},w=()=>{a(""),d(null),h(!1)};return u.jsxs("div",{className:"cfg-io-panel","data-testid":"config-import-export-panel",children:[u.jsxs("div",{className:"cfg-io-header",children:[u.jsx("h3",{className:"cfg-io-title",children:"Config Import / Export"}),u.jsx("p",{className:"cfg-io-subtitle",children:"Download the current company architecture as YAML, or upload one to replace it."})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:iu.download,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Download current config"})]}),u.jsxs("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:x,children:[u.jsx("img",{src:iu.download,alt:"",className:"cfg-io-btn-icon"})," Download YAML"]})]}),u.jsxs("div",{className:"cfg-io-section",children:[u.jsxs("div",{className:"cfg-io-section-header",children:[u.jsx("img",{src:iu.upload,alt:"",className:"cfg-io-section-icon"}),u.jsx("span",{className:"cfg-io-section-title",children:"Upload config"})]}),u.jsx("div",{className:"cfg-io-upload-row",children:u.jsxs("label",{className:"cfg-io-file-label",children:[u.jsx("input",{type:"file",accept:".yaml,.yml",onChange:v,className:"cfg-io-file-input"}),u.jsx("span",{className:"cfg-io-file-btn",children:"Choose file…"}),u.jsx("span",{className:"cfg-io-file-name",children:c??"no file selected"})]})}),u.jsx("textarea",{className:"cfg-io-textarea",placeholder:"…or paste YAML here",value:o,onChange:k=>a(k.target.value),spellCheck:!1,rows:10}),u.jsxs("div",{className:"cfg-io-actions",children:[u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:b,disabled:!o.trim(),children:"Dry run"}),u.jsx("button",{className:"cfg-io-btn cfg-io-btn-primary",onClick:S,disabled:!m||!o.trim(),children:"Apply"}),o&&u.jsx("button",{className:"cfg-io-btn cfg-io-btn-ghost",onClick:w,children:"Clear"})]}),i&&!r&&u.jsxs("div",{className:"cfg-io-preview",children:[u.jsx("img",{src:iu.check,alt:"",className:"cfg-io-preview-icon"}),u.jsxs("div",{className:"cfg-io-preview-body",children:[u.jsx("div",{className:"cfg-io-preview-title",children:"Dry run OK — ready to apply"}),u.jsxs("div",{className:"cfg-io-preview-stats",children:[u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles added"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_added})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Roles removed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.roles_removed})]}),u.jsxs("span",{className:"cfg-io-preview-stat",children:[u.jsx("span",{className:"cfg-io-stat-label",children:"Employees changed"}),u.jsx("span",{className:"cfg-io-stat-value",children:i.employees_changed})]})]})]})]}),r&&u.jsxs("div",{className:"cfg-io-error",children:[u.jsx("img",{src:iu.warn,alt:"",className:"cfg-io-error-icon"}),u.jsxs("div",{className:"cfg-io-error-body",children:[u.jsx("div",{className:"cfg-io-error-title",children:"Validation failed"}),u.jsx("pre",{className:"cfg-io-error-text",children:r})]})]})]})]})}const Z2=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function Ux(e){return e.trim()||"Member"}function PJ({open:e,pending:t,result:n,onClose:i,onCreate:r}){const[o,a]=C.useState(1),[c,d]=C.useState(""),[m,h]=C.useState(Z2),[p,g]=C.useState("");C.useEffect(()=>{e&&(a(1),d(""),h(Z2),g(""))},[e]),C.useEffect(()=>{if(!(!e||!n)){if(n.ok){i();return}g(n.error||"Failed to create organization")}},[e,n,i]);const x=c.trim().length>0,v=C.useMemo(()=>m.map((M,L)=>({member:M,index:L})).filter(M=>M.member.name.trim()),[m]),b=C.useMemo(()=>new Map(v.map((M,L)=>[M.index,L])),[v]),S=v.length>=2,w=x&&S&&!t,k=C.useMemo(()=>v.map(({member:M,index:L},A)=>{const O=M.reportsToIndex==null?null:b.get(M.reportsToIndex);return{...M,roleName:Ux(M.name),managerName:O!=null&&O{h(A=>A.map((O,I)=>I===M?{...O,...L}:O))},N=()=>{h(M=>[...M,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},z=M=>{h(L=>L.filter((O,I)=>I!==M).map((O,I)=>({...O,reportsToIndex:O.reportsToIndex==null?null:O.reportsToIndex>=M?Math.max(0,O.reportsToIndex-1):O.reportsToIndex})).map((O,I)=>I===0?{...O,reportsToIndex:null}:O))},T=()=>{w&&(g(""),r(c.trim(),v.map(({member:M},L)=>{const A=M.reportsToIndex==null?null:b.get(M.reportsToIndex);return{name:M.name.trim(),responsibility:M.responsibility.trim(),prompt:M.prompt.trim(),reports_to_index:A!=null&&AM.stopPropagation(),children:[u.jsxs("div",{className:"org-create-header",children:[u.jsxs("div",{children:[u.jsx("span",{className:"org-create-eyebrow",children:"New organization"}),u.jsx("h3",{id:"org-create-title",className:"org-create-title",children:"Create a saved org"})]}),u.jsx("button",{type:"button",className:"org-create-close",onClick:i,"aria-label":"Close",children:"x"})]}),u.jsx("div",{className:"org-create-steps","aria-label":"Create organization steps",children:[["1","Name"],["2","Members"],["3","Review"]].map(([M,L])=>u.jsxs("span",{className:`org-create-step${o===Number(M)?" org-create-step--active":o>Number(M)?" org-create-step--done":""}`,children:[u.jsx("span",{children:M}),L]},M))}),o===1&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("label",{className:"org-create-field",children:[u.jsx("span",{children:"Organization name"}),u.jsx("input",{value:c,onChange:M=>d(M.target.value),placeholder:"HKU Research Lab",autoFocus:!0})]})}),o===2&&u.jsxs("div",{className:"org-create-panel",children:[u.jsx("div",{className:"org-create-member-list",children:m.map((M,L)=>u.jsxs("div",{className:"org-create-member-row",children:[u.jsx("input",{value:M.name,onChange:A=>j(L,{name:A.target.value}),placeholder:L===0?"Lead role":"Member role"}),u.jsx("input",{value:M.responsibility,onChange:A=>j(L,{responsibility:A.target.value}),placeholder:"Responsibility"}),u.jsxs("select",{value:M.reportsToIndex==null?"owner":String(M.reportsToIndex),onChange:A=>j(L,{reportsToIndex:A.target.value==="owner"?null:Number(A.target.value)}),disabled:L===0,"aria-label":"Reports to",children:[u.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,L).map((A,O)=>u.jsx("option",{value:O,children:Ux(A.name)},O))]}),u.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>z(L),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),u.jsx("textarea",{value:M.prompt,onChange:A=>j(L,{prompt:A.target.value}),placeholder:"Prompt optional","aria-label":`${L===0?"Lead role":"Member role"} prompt optional`})]},L))}),u.jsx("button",{type:"button",className:"org-create-add",onClick:N,children:"+ Add member"})]}),o===3&&u.jsx("div",{className:"org-create-panel",children:u.jsxs("div",{className:"org-create-review",children:[u.jsxs("div",{className:"org-create-review-head",children:[u.jsx("span",{children:c.trim()}),u.jsxs("b",{children:[v.length," members"]})]}),k.map(M=>u.jsxs("div",{className:"org-create-review-row",children:[u.jsx("strong",{children:M.roleName}),u.jsxs("span",{children:[M.managerName,M.prompt.trim()?u.jsx("em",{children:"Prompt"}):null]})]},M.index))]})}),p&&u.jsx("div",{className:"org-create-error",children:p}),u.jsxs("div",{className:"org-create-actions",children:[u.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?i:()=>a(o-1),children:o===1?"Cancel":"Back"}),o<3?u.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>a(o+1),disabled:o===1?!x:!S,children:"Next"}):u.jsx("button",{type:"button",className:"btn btn-primary",onClick:T,disabled:!w,children:t?"Creating...":"Create organization"})]})]})})}const rl={team:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E",runtime:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M13 2.05v2.02c3.95.49 7 3.85 7 7.93 0 3.21-1.81 6-4.72 7.72L13 17v5h5l-1.22-1.22C19.91 19.07 22 15.76 22 12c0-5.18-3.95-9.45-9-9.95zM11 2.05C5.95 2.55 2 6.82 2 12c0 3.76 2.09 7.07 5.22 8.78L6 22h5V2.05z'/%3E%3C/svg%3E",architecture:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z'/%3E%3C/svg%3E",employees:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E"},Q2={agents:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3z'/%3E%3C/svg%3E",active:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2322c55e' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z'/%3E%3C/svg%3E"};function BJ(e){const t=String(e??"").trim();return t?t.replace(/^org[_-]/i,"").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,n=>n.toUpperCase()):""}function $J({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:i,reorgProposals:r,isCustomMode:o,onRequestData:a,onRequestTalents:c,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:h,onImportEmployee:p,onRequestReorgList:g,onReorgDecide:x,onMarketExport:v,onMarketInstall:b,onMarketUninstall:S,marketPresets:w,marketPreviewData:k,onMarketBrowse:j,onMarketPreview:N,onMarketApplyPreset:z,onMarketClearPreview:T,onAddRole:M,onBulkAddRoles:L,onUpdateRole:A,onDeleteRole:O,onBindExternalTeam:I,onUnbindExternalTeam:$,onUpdateOrgStrategy:G,onUpdateRuntimePolicy:P,onResetArchitecture:F,onConfigExport:V,onConfigImport:Y,configExportYaml:U,configImportPreview:Z,configImportError:W,onSavedOrgsList:q,onSavedOrgSaveAs:Q,onSavedOrgCreate:D,onSavedOrgLoad:K,onSavedOrgDelete:ne,savedOrgsList:ee,activeSavedOrg:te,activeSavedOrgVersionAtLoad:oe,orgCreatePending:le,orgCreateResult:he,onSelectCorporate:Te}){const{t:be}=Wr(),[je,Ve]=C.useState("team"),[Ye,$e]=C.useState(!1),ct=C.useCallback(tt=>{Ve(tt)},[]),[It,yt]=C.useState(null),Vt=C.useRef(-1),[ge,me]=C.useState(null),Ge=C.useRef(null),Ke=C.useCallback((tt,an="info")=>{me({msg:tt,type:an}),Ge.current&&clearTimeout(Ge.current),Ge.current=setTimeout(()=>me(null),3e3)},[]);C.useEffect(()=>()=>{Ge.current&&clearTimeout(Ge.current)},[]);const pt=C.useRef(a),ce=C.useRef(c),Ce=C.useRef(g),Le=C.useRef(j),Fe=C.useRef(q);pt.current=a,ce.current=c,Ce.current=g,Le.current=j,Fe.current=q,C.useEffect(()=>{pt.current(),ce.current(),Ce.current(),Le.current?.(),Fe.current?.()},[]),C.useEffect(()=>{!he||!he.ok||($e(!1),Ve("team"),Ke(be("org.createdToast",{name:he.organization_name||he.name})))},[he,Ke,be]);const Qe=e?.roles??[],wt=C.useMemo(()=>o?Qe.filter(tt=>!tt.is_builtin):Qe,[Qe,o]),Ct=C.useMemo(()=>e?.employees??[],[e?.employees]),dt=C.useMemo(()=>Xm(e),[e]),_e=C.useMemo(()=>Ct.filter(tt=>tt.linked_agent_id),[Ct]),Ze=e?.organization_name?.trim()||BJ(te)||be(o?"org.customOrg":"org.corporateCompany"),it=(o?e?.organization_id||te:"corporate")||"",De=be(o?"org.kind.saved":"org.kind.corporate"),Pt=be(o?te?"org.state.editableSaved":"org.state.editableDraft":"org.state.readOnly"),ri=dt.frontier.status||dt.projectRun?.status||dt.projectRun?.lifecycle_status||be("common.ready"),Bt=C.useMemo(()=>{const tt=new Set;for(const an of Ct){if(an.is_default_employee)continue;const Vn=an.role_ids?.length?an.role_ids:[an.role_id];for(const mn of Vn)mn&&tt.add(mn)}return tt},[Ct]),Dt=C.useMemo(()=>wt.filter(tt=>!Bt.has(tt.role_id)),[wt,Bt]),Cn=C.useMemo(()=>new Set((e?.installed_packages??[]).map(tt=>tt.package_id)),[e?.installed_packages]),Tt=e?.org_version??0;C.useEffect(()=>{It&&Vt.current>=0&&Tt!==Vt.current&&(yt(null),Vt.current=-1,Ve("team"),Ke(be("org.architectureApplied")))},[Tt,It,Ke,be]);const $t=(tt,an)=>{Vt.current=Tt,yt(tt),z?.(tt,an)},Mn=tt=>{if(tt==="corporate"){Te?.();return}if(tt.startsWith("org:")){const an=tt.slice(4);an&&K?.(an)}};if(!e)return u.jsx("div",{className:"org-tab",children:u.jsx("div",{className:"org-loading",children:be("org.loading")})});const xt=e.installed_packages??[],Jn=ee??[],Nn=o&&te?`org:${te}`:"corporate";return u.jsxs("div",{className:"org-tab",children:[u.jsxs("div",{className:`org-header${o?" org-header--custom":" org-header--corporate"}`,children:[u.jsxs("div",{className:"org-header-main",children:[u.jsxs("div",{className:"org-eyebrow",children:[u.jsx("span",{children:be("org.company")}),u.jsx("span",{className:"org-eyebrow-separator",children:"/"}),u.jsx("span",{children:De})]}),u.jsxs("div",{className:"org-title-row",children:[u.jsx("h2",{className:"org-title",children:Ze}),u.jsxs("span",{className:"org-version-badge",children:["v",e.org_version]}),u.jsx("span",{className:`org-state-badge${o?" org-state-badge--editable":" org-state-badge--readonly"}`,children:Pt})]}),u.jsxs("div",{className:"org-header-meta",children:[u.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),it&&u.jsx("code",{className:"org-meta-code",children:it}),u.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:ri}),u.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:be("common.autoSaved")})]})]}),u.jsxs("div",{className:"org-control-panel",children:[u.jsxs("label",{className:"org-switcher",children:[u.jsx("span",{className:"org-switcher-label",children:be("org.organization")}),u.jsx("span",{className:"org-switcher-select-wrap",children:u.jsxs("select",{className:"org-switcher-select",value:Nn,onChange:tt=>Mn(tt.target.value),onFocus:()=>q?.(),onPointerDown:()=>q?.(),"aria-label":be("org.organization"),children:[u.jsx("option",{value:"corporate",children:be("org.corporate")}),Jn.map(tt=>u.jsx("option",{value:`org:${tt.name}`,children:(tt.organization_name||tt.name).trim()||tt.name},tt.name))]})})]}),u.jsxs("button",{type:"button",className:"org-create-trigger",onClick:()=>$e(!0),children:[u.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),be("org.newOrganization")]})]}),u.jsxs("div",{className:"org-stats-strip",children:[u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:Q2.agents,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:wt.length})," ",be("org.roles")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:rl.employees,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:Ct.length})," ",be("org.employees")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:rl.runtime,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:dt.runtimeTeams.length})," ",be("org.runtimeTeams")]}),u.jsxs("span",{className:"org-stat",children:[u.jsx("img",{src:Q2.active,alt:"",className:"org-stat-icon"}),u.jsx("b",{children:_e.length})," ",be("common.active")]})]})]}),u.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:rl.team,label:be("org.tab.team"),count:wt.length},{id:"runtime",icon:rl.runtime,label:be("org.tab.runtime"),count:dt.runtimeTeams.length},{id:"architecture",icon:rl.architecture,label:be("org.tab.architecture"),count:w?.length??0},{id:"employees",icon:rl.employees,label:be("org.tab.employees"),count:n.length}].map(tt=>u.jsxs("button",{className:`org-subtab${je===tt.id?" org-subtab--active":""}`,onClick:()=>ct(tt.id),children:[u.jsx("img",{src:tt.icon,alt:"",className:"org-subtab-icon"}),u.jsx("span",{className:"org-subtab-label",children:tt.label}),u.jsx("span",{className:"org-subtab-count",children:tt.count})]},tt.id))}),ge&&u.jsx("div",{className:`org-toast org-toast--${ge.type}`,onClick:()=>me(null),children:ge.msg}),u.jsxs("div",{className:"org-tab-content",children:[je==="team"&&u.jsx(kJ,{roles:wt,employees:Ct,sessionRecruitmentByRole:t,isCustomMode:o,organizationId:e.organization_id,onAddRole:M??(()=>{}),onBulkAddRoles:L,onUpdateRole:A??(()=>{}),onDeleteRole:O??(()=>{}),onBindExternalTeam:I,onUnbindExternalTeam:$,onExport:v??(()=>{}),onImportEmployee:p,onResetArchitecture:F,onSwitchToTab:tt=>Ve(tt),savedOrgsList:ee,activeSavedOrg:te??null,currentOrgVersion:e?.org_version??0,versionAtLoad:oe??null,onSavedOrgsList:q,onSavedOrgSaveAs:Q,onSavedOrgLoad:K,onSavedOrgDelete:ne}),je==="runtime"&&u.jsx(jJ,{roles:wt,runtimeTeams:dt.runtimeTeams,runtimeSeats:dt.runtimeSeats,workItems:dt.workItems,frontier:dt.frontier,companyProfile:e.company_profile,runtimePolicy:e.runtime_policy,finalDeciderRoleId:e.final_decider_role_id,topLevelRoleIds:e.top_level_role_ids,readOnly:!o,onUpdateOrgStrategy:G,onUpdateRuntimePolicy:P}),je==="architecture"&&u.jsxs(u.Fragment,{children:[u.jsx(NJ,{presets:w??[],installedIds:Cn,previewData:k??null,applyingPresetId:It,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:$t,onClearPreview:T??(()=>{}),installedPackages:xt,channels:e.channels,reorgProposals:r,isCustomMode:!!o,onReorgDecide:x,onMarketInstall:(tt,an)=>b?.(tt,an),onMarketUninstall:tt=>S?.(tt)}),o&&u.jsx(zJ,{onExport:V??(()=>{}),onImport:Y??(()=>{}),configExportYaml:U??null,importPreview:Z??null,importError:W??null})]}),je==="employees"&&u.jsx(LJ,{templates:n,vacantRoles:Dt,hiringTemplateId:h??null,readOnly:!o,onHireTalent:m})]}),u.jsx(PJ,{open:Ye,pending:le,result:he??null,onClose:()=>$e(!1),onCreate:(tt,an)=>D?.(tt,an)})]})}function HJ(e,t,n,i){const r=n.join(", "),o=`session:${t.id}`,a=e.channels.find(c=>c.id===o)??e.channels.find(c=>c.type==="activity");a&&e.sendMessage({channelId:a.id,sender:"system",senderName:"System",content:`Task **${t.displayId}** assigned to ${r}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const FJ=1e12,VJ=/^\[Company:([^\]]+)\]\s*(.*)$/,UJ=/^\[Company\]\s*(.*)$/;function qJ(e,t,n){return!n&&e===!1?!1:t}function xA(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function Am(e){const t=typeof e=="string"?Number(e):e;return typeof t!="number"||!Number.isFinite(t)?Date.now():t!!t&&typeof t=="object").map(t=>({timestamp:Am(t.timestamp),type:t.type??"status_change",summary:typeof t.summary=="string"?t.summary:"",detail:typeof t.detail=="string"?t.detail:void 0,turnId:typeof t.turn_id=="string"?t.turn_id:typeof t.turnId=="string"?t.turnId:void 0,itemId:typeof t.item_id=="string"?t.item_id:typeof t.itemId=="string"?t.itemId:void 0,streamId:typeof t.stream_id=="string"?t.stream_id:typeof t.streamId=="string"?t.streamId:void 0,toolCallId:typeof t.tool_call_id=="string"?t.tool_call_id:typeof t.toolCallId=="string"?t.toolCallId:void 0,permissionGroupKey:typeof t.permission_group_key=="string"?t.permission_group_key:typeof t.permissionGroupKey=="string"?t.permissionGroupKey:void 0,seq:typeof t.seq=="number"&&Number.isFinite(t.seq)?t.seq:void 0,executionMode:typeof t.execution_mode=="string"?t.execution_mode:typeof t.executionMode=="string"?t.executionMode:void 0}))):[]}function GJ(e){return Array.isArray(e)?fT(e.filter(t=>!!t&&typeof t=="object").map(t=>{const n=typeof t.runtime_task_id=="string"?t.runtime_task_id:typeof t.runtimeTaskId=="string"?t.runtimeTaskId:typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:void 0,i=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:Am(t.timestamp),type:t.type??"gate_result",workItemProjectionId:typeof t.work_item_projection_id=="string"?t.work_item_projection_id:typeof t.workItemProjectionId=="string"?t.workItemProjectionId:void 0,workItemTurnType:typeof t.work_item_turn_type=="string"?t.work_item_turn_type:typeof t.workItemTurnType=="string"?t.workItemTurnType:void 0,workItemProjectionTitle:typeof t.work_item_projection_title=="string"?t.work_item_projection_title:typeof t.workItemProjectionTitle=="string"?t.workItemProjectionTitle:void 0,runtimeTaskId:n,executionTurnId:i,roleName:typeof t.role_name=="string"?t.role_name:typeof t.roleName=="string"?t.roleName:void 0,detail:typeof t.detail=="string"?t.detail:void 0}})):[]}function WJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function J2(e){const t=e.toLowerCase();return t.includes("starting")||t.includes("started")?"work_item_started":t.includes("gate passed")||t.includes("approved")||t.includes("completed")?"gate_approved":t.includes("rejected")||t.includes("reworking")?"gate_rejected":t.includes("awaiting peer")?"awaiting_peer":t.includes("awaiting manager review")?"awaiting_manager_review":t.includes("awaiting user")||t.includes("awaiting human review")||t.includes("awaiting review")||t.includes("awaiting confirmation")||t.includes("awaiting feedback")?"awaiting_human":t.includes("failed")?"work_item_failed":t.includes("deadlock")?"deadlock":"gate_result"}function YJ(e){const t=e.content.trim(),n=e.metadata??{},i=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,r=typeof n.forwarded_from=="string"?n.forwarded_from:typeof n.task_id=="string"?n.task_id:typeof n.taskId=="string"?n.taskId:void 0,o=VJ.exec(t);if(o){const[,c,d]=o,m=d.trim();return{timestamp:e.timestamp,type:J2(m),workItemProjectionId:c,workItemProjectionTitle:WJ(c),roleName:i,detail:m||void 0,runtimeTaskId:r,executionTurnId:r}}const a=UJ.exec(t);if(a){const c=a[1].trim();return{timestamp:e.timestamp,type:J2(c),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:i,detail:c||void 0,runtimeTaskId:r,executionTurnId:r}}return null}function XJ(e){return e.map(YJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function KJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const i of t){const r=n.get(i.channelId);r?r.push(i):n.set(i.channelId,[i])}return e.map(i=>{const r=XJ(n.get(i.channelId)??[]),o=i.workItemLog&&i.workItemLog.length>0?i.workItemLog:r,a=[...o].reverse().find(m=>{const h=m.workItemProjectionId;return h&&h!=="company_runtime"}),c=i.mode==="primary"?a?.workItemProjectionId??i.workItemProjectionId:i.workItemProjectionId??a?.workItemProjectionId,d=i.isCompanyRuntime||i.mode==="primary"&&o.length>0;return o.length===0&&c===i.workItemProjectionId&&d===i.isCompanyRuntime?i:{...i,isCompanyRuntime:d,workItemProjectionId:c,...o.length>0?{workItemLog:o}:{}}})}function ZJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(i=>[i.taskId,i]));return e.map(i=>{const r=n.get(i.id);if(!r)return i;const o=r.workItemProjectionId??i.workItemProjectionId,a=r.companyProfile??i.companyProfile,c=r.workItemRoleId??i.workItemRoleId,d=r.workItemRoleName??i.workItemRoleName;return o===i.workItemProjectionId&&a===i.companyProfile&&c===i.workItemRoleId&&d===i.workItemRoleName?i:{...i,workItemProjectionId:o,companyProfile:a,workItemRoleId:c,workItemRoleName:d}})}function vA(e){return{id:e.channel_id??e.id??"",type:e.channel_type??e.type??"session",name:e.name??"",officeId:e.office_id??e.officeId,participants:e.participants??[],pinned:!!e.pinned,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now()}}function Yf(e){const t=e.sender_name??e.senderName??"",n=String(t).trim().toLowerCase()==="task generalist"?"OPC":t;return{id:e.message_id??e.id??"",channelId:e.channel_id??e.channelId??"",sender:e.sender??"",senderName:n,content:e.content??"",timestamp:typeof e.created_at=="number"?e.created_at*1e3:e.timestamp??Date.now(),replyToId:e.reply_to_id??e.replyToId,mentions:e.mentions??[],metadata:e.metadata,senderDeleted:!!(e.sender_deleted??e.senderDeleted)}}function bA(e){return{id:e.board_id??e.id??"",name:e.name??"",description:e.description,color:e.color??"#3b82f6",officeId:e.office_id??e.officeId,prefix:e.prefix??"T",nextTaskNum:e.next_task_num??e.nextTaskNum??1,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now()}}function _A(e){return{id:e.column_id??e.id??"",boardId:e.board_id??e.boardId??"",name:e.name??"",color:e.color??"#888",sortOrder:e.sort_order??e.sortOrder??0,isTerminal:!!(e.is_terminal??e.isTerminal),roleLabel:e.role_label??e.roleLabel,gateType:e.gate_type??e.gateType,isParallel:e.is_parallel??e.isParallel}}function kA(e){const t=xA(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",i=e.work_item_id??e.workItemId??e.task_id??e.id??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??(e.work_item_id??e.workItemId?void 0:e.task_id??e.id),o=e.execution_turn_id??e.executionTurnId??r,a=e.execution_mode??e.executionMode,c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||c==="task_mode_execution";return{id:i,displayId:e.display_id??e.displayId??"",boardId:e.board_id??e.boardId??"",columnId:n,title:e.title??"",description:e.description,priority:e.priority??null,assigneeIds:e.assignee_ids??e.assigneeIds??[],tags:e.tags??[],sortOrder:e.sort_order??e.sortOrder??0,sessionId:e.session_id??e.sessionId,workItemId:e.work_item_id??e.workItemId,runtimeTaskId:r,executionTurnId:o,createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:wA(e.work_item_gate??e.workItemGate),employeeAssignment:SA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,executionUnitKind:e.execution_unit_kind??e.executionUnitKind,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId,externalTeamBoundaryRoleId:e.external_team_boundary_role_id??e.externalTeamBoundaryRoleId,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds,externalCompanyExecutionFence:e.external_company_execution_fence??e.externalCompanyExecutionFence,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:yp(e.progress_log??e.progressLog),handoffContext:e.handoff_context??e.handoffContext,phase:e.phase,runtimeSessionId:e.runtime_session_id??e.runtimeSessionId,resumeCursor:e.resume_cursor??e.resumeCursor,worktreePath:e.worktree_path??e.worktreePath,blockedReason:e.blocked_reason??e.blockedReason,reviewVerdict:e.review_verdict??e.reviewVerdict,reviewSummary:e.review_summary??e.reviewSummary,reviewOwnerRoleId:e.review_owner_role_id??e.reviewOwnerRoleId,reviewOwnerSeatId:e.review_owner_seat_id??e.reviewOwnerSeatId,managerRoleId:e.manager_role_id??e.managerRoleId,managerSeatId:e.manager_seat_id??e.managerSeatId,scopeKey:e.scope_key??e.scopeKey,completionReport:e.completion_report??e.completionReport,reworkFeedback:e.rework_feedback??e.reworkFeedback,planningContext:e.planning_context??e.planningContext,deliverables:e.deliverables,acceptanceCriteria:e.acceptance_criteria??e.acceptanceCriteria,delegationRationale:e.delegation_rationale??e.delegationRationale,nonOverlapGuard:e.non_overlap_guard??e.nonOverlapGuard,coordinationNotes:e.coordination_notes??e.coordinationNotes,originalMessage:e.original_message??e.originalMessage,residentAssignment:e.resident_assignment??e.residentAssignment,memberSessionState:e.member_session_state??e.memberSessionState,ownershipContract:e.ownership_contract??e.ownershipContract}}function SA(e){if(!(!e||typeof e!="object"))return{name:e.name,employeeId:e.employee_id??e.employeeId,category:e.category,experienceScore:e.experience_score??e.experienceScore,domains:e.domains,preferredExternalAgent:e.preferred_external_agent??e.preferredExternalAgent,promptContext:e.prompt_context??e.promptContext,deltaContext:e.delta_context??e.deltaContext,skillRefs:e.skill_refs??e.skillRefs}}function wA(e){if(!(!e||typeof e!="object"))return{type:e.type??e.gate_type??e.gateType,reviewerRole:e.reviewer_role??e.reviewerRole,autoApprove:e.auto_approve??e.autoApprove,criteria:e.criteria}}const QJ=new Set(["queued","ready","ready_for_rework","waiting_dependencies","running","waiting_for_peer","waiting_for_children","paused","needs_attention","awaiting_manager_review","awaiting_human","approved","failed","cancelled"]),JJ=new Set(["active","waiting","pending","done","failed"]);function eee(e){return typeof e=="string"&&QJ.has(e)?e:"queued"}function tee(e){return typeof e=="string"&&JJ.has(e)?e:"pending"}function nee(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function iee(e){const t=typeof e.kind=="string"&&e.kind.trim()?e.kind:"activity",n=typeof e.title=="string"&&e.title.trim()?e.title:t.replace(/_/g," ");return{kind:t,title:n,roleName:typeof e.role_name=="string"?e.role_name:typeof e.roleName=="string"?e.roleName:void 0,runtimeTaskId:typeof e.runtime_task_id=="string"?e.runtime_task_id:typeof e.runtimeTaskId=="string"?e.runtimeTaskId:void 0,entries:yp(e.entries)}}function ree(e){const t=Array.isArray(e.activity_sections)?e.activity_sections:Array.isArray(e.activitySections)?e.activitySections:[];return{workItemId:typeof e.work_item_id=="string"?e.work_item_id:e.workItemId??"",workItemProjectionId:typeof e.work_item_projection_id=="string"?e.work_item_projection_id:e.workItemProjectionId??void 0,phase:eee(e.phase),kanbanColumn:typeof e.kanban_column=="string"?e.kanban_column:e.kanbanColumn??"todo",title:typeof e.title=="string"?e.title:"",kind:typeof e.kind=="string"?e.kind:e.kind??void 0,isReviewTarget:!!(e.is_review_target??e.isReviewTarget),executorRoleId:e.executor_role_id??e.executorRoleId??void 0,executorRoleName:e.executor_role_name??e.executorRoleName??void 0,reviewerRoleId:e.reviewer_role_id??e.reviewerRoleId??void 0,selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent??void 0,executionUnitKind:e.execution_unit_kind??e.executionUnitKind??void 0,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId??void 0,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds??void 0,createdAt:Am(e.created_at??e.createdAt),updatedAt:Am(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(iee),progressLog:yp(e.progress_log??e.progressLog)}}function eE(e){if(!e||typeof e!="object")return;const t={};for(const[n,i]of Object.entries(e)){if(!i||typeof i!="object")continue;const r=i,a=(Array.isArray(r.work_items)?r.work_items:Array.isArray(r.workItems)?r.workItems:[]).map(ree).sort((d,m)=>d.createdAt-m.createdAt),c=typeof r.role_key=="string"?r.role_key:typeof r.roleKey=="string"?r.roleKey:n;t[n]={roleKey:c,roleId:typeof r.role_id=="string"?r.role_id:typeof r.roleId=="string"?r.roleId:n,roleName:typeof r.role_name=="string"?r.role_name:typeof r.roleName=="string"?r.roleName:n,roleSessionId:typeof r.role_session_id=="string"?r.role_session_id:typeof r.roleSessionId=="string"?r.roleSessionId:void 0,teamInstanceId:typeof r.team_instance_id=="string"?r.team_instance_id:typeof r.teamInstanceId=="string"?r.teamInstanceId:void 0,runtimeStatus:nee(r.runtime_status??r.runtimeStatus),aggregatedStatus:tee(r.aggregated_status??r.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function CA(e){const t=xA(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",i=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,r=e.execution_turn_id??e.executionTurnId??i,o=e.execution_mode??e.executionMode,a=String(e.exec_mode??e.execMode??"").trim().toLowerCase(),c=e.work_item_projection_id??e.workItemProjectionId,d=a==="task"||a==="project"||a==="single"||o==="task_mode"||c==="task_mode_execution",m=d?void 0:e.parent_session_id??e.parentSessionId,h={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:i,executionTurnId:r,channelId:e.channel_id??e.channelId??"",sessionId:e.session_id??e.sessionId,parentSessionId:m,mode:d?"primary":e.mode??(m?"child":"primary"),title:e.title??"Untitled",status:e.status??"pending",columnId:e.column_id??e.columnId??"todo",assigneeIds:e.assignee_ids??e.assigneeIds??[],priority:e.priority??null,tags:e.tags??[],agentStatus:t,currentTool:e.current_tool??e.currentTool,displayTool:e.display_tool??e.displayTool??e.current_tool??e.currentTool,toolElapsedMs:e.tool_elapsed_ms??e.toolElapsedMs,lastToolSummary:e.last_tool_summary??e.lastToolSummary,contextTokens:e.context_tokens??e.contextTokens,contextWindow:e.context_window??e.contextWindow,contextRemainingPct:e.context_remaining_pct??e.contextRemainingPct,inputTokens:e.input_tokens??e.inputTokens,outputTokens:e.output_tokens??e.outputTokens,totalTokens:e.total_tokens??e.totalTokens,turnCostUsd:e.turn_cost_usd??e.turnCostUsd,sessionCostUsd:e.session_cost_usd??e.sessionCostUsd,pendingPermissionCount:e.pending_permission_count??e.pendingPermissionCount,drainMode:e.drain_mode??e.drainMode,progressLog:yp(e.progress_log??e.progressLog),createdAt:typeof e.created_at=="number"?e.created_at*1e3:e.createdAt??Date.now(),updatedAt:typeof e.updated_at=="number"?e.updated_at*1e3:e.updatedAt??Date.now(),messageCount:e.message_count??e.messageCount??0,latestPreview:e.latest_preview??e.latestPreview,latestSender:e.latest_sender??e.latestSender,latestMessageId:e.latest_message_id??e.latestMessageId,indexLoaded:e.index_loaded??e.indexLoaded,detailLoaded:e.detail_loaded??e.detailLoaded,fullLoaded:e.full_loaded??e.fullLoaded,hasMore:e.has_more??e.hasMore,summaryHasMore:e.summary_has_more??e.summaryHasMore,fullHasMore:e.full_has_more??e.fullHasMore,detailLoading:e.detail_loading??e.detailLoading,detailError:e.detail_error??e.detailError,viewGeneration:e.view_generation??e.viewGeneration,execMode:e.exec_mode??e.execMode,companyProfile:d?void 0:e.company_profile??e.companyProfile,orgId:d?void 0:e.org_id??e.organization_id??e.orgId??e.organizationId,preferredAgent:e.preferred_agent??e.preferredAgent,workItemProjectionId:d?void 0:c,workItemTurnType:d?void 0:e.work_item_turn_type??e.workItemTurnType,workItemRoleId:d?void 0:e.work_item_role_id??e.workItemRoleId,workItemRoleName:d?void 0:e.work_item_role_name??e.workItemRoleName,workItemGate:d?void 0:wA(e.work_item_gate??e.workItemGate),employeeAssignment:SA(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,executionUnitKind:e.execution_unit_kind??e.executionUnitKind,externalTeamBindingId:e.external_team_binding_id??e.externalTeamBindingId,externalTeamBoundaryRoleId:e.external_team_boundary_role_id??e.externalTeamBoundaryRoleId,coveredRoleIds:e.covered_role_ids??e.coveredRoleIds,externalCompanyExecutionFence:e.external_company_execution_fence??e.externalCompanyExecutionFence,originChannel:e.origin_channel??e.originChannel,originTaskId:e.origin_task_id??e.originTaskId??e.task_id??e.taskId,runtimeControlState:e.runtime_control_state??e.runtimeControlState,canStop:e.can_stop??e.canStop,canResume:e.can_resume??e.canResume,resumeParentSessionId:e.resume_parent_session_id??e.resumeParentSessionId,pendingRuntimeCheckpointId:e.pending_runtime_checkpoint_id??e.pendingRuntimeCheckpointId,stopIntentId:e.stop_intent_id??e.stopIntentId,handoffContext:e.handoff_context??e.handoffContext,handoffTo:e.handoff_to??e.handoffTo,artifacts:e.artifacts,isCompanyRuntime:d?!1:e.is_company_runtime??e.isCompanyRuntime,workItemLog:d?[]:GJ(e.work_item_log??e.workItemLog),roleWorkItems:d?void 0:eE(e.role_work_items??e.roleWorkItems),executorRoleWorkItems:d?void 0:eE(e.executor_role_work_items??e.executorRoleWorkItems),draftTurnId:e.draft_turn_id??e.draftTurnId,runtimeSessionId:e.runtime_session_id??e.runtimeSessionId,resumeCursor:e.resume_cursor??e.resumeCursor,activeSubagents:e.active_subagents??e.activeSubagents,permissionRequests:e.permission_requests??e.permissionRequests,worktreePath:e.worktree_path??e.worktreePath,residentStatus:e.resident_status??e.residentStatus,actionableInboxCount:e.actionable_inbox_count??e.actionableInboxCount,protocolBacklogCount:e.protocol_backlog_count??e.protocolBacklogCount,notificationBacklogCount:e.notification_backlog_count??e.notificationBacklogCount,latestNotification:e.latest_notification??e.latestNotification};return mT(h)}function tE(e){const t=(e.channels??[]).map(vA),n=(e.messages??[]).map(Yf),i=(e.boards??[]).map(bA),r=(e.columns??[]).map(_A),o=KJ((e.sessions??[]).map(CA),n),a=ZJ((e.tasks??[]).map(kA),o);return{channels:t,messages:n,boards:i,columns:r,tasks:a,sessions:o}}function see(e){return`session:${e}`}const oee=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function aee(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!oee.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,i={},r=(o,a)=>{const c=String(o??"").trim(),d=String(a??"").trim();if(!c||!d)return;const m=i[c]??(i[c]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&r(o.role_id,o.selection_label);if(Object.keys(i).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";r(o?.role_id,a)}return Object.keys(i).length?i:null}const db=[{name:"midnight"},{name:"neon"},{name:"paper"},{name:"retro"},{name:"terminal"},{name:"cozy"},{name:"openopc",default:!0}],jA=db.filter(e=>"default"in e&&e.default);if(jA.length!==1)throw new Error("Theme registry must contain exactly one default");const nE=jA[0].name,EA="opc_office_theme",lee=new Set(db.map(e=>e.name));function NA(e){return typeof e=="string"&&lee.has(e)}function cee(e){return`theme.${e}`}function uee(e){try{const t=(e??globalThis.localStorage).getItem(EA);return NA(t)?t:nE}catch{return nE}}function dee(e,t){try{(t??globalThis.localStorage).setItem(EA,e)}catch{}}function fee(){try{const e=localStorage.getItem("opc_outdoor_override");if(e==="day"||e==="night")return e;if(localStorage.getItem("opc_outdoor_day")==="1")return"day";if(localStorage.getItem("opc_outdoor_night")==="1")return"night"}catch{}return"auto"}const iE=80,mee=new Set(["message_start","message_stop","tool_call_delta","status_snapshot","context_usage","cost_update","task_ledger_updated","prompt_prefix_state","prompt_prefix_cache_fingerprint","prefetch_started","prefetch_completed","prefetch_consumed","durable_memory_extracted","durable_memory_extraction_failed","session_memory_updated","session_memory_update_failed","tool_batch_started","tool_batch_completed","permission_predicted","turn_started","turn_completed"]),pee=new Set(["member_inbox_updated"]);function hee(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function gee(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function ru(e){return iU(e)}function As(e){return Cv(e)}function qx(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function Qo(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function Ds(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"||t==="jiuwen"||t==="jiuwenswarm"?t:"native"}function yee(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function xee(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",i=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},r=Array.isArray(e.specialties)?e.specialties.filter(a=>typeof a=="string"):t?.specialties??[],o=typeof e.agent_id=="string"?e.agent_id:t?.agent_id??"";return{agent_id:o,name:typeof e.name=="string"&&e.name?e.name:typeof e.role_name=="string"&&e.role_name?e.role_name:t?.name??o,description:typeof e.description=="string"?e.description:t?.description??"",specialties:r,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:i,employee_id:typeof e.employee_id=="string"?e.employee_id:t?.employee_id,opc_role_id:typeof e.opc_role_id=="string"?e.opc_role_id:t?.opc_role_id,runtime_status:n,current_tool:typeof e.current_tool=="string"?e.current_tool:e.current_tool==null?void 0:t?.current_tool,current_task_id:typeof e.current_task_id=="string"?e.current_task_id:e.current_task_id==null?void 0:t?.current_task_id}}function rE(e,t=[]){const n=new Map(t.map(i=>[i.agent_id,i]));return e.filter(i=>!!i&&typeof i=="object").map(i=>{const r=typeof i.agent_id=="string"?i.agent_id:"";return xee(i,n.get(r))}).filter(i=>!!i.agent_id)}function sE(e){if(!e||typeof e!="object")return;const t=e;return{name:typeof t.name=="string"?t.name:void 0,employeeId:typeof t.employee_id=="string"?t.employee_id:typeof t.employeeId=="string"?t.employeeId:void 0,category:typeof t.category=="string"?t.category:void 0,experienceScore:typeof t.experience_score=="number"?t.experience_score:typeof t.experienceScore=="number"?t.experienceScore:void 0}}function Df(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function oE(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function Gx(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=sE(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Ds(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Ds(e.selectedExecutionAgent)),t}typeof e.work_item_projection_id=="string"?t.workItemProjectionId=e.work_item_projection_id:typeof e.workItemProjectionId=="string"&&(t.workItemProjectionId=e.workItemProjectionId),typeof e.work_item_turn_type=="string"?t.workItemTurnType=e.work_item_turn_type:typeof e.workItemTurnType=="string"&&(t.workItemTurnType=e.workItemTurnType),typeof e.work_item_role_id=="string"?t.workItemRoleId=e.work_item_role_id:typeof e.workItemRoleId=="string"&&(t.workItemRoleId=e.workItemRoleId),typeof e.work_item_role_name=="string"?t.workItemRoleName=e.work_item_role_name:typeof e.workItemRoleName=="string"&&(t.workItemRoleName=e.workItemRoleName);const r=sE(e.employee_assignment??e.employeeAssignment);return r&&(t.employeeAssignment=r),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=Ds(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=Ds(e.selectedExecutionAgent)),t}function Wx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.runtime_session_id=="string"&&(t.runtimeSessionId=e.runtime_session_id),typeof e.resume_cursor=="number"&&(t.resumeCursor=e.resume_cursor),Array.isArray(e.active_subagents)&&(t.activeSubagents=e.active_subagents),Array.isArray(e.permission_requests)&&(t.permissionRequests=e.permission_requests),typeof e.worktree_path=="string"&&(t.worktreePath=e.worktree_path),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function Yx(e){const t={};return e.latest_notification&&typeof e.latest_notification=="object"&&(t.latestNotification=e.latest_notification),typeof e.current_tool=="string"&&(t.currentTool=e.current_tool),typeof e.display_tool=="string"&&e.display_tool.trim()&&(t.displayTool=e.display_tool),typeof e.tool_elapsed_ms=="number"&&(t.toolElapsedMs=e.tool_elapsed_ms),typeof e.last_tool_summary=="string"&&(t.lastToolSummary=e.last_tool_summary),typeof e.context_tokens=="number"&&(t.contextTokens=e.context_tokens),typeof e.context_window=="number"&&e.context_window>0&&(t.contextWindow=e.context_window),typeof e.context_remaining_pct=="number"&&(t.contextRemainingPct=e.context_remaining_pct),typeof e.input_tokens=="number"?t.inputTokens=e.input_tokens:typeof e.input_tokens_total=="number"?t.inputTokens=e.input_tokens_total:typeof e.tokens_in=="number"&&(t.inputTokens=e.tokens_in),typeof e.output_tokens=="number"?t.outputTokens=e.output_tokens:typeof e.output_tokens_total=="number"?t.outputTokens=e.output_tokens_total:typeof e.tokens_out=="number"&&(t.outputTokens=e.tokens_out),typeof e.total_tokens=="number"?t.totalTokens=e.total_tokens:typeof e.tokens_total=="number"&&(t.totalTokens=e.tokens_total),typeof e.turn_cost_usd=="number"&&(t.turnCostUsd=e.turn_cost_usd),typeof e.session_cost_usd=="number"&&(t.sessionCostUsd=e.session_cost_usd),typeof e.pending_permission_count=="number"&&(t.pendingPermissionCount=e.pending_permission_count),typeof e.drain_mode=="string"&&(t.drainMode=e.drain_mode),typeof e.resident_status=="string"&&(t.residentStatus=e.resident_status),typeof e.actionable_inbox_count=="number"&&(t.actionableInboxCount=e.actionable_inbox_count),typeof e.protocol_backlog_count=="number"&&(t.protocolBacklogCount=e.protocol_backlog_count),typeof e.notification_backlog_count=="number"&&(t.notificationBacklogCount=e.notification_backlog_count),t}function aE(e,t){if(!t||!e)return!1;if(t.activeSessionId===e)return!0;const n=t.activeSession;if(!n)return!1;if(n.taskId===e||n.parentSessionId===e||n.sessionId===e)return!0;const i=t.sessions.find(c=>c.taskId===e);if(!i)return!1;const r=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(i.parentSessionId??"").trim();if(o&&r.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(i.taskId??"").trim()===a||String(i.sessionId??"").trim()===a:!1}function vee(e){return e==="done"||e==="delivered"?"approved":e==="failed"?"failed":e==="cancelled"?"cancelled":e==="pending"?"queued":e==="awaiting_manager_review"||e==="awaiting_review"?"awaiting_manager_review":e==="awaiting_human"?"awaiting_human":"running"}function bee(e){return e==="approved"||e==="failed"||e==="cancelled"?"done":e==="awaiting_manager_review"||e==="awaiting_human"?"in-review":e==="queued"||e==="ready"||e==="ready_for_rework"||e==="waiting_dependencies"?"todo":"in-progress"}function _ee(e){return e==="done"||e==="delivered"?"done":e==="failed"||e==="cancelled"?"failed":e==="pending"?"pending":e==="awaiting_manager_review"||e==="awaiting_review"||e==="awaiting_human"?"waiting":"active"}function kee(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function See(e){const t=vo(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,i=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),r=vee(e.status);return{roleKey:n,roleId:n,roleName:i,runtimeStatus:kee(e.agentStatus),aggregatedStatus:_ee(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:r,kanbanColumn:bee(r),title:e.title||i,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:i,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:i,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function wee({taskId:e,sessions:t,agents:n,onClose:i}){if(!e)return null;for(const a of t){const c=a.roleWorkItems;if(c)for(const d of Object.values(c)){const m=d.workItems.find(h=>h.executionTurnId===e);if(m)return u.jsx(VC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:i})}}const r=t.find(a=>a.taskId===e||vo(a)===e);if(!r)return null;const o=See(r);return u.jsx(VC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:i})}function Cee(){const{locale:e,setLocale:t,t:n,translateMaybe:i}=Wr(),r=C.useRef(new x4);C.useMemo(()=>S4(r.current),[]);const o=C.useRef(null),a=hee(),[c,d]=C.useState(a),[m,h]=C.useState(a),[p,g]=C.useState("disconnected"),[x,v]=C.useState(""),[b,S]=C.useState(null),[w,k]=C.useState([]),[j,N]=C.useState(0),[z,T]=C.useState(null),[M,L]=C.useState(null),[A,O]=C.useState(uee),[I,$]=C.useState(!0),[G,P]=C.useState(()=>{try{return localStorage.getItem("opc_office_sidebar_collapsed")==="1"}catch{return!1}}),F=()=>P(J=>{const B=!J;try{localStorage.setItem("opc_office_sidebar_collapsed",B?"1":"0")}catch{}return B}),[V,Y]=C.useState("all"),[U,Z]=C.useState("workspace"),[W,q]=C.useState([]),[Q,D]=C.useState(!1),[K,ne]=C.useState(null),[ee,te]=C.useState("task"),[oe,le]=C.useState("corporate"),[he,Te]=C.useState("native"),[be,je]=C.useState(null),[Ve,Ye]=C.useState(null),[$e,ct]=C.useState(null),[It,yt]=C.useState([]),[Vt,ge]=C.useState(""),[me,Ge]=C.useState(null),[Ke,pt]=C.useState([]),[ce,Ce]=C.useState([]),[Le,Fe]=C.useState(null),[Qe,wt]=C.useState(null),[Ct,dt]=C.useState(null),[_e,et]=C.useState(null),[Ze,it]=C.useState(null),[De,Pt]=C.useState(null),[ri,Bt]=C.useState(null),[Dt,Cn]=C.useState(!1),[Tt,$t]=C.useState(null),[Mn,xt]=C.useState(null),Jn=C.useRef(new Set),Nn=C.useRef(new Set),tt=C.useRef([]),an=C.useRef("task"),Vn=C.useRef(null),mn=C.useRef(null),ht=C.useRef(null),ut=C.useRef(null),hi=C.useRef(null),Dn=C.useRef("default"),en=C.useRef(null),Ht=C.useRef(""),Ft=C.useRef(0),Un=C.useRef(!1),Ae=C.useRef(!1),Et=C.useRef(0),ln=C.useRef(!1),gi=C.useRef(null),xn=C.useRef(null),vt=C.useRef(new Map),[Ei,yi]=C.useState(null),[ei,pn]=C.useState(null),[Xt,qt]=C.useState("success"),[Kt,In]=C.useState(null),[On,ti]=C.useState(null),[ki,cn]=C.useState(null),[Ln,zn]=C.useState(()=>fee()),Gn=C.useCallback(J=>(typeof J=="string"?J.trim():"")||"default",[]),Xe=C.useCallback(()=>Gn(Dn.current),[Gn]),Pn=C.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),qn=C.useCallback(J=>{if(!J||typeof J!="object")return"";for(const ie of["project_id","projectId","active_project_id","activeProjectId"]){const se=J[ie];if(typeof se=="string"&&se.trim())return se.trim()}const B=J.data;if(B&&typeof B=="object")for(const ie of["project_id","projectId"]){const se=B[ie];if(typeof se=="string"&&se.trim())return se.trim()}return""},[]),vn=C.useCallback((J,B=!1)=>{const ie=qn(J);return ie?ie===Xe():B},[Xe,qn]),pe=C.useCallback(J=>{if(!J||typeof J!="object")return"";const B=J.switch_seq??J.switchSeq;return typeof B=="string"?B.trim():""},[]),ke=C.useCallback(J=>{if(!J||typeof J!="object")return null;const B=J.view_generation??J.viewGeneration;if(typeof B=="number")return B;if(typeof B=="string"&&B.trim()){const ie=Number(B);return Number.isFinite(ie)?ie:null}return null},[]),Me=C.useCallback(J=>{const B=qn(J);if(!B)return!1;const ie=en.current;if(B!==Xe()&&B!==ie)return!1;const se=ke(J);if(se!==null&&se!==Ft.current)return!1;const de=pe(J);return!de||!Ht.current||de===Ht.current},[Xe,pe,ke,qn]),bt=C.useCallback(J=>{if(!J||J.error!=="task_not_found")return!1;if(!vn(J,!1))return!0;if((typeof J.action=="string"?J.action:"")!=="session_detail")return!1;const ie=ke(J);if(ie!==null&&ie!==Ft.current)return!0;const se=typeof J.task_id=="string"?J.task_id:"";return se?!(ut.current?.sessions??[]).some(Ne=>Ne.taskId===se):!0},[vn,ke]),Rt=C.useCallback(()=>{for(const J of vt.current.values())clearTimeout(J);vt.current.clear()},[]),ue=C.useCallback((J,B="full",ie=!1,se)=>{if(!J)return;const de=se||Xe(),Ne=Ft.current;if(!ie&&!aE(J,ut.current))return;const Be=`${de}:${Ne}:${J}`,Pe=vt.current.get(Be);Pe&&(clearTimeout(Pe),vt.current.delete(Be));const rt=setTimeout(()=>{if(vt.current.delete(Be),de!==Xe()||Ne!==Ft.current||!ie&&!aE(J,ut.current))return;const Nt=o.current;if(ut.current?.updateSession(J,{detailLoading:!0,detailError:void 0,viewGeneration:Ne}),!Nt){ut.current?.updateSession(J,{detailLoading:!1,detailError:"connection_unavailable"});return}Nt.sessionDetail(de,J,{limit:200,detailLevel:B,include:B==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne}).then(_t=>{_t.ok===!1&&de===Xe()&&Ne===Ft.current&&ut.current?.updateSession(J,{detailLoading:!1,detailError:String(_t.error??"request_failed")})})},180);vt.current.set(Be,rt)},[Xe]),we=C.useCallback((J,B="success")=>{pn(J),qt(B),setTimeout(()=>pn(null),3e3)},[]),Oe=C.useCallback(()=>{xn.current&&(clearTimeout(xn.current),xn.current=null),ln.current=!1,gi.current=null},[]),Ue=C.useCallback(J=>{Oe(),ln.current=!0,gi.current=J,xn.current=setTimeout(()=>{!ln.current||gi.current!==J||(Oe(),v("create_session_timeout"),we("Session creation timed out. Please try again.","error"))},3e4)},[Oe,we]),ft=T4(),We=WV(),qe=aU(),un=cU(),xi=qe.activeSessionId,Wn=C.useMemo(()=>xi?aee(We.getChannelMessages(see(xi))):null,[xi,We]);C.useCallback(J=>{const B=Gn(J);Dn.current=B,Rt(),We.initFromBackend(B,[],[]),ft.initFromBackend(B,[],[],[]),qe.initFromBackend(B,[]),Oe(),cn(null),Ye(null),ct(null),pt([])},[ft,We,Oe,Rt,Gn,qe]);const Ut=C.useCallback(J=>{const B=Gn(J),ie=Pn();return Un.current=!0,Ht.current=ie,Ft.current+=1,en.current=B,Rt(),v(`Switching to ${B}...`),ie},[Rt,Pn,Gn]),nn=C.useRef(!1);C.useLayoutEffect(()=>{mn.current=We,ht.current=ft,ut.current=qe,hi.current=un,Vn.current=J=>{if(!ft.activeBoardId||ft.activeBoardColumns.length===0)return;const ie=ft.activeBoardColumns.find(se=>se.name==="Todo")?.id??ft.activeBoardColumns[0].id;ft.createTask({boardId:ft.activeBoardId,columnId:ie,title:J.title,priority:J.priority,assigneeIds:J.assignee_id?[J.assignee_id]:[]})},nn.current=!0}),C.useEffect(()=>{tt.current=W},[W]),C.useEffect(()=>{an.current=ee},[ee]),C.useEffect(()=>{const J=r.current,B=ie=>{T(ie),N(se=>se+1)};return J.on("agentSelected",B),()=>{J.off("agentSelected",B)}},[]);const hn=C.useRef(new Map),Yn=C.useRef(null),Ni=C.useCallback(J=>{const B=hn.current;if(B.size===0)return;const ie=J?[J]:Array.from(B.keys());for(const se of ie){const de=B.get(se);if(!de)continue;B.delete(se);const Ne=ut.current;de.draftText&&Ne?.appendDraft(se,de.draftText,de.draftIteration,de.draftTurnId),Ne?.updateSession(se,de.sessionPatch),Object.keys(de.kanbanPatch).length>0&&ht.current?.updateTask(se,de.kanbanPatch)}B.size===0&&Yn.current!==null&&(window.clearTimeout(Yn.current),Yn.current=null)},[]),Wl=C.useCallback(()=>{Yn.current===null&&(Yn.current=window.setTimeout(()=>{Yn.current=null,Ni()},80))},[Ni]),Xr=C.useRef(null),Hs=C.useCallback(()=>{Xr.current===null&&(Xr.current=window.setTimeout(()=>{Xr.current=null,N(J=>J+1)},300))},[]);C.useEffect(()=>{const J=new w3(c,{onSnapshot:B=>{if(!Me(B))return;S(B);const ie=B.timeline.slice(-iE);k(ie);const se=new Set;for(const Ne of ie)se.add(Ne.event_id);Nn.current=se,r.current.pushSnapshot(B);const de=Object.entries(B.agents??{});if(de.length>0){const Ne=rE(de.map(([Be,Pe])=>({...Pe&&typeof Pe=="object"?Pe:{},agent_id:Be})),tt.current);tt.current=Ne,q(Ne)}B.exec_mode&&te(As(B.exec_mode)),B.company_profile&&le(ru(B.company_profile)),B.task_preferred_agent&&Te(Ds(B.task_preferred_agent)),N(Ne=>Ne+1)},onEvent:B=>{try{if(!vn(B,!1))return;if(Nn.current.has(B.event_id)){Nn.current.delete(B.event_id);return}if(k(ie=>[...ie.slice(-iE+1),B]),r.current.pushEvent(B),B.type==="task_routed"&&B.agent_id){if(an.current==="company"||an.current==="org")return;const ie=B.data?.task_id;if(ie&&!ht.current?.tasks.find(se=>se.id===ie)){const se=typeof B.data?.content_preview=="string"?B.data.content_preview.slice(0,80):"Task";Vn.current?.({title:se,priority:null,assignee_id:B.agent_id})}}if(B.type==="task_done"&&B.agent_id&&ne(B.agent_id),["turn_started","assistant_delta","thinking_delta","status_snapshot","tool_started","tool_progress","tool_completed","permission_requested","permission_resolved","cost_update","context_usage","context_warning","subagent_started","subagent_updated","subagent_completed","member_inbox_updated","compaction_applied","checkpoint_saved","turn_completed","turn_failed"].includes(B.type)){const ie=B.data,se=typeof ie.task_id=="string"?ie.task_id:"";if(se){const de=B.type==="assistant_delta"||B.type==="thinking_delta",Ne=hn.current.get(se)?.draftTurnId;de||Ni(se);const Be=ut.current,Pe=ht.current,rt=Be?.sessions.find(hs=>hs.taskId===se),Nt=typeof ie.work_item_projection_id=="string"?ie.work_item_projection_id:"",Zt=(typeof ie.execution_mode=="string"?ie.execution_mode:"")==="task_mode"||Nt==="task_mode_execution",Ot=$m(ie)||void 0,nr=!!Nt&&Nt!=="task_mode_execution"&&!Zt;nr&&!de&&rt?.isCompanyRuntime!==!0&&Be?.setCompanyRuntime(se,!0);const qi={lastRuntimeEventType:B.type,...B.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...Wx(ie)},qs=typeof ie.tool_name=="string"?ie.tool_name:void 0,Gs={...Yx(ie),...qs!==void 0?{currentTool:qs||void 0}:{},...qs?{displayTool:qs}:{}};if(de){const hs=hn.current;let oi=hs.get(se);const tc=B.type==="assistant_delta"&&typeof ie.text=="string"?ie.text:"";oi&&tc&&oi.draftText&&oi.draftTurnId!==void 0&&Ot!==void 0&&oi.draftTurnId!==Ot&&(Ni(se),oi=void 0),oi||(oi={draftText:"",sessionPatch:{},kanbanPatch:{}},hs.set(se,oi)),tc&&(oi.draftText+=tc,oi.draftIteration=typeof ie.iteration=="number"?ie.iteration:oi.draftIteration??rt?.draftIteration,Ot!==void 0&&(oi.draftTurnId=Ot)),oi.sessionPatch={...oi.sessionPatch,...qi,...nr?{isCompanyRuntime:!0}:{}},oi.kanbanPatch={...oi.kanbanPatch,...Gs},Wl()}else{const hs=String(Ne??rt?.draftTurnId??"").trim(),oi=B.type==="turn_started"&&!!Ot&&!!hs&&Ot!==hs;(B.type==="turn_failed"||oi)&&Be?.clearDraft(se),Be?.updateSession(se,qi),Pe?.updateTask(se,Gs)}const kp=Zt&&mee.has(B.type)||pee.has(B.type);B.type!=="assistant_delta"&&!kp&&ue(se)}}if(B.type==="agent_removed"&&B.agent_id){const ie=B.agent_id;Y3(ie);const se=mn.current;se&&(se.markSenderDeleted(ie),se.removeParticipant(ie))}Hs()}catch(ie){console.error("[onEvent] Error:",ie,B)}},onAck:B=>{try{if(B.ok===!1){if(B.action==="create_session"&&Oe(),bt(B))return;B.action==="session_detail"&&typeof B.task_id=="string"&&ut.current?.updateSession(B.task_id,{detailLoading:!1,detailError:String(B.error??"request_failed")}),v(String(B.error??"request_failed")),ti(null),In(null),we(String(B.error??"Request failed"),"error")}if(B.ok&&B.action==="employee_imported"&&we("Employee deployed to office!"),B.ok&&B.action==="talent_imported"&&we(`Imported ${B.count??0} templates!`),B.ok&&B.action==="talent_hired"&&(yi(null),we(`${B.name??"Agent"} hired and added to office!`)),B.ok&&B.action==="architecture_reset"&&(Pt(null),Bt(null)),B.ok&&B.action==="session_detail"){if(!vn(B,!1))return;const ie=ke(B);if(ie!==null&&ie!==Ft.current)return;const se=typeof B.task_id=="string"?B.task_id:"",de=Array.isArray(B.messages)?B.messages.map(Yf):[],Ne=typeof B.message_count=="number"?B.message_count:de.length,Be=B.detail_level==="full"?"full":"summary",Pe=mn.current;Pe&&de.length>0&&Pe.mergeMessagesFromBackend(de);const rt=ut.current;if(rt&&se){const Nt=rt.sessions.find(Gs=>Gs.taskId===se),_t=Be==="full"?Nt?.fullHasMore:Nt?.summaryHasMore,Zt=qJ(_t,B.has_more===!0,B.client_history_page===!0),Ot=String(Nt?.draftTurnId??"").trim();Ot&&Pe&&de.some(Gs=>Zf(Gs)===Ot)&&rt.clearDraft(se);const qi=B.session_state,qs=qi&&typeof qi=="object"?CA(qi):null;rt.updateSession(se,{...qs??{},...typeof B.handoff_context=="string"?{handoffContext:B.handoff_context}:{},...typeof B.handoff_to=="string"?{handoffTo:B.handoff_to}:{},messageCount:Ne,detailLoaded:!0,...Be==="full"?{fullLoaded:!Zt}:{},hasMore:Zt,...Be==="full"?{fullHasMore:Zt}:{summaryHasMore:Zt},detailLoading:!1,detailError:void 0,viewGeneration:ie??Ft.current})}}if(Array.isArray(B.agents)){const ie=rE(B.agents,tt.current);tt.current=ie,q(ie);for(const se of ie)r.current.ensureAgent(se.agent_id,se.name,se.office_id,se.appearance?.palette,se.appearance?.desk_id);N(se=>se+1)}if(B.ok&&(B.agent_id||B.deleted)&&(B.deleted&&(ti(null),In(null),we("Agent removed")),B.agent_id&&!B.deleted&&we("Agent created!"),o.current?.listAgents()),B.ok&&Array.isArray(B.projects)){L(hU(B.project_id_policy));const ie=hi.current;if(ie){const se=Xe(),de=!Ae.current,Ne=!Ae.current&&!Un.current,Be=typeof B.active_project_id=="string"?B.active_project_id.trim():"",Pe=B.action==="create_project"&&typeof B.project_id=="string"?B.project_id.trim():"",rt=Ne?Gn(Pe||Be||Dn.current):Pe?Gn(Pe):Xe();if(Pe&&(Un.current=!0),Ae.current=!0,Dn.current=rt,ie.initFromBackend(B.projects,rt),rt!==se||de){const Nt=Pn();Ht.current=Nt,en.current=rt,Ft.current+=1,v(`Switching to ${rt}...`),o.current?.switchProject(rt,Nt)}}}if(B.ok&&Array.isArray(B.channels)){if(!Me(B))return;const ie=tE(B),se=qn(B);if(!se)return;const de=en.current===se||Xe()!==se;Dn.current=se,en.current=null,hi.current?.setActiveProject(se),de&&(Rt(),cn(null),Ye(null),ct(null)),v("");const Ne=mn.current;Ne&&Ne.initFromBackend(se,ie.channels,ie.messages);const Be=ht.current;Be&&Be.initFromBackend(se,ie.boards,ie.columns,ie.tasks);const Pe=ut.current;if(Pe){Pe.initFromBackend(se,ie.sessions);const rt=Pe.activeSessionId;rt&&ue(rt,"full",!0)}}}catch(ie){console.error("[onAck] Error:",ie)}},onStatus:(B,ie)=>{if(g(B),v(ie??""),B!=="connected"&&L(null),B==="connected"){const se=Xe();J.listProjects(),J.orgInfo(),J.orgSavedList(),J.collabSync(se,void 0,Ft.current)}},onCollabMessage:(B,ie)=>{try{if(B==="project_index_push"){if(!Me(ie))return}else if(!vn(ie,!1))return;const se=mn.current;if(B==="chat_new_message")se&&se.addMessageFromBackend(Yf(ie));else if(B==="chat_channel_created")se&&se.addChannelFromBackend(vA(ie));else if(B==="session_runtime_control"){const de=ut.current;if(de){const Ne=Array.isArray(ie.task_ids)?ie.task_ids.map(String).filter(Boolean):[],Be={runtimeControlState:String(ie.runtime_control_state??ie.runtimeControlState??"idle"),canStop:!!(ie.can_stop??ie.canStop),canResume:!!(ie.can_resume??ie.canResume),resumeParentSessionId:String(ie.resume_parent_session_id??ie.resumeParentSessionId??""),pendingRuntimeCheckpointId:String(ie.pending_runtime_checkpoint_id??ie.pendingRuntimeCheckpointId??""),stopIntentId:String(ie.stop_intent_id??ie.stopIntentId??"")};for(const Pe of Ne)de.updateSession(Pe,Be)}}else if(B==="board_task_status_changed"){const de=String(ie.task_id??""),Ne=String(ie.column_id??""),Be=String(ie.status??""),Pe=["done","failed","cancelled"].includes(Be);if(de&&Ne){const rt=ht.current;if(rt){const _t=rt.tasks.find(Zt=>Zt.id===de);if(_t){const Zt={};_t.columnId!==Ne&&rt.moveTask(de,Ne,0),Be==="running"?(!_t.agentStatus||_t.agentStatus==="idle")&&(Zt.agentStatus="reflecting"):(_t.agentStatus||_t.currentTool||_t.displayTool)&&(Zt.agentStatus=void 0,Zt.currentTool=void 0,Zt.displayTool=void 0),Object.keys(Zt).length>0&&rt.updateTask(de,Zt)}}const Nt=ut.current;if(Nt){const _t=Nt.sessions.find(Ot=>Ot.taskId===de),Zt={columnId:Ne,status:Be||Ne};Be==="running"?(!_t?.agentStatus||_t.agentStatus==="idle")&&(Zt.agentStatus="reflecting"):(_t?.agentStatus||_t?.currentTool||_t?.displayTool||Pe)&&(Zt.agentStatus=void 0,Zt.currentTool=void 0,Zt.displayTool=void 0),Object.assign(Zt,oD(_t,Be)),Nt.updateSession(de,{...Zt})}}}else if(B==="execution_mode_resolved"){const de=String(ie.mode??""),Ne=String(ie.profile??"");if(de){const Be=As(de);te(Be),le(Be==="org"?"custom":Be==="company"?ru(Ne):"corporate")}else Ne&&le(ru(Ne))}else if(B==="project_run_updated"||B==="seat_digest_updated"||B==="work_item_batch_updated")o.current?.collabSync(Xe(),void 0,Ft.current);else if(B==="collab_sync_push"||B==="project_index_push"){const de=String(ie.sync_scope??ie.syncScope??"").toLowerCase(),Ne=B==="project_index_push"||de==="index";if(!Me(ie))return;const Be=tE(ie),Pe=qn(ie);if(!Pe)return;const rt=en.current===Pe||Xe()!==Pe;if(Dn.current=Pe,en.current=null,hi.current?.setActiveProject(Pe),rt&&(Rt(),cn(null),Ye(null),ct(null)),v(""),Ne){const Ot=ut.current;Ot&&Ot.initFromBackend(Pe,Be.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),o.current?.collabSync(Pe,void 0,Ft.current);return}const Nt=mn.current;Nt&&Nt.initFromBackend(Pe,Be.channels,Be.messages);const _t=ht.current;_t&&_t.initFromBackend(Pe,Be.boards,Be.columns,Be.tasks);const Zt=ut.current;if(Zt){Zt.initFromBackend(Pe,Be.sessions);const Ot=Zt.activeSessionId;Ot&&ue(Ot,"full",!0)}}}catch(se){console.error("[onCollabMessage] Error:",se)}},onAgentRuntimeUpdate:B=>{if(!vn(B,!1))return;B.agent_id&&q(se=>{const de=se.map(Ne=>Ne.agent_id===B.agent_id?{...Ne,status:B.status,runtime_status:B.status,current_tool:B.current_tool??void 0,current_task_id:B.task_id??void 0}:Ne);return tt.current=de,de});const ie=ht.current;if(ie&&B.task_id){const se=B,de=Yx(se),Ne=Wx(se);if(Df(se,"current_tool")){const Pe=typeof se.current_tool=="string"&&se.current_tool.trim()?se.current_tool:void 0;de.currentTool=Pe,Ne.currentTool=Pe,Pe&&(de.displayTool=Pe,Ne.displayTool=Pe)}if(Df(se,"display_tool")){const Pe=typeof se.display_tool=="string"&&se.display_tool.trim()?se.display_tool:void 0;Pe&&(de.displayTool=Pe,Ne.displayTool=Pe)}if(oE(B.status)&&(de.displayTool=void 0,Ne.displayTool=void 0),Df(se,"tool_elapsed_ms")){const Pe=typeof se.tool_elapsed_ms=="number"?se.tool_elapsed_ms:void 0;de.toolElapsedMs=Pe,Ne.toolElapsedMs=Pe}if(Df(se,"last_tool_summary")){const Pe=typeof se.last_tool_summary=="string"?se.last_tool_summary:void 0;de.lastToolSummary=Pe,Ne.lastToolSummary=Pe}typeof B.iteration=="number"&&(de.iterationCount=B.iteration),ie.updateTask(B.task_id,{agentStatus:B.status,...de});const Be=ut.current;Be&&Be.updateSession(B.task_id,{agentStatus:B.status,...Ne,updatedAt:Date.now()}),ue(B.task_id)}},onRuntimeStatusSync:B=>{if(!vn(B,!1))return;const ie=ut.current,se=ht.current;if(ie)for(const de of B.sessions??[]){const Ne=String(de.task_id??"").trim();if(!Ne)continue;const Be=ie.sessions.find(_t=>_t.taskId===Ne);if(!Be)continue;const Pe=String(de.status??"").trim(),rt={};Pe&&Pe!==Be.status&&(rt.status=Pe);const Nt=typeof de.agent_status=="string"?de.agent_status.trim():"";if(Nt==="idle"||Nt==="reflecting"||Nt==="tool_active"){Nt!==Be.agentStatus&&(rt.agentStatus=Nt);const _t=typeof de.current_tool=="string"&&de.current_tool.trim()?de.current_tool:void 0;_t!==Be.currentTool&&(rt.currentTool=_t),oE(Nt)&&Be.displayTool!==void 0&&(rt.displayTool=void 0)}else{const _t=Be.runtimeControlState==="running"||Be.runtimeControlState==="suspending"||Be.runtimeControlState==="resuming";Pe&&Pe!=="running"&&!_t&&(Be.agentStatus!==void 0&&(rt.agentStatus=void 0),Be.currentTool!==void 0&&(rt.currentTool=void 0),Be.displayTool!==void 0&&(rt.displayTool=void 0))}if(Object.keys(rt).length!==0&&(ie.updateSession(Ne,rt),se&&("agentStatus"in rt||"currentTool"in rt||"displayTool"in rt))){const _t={};"agentStatus"in rt&&(_t.agentStatus=rt.agentStatus),"currentTool"in rt&&(_t.currentTool=rt.currentTool),"displayTool"in rt&&(_t.displayTool=rt.displayTool),se.updateTask(Ne,_t)}}},onWorkerNotification:B=>{if(!vn(B,!1))return;const ie=B,se=typeof B.task_id=="string"?B.task_id:"";if(!se)return;const de=ie;ut.current?.updateSession(se,{...Wx(ie),latestNotification:de,updatedAt:Date.now()}),ht.current?.updateTask(se,{...Yx(ie),latestNotification:de}),ue(se)},onKanbanViewData:B=>{if(!vn(B,!1))return;const ie=ht.current;ie&&ie.initFromBackend(qn(B)||Xe(),(B.boards??[]).map(bA),(B.columns??[]).map(_A),(B.tasks??[]).map(kA))},onSessionProgress:B=>{if(!vn(B,!1))return;const ie=ut.current;if(!(!ie||!B.task_id||!B.entry)){if(ie.appendProgress(B.task_id,{type:B.entry.type,summary:B.entry.summary,detail:B.entry.detail,timestamp:B.entry.timestamp*1e3,turnId:typeof B.entry.turn_id=="string"?B.entry.turn_id:typeof B.entry.turnId=="string"?B.entry.turnId:void 0,itemId:typeof B.entry.item_id=="string"?B.entry.item_id:typeof B.entry.itemId=="string"?B.entry.itemId:void 0,streamId:typeof B.entry.stream_id=="string"?B.entry.stream_id:typeof B.entry.streamId=="string"?B.entry.streamId:void 0,toolCallId:typeof B.entry.tool_call_id=="string"?B.entry.tool_call_id:typeof B.entry.toolCallId=="string"?B.entry.toolCallId:void 0,permissionGroupKey:typeof B.entry.permission_group_key=="string"?B.entry.permission_group_key:typeof B.entry.permissionGroupKey=="string"?B.entry.permissionGroupKey:void 0,seq:typeof B.entry.seq=="number"?B.entry.seq:void 0,executionMode:typeof B.entry.execution_mode=="string"?B.entry.execution_mode:typeof B.entry.executionMode=="string"?B.entry.executionMode:void 0}),B.entry.type==="tool_call"){const se=String(B.entry.summary??"").trim();ie.updateSession(B.task_id,{...se?{currentTool:se,displayTool:se}:{},updatedAt:B.entry.timestamp*1e3})}B.entry.type!=="thinking"&&B.entry.type!=="verification"&&ue(B.task_id)}},onBoardEvent:B=>{if(!vn(B,!1))return;const ie=ht.current;if(!ie)return;const se=String(B.task_id??"");if(!se)return;const de=ut.current;if(de&&de.sessions.find(nr=>nr.taskId===se)?.mode==="child")return;const Ne=Array.isArray(B.assignee_ids)?B.assignee_ids.map(String):[],Be=Gx(B);if(ie.tasks.find(Ot=>Ot.id===se)){const Ot={};B.title&&(Ot.title=String(B.title)),B.display_id&&(Ot.displayId=String(B.display_id)),Ne.length>0&&(Ot.assigneeIds=Ne),Object.assign(Ot,Be),Object.keys(Ot).length>0&&ie.updateTask(se,Ot);return}const rt=String(B.board_id??ie.activeBoardId??"default"),Nt=ie.columns.filter(Ot=>Ot.boardId===rt),Zt=Nt.find(Ot=>Ot.name==="Todo")?.id??Nt[0]?.id??"";Zt&&(ie.createTask({boardId:rt,columnId:Zt,title:String(B.title??"Untitled"),taskId:se,displayId:B.display_id?String(B.display_id):void 0,assigneeIds:Ne}),Object.keys(Be).length>0&&ie.updateTask(se,Be))},onSessionCreated:B=>{try{if(!vn(B,!1))return;const ie=ut.current;if(!ie)return;const se=String(B.task_id??"");if(!se)return;const de=qn(B);if(!de)return;const Ne=se?ie.sessions.find(Ot=>Ot.taskId===se):void 0,Be=Gx(B),Pe=As(B.exec_mode??Ne?.execMode),rt=qx(Pe,B.company_profile??Ne?.companyProfile),Nt=Qo(Pe,B.org_id??B.organization_id??Ne?.orgId);Pe==="org"&&Nt&&Pt(Nt),ie.createSession({projectId:de,taskId:se,channelId:B.channel_id,sessionId:B.session_id,parentSessionId:B.parent_session_id,originTaskId:B.origin_task_id??Ne?.originTaskId??se,mode:B.parent_session_id?"child":"primary",execMode:Pe,companyProfile:rt,orgId:Nt,preferredAgent:Ds(B.preferred_agent??Ne?.preferredAgent),title:B.title,status:B.status,columnId:Ne?.columnId??"todo",assigneeIds:Array.isArray(B.assignee_ids)?B.assignee_ids.map(String):Ne?.assigneeIds??[],priority:Ne?.priority??null,tags:Ne?.tags??[],progressLog:Ne?.progressLog??[],createdAt:typeof B.created_at=="number"?B.created_at*1e3:Ne?.createdAt??Date.now(),updatedAt:Date.now(),messageCount:0,...Be});const _t=ht.current;if(_t&&Pe==="task"&&!B.parent_session_id&&se&&!_t.tasks.find(Ot=>Ot.id===se)&&_t.activeBoardId){const nr=_t.columns.filter(qi=>qi.boardId===_t.activeBoardId).find(qi=>qi.name==="Todo");nr&&_t.createTask({boardId:_t.activeBoardId,columnId:nr.id,title:B.title,taskId:se,assigneeIds:Ne?.assigneeIds??[]})}if(ln.current){if(gi.current!==de)return;Oe(),ie.setActiveSession(B.task_id),ue(B.task_id,"full",!0)}}catch(ie){console.error("[onSessionCreated] Error:",ie)}},onSessionUpdated:B=>{try{if(!vn(B,!1))return;const ie=ut.current;if(!ie||!B.task_id)return;const se=As(B.exec_mode??ie.sessions.find(de=>de.taskId===B.task_id)?.execMode);ie.updateSession(B.task_id,{...B.exec_mode?{execMode:se}:{},...B.exec_mode||B.company_profile?{companyProfile:qx(se,B.company_profile)}:{},..."org_id"in B||"organization_id"in B?{orgId:Qo(se,B.org_id??B.organization_id)}:{},...B.preferred_agent?{preferredAgent:Ds(B.preferred_agent)}:{},...B.selected_execution_agent?{selectedExecutionAgent:Ds(B.selected_execution_agent)}:{}}),(B.exec_mode==="org"||B.exec_mode==="custom")&&(B.org_id||B.organization_id)&&Pt(String(B.org_id??B.organization_id))}catch(ie){console.error("[onSessionUpdated] Error:",ie)}},onSessionMessage:B=>{try{if(!vn(B,!1))return;const ie=mn.current;if(!ie)return;const se=Yf(B);console.debug("[onSessionMessage]",se.sender,se.channelId,se.content?.slice(0,60)),ie.addMessageFromBackend(se);const de=se.channelId.startsWith("session:")?se.channelId.slice(8):"",Ne=Zf(se),Be=String(ut.current?.sessions.find(Pe=>Pe.taskId===de)?.draftTurnId??"").trim();de&&se.sender!=="user"&&(Ne&&Ne===Be&&ut.current?.clearDraft(de),ue(de,"full",!0))}catch(ie){console.error("[onSessionMessage] Error:",ie)}},onSessionTitleUpdated:B=>{try{if(!vn(B,!1))return;const ie=ut.current;ie&&ie.updateSession(B.task_id,{title:B.title});const se=ht.current;if(se){const Ne=ie?.sessions.find(Pe=>Pe.taskId===B.task_id)?.originTaskId??B.task_id,Be=se.boards.find(Pe=>Pe.id===Ne);Be&&Be.name!==B.title&&se.updateBoardName(Ne,B.title)}}catch(ie){console.error("[onSessionTitleUpdated] Error:",ie)}},onSessionDeleted:B=>{try{if(!vn(B,!1))return;const ie=ut.current;if(!ie)return;ie.activeSessionId===B.task_id&&ie.setActiveSession(null),ie.deleteSession(B.task_id);const se=ht.current;se&&se.deleteTask(B.task_id);const de=mn.current;de&&de.removeSessionData(B.task_id)}catch(ie){console.error("[onSessionDeleted] Error:",ie)}},onProjectSwitched:B=>{if(!Me(B))return;const ie=typeof B.project_id=="string"?B.project_id.trim():"";ie&&(en.current=ie,v(`Switching to ${ie}...`))},onProjectDeleted:B=>{const ie=hi.current;ie&&ie.removeProject(B.project_id)},onOrgInfo:B=>{const ie=BN(B);je(ie),Bt(se=>se===null?ie?.org_version??0:se),(B?.project_run?.execution_model==="multi_team_org"||Array.isArray(B?.work_items)&&B.work_items.length>0)&&o.current?.collabSync(Xe(),void 0,Ft.current)},onCommsState:B=>{vn(B,!1)&&Ye(B)},onCommsMessage:B=>{vn(B,!0)&&ct(B)},onTalentList:B=>{yt(B.templates??[]),B.talent_dir&&ge(B.talent_dir)},onEmployeeDetail:B=>{Ge(B)},onReorgList:B=>{vn(B,!1)&&pt(B.proposals??[])},onOrgConfigExport:B=>{wt(B.yaml??"")},onOrgConfigImport:B=>{B.ok?(dt(B.preview??null),et(null),B.dry_run||(Pt(null),Bt(null))):(et(B.error??"Import failed"),dt(null))},onOrgSavedList:B=>{it(B.orgs??[]),"active_name"in B&&Pt(B.active_name??null)},onOrgSavedSaveAs:B=>{B.ok?(o.current?.orgSavedList(),Pt(B.name),Bt(null),xt({kind:"ok",text:`Saved "${B.name}"`})):xt({kind:"error",text:`Save failed: ${B.error??"unknown"}`})},onOrgSavedCreate:B=>{if(Cn(!1),$t({...B,nonce:Date.now()}),B.ok){const ie=B.organization_id||B.name;Pt(ie),te("org"),le("custom"),o.current?.orgSavedList(),o.current?.orgInfo(),Bt(null),xt({kind:"ok",text:`Created "${B.organization_name||ie}"`})}else xt({kind:"error",text:`Create failed: ${B.error??"unknown"}`})},onOrgSavedLoad:B=>{B.ok?(Pt(B.name),te("org"),le("custom"),o.current?.orgSavedList(),Bt(null),xt({kind:"ok",text:`Loaded "${B.name}"`})):xt({kind:"error",text:`Load failed: ${B.error??"unknown"}`})},onOrgSavedDelete:B=>{B.ok?(o.current?.orgSavedList(),Pt(ie=>ie===B.name?(Bt(null),null):ie),xt({kind:"ok",text:`Deleted "${B.name}"`})):xt({kind:"error",text:`Delete failed: ${B.error??"unknown"}`})},onMarketBrowse:B=>{Ce(B.presets??[])},onMarketPreview:B=>{Fe(B)},onChildSessionCreated:B=>{if(!vn(B,!1))return;const ie=ut.current;if(!ie)return;const se=Gx(B),de=qn(B);if(de&&(ie.createSession({projectId:de,taskId:B.task_id,channelId:B.channel_id??`session:${B.task_id}`,sessionId:B.session_id,parentSessionId:B.parent_session_id,originTaskId:B.origin_task_id??B.task_id,mode:"child",orgId:String(B.org_id??B.organization_id??"").trim()||void 0,title:B.title,status:"pending",columnId:"todo",assigneeIds:B.agent_id?[B.agent_id]:[],priority:null,tags:[],createdAt:Date.now(),updatedAt:Date.now(),messageCount:0,progressLog:[],...se}),B.parent_session_id)){const Ne=ie.sessions.find(Be=>Be.sessionId===B.parent_session_id||Be.taskId===B.parent_session_id);Ne&&!Ne.isCompanyRuntime&&ie.setCompanyRuntime(Ne.taskId,!0)}},onWorkItemProgress:B=>{if(!vn(B,!1))return;const ie=ut.current;if(!ie||!B.task_id||!B.entry)return;const se=typeof B.entry.work_item_projection_id=="string"?B.entry.work_item_projection_id:"",de=se&&se!=="company_runtime"?se:void 0,Ne=typeof B.entry.runtime_task_id=="string"&&B.entry.runtime_task_id?B.entry.runtime_task_id:typeof B.runtime_task_id=="string"&&B.runtime_task_id?B.runtime_task_id:typeof B.entry.execution_turn_id=="string"&&B.entry.execution_turn_id?B.entry.execution_turn_id:typeof B.execution_turn_id=="string"&&B.execution_turn_id?B.execution_turn_id:void 0,Be=typeof B.entry.execution_turn_id=="string"&&B.entry.execution_turn_id?B.entry.execution_turn_id:typeof B.execution_turn_id=="string"&&B.execution_turn_id?B.execution_turn_id:Ne;ie.updateSession(B.task_id,{isCompanyRuntime:!0,...de?{workItemProjectionId:de}:{}});const Pe=ht.current;Pe&&de&&Pe.updateTask(B.task_id,{workItemProjectionId:de}),ie.appendWorkItemProgress(B.task_id,{timestamp:B.entry.timestamp*1e3,type:B.entry.type,workItemProjectionId:de,workItemTurnType:typeof B.entry.work_item_turn_type=="string"?B.entry.work_item_turn_type:void 0,workItemProjectionTitle:typeof B.entry.work_item_projection_title=="string"?B.entry.work_item_projection_title:void 0,runtimeTaskId:Ne,executionTurnId:Be,roleName:B.entry.role_name,detail:B.entry.detail})}});return o.current=J,J.connect(),()=>{J.disconnect();for(const B of Jn.current)clearTimeout(B);Jn.current.clear();for(const B of vt.current.values())clearTimeout(B);vt.current.clear(),Yn.current!==null&&(window.clearTimeout(Yn.current),Yn.current=null),hn.current.clear(),Xr.current!==null&&(window.clearTimeout(Xr.current),Xr.current=null)}},[c]),C.useEffect(()=>{const J=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ie=Date.now();ie-Et.current<1500||(Et.current=ie,o.current?.collabSync(Xe(),void 0,Ft.current))},B=()=>{document.visibilityState==="visible"&&J()};return window.addEventListener("focus",J),document.addEventListener("visibilitychange",B),()=>{window.removeEventListener("focus",J),document.removeEventListener("visibilitychange",B)}},[Xe]),C.useEffect(()=>{if(!Mn)return;const J=setTimeout(()=>xt(null),3e3);return()=>clearTimeout(J)},[Mn]);const ms=C.useCallback(()=>{o.current?.orgSavedList()},[]),td=C.useCallback((J,B)=>{o.current?.orgSavedSaveAs(J,B)},[]),Yl=C.useCallback((J,B)=>{Cn(!0),$t(null),o.current?.orgSavedCreate(J,B)},[]),Xl=C.useCallback(J=>{o.current?.orgSavedLoad(J)},[]),To=C.useCallback(J=>{o.current?.orgSavedDelete(J)},[]),Dr=C.useCallback(()=>{te("company"),le("corporate"),Bt(null),o.current?.setExecutionMode("company","corporate",he),o.current?.orgInfo()},[he]);C.useEffect(()=>{if(!K)return;const J=K;r.current.setAgentBubble(J,"Done!");const B=setTimeout(()=>{Jn.current.delete(B),r.current.setAgentBubble(J,null)},3e3);Jn.current.add(B),ne(null)},[K]),C.useCallback((J,B,ie)=>{const se=ft.tasks.find(de=>de.id===J);for(const de of B)r.current.sendToSeat(de),r.current.setAgentActive(de,!0),r.current.setAgentBubble(de,`Task: ${ie.slice(0,22)}`),o.current?.assignTaskToAgent(Xe(),J,de,ie);if(se){const de=B.map(Ne=>W.find(Be=>Be.agent_id===Ne)?.name??Ne);HJ(We,se,de)}N(de=>de+1)},[ft.tasks,We,W,Xe]);const ga=C.useMemo(()=>{const J=b?Object.keys(b.agents).length:0,B=b?.skills.total??0;return{totalAgents:J,totalSkills:B}},[b]),Ui=C.useMemo(()=>{const J=r.current.getCharacterCards();return(I?J:J.filter(ie=>!ie.isSubagent)).slice().sort((ie,se)=>ie.displayName.localeCompare(se.displayName))},[I,j]),tr=C.useMemo(()=>Qn(),[j]),Kl=C.useMemo(()=>{const J={};for(const B of Ui)B.officeId&&(J[B.id]=B.officeId);return J},[Ui]),[ya,xa]=C.useState(null),[Fs,Ro]=C.useState(""),Zl=J=>{Fs.trim()&&(r.current.renameOffice(J,Fs.trim()),N(B=>B+1)),xa(null)},Ii=(J,B)=>{r.current.assignAgentToOffice(B,J),o.current?.moveAgent(B,J),N(ie=>ie+1)},ps=(J,B)=>{r.current.changeAgentSeat(J,B),N(ie=>ie+1)},si=Ui.find(J=>J.id===z)??null,Ao=C.useMemo(()=>si?r.current.getSeatsForOffice(si.officeId):[],[si?.officeId,j]),nd=C.useMemo(()=>{const J=w.slice(-40);return{trace:J.some(B=>B.type==="tool_start"||B.type==="tool_done"),reflect:J.some(B=>B.type==="reflect_start"||B.type==="reflect_done"),synthesize:J.some(B=>B.type==="skill_synthesized")}},[w]),Ql=C.useMemo(()=>["all",...Array.from(new Set(w.map(B=>B.type)))],[w]),Jl=C.useMemo(()=>(V==="all"?w:w.filter(B=>B.type===V)).slice().reverse(),[V,w]),Mo=()=>{const J=m.trim();!J||J===c||d(J)},Vs=C.useCallback(J=>{T(J),N(B=>B+1)},[]),id=C.useCallback((J,B,ie,se)=>{const de=qe.sessions.find(qi=>qi.taskId===J),Ne=As(B),Be=ru(de?.companyProfile??oe),Pe=Ne==="org"?"custom":"corporate",rt=String(de?.orgId??De??"").trim(),Nt=Qo(Ne,se??de?.orgId??De),_t=As(de?.execMode),Zt=ru(oe);if(_t===Ne&&Be===Pe&&rt===String(Nt??"").trim()&&ee===Ne&&Zt===Pe)return;qe.updateSession(J,{execMode:Ne,companyProfile:Pe,orgId:Nt,preferredAgent:de?.preferredAgent??he}),te(Ne),le(Pe),Ne==="org"&&Nt&&Pt(Nt);const Ot=de?.preferredAgent??he,nr=Ne==="task"?void 0:Pe;o.current?.sessionUpdateConfig(Xe(),J,Ne,nr,Ot,Nt),o.current?.setExecutionMode(Ne,nr,Ot,Nt)},[qe,ee,oe,he,De,Xe]),xp=C.useCallback((J,B)=>{const ie=qe.sessions.find(rt=>rt.taskId===J),se=Ds(B),de=As(ie?.execMode),Ne=de==="org"?"custom":"corporate";qe.updateSession(J,{preferredAgent:se,selectedExecutionAgent:se}),Te(se);const Be=de==="task"?void 0:Ne,Pe=Qo(de,ie?.orgId??De);o.current?.sessionUpdateConfig(Xe(),J,de,Be,se,Pe),o.current?.setExecutionMode(de,Be,se,Pe)},[qe,oe,De,Xe]),vp=C.useCallback((J,B,ie)=>{if(en.current||ln.current)return;const se=Xe();Ue(se);const de=As(J),Ne=de==="org"?"custom":de==="company"?"corporate":void 0;o.current?.createSession(se,void 0,de,Ne,he,Qo(de,ie??De)),Z("workspace")},[Xe,Ue,he,De]),va=C.useCallback((J,B)=>{const ie=qe.sessions.find(de=>de.taskId===J),se=ie?.resumeParentSessionId??ie?.parentSessionId??ie?.sessionId;for(const de of qe.sessions)(de.taskId===J||se&&(de.parentSessionId===se||de.sessionId===se))&&qe.updateSession(de.taskId,{...B,resumeParentSessionId:se})},[qe]),ec=C.useCallback(J=>{const B=qe.sessions.find(se=>se.taskId===J);(B?.execMode==="company"||B?.execMode==="org"||B?.execMode==="custom"||B?.isCompanyRuntime||B?.parentSessionId||B?.companyProfile)&&va(J,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),o.current?.sessionStop(Xe(),J)},[qe.sessions,va,Xe]),bp=C.useCallback((J,B,ie)=>{const se=qe.sessions.find(Ne=>Ne.taskId===J);(se?.execMode==="company"||se?.execMode==="org"||se?.execMode==="custom"||se?.isCompanyRuntime||se?.parentSessionId||se?.companyProfile)&&va(J,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),o.current?.sessionResume(Xe(),J,B??se?.resumeParentSessionId??se?.parentSessionId??se?.sessionId,ie??se?.pendingRuntimeCheckpointId)},[qe.sessions,va,Xe]);C.useCallback((J,B,ie)=>{const se=As(J),de=se==="org"?"custom":"corporate",Ne=Qo(se,ie??De);te(se),le(de),Ne&&Pt(Ne),o.current?.setExecutionMode(se,se==="task"?void 0:de,he,Ne)},[oe,he,De]);const Us=ee==="org",_p=ee==="task"?"task":ee==="org"?`company/${De??"org"}`:`company/${oe}`;return u.jsxs("div",{className:"app-shell","data-theme":A,children:[Mn&&u.jsx("div",{className:`org-toast org-toast--${Mn.kind}`,role:"status","aria-live":"polite",children:Mn.text}),u.jsxs("header",{className:"topbar",children:[u.jsxs("div",{className:"topbar-left",children:[u.jsxs("span",{className:"logo-text",children:["Open",u.jsx("span",{className:"logo-accent",children:"OPC"})]}),u.jsx("div",{className:`conn-dot ${gee(p)}`,title:`${p}${x?` — ${x}`:""} -${c}`}),u.jsx(yU,{projects:un.projects,activeId:un.activeProjectId,projectIdPolicy:p==="connected"?M:null,onSelect:J=>{const B=Ut(J);o.current?.switchProject(J,B)},onCreate:J=>{o.current?.createProject(J)},onDelete:J=>o.current?.deleteProject(J)})]}),u.jsxs("div",{className:"topbar-center",children:[u.jsxs("div",{className:"page-nav",children:[u.jsxs("button",{className:`page-nav-btn${U==="workspace"?" active":""}`,onClick:()=>Z("workspace"),children:[n("app.page.workspace"),(()=>{const J=We.channels.reduce((B,ie)=>B+We.getUnreadCount(ie.id),0);return J>0?u.jsx("span",{className:"nav-unread-badge",children:J>99?"99+":J}):null})()]}),u.jsx("button",{className:`page-nav-btn${U==="office"?" active":""}`,onClick:()=>Z("office"),children:n("app.page.office")}),u.jsx("button",{className:`page-nav-btn${U==="org"?" active":""}`,onClick:()=>Z("org"),children:n("app.page.org")})]}),u.jsxs("div",{className:"stat-chips",children:[u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:ga.totalAgents})," ",n("app.metric.agents")]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:ga.totalSkills})," ",n("app.metric.skills")]}),u.jsxs("span",{className:"stat-chip",children:[u.jsx("b",{children:ft.getOpenTaskCount()})," ",n("app.metric.tasks")]})]})]}),u.jsxs("div",{className:"topbar-right",children:[u.jsxs("div",{className:"language-toggle",role:"group","aria-label":n("language.label"),title:n("language.label"),children:[u.jsx("button",{type:"button","data-locale":"en","aria-pressed":e==="en",className:`language-toggle-btn${e==="en"?" active":""}`,onClick:()=>t("en"),children:n("language.english")}),u.jsx("button",{type:"button","data-locale":"zh-CN","aria-pressed":e==="zh-CN",className:`language-toggle-btn${e==="zh-CN"?" active":""}`,onClick:()=>t("zh-CN"),children:n("language.chinese")})]}),u.jsxs("select",{className:"theme-select",value:Ln,title:n("outdoor.title"),"aria-label":n("outdoor.title"),onChange:J=>{const B=J.target.value;zn(B);try{B==="auto"?(localStorage.removeItem("opc_outdoor_override"),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night")):(localStorage.setItem("opc_outdoor_override",B),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night"))}catch{}r.current.syncOutdoorLighting()},children:[u.jsx("option",{value:"auto",children:n("outdoor.auto")}),u.jsx("option",{value:"day",children:n("outdoor.day")}),u.jsx("option",{value:"night",children:n("outdoor.night")})]}),u.jsx("select",{className:"theme-select",value:A,title:n("theme.label"),"aria-label":n("theme.label"),onChange:J=>{const B=J.currentTarget.value;NA(B)&&(O(B),dee(B))},children:db.map(({name:J})=>u.jsx("option",{value:J,children:n(cee(J))},J))}),u.jsx("button",{className:`icon-btn ${Q?"active":""}`,onClick:()=>D(J=>!J),title:n("dev.tools"),"aria-label":n("dev.tools"),children:u.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[u.jsx("path",{d:"M5.5 2L2 5.5 5.5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),u.jsx("path",{d:"M10.5 7L14 10.5 10.5 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),U==="workspace"&&u.jsx(zV,{boardStore:ft,chatStore:We,sessionStore:qe,agents:W,officeMap:Kl,execMode:ee,companyProfile:oe,taskPreferredAgent:he,projectId:un.activeProjectId,orgInfoData:be,onNavigateToOrg:()=>Z("org"),savedOrgsList:Ze,activeSavedOrg:De,onSavedOrgsList:ms,onSavedOrgLoad:Xl,commsState:Ve,commsMessage:$e,onCommsRefresh:J=>{const{project_id:B,...ie}=J??{};o.current?.commsState(Xe(),ie)},onCommsReadMessage:J=>o.current?.commsReadMessage(Xe(),J,Ve),onRunTask:(J,B,ie,se,de)=>{o.current?.send({type:"run_task",project_id:Xe(),task_id:J,title:B,description:ie,mode:se,profile:de})},onCreateTask:(J,B,ie,se)=>{o.current?.send({type:"kanban_create_task",project_id:Xe(),title:J,board_id:B,column_id:ie,task_id:se})},onMoveTask:(J,B)=>{o.current?.send({type:"kanban_move_task",project_id:Xe(),task_id:J,column_id:B})},onCreateSession:()=>{if(en.current||ln.current)return;const J=Xe();Ue(J),o.current?.createSession(J,void 0,ee,qx(ee),he,Qo(ee,De))},onSessionSend:(J,B,ie,se)=>o.current?.sessionSend(Xe(),J,B,ie,se),onInteractionReply:J=>{const B=o.current;return B?B.interactionReply(Xe(),J):Promise.resolve({ok:!1,accepted:!1,error:"socket_unavailable",checkpoint_id:J.checkpointId,checkpoint_type:J.checkpointType,client_request_id:J.clientRequestId})},onSecretarySend:J=>o.current?.secretarySend(Xe(),J),onDeleteSession:J=>o.current?.deleteSession(Xe(),J),onTitleChange:(J,B)=>o.current?.sessionUpdateTitle(Xe(),J,B),onSessionConfigChange:id,onSessionTaskAgentChange:xp,onContinueInNewChat:vp,onSessionStop:ec,onSessionResume:bp,onSessionComplete:J=>o.current?.sessionComplete(Xe(),J),onLoadSessionDetail:(J,B)=>{const ie=o.current;if(ie)return ie.sessionDetail(Xe(),J,{...B,include:B?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ft.current}).then(se=>{if(se.ok===!1)throw new Error(String(se.error??"session_detail failed"))})},onOpenExecutionPanel:J=>cn(J),onCollabSync:()=>o.current?.collabSync(Xe(),void 0,Ft.current)}),U==="org"&&u.jsx("div",{className:"org-page",children:u.jsx($J,{data:be,sessionRecruitmentByRole:Wn,talents:It,employeeDetail:me,reorgProposals:Ke,isCustomMode:Us,onRequestData:()=>o.current?.orgInfo(),onRequestTalents:()=>o.current?.talentList(),onRequestEmployeeDetail:J=>o.current?.employeeDetail(J),onHireTalent:(J,B)=>{yi(J),o.current?.talentHire(J,B,void 0,be?.organization_id||De||void 0)},hiringTemplateId:Ei,onImportEmployee:J=>o.current?.importEmployeeAsAgent(J),onRequestReorgList:()=>{const J=Xe();o.current?.reorgList(J)},onReorgDecide:(J,B,ie)=>{const se=o.current,de=Xe(),Ne=J.checkpoint_type||"company_reorg_pending",Be=["org-reorg",J.proposal_id,Date.now().toString(36),Math.random().toString(36).slice(2)].join("-");return!se||!J.checkpoint_id||J.checkpoint_status!=="pending"||J.project_id!==de?Promise.resolve({ok:!1,accepted:!1,error:"reorg_checkpoint_unavailable",checkpoint_id:J.checkpoint_id,checkpoint_type:Ne,client_request_id:Be}):se.interactionReply(de,{checkpointId:J.checkpoint_id,checkpointType:Ne,clientRequestId:Be,requesterTaskId:J.requester_task_id||void 0,requesterSessionId:J.requester_session_id||void 0,decision:{text:ie?.trim()||(B?"approve":"deny"),option_id:B?"approve":"deny"}}).then(Pe=>(Pe.accepted&&se.reorgList(de),Pe))},onMarketExport:J=>o.current?.marketExport(J),onMarketInstall:(J,B)=>o.current?.marketInstall(J,B),onMarketUninstall:J=>o.current?.marketUninstall(J),marketPresets:ce,marketPreviewData:Le,onMarketBrowse:()=>o.current?.marketBrowse(),onMarketPreview:J=>o.current?.marketPreview(J),onMarketApplyPreset:(J,B)=>o.current?.marketApplyPreset(J,B),onMarketClearPreview:()=>Fe(null),onAddRole:(J,B,ie,se,de)=>o.current?.addRole(J,B,ie,se,de),onBulkAddRoles:J=>o.current?.bulkAddRoles(J),onUpdateRole:(J,B)=>o.current?.updateRole(J,B),onDeleteRole:J=>o.current?.deleteRole(J),onBindExternalTeam:J=>o.current?.bindExternalTeam(J),onUnbindExternalTeam:J=>o.current?.unbindExternalTeam(J),onUpdateOrgStrategy:J=>o.current?.updateOrgStrategy(J),onUpdateRuntimePolicy:J=>o.current?.updateRuntimePolicy(J),onResetArchitecture:()=>o.current?.resetArchitecture(),onConfigExport:()=>o.current?.orgConfigExport(),onConfigImport:(J,B)=>o.current?.orgConfigImport(J,B),configExportYaml:Qe,configImportPreview:Ct,configImportError:_e,onSavedOrgsList:ms,onSavedOrgSaveAs:td,onSavedOrgCreate:Yl,onSavedOrgLoad:Xl,onSavedOrgDelete:To,savedOrgsList:Ze,activeSavedOrg:De,activeSavedOrgVersionAtLoad:ri,orgCreatePending:Dt,orgCreateResult:Tt,onSelectCorporate:Dr})}),U==="mapEditor"&&u.jsx("div",{className:"editor-page",children:u.jsx(b4,{bridge:r.current})}),u.jsxs("main",{className:`main-grid${U!=="office"?" hidden":""}${G?" sidebar-collapsed":""}`,children:[u.jsxs("section",{className:"canvas-wrap",children:[u.jsx(y4,{bridge:r.current,active:U==="office"}),u.jsx("button",{className:"canvas-float-btn",onClick:()=>$(J=>!J),title:n(I?"office.hideSubagents":"office.showSubagents"),children:I?"👥":"👤"}),u.jsx("button",{className:"sidebar-collapse-btn",onClick:F,title:n(G?"office.showSidePanel":"office.hideSidePanel"),"aria-label":n(G?"office.showSidePanel":"office.hideSidePanel"),children:u.jsx("span",{className:"collapse-glyph",children:G?"❮":"❯"})})]}),u.jsx("aside",{className:"sidebar",children:u.jsx("div",{className:"sidebar-body",children:u.jsxs("div",{className:"team-panel",children:[u.jsxs("div",{className:"mode-info-bar",children:[u.jsx("span",{className:"mode-badge",children:ee==="company"?`${ee}/${oe}`:_p}),Us?u.jsx("span",{className:"mode-hint",children:n("office.modeHint.org")}):u.jsx("span",{className:"mode-hint",children:n("office.modeHint.switch")})]}),u.jsxs("div",{className:"section-label",children:[n("office.offices")," ",u.jsx("span",{className:"count-badge",children:tr.length})]}),u.jsx("div",{className:"office-cards",children:tr.map(J=>{const B=xE(J.id).length,ie=Ui.filter(de=>de.officeId===J.id),se=Ui.filter(de=>de.officeId!==J.id&&!de.isSubagent);return u.jsxs("div",{className:"office-card",onClick:()=>r.current.panToOffice(J.id),children:[u.jsxs("div",{className:"office-card-header",children:[ya===J.id?u.jsx("input",{className:"office-name-input",value:Fs,onChange:de=>Ro(de.target.value),onBlur:()=>Zl(J.id),onKeyDown:de=>{de.key==="Enter"&&Zl(J.id),de.key==="Escape"&&xa(null)},autoFocus:!0,onClick:de=>de.stopPropagation()}):u.jsxs(u.Fragment,{children:[u.jsx("span",{className:"office-name",children:J.name}),u.jsx("button",{className:"office-edit-btn",title:n("office.rename"),onClick:de=>{de.stopPropagation(),xa(J.id),Ro(J.name)},children:"✎"})]}),u.jsxs("span",{className:"office-capacity",children:[ie.length,"/",B]})]}),u.jsxs("div",{className:"office-agents",children:[ie.map(de=>u.jsx("span",{className:"office-agent-chip",title:`${de.displayName} — ${de.seatId??n("office.noSeat")}`,onClick:Ne=>{Ne.stopPropagation(),Vs(de.id)},children:de.displayName.slice(0,8)},de.id)),Us&&ie.length0&&u.jsxs("select",{className:"assign-dropdown",value:"",onClick:de=>de.stopPropagation(),onChange:de=>{de.target.value&&Ii(J.id,de.target.value)},children:[u.jsx("option",{value:"",children:n("office.moveHere")}),se.map(de=>u.jsxs("option",{value:de.id,children:[de.displayName," (",tr.find(Ne=>Ne.id===Ui.find(Be=>Be.id===de.id)?.officeId)?.name??"?",")"]},de.id))]})]})]},J.id)})}),u.jsxs("div",{className:"section-label",children:[n("office.activeAgents")," ",u.jsx("span",{className:"count-badge",children:W.length})]}),u.jsxs("div",{className:"agent-list",children:[W.map(J=>u.jsxs("div",{className:`agent-row ${z===J.agent_id?"selected":""}`,children:[u.jsxs("button",{className:"agent-row-main",onClick:()=>Vs(J.agent_id),children:[u.jsx("span",{className:`dot ${J.status}`}),u.jsxs("div",{className:"agent-info",children:[u.jsx("span",{className:"agent-name",children:J.name}),u.jsx("span",{className:"agent-spec",children:J.specialties.slice(0,2).join(" · ")||n("common.general")})]})]}),Us&&(On===J.agent_id?u.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:u.jsx("span",{className:"spinner-inline"})}):Kt===J.agent_id?u.jsxs("span",{className:"del-confirm",children:[u.jsx("span",{className:"del-confirm-label",children:n("office.deleteQuestion")}),u.jsx("button",{className:"del-confirm-yes",onClick:()=>{ti(J.agent_id),In(null),o.current?.deleteAgent(J.agent_id)},children:n("common.yes")}),u.jsx("button",{className:"del-confirm-no",onClick:()=>In(null),children:n("common.no")})]}):u.jsx("button",{className:"agent-del",title:n("office.removeAgent",{name:J.name}),onClick:()=>In(J.agent_id),children:"×"}))]},J.agent_id)),W.length===0&&u.jsx("div",{className:"empty-state",children:n("office.emptyAgents")})]}),si&&u.jsxs("div",{className:"agent-detail",children:[u.jsx("div",{className:"agent-detail-name",children:si.displayName}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.state")}),u.jsx("span",{className:"detail-value",children:i("agent.status",si.state)||si.state})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.tool")}),u.jsx("span",{className:"detail-value",children:si.currentTool??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.task")}),u.jsx("span",{className:"detail-value",children:si.taskSummary??"—"})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("app.page.office")}),u.jsx("select",{className:"detail-select",value:si.officeId,onChange:J=>{Ii(J.target.value,si.id)},disabled:!Us,children:tr.map(J=>u.jsx("option",{value:J.id,children:J.name},J.id))})]}),u.jsxs("div",{className:"agent-detail-row",children:[u.jsx("span",{className:"detail-label",children:n("common.seat")}),u.jsxs("select",{className:"detail-select",value:si.seatId??"",onChange:J=>{J.target.value&&ps(si.id,J.target.value)},disabled:!Us,children:[u.jsx("option",{value:"",children:"—"}),Ao.map(J=>{const B=J.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,se=>se.toUpperCase()),ie=J.assigned&&J.assignedTo!==si.id;return u.jsxs("option",{value:J.id,disabled:ie,children:[B,ie?` (${J.assignedTo})`:J.assignedTo===si.id?" ✓":""]},J.id)})]})]})]}),Ui.length>W.length&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:"section-label",children:[n("office.characters"),u.jsx("button",{className:"inline-btn",onClick:()=>$(J=>!J),children:n(I?"office.hideSub":"office.showSub")})]}),u.jsx("div",{className:"agent-list",children:Ui.filter(J=>!W.some(B=>B.agent_id===J.id)).map(J=>u.jsxs("button",{className:`agent-row-simple ${z===J.id?"selected":""}`,onClick:()=>Vs(J.id),children:[J.isSubagent&&u.jsx("span",{className:"sub-badge",children:"SUB"}),u.jsx("span",{className:"agent-name",children:J.displayName}),u.jsxs("span",{className:"agent-spec",children:[J.state,J.currentTool?` · ${J.currentTool}`:""]})]},J.id))})]})]})})})]}),Q&&u.jsxs("div",{className:"dev-overlay",children:[u.jsxs("div",{className:"dev-header",children:[u.jsx("span",{className:"dev-title",children:n("dev.tools")}),u.jsx("button",{className:"icon-btn",onClick:()=>D(!1),children:"✕"})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.connection")}),u.jsxs("div",{className:"input-row",children:[u.jsx("input",{value:m,onChange:J=>h(J.target.value),placeholder:"ws://..."}),u.jsx("button",{className:"send-btn",onClick:Mo,children:"↩"})]})]}),u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.evolution")}),u.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((J,B)=>{const ie=J.toLowerCase(),se=ie in nd?nd[ie]:!1,de=`dev.phase.${ie}`;return u.jsxs("div",{className:"evo-phase-group",children:[B>0&&u.jsx("div",{className:"evo-connector"}),u.jsxs("div",{className:`evo-node ${se?"active":""}`,children:[u.jsx("div",{className:"evo-dot"}),u.jsx("span",{className:"evo-label",children:n(de)})]})]},J)})}),u.jsx("div",{className:"list",children:(b?.skills.recent??[]).slice(-6).reverse().map((J,B)=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J.skill_name}),u.jsx("span",{className:"muted mono",children:J.version})]},`${J.skill_name}-${J.timestamp}-${B}`))})]}),u.jsxs("div",{className:"dev-group",children:[u.jsxs("div",{className:"dev-label",children:[n("dev.events"),u.jsx("select",{className:"inline-select",value:V,onChange:J=>Y(J.target.value),children:Ql.map(J=>u.jsx("option",{value:J,children:J},J))})]}),u.jsx("div",{className:"event-log",children:Jl.slice(0,30).map(J=>u.jsxs("div",{className:"log-row",children:[u.jsx("span",{className:"log-time",children:new Date(J.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),u.jsx("span",{className:"log-type",children:J.type}),u.jsx("span",{className:"log-agent",children:J.agent_id}),u.jsx("span",{className:"log-data",children:yee(J.data)})]},J.event_id))})]}),Object.keys(b?.channels??{}).length>0&&u.jsxs("div",{className:"dev-group",children:[u.jsx("div",{className:"dev-label",children:n("dev.channels")}),Object.entries(b?.channels??{}).map(([J,B])=>u.jsxs("div",{className:"list-row",children:[u.jsx("span",{children:J}),u.jsx("span",{className:"muted",children:String(B.last_type??"idle")})]},J))]})]}),ei&&u.jsx("div",{className:Xt==="error"?"toast-error":"toast-success",children:ei}),u.jsx(wee,{taskId:ki,sessions:qe.sessions,agents:W,onClose:()=>cn(null)})]})}class jee extends Mt.Component{constructor(){super(...arguments),this.state={error:null,info:""}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] React crashed:",t,n),this.setState({info:n.componentStack??""})}render(){return this.state.error?u.jsxs("div",{style:{padding:32,color:"#ff6b6b",background:"#1a1a2e",minHeight:"100vh",fontFamily:"monospace"},children:[u.jsx("h2",{children:"UI Error — React crashed"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap",fontSize:13},children:this.state.error.message}),u.jsxs("details",{open:!0,style:{marginTop:12,fontSize:12,color:"#ccc"},children:[u.jsx("summary",{children:"Stack trace"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.error.stack})]}),this.state.info&&u.jsxs("details",{style:{marginTop:12,fontSize:12,color:"#888"},children:[u.jsx("summary",{children:"Component stack"}),u.jsx("pre",{style:{whiteSpace:"pre-wrap"},children:this.state.info})]}),u.jsx("button",{onClick:()=>{this.setState({error:null,info:""})},style:{marginTop:16,padding:"8px 16px",background:"#6366f1",color:"#fff",border:"none",borderRadius:6,cursor:"pointer"},children:"Try to recover"})]}):this.props.children}}window.addEventListener("error",e=>{console.error("[Global] Uncaught error:",e.error??e.message)});window.addEventListener("unhandledrejection",e=>{console.error("[Global] Unhandled promise rejection:",e.reason)});const Wv=document.getElementById("root");if(!Wv)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{h3.createRoot(Wv).render(u.jsx(jee,{children:u.jsx(wD,{children:u.jsx(Cee,{})})}))}catch(e){console.error("React render error:",e),Wv.innerHTML=`

React Error: ${e}

`} diff --git a/opc/plugins/office_ui/frontend_dist/index.html b/opc/plugins/office_ui/frontend_dist/index.html index 3e8a92b..ca27aba 100644 --- a/opc/plugins/office_ui/frontend_dist/index.html +++ b/opc/plugins/office_ui/frontend_dist/index.html @@ -5,7 +5,7 @@ OpenOPC Pixel Office - + diff --git a/opc/plugins/office_ui/frontend_src/App.tsx b/opc/plugins/office_ui/frontend_src/App.tsx index 2821927..ae4769a 100644 --- a/opc/plugins/office_ui/frontend_src/App.tsx +++ b/opc/plugins/office_ui/frontend_src/App.tsx @@ -16,6 +16,7 @@ import { useSessionStore, type SessionStoreState } from './stores/SessionStore' import { useProjectStore, type ProjectStoreState } from './stores/ProjectStore' import { ExecutionPanel } from './kanban/ExecutionPanel' import { ProjectSelector } from './components/ProjectSelector' +import { LLMModelSettingsModal } from './components/LLMModelSettingsModal' import { OrgTab } from './org/OrgTab' import { notifyTaskAssigned } from './lib/taskChatBridge' import { mapCollabSyncPayload, mapBackendMessage, mapBackendChannel, mapBackendSession, mapBackendBoard, mapBackendColumn, mapBackendTask, mergeSessionDetailHasMore } from './lib/collabSync' @@ -483,6 +484,7 @@ export default function App() { const [activePage, setActivePage] = useState('workspace') const [swarmAgents, setSwarmAgents] = useState([]) const [showDevTools, setShowDevTools] = useState(false) + const [showLLMModal, setShowLLMModal] = useState(false) const [lastTaskDoneAgent, setLastTaskDoneAgent] = useState(null) const [globalExecMode, setGlobalExecMode] = useState('task') const [globalCompanyProfile, setGlobalCompanyProfile] = useState<'corporate' | 'custom'>('corporate') @@ -699,6 +701,19 @@ export default function App() { const sessionStore = useSessionStore() const projectStore = useProjectStore() + const [llmConfig, setLlmConfig] = useState(null) + + useEffect(() => { + if (showLLMModal) { + fetch('/api/llm/config') + .then((res) => res.json()) + .then((data) => { + if (data.ok) setLlmConfig(data) + }) + .catch((err) => console.error('Failed to fetch LLM config:', err)) + } + }, [showLLMModal]) + // Per-session recruitment (role_id -> recruited names) for the org canvas. // The org_info payload is project-global, so the canvas otherwise can't show // the *selected* session's hires; this derives them from that session's chat @@ -2491,12 +2506,40 @@ export default function App() { ))} + + {/* LLM & Local Model Provider Modal */} + setShowLLMModal(false)} + onSave={async (settings) => { + try { + const res = await fetch('/api/llm/config', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(settings), + }) + const data = await res.json() + if (data.ok) { + setLlmConfig(data) + return true + } + throw new Error(data.error || 'Failed to save settings') + } catch (err: any) { + console.error('Failed to save LLM settings:', err) + throw err + } + }} + /> + {/* Workspace Page (unified Chat + Kanban) */} {activePage === 'workspace' && ( void + onSave?: (settings: LLMSettingsData) => Promise | boolean +} + +const PROVIDER_OPTIONS = [ + { value: 'ollama', label: 'Ollama (Local Node)', defaultBase: 'http://localhost:11434', defaultModel: 'ollama/llama3.3', isLocal: true }, + { value: 'vllm', label: 'vLLM Engine (Local)', defaultBase: 'http://localhost:8000/v1', defaultModel: 'vllm/meta-llama-3.1-8b-instruct', isLocal: true }, + { value: 'lmstudio', label: 'LM Studio (Local Server)', defaultBase: 'http://localhost:1234/v1', defaultModel: 'openai/deepseek-r1-distill-qwen-14b', isLocal: true }, + { value: 'localai', label: 'LocalAI / Llama.cpp (Local)', defaultBase: 'http://localhost:8080/v1', defaultModel: 'openai/starcoder2-15b', isLocal: true }, + { value: 'openai', label: 'OpenAI (Cloud)', defaultBase: '', defaultModel: 'openai/gpt-4o', isLocal: false }, + { value: 'anthropic', label: 'Anthropic Claude (Cloud)', defaultBase: '', defaultModel: 'anthropic/claude-sonnet-4-20250514', isLocal: false }, + { value: 'openrouter', label: 'OpenRouter AI (Cloud)', defaultBase: '', defaultModel: 'openrouter/auto', isLocal: false }, + { value: 'custom', label: 'Custom Self-Hosted / Proxy', defaultBase: 'http://localhost:8000/v1', defaultModel: 'openai/custom-model', isLocal: true }, +] as const + +const POPULAR_MODELS: Record = { + ollama: ['ollama/llama3.3', 'ollama/qwen2.5-coder', 'ollama/deepseek-r1:14b', 'ollama/mistral-nemo'], + vllm: ['vllm/meta-llama-3.1-8b-instruct', 'vllm/qwen2.5-72b-instruct', 'vllm/mistral-7b-instruct-v0.3'], + lmstudio: ['openai/deepseek-r1-distill-qwen-14b', 'openai/llama-3.3-70b-instruct'], + localai: ['openai/starcoder2-15b', 'openai/llama-3-8b-instruct'], + openai: ['openai/gpt-4o', 'openai/gpt-4o-mini', 'openai/o3-mini'], + anthropic: ['anthropic/claude-sonnet-4-20250514', 'anthropic/claude-3-5-haiku-20241022'], + openrouter: ['openrouter/auto', 'openrouter/anthropic/claude-3.5-sonnet'], + custom: [], +} + +export function LLMModelSettingsModal({ isOpen, initialConfig, onClose, onSave }: LLMModelSettingsModalProps) { + const [provider, setProvider] = useState('ollama') + const [defaultModel, setDefaultModel] = useState('ollama/llama3.3') + const [apiBase, setApiBase] = useState('http://localhost:11434') + const [apiKey, setApiKey] = useState('') + const [isLocal, setIsLocal] = useState(true) + const [contextWindow, setContextWindow] = useState(0) + const [statusMessage, setStatusMessage] = useState<{ text: string; isError: boolean } | null>(null) + const [isSubmitting, setIsSubmitting] = useState(false) + + useEffect(() => { + if (isOpen) { + if (initialConfig) { + setProvider(initialConfig.provider || 'ollama') + setDefaultModel(initialConfig.default_model || 'ollama/llama3.3') + setApiBase(initialConfig.api_base || '') + setApiKey(initialConfig.api_key || '') + setIsLocal(initialConfig.is_local ?? true) + setContextWindow(initialConfig.context_window || 0) + } else { + setProvider('ollama') + setDefaultModel('ollama/llama3.3') + setApiBase('http://localhost:11434') + setApiKey('') + setIsLocal(true) + setContextWindow(0) + } + setStatusMessage(null) + setIsSubmitting(false) + } + }, [isOpen, initialConfig]) + + if (!isOpen) return null + + const handleProviderChange = (newProvider: string) => { + setProvider(newProvider) + const preset = PROVIDER_OPTIONS.find((p) => p.value === newProvider) + if (preset) { + setIsLocal(preset.isLocal) + setApiBase(preset.defaultBase || '') + if (preset.defaultModel) setDefaultModel(preset.defaultModel) + } + } + + const handleSave = async () => { + if (!defaultModel.trim()) { + setStatusMessage({ text: 'Model identifier is required.', isError: true }) + return + } + + setIsSubmitting(true) + setStatusMessage(null) + + const settings: LLMSettingsData = { + provider, + default_model: defaultModel.trim(), + api_base: apiBase.trim(), + api_key: apiKey.trim(), + is_local: isLocal, + context_window: Number(contextWindow) || 0, + } + + try { + if (onSave) { + const success = await onSave(settings) + if (success !== false) { + setStatusMessage({ text: '✓ LLM Settings Saved & Applied to Backend!', isError: false }) + setTimeout(() => { + onClose() + }, 800) + } else { + setStatusMessage({ text: 'Failed to update backend configuration.', isError: true }) + } + } else { + setStatusMessage({ text: 'No save handler registered.', isError: true }) + } + } catch (err: any) { + setStatusMessage({ text: err?.message || 'Error saving settings.', isError: true }) + } finally { + setIsSubmitting(false) + } + } + + return ( +
+
+
+ 🤖 + LLM Model & Provider Settings +
+ +
+ +
+ {/* Provider Selection */} +
+ + +
+ + {/* Local Node Status Indicator */} + {isLocal ? ( +
+ 🟢 +
+ Keyless Local Model Active +
+ No remote API key required. Requests connect directly to your local endpoint. Note: Model must support tool/function calling. +
+
+
+ ) : ( +
+ ☁️ +
+ Cloud Provider Active +
+ Requires an API key configured below or in your system environment. +
+
+
+ )} + + {/* Model Selection & Suggestions */} +
+ + setDefaultModel(e.target.value)} + placeholder="e.g. ollama/llama3.3 or openai/gpt-4o" + /> + {POPULAR_MODELS[provider] && POPULAR_MODELS[provider].length > 0 && ( +
+ {POPULAR_MODELS[provider].map((m) => ( + + ))} +
+ )} +
+ + {/* API Base URL */} +
+ + setApiBase(e.target.value)} + placeholder={isLocal ? 'e.g. http://localhost:11434 or http://localhost:8000/v1' : 'Leave empty for standard cloud endpoint'} + /> +
+ + {/* API Key */} +
+ + setApiKey(e.target.value)} + placeholder={isLocal ? 'Not required for local nodes (leave blank)' : 'sk-...'} + /> +
+ + {/* Context Window & Advanced Options */} +
+
+ + +
+
+ + setContextWindow(Number(e.target.value))} + placeholder="0 (Auto-detect)" + /> +
+
+ + {/* Action Buttons */} +
+ {statusMessage ? ( + + {statusMessage.text} + + ) : ( + + Config will be persisted atomically to backend `.opc/config/llm_config.yaml`. + + )} +
+ + +
+
+
+
+ ) +} diff --git a/opc/plugins/office_ui/frontend_src/game/GameBridge.ts b/opc/plugins/office_ui/frontend_src/game/GameBridge.ts index d857d76..04f3696 100644 --- a/opc/plugins/office_ui/frontend_src/game/GameBridge.ts +++ b/opc/plugins/office_ui/frontend_src/game/GameBridge.ts @@ -13,6 +13,14 @@ export class GameBridge extends Phaser.Events.EventEmitter { super() } + override on(event: string | symbol, fn: (...args: any[]) => void, context?: any): this { + return super.on(event, fn, context) + } + + override off(event: string | symbol, fn?: (...args: any[]) => void, context?: any, once?: boolean): this { + return super.off(event, fn, context, once) + } + setScene(scene: OfficeScene) { this.scene = scene diff --git a/opc/plugins/office_ui/frontend_src/lib/wsClient.ts b/opc/plugins/office_ui/frontend_src/lib/wsClient.ts index 724a929..0f8e835 100644 --- a/opc/plugins/office_ui/frontend_src/lib/wsClient.ts +++ b/opc/plugins/office_ui/frontend_src/lib/wsClient.ts @@ -53,6 +53,8 @@ interface SocketHandlers { onReorgList?: (payload: ReorgListPayload) => void onWorkItemProgress?: (payload: WorkItemProgressPayload) => void onMarketListInstalled?: (payload: { packages: Array> }) => void + onLlmConfig?: (payload: Record) => void + onLlmConfigUpdated?: (payload: Record) => void onMarketBrowse?: (payload: { presets: Array> }) => void onMarketPreview?: (payload: Record) => void onOrgConfigExport?: (payload: { yaml: string }) => void @@ -786,6 +788,14 @@ export class VisualSocketClient { }) } + getLlmConfig(): void { + this.send({ type: 'get_llm_config' }) + } + + updateLlmConfig(config: Record): void { + this.send({ type: 'update_llm_config', payload: config }) + } + // ── Internal ─────────────────────────────────────────────────────────── private normalizeProjectId(value: unknown): string { @@ -918,6 +928,13 @@ export class VisualSocketClient { case 'comms_state': this.handlers.onCommsState?.(parsed.payload as unknown as CommsStatePayload) break + case 'get_llm_config': + case 'update_llm_config': + this.handlers.onLlmConfig?.(parsed.payload as Record) + break + case 'llm_config_updated': + this.handlers.onLlmConfigUpdated?.(parsed.payload as Record) + break case 'comms_message': this.handlers.onCommsMessage?.(parsed.payload as unknown as CommsMessagePayload) break diff --git a/opc/plugins/office_ui/frontend_src/types/visual.ts b/opc/plugins/office_ui/frontend_src/types/visual.ts index 3d31194..dc1f561 100644 --- a/opc/plugins/office_ui/frontend_src/types/visual.ts +++ b/opc/plugins/office_ui/frontend_src/types/visual.ts @@ -108,6 +108,9 @@ export type SocketEnvelope = | { type: 'market_browse'; payload: { presets: Array> } } | { type: 'market_preview'; payload: Record } | { type: 'org_config_export'; payload: { yaml: string } } + | { type: 'get_llm_config'; payload: Record } + | { type: 'update_llm_config'; payload: Record } + | { type: 'llm_config_updated'; payload: Record } | { type: 'org_config_import'; payload: { ok: boolean; dry_run?: boolean; preview?: { roles_added: number; roles_removed: number; employees_changed: number }; error?: string; validation_errors?: string[] } } | { type: 'org_saved_list'; payload: { orgs: SavedOrgSummary[]; active_name?: string | null } } | { type: 'org_saved_save_as'; payload: { ok: boolean; name: string; error?: string } } diff --git a/opc/plugins/office_ui/llm_config_service.py b/opc/plugins/office_ui/llm_config_service.py new file mode 100644 index 0000000..bc6011d --- /dev/null +++ b/opc/plugins/office_ui/llm_config_service.py @@ -0,0 +1,112 @@ +"""Shared LLM Configuration Service for Office UI (REST API and WebSocket).""" + +from __future__ import annotations + +import threading +from pathlib import Path +from typing import Any +from urllib.parse import urlparse + +from loguru import logger + +from opc.core.config import OPCConfig, get_opc_home, resolve_config_dir + +_CONFIG_LOCK = threading.Lock() + + +def get_llm_config_service(engine_or_home: Any = None) -> dict[str, Any]: + """Retrieve active LLM configuration for Office UI settings modal.""" + opc_home = getattr(engine_or_home, "opc_home", None) + if opc_home is None: + opc_home = engine_or_home if isinstance(engine_or_home, Path) else get_opc_home() + + config_dir = resolve_config_dir(opc_home) + config = getattr(engine_or_home, "config", None) + if not config or not isinstance(config, OPCConfig): + config = OPCConfig.load(config_dir) + + llm_cfg = config.llm + return { + "ok": True, + "provider": getattr(llm_cfg, "provider", "") or "", + "default_model": llm_cfg.default_model, + "api_base": llm_cfg.api_base, + "api_key": "***" if llm_cfg.api_key else "", + "has_api_key": bool(llm_cfg.api_key), + "is_local": getattr(llm_cfg, "is_local", False), + "context_window": llm_cfg.context_window, + } + + +def update_llm_config_service(engine_or_home: Any, payload: dict[str, Any]) -> dict[str, Any]: + """Validate, persist, and hot-apply LLM configuration updates atomically.""" + if not isinstance(payload, dict): + raise ValueError("Invalid payload format; expected a dictionary") + + new_model = str(payload.get("default_model", "") or "").strip() + if not new_model: + raise ValueError("Model identifier cannot be empty") + + new_api_base = str(payload.get("api_base", "") or "").strip() + if new_api_base: + parsed = urlparse(new_api_base) + if parsed.scheme not in ("http", "https"): + raise ValueError(f"Invalid API base URL scheme '{parsed.scheme}'; expected http or https") + + new_api_key = str(payload.get("api_key", "") or "").strip() + new_provider = str(payload.get("provider", "") or "").strip() + is_local = bool(payload.get("is_local", False)) + + raw_context_window = payload.get("context_window", 0) + try: + context_window = int(raw_context_window or 0) + except (TypeError, ValueError): + raise ValueError("Context window must be an integer") + if context_window < 0 or context_window > 2_000_000: + raise ValueError("Context window must be between 0 and 2,000,000") + + opc_home = getattr(engine_or_home, "opc_home", None) + if opc_home is None: + opc_home = engine_or_home if isinstance(engine_or_home, Path) else get_opc_home() + + config_dir = resolve_config_dir(opc_home) + + with _CONFIG_LOCK: + config = OPCConfig.load(config_dir) + + config.llm.default_model = new_model + config.llm.api_base = new_api_base + config.llm.provider = new_provider + config.llm.is_local = is_local + config.llm.context_window = context_window + + # Explicit Key Semantics: + # - "***": keep existing key + # - "": explicitly clear key + # - new string: update key + if new_api_key == "": + config.llm.api_key = "" + elif new_api_key != "***": + config.llm.api_key = new_api_key + + # Atomically save ONLY llm_config.yaml into canonical config_dir + saved_path = config.save_llm_config(config_dir) + logger.info(f"LLM configuration updated and saved to {saved_path}") + + # Hot-apply reconfiguration across all engine consumers + if hasattr(engine_or_home, "reconfigure_llm"): + engine_or_home.reconfigure_llm(config.llm) + elif hasattr(engine_or_home, "config"): + engine_or_home.config.llm = config.llm + if hasattr(engine_or_home, "llm") and hasattr(engine_or_home.llm, "config"): + engine_or_home.llm.config = config.llm + + return { + "ok": True, + "provider": config.llm.provider, + "default_model": config.llm.default_model, + "api_base": config.llm.api_base, + "has_api_key": bool(config.llm.api_key), + "is_local": config.llm.is_local, + "context_window": config.llm.context_window, + } diff --git a/opc/plugins/office_ui/server.py b/opc/plugins/office_ui/server.py index a9a57e4..5de1ed6 100644 --- a/opc/plugins/office_ui/server.py +++ b/opc/plugins/office_ui/server.py @@ -162,10 +162,16 @@ async def _root_engine_event(event: Any) -> None: app["db"] = db app["ws_handler"] = ws_handler app["instance_lock"] = instance_lock + app["opc_home"] = opc_home + app["config"] = config # ── Routes ──────────────────────────────────────────────────────── app.router.add_get("/ws", ws_handler.handle_ws) + # LLM Configuration REST API (registered before SPA catch-all) + app.router.add_get("/api/llm/config", _handle_get_llm_config_api) + app.router.add_post("/api/llm/config", _handle_update_llm_config_api) + # Attachment download (must be registered before the SPA catch-all) app.router.add_get( "/api/attachments/{attachment_id}/{filename}", @@ -218,6 +224,31 @@ async def _serve_spa_fallback(request: aiohttp.web.Request) -> aiohttp.web.Respo return aiohttp.web.FileResponse(_STATIC_DIR / "index.html", headers=_FRONTEND_NO_STORE_HEADERS) +async def _handle_get_llm_config_api(request: aiohttp.web.Request) -> aiohttp.web.Response: + try: + from opc.plugins.office_ui.llm_config_service import get_llm_config_service + app = request.app + target = app.get("engine") or app.get("opc_home") or get_opc_home() + payload = get_llm_config_service(target) + return aiohttp.web.json_response(payload) + except Exception as e: + return aiohttp.web.json_response({"ok": False, "error": str(e)}, status=500) + + +async def _handle_update_llm_config_api(request: aiohttp.web.Request) -> aiohttp.web.Response: + try: + from opc.plugins.office_ui.llm_config_service import update_llm_config_service + data = await request.json() + app = request.app + target = app.get("engine") or app.get("opc_home") or get_opc_home() + payload = update_llm_config_service(target, data) + return aiohttp.web.json_response(payload) + except ValueError as e: + return aiohttp.web.json_response({"ok": False, "error": str(e)}, status=400) + except Exception as e: + return aiohttp.web.json_response({"ok": False, "error": str(e)}, status=500) + + def _make_attachment_handler(engine: OPCEngine): """Factory that returns an HTTP handler for serving stored attachments.""" import mimetypes as _mt diff --git a/opc/plugins/office_ui/ws_handler.py b/opc/plugins/office_ui/ws_handler.py index 219dc83..17a1afc 100644 --- a/opc/plugins/office_ui/ws_handler.py +++ b/opc/plugins/office_ui/ws_handler.py @@ -9323,6 +9323,36 @@ async def _handle_comms_read_message(self, ws: Any, data: dict) -> None: except ServiceError as exc: await self._send_service_error(ws, exc, action="comms_read_message") + async def _handle_get_llm_config(self, ws: Any, data: dict) -> None: + """Return active LLM configuration for Office UI settings modal.""" + if self._shutting_down: + return + try: + from opc.plugins.office_ui.llm_config_service import get_llm_config_service + target = self.engine or self.opc_home + payload = get_llm_config_service(target) + await ws.send_json({"type": "get_llm_config", "payload": payload}) + except Exception as exc: + await ws.send_json({"type": "get_llm_config", "payload": {"ok": False, "error": str(exc)}}) + + async def _handle_update_llm_config(self, ws: Any, data: dict) -> None: + """Update and atomically persist LLM configuration, then reconfigure runtime LLMProvider.""" + if self._shutting_down: + return + try: + from opc.plugins.office_ui.llm_config_service import update_llm_config_service + raw_payload = data.get("payload") or {} + target = self.engine or self.opc_home + response_payload = update_llm_config_service(target, raw_payload) + await ws.send_json({"type": "update_llm_config", "payload": response_payload}) + # Also broadcast config update to all connected clients + await self.broadcast({"type": "llm_config_updated", "payload": response_payload}) + except Exception as exc: + logger.error(f"Failed to update LLM configuration: {exc}") + await ws.send_json({"type": "update_llm_config", "payload": {"ok": False, "error": str(exc)}}) + # Register handlers defined after _HANDLERS class-level dict _HANDLERS["comms_state"] = _handle_comms_state _HANDLERS["comms_read_message"] = _handle_comms_read_message + _HANDLERS["get_llm_config"] = _handle_get_llm_config + _HANDLERS["update_llm_config"] = _handle_update_llm_config diff --git a/tests/test_local_llm_provider.py b/tests/test_local_llm_provider.py new file mode 100644 index 0000000..e5a5b4a --- /dev/null +++ b/tests/test_local_llm_provider.py @@ -0,0 +1,306 @@ +from __future__ import annotations + +import os +import tempfile +import unittest +from pathlib import Path +from unittest.mock import AsyncMock, MagicMock, patch + +import litellm +import yaml + +from opc.core.config import LLMConfig, OPCConfig +from opc.llm.provider import LLMProvider, _is_local_endpoint, _normalize_litellm_model +from opc.plugins.office_ui.llm_config_service import ( + get_llm_config_service, + update_llm_config_service, +) + + +class TestLocalLLMProvider(unittest.IsolatedAsyncioTestCase): + def test_is_local_endpoint_helper(self) -> None: + """Test local endpoint detection across model names and host URLs.""" + # Local model prefixes + self.assertTrue(_is_local_endpoint(model="ollama/llama3.3")) + self.assertTrue(_is_local_endpoint(model="ollama_chat/qwen2.5-coder")) + self.assertTrue(_is_local_endpoint(model="vllm/meta-llama-3.1-8b")) + self.assertTrue(_is_local_endpoint(model="localai/starcoder")) + self.assertTrue(_is_local_endpoint(model="lmstudio/deepseek-r1")) + self.assertTrue(_is_local_endpoint(model="llama-cpp/mistral-7b")) + + # Remote model names + self.assertFalse(_is_local_endpoint(model="openai/gpt-4o")) + self.assertFalse(_is_local_endpoint(model="anthropic/claude-sonnet-4")) + + # Local API bases + self.assertTrue(_is_local_endpoint(api_base="http://localhost:11434")) + self.assertTrue(_is_local_endpoint(api_base="http://127.0.0.1:8000/v1")) + self.assertTrue(_is_local_endpoint(api_base="http://0.0.0.0:8080/v1")) + self.assertTrue(_is_local_endpoint(api_base="http://my-gpu-node.local:11434")) + + # Remote API bases + self.assertFalse(_is_local_endpoint(api_base="https://api.openai.com/v1")) + self.assertFalse(_is_local_endpoint(api_base="https://openrouter.ai/api/v1")) + + def test_litellm_provider_resolution_for_advertised_models(self) -> None: + """Verify LiteLLM==1.82.1 real provider resolution (no network calls) for all supported formats.""" + test_models = [ + ("ollama/llama3.3", "ollama"), + ("ollama_chat/qwen2.5-coder", "ollama_chat"), + ("vllm/meta-llama-3.1-8b-instruct", "vllm"), + ("openai/deepseek-r1-distill-qwen-14b", "openai"), + ("openai/starcoder2-15b", "openai"), + ("openai/gpt-4o", "openai"), + ("anthropic/claude-sonnet-4-20250514", "anthropic"), + ("openrouter/auto", "openrouter"), + ] + + for raw_model, expected_provider in test_models: + normalized = _normalize_litellm_model(raw_model, api_base="http://localhost:1234/v1") + _, resolved_provider, _, _ = litellm.get_llm_provider(normalized) + self.assertEqual( + resolved_provider, + expected_provider, + f"LiteLLM failed to resolve provider for model: {raw_model} (normalized: {normalized})", + ) + + def test_local_env_var_does_not_misroute_cloud_models(self) -> None: + """OLLAMA_HOST or LOCAL_LLM_API_BASE in os.environ must NOT misroute cloud model requests.""" + env = { + "OLLAMA_HOST": "http://127.0.0.1:11434", + "LOCAL_LLM_API_BASE": "http://127.0.0.1:8000", + } + with patch.dict(os.environ, env, clear=True): + provider = LLMProvider(LLMConfig(default_model="anthropic/claude-sonnet-4-20250514", api_key="")) + # Cloud model should NOT inherit local api_base + self.assertIsNone(provider.resolve_api_base("anthropic/claude-sonnet-4-20250514")) + self.assertFalse(provider.has_credentials("anthropic/claude-sonnet-4-20250514")) + + def test_routed_models_resolution_both_directions(self) -> None: + """Test per-model API base resolution for mixed routing configurations.""" + # Case A: Local default + Cloud routed model + config_a = LLMConfig( + default_model="ollama/llama3.3", + routing={"planning": "anthropic/claude-sonnet-4-20250514"}, + api_key="", + ) + provider_a = LLMProvider(config_a) + self.assertEqual(provider_a.resolve_api_base(config_a.default_model), "http://localhost:11434") + self.assertIsNone(provider_a.resolve_api_base("anthropic/claude-sonnet-4-20250514")) + + # Case B: Cloud default + Local routed model + config_b = LLMConfig( + default_model="openai/gpt-4o", + routing={"code": "ollama/qwen2.5-coder"}, + api_key="sk-test-key", + ) + provider_b = LLMProvider(config_b) + self.assertIsNone(provider_b.resolve_api_base(config_b.default_model)) + self.assertEqual(provider_b.resolve_api_base("ollama/qwen2.5-coder"), "http://localhost:11434") + + @patch("opc.llm.provider.litellm.acompletion") + async def test_acompletion_kwargs_mixed_routing_isolation( + self, mock_acompletion: AsyncMock + ) -> None: + """Verify LiteLLM acompletion kwargs isolate cloud routed calls from local default endpoint.""" + mock_response = AsyncMock() + mock_response.choices = [ + AsyncMock( + message=AsyncMock(content="Planning result", tool_calls=None), + finish_reason="stop", + ) + ] + mock_response.usage = None + mock_acompletion.return_value = mock_response + + # Config: Ollama default with local base + Anthropic routed planning model + config = LLMConfig( + default_model="ollama/llama3.3", + api_base="http://localhost:11434", + is_local=True, + routing={"planning": "anthropic/claude-sonnet-4-20250514"}, + api_key="", + ) + provider = LLMProvider(config) + + env = {"ANTHROPIC_API_KEY": "sk-ant-test-key-123"} + with patch.dict(os.environ, env): + await provider.chat(task_type="planning", messages=[{"role": "user", "content": "Plan project"}]) + + kwargs = mock_acompletion.call_args.kwargs + self.assertEqual(kwargs["model"], "anthropic/claude-sonnet-4-20250514") + self.assertNotIn("api_base", kwargs) + self.assertEqual(kwargs["api_key"], "sk-ant-test-key-123") + + def test_has_credentials_for_ollama(self) -> None: + """Ollama model without API key evaluates to has_credentials() == True.""" + provider = LLMProvider(LLMConfig(default_model="ollama/llama3.3", api_key="")) + with patch.dict(os.environ, {}, clear=True): + self.assertTrue(provider.has_credentials()) + self.assertEqual(provider.resolve_api_base(), "http://localhost:11434") + + def test_has_credentials_for_vllm_local_base(self) -> None: + """vLLM with local api_base evaluates to has_credentials() == True.""" + provider = LLMProvider(LLMConfig( + default_model="vllm/llama3", + api_base="http://127.0.0.1:8000/v1", + api_key="", + )) + with patch.dict(os.environ, {}, clear=True): + self.assertTrue(provider.has_credentials()) + + def test_has_credentials_for_explicit_is_local(self) -> None: + """Explicit is_local flag in LLMConfig evaluates to has_credentials() == True.""" + provider = LLMProvider(LLMConfig( + default_model="openai/custom-model", + is_local=True, + api_key="", + )) + with patch.dict(os.environ, {}, clear=True): + self.assertTrue(provider.has_credentials()) + + def test_capabilities_reporting_for_local_model(self) -> None: + """Test model capabilities reporting for local endpoints.""" + provider = LLMProvider(LLMConfig( + default_model="ollama/qwen2.5-coder", + api_base="http://localhost:11434", + )) + capabilities = provider.get_capabilities() + self.assertEqual(capabilities.model, "ollama/qwen2.5-coder") + self.assertEqual(capabilities.provider_family, "ollama") + self.assertTrue(capabilities.metadata.get("is_local")) + + @patch("opc.llm.provider.litellm.acompletion") + async def test_chat_injects_dummy_api_key_for_local_openai_endpoint( + self, mock_acompletion: AsyncMock + ) -> None: + """Chat injects 'local' API key when targeting keyless local endpoint.""" + mock_response = AsyncMock() + mock_response.choices = [ + AsyncMock( + message=AsyncMock(content="Local response", tool_calls=None), + finish_reason="stop", + ) + ] + mock_response.usage = None + mock_acompletion.return_value = mock_response + + provider = LLMProvider(LLMConfig( + default_model="vllm/qwen", + api_base="http://localhost:8000/v1", + api_key="", + )) + + res = await provider.chat(messages=[{"role": "user", "content": "Hello"}]) + self.assertEqual(res["content"], "Local response") + + # Verify call_kwargs received api_key="local" + kwargs = mock_acompletion.call_args.kwargs + self.assertEqual(kwargs["api_key"], "local") + self.assertEqual(kwargs["api_base"], "http://localhost:8000/v1") + + def test_canonical_config_dir_file_persistence(self) -> None: + """Test update_llm_config_service updates canonical opc_home/config/llm_config.yaml.""" + with tempfile.TemporaryDirectory() as tmpdir: + opc_home = Path(tmpdir) + config_dir = opc_home / "config" + config_dir.mkdir(parents=True) + + # Create existing config + initial_config = OPCConfig() + initial_config.save(config_dir) + + payload = { + "default_model": "ollama/llama3.3", + "api_base": "http://localhost:11434", + "provider": "ollama", + "is_local": True, + "context_window": 128000, + } + + res = update_llm_config_service(opc_home, payload) + self.assertTrue(res["ok"]) + + # Verify ONLY opc_home/config/llm_config.yaml was updated + llm_yaml = config_dir / "llm_config.yaml" + self.assertTrue(llm_yaml.exists()) + + with open(llm_yaml, encoding="utf-8") as f: + data = yaml.safe_load(f) + + self.assertEqual(data["llm"]["default_model"], "ollama/llama3.3") + self.assertEqual(data["llm"]["api_base"], "http://localhost:11434") + self.assertTrue(data["llm"]["is_local"]) + + # Verify root opc_home has no leaked yaml files + self.assertFalse((opc_home / "llm_config.yaml").exists()) + + def test_explicit_key_clearing_semantics(self) -> None: + """Test API key clearing semantics: '' clears key, '***' preserves key.""" + with tempfile.TemporaryDirectory() as tmpdir: + opc_home = Path(tmpdir) + config_dir = opc_home / "config" + config_dir.mkdir(parents=True) + + # 1. Set initial key + update_llm_config_service(opc_home, { + "default_model": "openai/gpt-4o", + "api_key": "sk-secret-key-123", + }) + info1 = get_llm_config_service(opc_home) + self.assertTrue(info1["has_api_key"]) + + # 2. Update with '***' -> key remains preserved + update_llm_config_service(opc_home, { + "default_model": "openai/gpt-4o", + "api_key": "***", + }) + info2 = get_llm_config_service(opc_home) + self.assertTrue(info2["has_api_key"]) + + # 3. Update with '' -> key is explicitly cleared + update_llm_config_service(opc_home, { + "default_model": "ollama/llama3.3", + "api_key": "", + }) + info3 = get_llm_config_service(opc_home) + self.assertFalse(info3["has_api_key"]) + + def test_engine_reconfigure_llm_hot_apply(self) -> None: + """Test OPCEngine.reconfigure_llm updates LLMProvider across all sub-components.""" + mock_engine = MagicMock() + mock_engine.opc_home = Path("/tmp/fake_opc_home") + mock_engine.config = OPCConfig() + + mock_history = MagicMock() + mock_comms = MagicMock() + mock_approval = MagicMock() + mock_secretary = MagicMock() + mock_executor = MagicMock() + mock_router = MagicMock() + + mock_engine.history_compactor = mock_history + mock_engine.communication = mock_comms + mock_engine.approval_engine = mock_approval + mock_engine.secretary = mock_secretary + mock_engine.company_executor = mock_executor + mock_engine.task_router = mock_router + + # Bind real reconfigure_llm method + from opc.engine import OPCEngine + mock_engine.reconfigure_llm = OPCEngine.reconfigure_llm.__get__(mock_engine, OPCEngine) + + new_cfg = LLMConfig(default_model="ollama/qwen2.5-coder", api_base="http://localhost:11434") + new_provider = mock_engine.reconfigure_llm(new_cfg) + + self.assertEqual(mock_engine.llm, new_provider) + self.assertEqual(mock_history.llm, new_provider) + self.assertEqual(mock_comms.llm, new_provider) + self.assertEqual(mock_approval.llm, new_provider) + self.assertEqual(mock_secretary.llm, new_provider) + self.assertEqual(mock_executor.llm, new_provider) + self.assertEqual(mock_router.llm, new_provider) + + +if __name__ == "__main__": + unittest.main()