diff --git a/README.md b/README.md index a2207a2..58b49c3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@

OpenOPC: Build Your Personal AI-Native Company — Self-Built, Self-Run, Self-Grown

+

+ English | 简体中文 +

+ 🏗️ **Self-Built** — Fully automated to recruit role-specific AI employees and build the org. ⚙️ **Self-Run** — Fully automated to assign tasks, drive handoffs, and keep moving toward your goal. @@ -19,8 +23,8 @@ ## Table Of Contents -- [Real-World Applications](#real-world-applications) - [When To Use OpenOPC](#when-to-use-openopc) +- [Demos](#demos) - [How OpenOPC Works](#how-openopc-works) - [Quick Start](#quick-start) - [Office UI Guide](#office-ui-guide) diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..390ec03 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,792 @@ +

OpenOPC:打造你的个人 AI 原生公司 — 自建、自营、自成长

+ +

+ English | 简体中文 +

+ +🏗️ **自建(Self-Built)** — 全自动招募各岗位的 AI 员工,搭建组织架构。 + +⚙️ **自营(Self-Run)** — 全自动分派任务、驱动交接,持续朝你的目标推进。 + +🌱 **自成长(Self-Grown)** — 从每个任务中学习,沉淀组织记忆,交付越来越聪明。 + +

+ Python 3.10+ + Office UI + CLI and UI + License MIT + Feishu + WeChat +

+ +![OpenOPC hero banner](docs/assets/chat.png) + +## 目录 + +- [何时使用 OpenOPC](#何时使用-openopc) +- [演示](#演示) +- [OpenOPC 如何工作](#openopc-如何工作) +- [快速开始](#快速开始) +- [Office UI 指南](#office-ui-指南) +- [CLI 指南](#cli-指南) +- [配置](#配置) +- [生态与分享](#生态与分享) +- [路线图](#路线图) +- [致谢](#致谢) + +## 何时使用 OpenOPC + +**OpenOPC** 覆盖九大核心垂直领域 — 从 AI 开发、软件工程到金融、销售、媒体、电商与教育。无论哪个行业,OpenOPC 都会组建合适的团队并端到端交付。 + + + + + + + + + + + + + + + + + +
+
🤖 AI 技术与研究 +
模型训练与评估、Agent 开发、LLM 应用与 AI 基础设施 +
+
💻 软件开发 +
Android 应用、SaaS MVP、网站、小程序与游戏开发 +
+
📈 金融投资 +
投资备忘录、市场图谱、尽职调查与投决会材料 +
+ 🚀 销售增长 +
外呼销售、交易策略、方案书与渠道拓展 +
+ 🎬 内容与媒体 +
视频制作、短视频内容、脚本、分镜与多平台剪辑 +
+ 🤝 行业助理 +
客服、房产、法律咨询、HR 入职、零售等场景的 Copilot +
+ 🧾 会计与财务 +
记账、财务报告、税务合规、预算与风险审查 +
+ 🛍️ 品牌与电商 +
品牌规划、选品、店铺运营、用户增长与留存 +
+ 🎓 教育与培训 +
课程设计、知识库、学员管理与内容生产 +
+ +## 演示 + + + + + + + +
+ + OpenOPC 视频制作演示 + +

+ 🎬 视频制作 +
+ + OpenOPC VC 投资研究演示 + +

+ 📈 投资研究 +
+ + OpenOPC 游戏原型演示 + +

+ 🎮 游戏原型 +
+ +## OpenOPC 如何工作 + +OpenOPC 围绕复杂的真实任务组建一家 AI 公司 — 通过三个紧密耦合的机制:**自建**负责组织配员,**自营**负责执行工作,**自成长**负责从结果中学习。 + +

+ 一家 OpenOPC 公司:角色、汇报关系,以及每个角色配备的员工 +

+ +**1. 自建 — 为组织配员** + +在任何工作开始之前,必须先把合适的人放到合适的位置。给定一个目标,OpenOPC 会: + +- 🌿 起草组织架构图 — 从任务需求推导出所需的角色与汇报结构。 +- 🎯 填补每个角色 — 由招聘 Agent 在「复用现有员工(带着以往项目塑造的经验)」与「从人才池中招募新人」之间做出选择。 + +💡 有经验的员工携带积累的上下文;当角色需要时,新员工则提供一张白纸。 + +**⚙️ 2. 自营 — 执行工作** + +团队组建完成后,自营机制协调成员产出最终交付物。核心挑战不在于单纯执行,而在于不确定性下的高效协作,具体体现为两个问题。 + +🔀 动态协作编排。真实工作无法完全提前规划。OpenOPC 通过工作项状态机来解决,每个工作项所处的阶段决定: + +- 📋 它在看板的哪一列 — 处于工作流的哪个位置。 +- 👑 它的负责人 — 该阶段由哪个角色负责。 +- ✅ 它的可执行性 — 是否已经具备推进条件。 + +管理者负责拆解工作项、分派并评审结果 — 接受、返工或上报 — 覆盖五种模式:执行(execute)、委派(delegate)、评审(review)、集成(integrate)与返工(rework)。拆解定义了一个依赖 DAG,因此: + +- ⚡ 相互独立的工作项并行推进。 +- ⏳ 有依赖的工作项等待前置项完成。 + +🔗 依赖解除与驳回都作为结构化的阶段转换传播,消除了临时的人为协调。 + +🛡️ 处理运行中途出现的阻塞。并非所有障碍都能提前预见。OpenOPC 在两个层面解决: + +- 💬 团队内部 — 一条阻塞消息会暂停发送者,并激活最适合解决该问题的角色。 +- 📡 团队之外 — 当阻塞超出团队权限时,运行时会上报给人类所有者,在真正需要时引入人类判断。 + +🖥️ 看板与办公室视图实时呈现这一编排过程。 + +**🌱 3. 自成长 — 从运行中学习** + +执行产生原始经验;自成长把它转化为持久的改进,遵循两条原则。 + +🏅 把结果归因到正确的角色。把功劳记给整个公司学不到任何东西。因此 OpenOPC: + +- 🔍 将用户反馈解析为针对每位员工的评估。 +- 🎯 只更新负责了相关工作项的角色 — 功与过都落到应得之处。 + +📖 把执行轨迹提炼为知识。执行轨迹噪声太大,无法直接学习。因此 OpenOPC: +- 💡 把每个角色的任务提炼为高信号的经验教训,存入其私有经验档案。 +- 📚 把反复出现的经验提升为共享的作业手册(playbook),新员工从入职起即可继承 — 让组织知识随时间复利增长。 + +
+这些机制如何对应到 UI + +- `Org -> Team` 编辑公司架构与角色。 +- `Org -> Employees` 为空缺角色招募人才。 +- `Team Roster -> Deploy` 把已录用的员工变成办公室中可见的 Agent。 +- Workspace 输入框可选择 Task 模式的执行 Agent。 +- 角色检查器可为 Company 模式的角色设置运行时策略与偏好的外部 Agent。 +- 执行期间,Workspace 的 `Agents` 页签与 Execution Progress 面板会显示哪个角色处于活动状态、它负责哪个工作项、以及由哪个执行 Agent 完成具体工作。 +
+ +## 快速开始 + +推荐使用 `uv` 来安装 OpenOPC。它可以安装/管理 Python、创建项目虚拟环境,并在该环境中运行命令,而不会把 OpenOPC 的依赖混入全局 Python。 + +OpenOPC 要求 Python `>=3.10`;下面的示例使用 Python `3.12`。 + +对于直接的一次性工作,OpenOPC 还提供 Task 模式 — 一个类 LobeChat 的单 Agent 工作台,可使用 OpenOPC Native、Codex、Claude Code、Cursor 或 OpenCode。 + +
+推荐:uv 环境搭建 + +**macOS** + +```bash +# 使用 Homebrew 安装 uv,或使用官方独立安装脚本。 +brew install uv +# curl -LsSf https://astral.sh/uv/install.sh | sh + +cd /path/to/OpenOPC +uv python install 3.12 +uv venv --python 3.12 +source .venv/bin/activate +``` + +**Linux** + +```bash +curl -LsSf https://astral.sh/uv/install.sh | sh +source "$HOME/.local/bin/env" + +cd /path/to/OpenOPC +uv python install 3.12 +uv venv --python 3.12 +source .venv/bin/activate +``` + +**Windows PowerShell** + +```powershell +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" + +cd C:\path\to\OpenOPC +uv python install 3.12 +uv venv --python 3.12 +.\.venv\Scripts\Activate.ps1 +``` + +**Windows 命令提示符** + +```bat +winget install --id=astral-sh.uv -e +:: 或在 cmd 中运行独立安装脚本: +:: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" + +cd C:\path\to\OpenOPC +uv python install 3.12 +uv venv --python 3.12 +.venv\Scripts\activate.bat +``` +
+ +```bash +# 将 OpenOPC 安装到 uv 管理的环境中 +uv pip install -e . + +# 可选但推荐:安装浏览器工具所需的 Chromium +uv run python -m playwright install chromium + +# 初始化本地配置、记忆、技能、项目与工作区目录 +uv run opc init + +# 在 .opc/config/llm_config.yaml 中填入 API key, +# 或配置 llm.api_key_env 指定的环境变量。 + +# 启动浏览器 UI +uv run opc ui +``` + +默认打开 `http://localhost:8765`。 + +```bash +# 交互式 CLI +uv run opc chat -p demo + +# 一次性 Task 模式 +uv run opc chat -p demo --mode task --agent codex "Refactor this module and run focused tests" + +# 使用内置 Corporate 架构的 Company 模式 +uv run opc chat -p demo --mode company --company-profile corporate "Plan, implement, review, and document this feature" + +# 非交互脚本 / CI 风格用法 +uv run opc exec -p demo --mode task --agent native --json "Summarize the current repo status" +``` + +
+安装说明 + +- Python:`>=3.10`。当前必需依赖并非全部提供兼容 Python 3.9 的版本。 +- 本地开发与发布测试推荐使用 `uv`。如果你偏好经典 pip,请创建并激活一个 Python `>=3.10` 的虚拟环境,然后运行 `python -m pip install -e .`。 +- 如果虚拟环境激活被阻止,可以不激活,直接用 `uv run ...` 运行命令。 +- 关于其他包管理器与托管 Python 的细节,参见官方 [`uv` 安装文档](https://docs.astral.sh/uv/getting-started/installation/) 与 [Python 管理文档](https://docs.astral.sh/uv/guides/install-python/)。 +- Node.js:需要构建 Office UI 前端时要求 `>=18`。 +- `opc ui` 会自动安装缺失的 `aiohttp` / `aiosqlite`,并在需要时自动构建前端。 +- 如果你尚未安装外部 Agent CLI,运行 `opc init --no-external-agent-preflight` 可跳过首次运行的外部 Agent 检查。 +- 浏览器工具基于原生 Playwright。在让 Agent 浏览网页之前,先用 `python -m playwright install chromium` 安装 Chromium。 +
+ +
+开发环境搭建(从源码构建) + +```bash +python -m pip install -e . +python -m pytest + +cd opc/plugins/office_ui/frontend_src +npm install +npm run typecheck +npm run build +``` + +前端构建产物从 `opc/plugins/office_ui/frontend_dist/` 提供服务。 +
+ +## Office UI 指南 + +
+展开 Office UI 指南 — 视觉导览、工作台、Company 模式、看板、办公室、组织 + +启动方式: + +```bash +opc ui +opc ui --port 9000 --project demo +opc ui --rebuild +``` + +### 视觉导览 + +横向滚动浏览 Office UI 演示。每张截图都附有简短的说明文字。 + +
+
+
+ Workspace 的项目、聊天、模式、组织与 Agent 控件 +
工作台与初始设置。选择或创建项目,点击 New Chat,然后选择 CompanyTask 以及对应的组织或 Agent。在 Company 模式下,可以指定角色员工与执行 Agent,也可以让 OpenOPC 自动招募。
+
+
+ Execution Progress 面板显示角色状态与执行记录 +
执行进度。跟踪每个角色的状态,点击角色或工作项即可查看详细的执行记录、工具活动、交接、评审与运行时元数据。
+
+
+ 看板展示 Agent 的工作项与状态 +
看板。监督每个 Agent 的具体任务与工作项,观察它们在规划、执行、评审、阻塞与完成之间流转。
+
+
+ 组织编辑器,可调整现有组织或新建组织 +
组织管理。调整现有组织、修改角色与汇报关系、查看运行时策略,或创建一个新组织。
+
+
+ 人才市场,可浏览并招募员工 +
人才市场。浏览人才模板,查看候选人详情,在公司需要更多能力时把员工招募到空缺角色上。
+
+
+ 动画办公室视图,展示每个角色正在做什么 +
办公室视图。以动画办公室的形式观察整个组织,每个角色/Agent 都会显示状态、当前任务、正在使用的工具、座位与运行时活动。
+
+
+
+ +Office UI 有三个主要页面: + +| 页面 | 在这里做什么 | +|---|---| +| **Workspace** | 主要工作界面:会话列表、看板、聊天、任务详情、角色进度、通讯与团队驾驶舱。 | +| **Office** | 可视化办公室地图:Agent 以角色形象出现,可以选中、移动、分配座位与查看详情。 | +| **Org** | 公司架构:切换 Corporate/已保存的组织、创建新组织、编辑角色、招募人才、应用架构预设、导入/导出配置。 | + +### 工作台(Workspace) + +Workspace 页面是默认界面。 + +| 区域 | 关注点 | +|---|---| +| 左侧边栏 | 项目会话、活动、未读计数与新建聊天。 | +| 中间看板 | 看板卡片。Task 模式下,一张卡片通常对应一个任务型聊天会话。Company 模式下,看板跟随所选的运行时会话,展示已委派的工作项。 | +| 右侧面板 | 上下文面板,包含 `Chat`、`Agents`、`Info`、`Comms`、`Team` 等页签。工作运行期间可以折叠、调整大小或最大化。 | +| 输入框 | 发送消息、附加文件、选择模式、选择公司架构;在 Task 模式下选择执行 Agent。 | + +### 从 UI 开始工作 + +1. 在顶部项目选择器中创建或选择一个项目。 +2. 在 Workspace 中点击 `New Chat`。 +3. 在输入框中选择 `Task` 或 `Company`。 +4. Task 模式下选择 Agent:`OpenOPC Native`、`Codex`、`Claude Code`、`Cursor` 或 `OpenCode`。 +5. Company 模式下选择 `Corporate` 或一个已保存的组织架构。 +6. 发送任务简报。 + +第一条消息发出后,该聊天的模式与任务 Agent 即被锁定。若需换用其他模式,可通过锁定模式的弹出提示在新聊天中继续。 + +### UI 中的 Company 模式 + +Company 模式把一份简报变成一个运行时会话加一组由角色负责的工作项。 + +| 页签 | 展示内容 | +|---|---| +| `Chat` | 父级对话、最终回复、运行时进度卡片、检查点回复、停止/继续/完成控件,以及跳转到工作项执行的链接。 | +| `Agents` | 角色汇总:活动/等待/待定/完成的角色、当前工具、角色工作项、筛选、搜索,以及详细执行进度的链接。 | +| `Info` | 状态、负责人、角色身份、员工分配、所选执行 Agent、时间信息与开发者详情。 | +| `Comms` | 角色收件箱、未读/已读/已发消息、会议、决策与最近的通讯故障。 | +| `Team` | 运行时驾驶舱:团队、座位、审批、未读通讯、恢复状态与当前运行的停止控件。 | + +要查看某个角色的详细工作流,打开一个 Company 模式会话,在 `Chat` 进度卡片或 `Agents` 页签中点击角色/工作项。Execution Progress 面板会展示每个工作项及其状态、活动分区、工具进度、交接、评审对象与执行轮次元数据。 + +### 看板(Kanban) + +- Task 模式:看板是项目级面板。可以在 `Todo` 中快速创建任务、启动任务,并从右侧面板查看每个任务。 +- Company 模式:当前面板跟随所选运行时会话。卡片代表公司工作项,按照后端运行时状态在规划/执行/评审/完成之间流转。 +- 当运行时掌管状态时,跨状态列的手动拖拽会被有意限制。同列内重新排序在适用时是支持的。 + +### 办公室(Office) + +当你想以可视化方式查看运行中的团队时,使用 Office 页面。 + +- 点击 Agent 角色形象或列表行,查看状态、当前工具、当前任务、角色、办公室与座位。 +- 使用办公室/座位控件移动 Agent。 +- 子 Agent 可以显示或隐藏。 +- 由员工或模板创建的 Agent 会出现在办公室中,并持久化在 `.opc/ui_state.db`。 + +### 组织(Org) + +Org 页面是公司结构变得可运行的地方。 + +| 子页签 | 用途 | +|---|---| +| `Team` | 查看/编辑角色图谱、表格、角色检查器、花名册、已保存组织选择器、导出打包流程,并把已录用员工部署到办公室。 | +| `Runtime` | 调整运行时团队、座位、最终决策者、委派策略与运行时策略。Corporate 为只读;已保存的组织可编辑。 | +| `Architecture` | 浏览内置架构预设、预览/应用包、管理已安装的包、导入/导出 YAML。 | +| `Employees` | 搜索人才模板、查看详情、招募到空缺角色、为公司配员。 | + +创建新公司:打开 `Org`,点击 `New organization`,输入名称,添加至少两名带职责与汇报关系的成员,检查并创建。OpenOPC 会自动保存,并把输入框切换为 `Company / <你的组织>`。 + +招募:先导入人才模板,然后打开 `Org -> Employees`,搜索模板,点击 `Hire`,选择一个空缺角色;若希望员工出现在 Office 页面,再从 `Team Roster` 部署。 + +```bash +opc talent import /path/to/agency-agents +``` + +
+项目文件的位置 + +OpenOPC 把运行时/配置状态与交付物工作区文件分开存放。 + +| 路径 | 含义 | +|---|---| +| `.opc/config/` | 由 `opc init` 从 `config/` 复制而来的本地配置。 | +| `.opc/memory/` | 全局与项目级 Markdown 记忆。 | +| `.opc/projects//` | 项目运行时元数据与任务存储。 | +| `.opc/ui_state.db` | Office UI 的聊天、频道与可视化 Agent 状态。 | +| `../OpenOPC_workplace//` | 默认项目工作区。Agent 应把持久的项目文件写到这里。 | +| `../OpenOPC_workplace//.opc-comms/` | Company 模式内部通讯信箱、会议与工具结果暂存区。 | + +若希望配置与运行时状态放在仓库之外,设置 `OPC_HOME=/path/to/opc-home`。 +
+ +
+ +## CLI 指南 + +
+展开 CLI 指南 — 常用命令与交互式斜杠命令 + +OpenOPC 同时提供高层的自然语言命令与更底层的 UI/服务命令。 + +概念上 OpenOPC 有两种执行模式:`task` 与 `company`。部分底层 CLI/服务命令仍将 `org` 作为「Company 模式 + 已保存组织架构」的兼容选择器;在 UI 中这表现为 Company 加一个架构选择。 + +### 常用命令 + +```bash +# 聊天 +opc chat +opc chat -p demo --mode task --agent native "Inspect the failing tests" +opc chat -p demo --mode company --company-profile corporate "Ship this change with review" + +# 可脚本化执行 +opc exec -p demo --mode task --agent codex --stream-json "Run the migration check" +opc exec -p demo --mode company --company-profile corporate "Draft the research report" + +# 项目生命周期 +opc project list +opc project create demo +opc project switch demo + +# 会话 +opc session list -p demo +opc session create "New feature" -p demo --mode company +opc session send "Continue with implementation" -p demo +opc session stop -p demo +opc session continue "Proceed after review" -p demo + +# 运行时检查 +opc runtime status -p demo +opc runtime logs -p demo +opc work-item list -p demo +opc work-item show -p demo +opc comms state -p demo + +# 招募 +opc talent import /path/to/agency-agents +opc talent hire -p demo +``` + +### 交互式斜杠命令 + +运行 `opc chat`,然后使用斜杠命令: + +```text +/status +/mode task +/mode company corporate +/agent codex +/project switch demo +/session list +/runtime --full +/logs --full +/comms --full +/org +/talent list +/market list +``` + +完整命令表见 [`docs/cli-chat-slash.md`](docs/cli-chat-slash.md)。 + +
+CLI 命令分组 + +| 分组 | 示例 | +|---|---| +| `opc project` | `list`、`show`、`create`、`switch`、`rename`、`delete --yes` | +| `opc session` | `list`、`create`、`show`、`config`、`send`、`rename`、`delete --yes`、`stop`、`continue`、`resume`、`complete` | +| `opc mode` | `show`、`set task`、`set company --profile corporate`、以及用于已保存组织公司运行的 `set org --org ` | +| `opc kanban` | `view`、`task create`、`task update`、`task move`、`task assign`、`task status`、`task delete --yes` | +| `opc agent` | `list`、`create`、`create-from-template`、`import-employee`、`detail`、`move`、`delete --yes` | +| `opc org` | `info`、`export`、`import`、`saved list/save/load/delete`、`role add/update/bulk-add/delete`、`policy update`、`strategy update`、`reset --yes` | +| `opc talent` | `list`、`employees`、`import`、`hire`、`scan`、`import-selected`、`employee-detail`、`import-agent` | +| `opc market` | `presets`、`browse`、`preview`、`apply-preset`、`export`、`install`、`list`、`uninstall --yes` | +| `opc runtime` | `status`、`checkpoints`、`logs`、`run` | +| `opc recovery` | `scan`、`resume`、`cancel --yes`、`retry` | +| `opc channels` | `status`、`login`、`start`、`stop` | + +大多数服务类命令都支持 `--project/-p` 与 `--json`。 + +对于已保存的组织架构,部分 CLI/服务命令目前将 `org` 作为兼容选择器使用,尽管概念上的运行时仍是 Company 模式: + +```bash +opc exec -p demo --mode org --org hku_research_lab "Draft the research report" +opc session create "Research sprint" -p demo --mode org --org hku_research_lab +``` +
+ +
+ +## 配置 + +在仓库根目录运行一次 `opc init`。它会创建 `.opc/`、从 `config/` 复制模板配置、创建记忆/技能/日志目录,并可选地创建第一个项目。 + +
+展开配置 — 配置文件、LLM 密钥、外部 Agent、频道、浏览器/MCP、故障排查 + +| 文件 | 用途 | +|---|---| +| `.opc/config/llm_config.yaml` | 默认模型、兼容 LiteLLM/OpenRouter 的 API base、API key、环境变量间接引用、路由、回退、temperature、token 限制。 | +| `.opc/config/system_config.yaml` | 运行时行为、浏览器工具、原生运行时、压缩、验证、权限、沙箱与安全设置。 | +| `.opc/config/agent_config.yaml` | 外部 Agent 命令路径、优先顺序、模型参数、会话模式、超时、审批模式与原生子 Agent 配置。 | +| `.opc/config/channel_config.yaml` | 外部消息提供方与凭据。入站发送者列表默认拒绝。 | +| `.opc/config/company_corporate_config.yaml` | 内置 Corporate 公司架构模板。 | +| `.opc/config/company_orgs/org__config.yaml` | Company 模式使用的自定义公司架构。 | +| `.opc/config/org_index.yaml` | 当前生效的已保存公司架构选择器。 | + +### LLM 密钥 + +运行 `opc init` 后,编辑仓库本地 OPC home 中的 `.opc/config/llm_config.yaml`。如果设置了 `OPC_HOME`,则改为编辑 `$OPC_HOME/config/llm_config.yaml`。 + +模板中的密钥留空。直接把 key 写入文件: + +```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。仅当回退值 + # 不适合你的模型时才取消注释并设置。 +``` + +然后用 `opc status` 验证。 + +如果不想把密钥存在文件里,可以将 `api_key` 留空,并把 `api_key_env` 设置为持有密钥的环境变量名(例如 `api_key_env: "OPENROUTER_API_KEY"`)。 + +### 审批与 Agent 权限 + +`.opc/config/system_config.yaml` 的 `autonomy` 部分控制 Agent 无需询问即可执行多少操作。关键旋钮是 `max_auto_approve_risk` — 可被自动批准的最高风险等级: + +```yaml +autonomy: + max_auto_approve_risk: medium # low | medium | high | critical + allow_native_tool_auto_approval: true + tool_first_use_approval: true # 每个工具首次使用时总是询问 +``` + +每次原生工具调用在运行前都会做风险分级:已知的破坏性命令(`rm -rf`、`drop table`、force-push 等)与敏感关键词(凭据、部署等)为 `high`/`critical`,总是上报给人类;白名单中的安全前缀(`ls`、`git status` 等)为 `low`;其余为 `medium`,在自动批准前会经过 LLM 审查。 + +- `medium`(默认):平衡 — 普通命令无提示运行;危险命令上报。 +- `low`:严格 — 不在安全白名单中的任何操作都需要审批。推荐用于共享或生产机器。 +- `high`/`critical`:宽松 — 仅用于可随时丢弃的沙箱。 + +每个工具首次使用时总会提示(除非该工具在 `tool_approval_exemptions` 中),你的「始终允许」选择会累积到项目级白名单。 + +### 外部 Agent + +Task 模式可以显式选择执行 Agent: + +```bash +opc chat -p demo --mode task --agent codex "Implement the change" +``` + +可用值有 `native`、`codex`、`claude_code`、`cursor` 与 `opencode`。在 `.opc/config/agent_config.yaml` 中配置命令名、参数、超时、会话复用与审批行为。 + +在 Company 模式下,角色可以通过角色配置或 Org 角色检查器指定偏好的外部 Agent。角色的执行策略可以是 `auto`、`native` 或 `external`,并可选地指定偏好的外部 Agent。 + +### 飞书接入 + +```bash +pip install -e .[channels-feishu] +opc init +opc channels login feishu +``` + +编辑 `.opc/config/channel_config.yaml`: + +```yaml +channels: + feishu: + enabled: true + app_id: "cli_xxx" + app_secret: "..." + encrypt_key: "" + verification_token: "" + react_emoji: THUMBSUP + allow_from: + - "ou_xxx" +``` + +然后: + +```bash +opc channels status +opc channels start -p demo +# 或运行常驻引擎 + 频道运行时: +opc run -p demo +``` + +飞书使用 `lark-oapi` WebSocket 客户端。`app_id` 与 `app_secret` 为必填;`encrypt_key` 与 `verification_token` 为可选,除非你的租户/应用配置要求。请保持 `allow_from` 显式配置;空列表会拒绝所有入站消息。 + +
+其他频道提供方 + +| 提供方 | 安装 extra | 运行方式 | 必填字段 | +|---|---|---|---| +| Telegram | `channels-telegram` | polling | `token` | +| Slack | `channels-slack` | socket | `bot_token`、`app_token` | +| Discord | `channels-discord` | socket | `token` | +| 钉钉 | `channels-dingtalk` | socket | `client_id`、`client_secret` | +| 邮件 | `channels-email` | polling | IMAP/SMTP 字段、`consent_granted` | +| Matrix | `channels-matrix` | sync/polling | `homeserver`、`access_token`、`user_id` | +| QQ | `channels-qq` | socket | `app_id`、`secret` | +| WhatsApp | `channels-whatsapp` | bridge | `bridge_url` | +| Mochat | `channels-mochat` | bridge | `base_url`、`claw_token`、`agent_user_id` | + +常用命令: + +```bash +opc channels login slack +opc channels status +opc channels start -p demo +opc channels stop +opc run -p demo +``` + +参见 [`docs/channels.md`](docs/channels.md) 与 [`docs/channel-bridges.md`](docs/channel-bridges.md)。 +
+ +
+浏览器工具与 MCP 服务器 + +浏览器工具: + +```bash +python -m playwright install chromium +``` + +在 `.opc/config/system_config.yaml` 中配置启动行为: + +```yaml +system: + browser: + mode: embedded # embedded | chrome | auto + headless: true + chrome_channel: chrome + user_data_dir: "" +``` + +原生浏览器工具包括 `browser_navigate`、`browser_snapshot`、`browser_click`、`browser_type`、`browser_wait_for`、`browser_scroll`、`browser_select_option`、`browser_evaluate`、`browser_take_screenshot` 与 `browser_close`。 + +MCP 服务器可添加到 `system_config.yaml` 的 `mcp_servers` 下。本地服务器使用 stdio 命令;远程服务器使用 HTTP/SSE 风格的 URL。发现的工具会以服务器前缀注册,避免命名冲突。 +
+ +### 故障排查 + +
+Office UI 无法打开或界面陈旧 + +```bash +opc ui --rebuild +``` + +如果浏览器仍显示陈旧的 UI 状态,强制刷新页面。如果之前的进程在运行中途崩溃,先重启 `opc ui` 以释放内存中的锁。 +
+ +
+任务看起来卡住了 + +先重启服务器并强制刷新浏览器。如果持久化的任务状态仍然异常,使用重置工具: + +```bash +python scripts/reset_stuck_task.py --project --session --apply +python scripts/reset_stuck_task.py --all --apply +``` +
+ +
+外部 Agent 不可用 + +运行: + +```bash +opc status +``` + +检查 `.opc/config/agent_config.yaml` 中的命令名,例如 `codex`、`claude`、`cursor-agent` 与 `opencode`。禁用或调整你未安装的 Agent 的优先级。 +
+ +
+频道提供方收不到消息 + +检查: + +- 已安装对应的 extra,例如 `pip install -e .[channels-feishu]`。 +- 该提供方为 `enabled: true`。 +- 必填凭据已填写。 +- `allow_from` 包含你期望的发送者 ID。 +- `opc channels status` 显示该提供方已配置且可用。 +
+ +
+ +## 生态与分享 + +OpenOPC 构建的一切都归你所有,可以保留、复用与分享 — 组织、员工、人才模板、技能与频道都只是文件。你可以导入一个流行的人才库、跨项目复用一个团队,或者把整个公司打包成可分享的 `.opcpkg`。 + +```bash +# 从人才库(例如 agency-agents)招募到某个角色 +opc talent import /path/to/agency-agents +opc talent hire -p demo + +# 复用或分享整个组织 +opc org export --json > my-org.yaml +opc market export --id hku_lab --name "HKU Lab" --output-dir packages +opc market install packages/hku_lab.opcpkg +``` + +## 路线图 + +OpenOPC 正在快速迭代。以下领域反映当前的开发重点 — 每一项都源自早期使用中发现的真实缺口。 + +| 领域 | 计划方向 | +|---|---| +| **角色级技能** | 角色配置已支持 `skill_refs`,Org UI 目前也展示技能元数据。下一步是让用户直接在 Org 页面选择哪些技能挂载到哪些角色 — 汇入更广泛的自演化技能生态。 | +| **秘书设置** | 秘书将成长为更强的配置与记忆管家:负责 OPC 系统记忆、分析与对比项目,并为 OpenOPC YAML 配置提供引导式设置。 | +| **Company 模式频道** | 外部频道将从简单的聊天入口演进为更丰富的 Company 模式工作流 — 支持角色感知的通知、结构化审批与跨平台协作。 | +| **CLI 对齐** | CLI 目前可用,但 Office UI 仍是更完整的界面。后续工作聚焦于从终端进行组织编辑、Company 模式检查、故障恢复与长时运行时控制。 | +| **TUI** | CLI 对齐成熟后将考虑完整的终端 UI。在此期间 Office UI 仍是主要界面。 | +| **市场与预设** | 更多架构预设、可招募的人才包、导入/导出工作流,以及用于分享与发现社区组件的包市场。 | +| **运行时打磨** | 持续改进恢复、检查点、执行进度可见性与可视化文档 — 让长时间的公司运行更可观察、更有韧性。 | + +## 致谢 + +OpenOPC 的 Agent 设计、技能结构与人才模板生态受益于多个开源项目,在此致谢: + +- [openai/codex](https://github.com/openai/codex/) 启发了实用的编码 Agent 工作流与执行模式。 +- [BloopAI/vibe-kanban](https://github.com/BloopAI/vibe-kanban) 启发了以看板为中心的 Agent 工作管理与任务可见性。 +- [msitarzewski/agency-agents](https://github.com/msitarzewski/agency-agents) 提供了人才模板的基础。本仓库包含的所有人才模板均导入自 `agency-agents`。 +- [HKUDS/nanobot](https://github.com/HKUDS/nanobot) 启发了面向技能的 Agent 设计与 `SKILL.md` 风格的组织方式。 +- [pixel-agents-hq/pixel-agents](https://github.com/pixel-agents-hq/pixel-agents) 启发了以像素动画办公室可视化 Agent 活动的方式。 + +--- + +

+ ❤️ 感谢访问 ✨ OpenOPC!

+ Views +

diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-CyXk-Ux0.css b/opc/plugins/office_ui/frontend_dist/assets/index-CMqG6mW8.css similarity index 93% rename from opc/plugins/office_ui/frontend_dist/assets/index-CyXk-Ux0.css rename to opc/plugins/office_ui/frontend_dist/assets/index-CMqG6mW8.css index 3c24447..9a90a97 100644 --- a/opc/plugins/office_ui/frontend_dist/assets/index-CyXk-Ux0.css +++ b/opc/plugins/office_ui/frontend_dist/assets/index-CMqG6mW8.css @@ -1 +1 @@ -.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.org-tab{display:flex;flex-direction:column;height:100%;min-width:0;overflow-y:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 26%,var(--bg) 74%) 0%,var(--bg) 240px);color:var(--text)}.org-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:14px}.org-empty{padding:32px;text-align:center;color:var(--text-secondary);font-size:13px}.org-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px 16px;border-bottom:1px solid var(--border);flex-shrink:0;gap:18px;flex-wrap:wrap;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 34%,var(--bg) 66%),color-mix(in srgb,var(--bg) 92%,var(--bg-elevated) 8%));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.org-header-main{display:flex;flex-direction:column;gap:7px;min-width:min(100%,260px);flex:1 1 420px}.org-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-eyebrow-separator{color:color-mix(in srgb,var(--text-secondary) 46%,transparent)}.org-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.org-title{font-size:21px;font-weight:650;margin:0;max-width:min(58vw,680px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.org-version-badge{font-size:10px;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font-family:JetBrains Mono,SF Mono,monospace}.org-state-badge,.org-profile-badge{font-size:10px;padding:3px 8px;border-radius:4px;white-space:nowrap}.org-state-badge--editable{background:color-mix(in srgb,var(--green) 11%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 20%,transparent)}.org-state-badge--readonly{background:color-mix(in srgb,var(--text-secondary) 10%,transparent);color:var(--text-secondary);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.org-profile-badge{background:color-mix(in srgb,var(--yellow) 11%,transparent);color:var(--yellow)}.org-header-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.org-meta-pill,.org-meta-code{min-height:22px;display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--bg) 58%,transparent);color:var(--text-secondary);font-size:10.5px;line-height:1;text-transform:capitalize}.org-meta-code{max-width:min(52vw,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:none;color:var(--text)}.org-meta-pill--runtime{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 22%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.org-meta-pill--saved{color:var(--green);border-color:color-mix(in srgb,var(--green) 24%,transparent);background:color-mix(in srgb,var(--green) 8%,transparent)}.org-control-panel{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex:0 1 430px;min-width:min(100%,300px)}.org-switcher{display:flex;flex-direction:column;gap:5px;min-width:210px;flex:1 1 240px}.org-switcher-label{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-switcher-select-wrap{position:relative;display:block}.org-switcher-select{width:100%;min-height:36px;padding:7px 34px 7px 11px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 76%,var(--bg) 24%),color-mix(in srgb,var(--bg) 88%,var(--bg-elevated) 12%));color:var(--text);font:inherit;font-size:12px;outline:none;cursor:pointer;appearance:none}.org-switcher-select option{background:var(--bg-elevated);color:var(--text)}.org-switcher-select-wrap:after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);transform:translateY(-68%) rotate(45deg);pointer-events:none}.org-switcher-select:hover,.org-switcher-select:focus{border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}.org-create-trigger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,var(--bg-elevated) 78%),color-mix(in srgb,var(--accent) 13%,var(--bg) 87%));color:color-mix(in srgb,var(--accent) 84%,var(--text) 16%);font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 10%,transparent);transition:transform .15s,border-color .15s,background .15s}.org-create-trigger:hover{border-color:color-mix(in srgb,var(--accent) 54%,transparent);transform:translateY(-1px)}.org-create-trigger-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);font-size:16px;line-height:1}.org-stats-strip{display:grid;grid-template-columns:repeat(4,minmax(104px,auto));gap:7px;align-items:center;justify-content:flex-end;flex:1 1 460px}.org-stat{display:inline-flex;align-items:center;gap:6px;justify-content:center;font-size:11px;color:var(--text-secondary);min-height:32px;padding:6px 11px;background:color-mix(in srgb,var(--bg-elevated) 58%,var(--bg) 42%);border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);white-space:nowrap}.org-stat b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.org-stat-icon{width:13px;height:13px;opacity:.72}.org-subtabs{display:flex;gap:2px;padding:0 28px;border-bottom:1px solid var(--border);flex-shrink:0;background:color-mix(in srgb,var(--bg) 92%,transparent);position:sticky;top:0;z-index:10;overflow-x:auto}.org-subtab{display:inline-flex;align-items:center;gap:6px;padding:11px 16px 12px;margin-bottom:-1px;font-size:12px;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.org-subtab:hover:not(.org-subtab--active){color:var(--text)}.org-subtab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.org-subtab-icon{width:14px;height:14px;opacity:.6;flex-shrink:0}.org-subtab--active .org-subtab-icon{opacity:1}.org-subtab-label{font-size:12px}.org-subtab-count{font-size:10px;padding:1px 6px;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 70%,var(--bg) 30%);color:var(--text-secondary);font-weight:500}.org-subtab--active .org-subtab-count{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.org-toast{padding:8px 16px;margin:0 20px;font-size:12px;border-radius:6px;cursor:pointer;flex-shrink:0}.org-toast--info{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.org-toast--warn{background:color-mix(in srgb,var(--yellow) 12%,transparent);color:var(--yellow);border:1px solid color-mix(in srgb,var(--yellow) 25%,transparent)}.org-toast--ok{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 25%,transparent)}.org-toast--error{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);border:1px solid color-mix(in srgb,var(--red) 25%,transparent)}.org-tab-content{flex:1 0 auto;overflow:visible;padding:16px 28px 28px}.org-create-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,#05070b 68%,transparent)}.org-create-modal{width:min(720px,100%);max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,var(--bg) 12%),color-mix(in srgb,var(--bg) 94%,var(--bg-elevated) 6%));box-shadow:0 28px 80px #00000075;overflow:hidden}.org-create-header,.org-create-actions,.org-create-review-head,.org-create-review-row{display:flex;align-items:center}.org-create-header{justify-content:space-between;gap:16px;flex-shrink:0}.org-create-eyebrow{display:block;margin-bottom:5px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-create-title{margin:0;color:var(--text);font-size:19px;font-weight:650;letter-spacing:0}.org-create-close,.org-create-icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--text-secondary);cursor:pointer}.org-create-close{width:30px;height:30px;font-size:14px}.org-create-close:hover,.org-create-icon-btn:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb,var(--text-secondary) 34%,var(--border))}.org-create-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex-shrink:0}.org-create-step{display:inline-flex;align-items:center;gap:8px;min-width:0;min-height:34px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 58%,transparent);color:var(--text-secondary);font-size:12px;font-weight:600}.org-create-step span{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--text-secondary) 12%,transparent);color:var(--text-secondary);font-size:10px}.org-create-step--active{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text);background:color-mix(in srgb,var(--accent) 9%,var(--bg) 91%)}.org-create-step--active span,.org-create-step--done span{background:color-mix(in srgb,var(--accent) 24%,transparent);color:var(--accent)}.org-create-panel{min-height:180px;overflow:auto;padding:4px 2px}.org-create-field{display:flex;flex-direction:column;gap:8px}.org-create-field span{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.org-create-field input,.org-create-member-row input,.org-create-member-row select,.org-create-member-row textarea{min-height:38px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 64%,transparent);color:var(--text);font:inherit;font-size:13px;outline:none}.org-create-field input:focus,.org-create-member-row input:focus,.org-create-member-row select:focus,.org-create-member-row textarea:focus{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.org-create-member-row select option{background:var(--bg-elevated);color:var(--text)}.org-create-member-row textarea{grid-column:1 / -1;min-height:62px;line-height:1.45;resize:vertical}.org-create-member-list{display:flex;flex-direction:column;gap:8px}.org-create-member-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1.5fr) minmax(120px,.8fr) 34px;gap:8px;align-items:center}.org-create-icon-btn{width:34px;height:34px;font-size:16px}.org-create-icon-btn:disabled{cursor:not-allowed;opacity:.42}.org-create-add{margin-top:12px;min-height:34px;padding:7px 12px;border:1px dashed color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent);font-size:12px;font-weight:700;cursor:pointer}.org-create-review{display:flex;flex-direction:column;gap:8px}.org-create-review-head,.org-create-review-row{justify-content:space-between;gap:14px;min-height:38px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 56%,transparent)}.org-create-review-head span,.org-create-review-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-create-review-head b,.org-create-review-row span{flex-shrink:0;color:var(--text-secondary);font-size:12px;font-weight:600}.org-create-review-row span{display:inline-flex;align-items:center;gap:6px}.org-create-review-row em{padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase}.org-create-error{padding:9px 11px;border:1px solid color-mix(in srgb,var(--red) 28%,transparent);border-radius:7px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);font-size:12px}.org-create-actions{justify-content:flex-end;gap:8px;flex-shrink:0}@media(max-width:1040px){.org-title{max-width:100%}.org-control-panel{flex:1 1 100%;justify-content:stretch}.org-stats-strip{grid-template-columns:repeat(2,minmax(128px,1fr));justify-content:stretch;width:100%}}@media(max-width:760px){.org-header{padding:14px 16px 12px}.org-header-main{flex-basis:100%}.org-title{max-width:100%;font-size:18px}.org-stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.org-control-panel{flex-direction:column;align-items:stretch}.org-switcher{min-width:0}.org-create-trigger{width:100%}.org-subtabs{padding:0 16px}.org-tab-content{padding:12px 16px 18px}.org-create-backdrop{align-items:flex-start;padding:14px}.org-create-modal{max-height:calc(100vh - 28px);padding:16px}.org-create-steps,.org-create-member-row{grid-template-columns:1fr}.org-create-icon-btn{width:100%}}@media(max-width:460px){.org-header{gap:12px}.org-stats-strip{grid-template-columns:1fr}.org-meta-code{max-width:100%}}.btn,.oc-btn-primary,.oc-btn-ghost,.oc-btn-danger,.mkt-btn,.mkt-btn-primary,.mkt-btn-ghost,.pkg-btn,.pkg-btn-primary,.pkg-btn-secondary,.pkg-btn-danger,.pkg-btn-ghost,.cfg-io-btn,.cfg-io-btn-primary,.cfg-io-btn-ghost,.tm-detail-hire-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;border-radius:var(--radius-xs);border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn:disabled,.oc-btn-primary:disabled,.mkt-btn-primary:disabled,.pkg-btn-primary:disabled,.pkg-btn-danger:disabled,.cfg-io-btn:disabled,.cfg-io-btn-primary:disabled,.cfg-io-btn-ghost:disabled,.tm-detail-hire-btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.oc-btn-primary,.mkt-btn-primary,.pkg-btn-primary,.cfg-io-btn-primary,.tm-detail-hire-btn{background:var(--accent);color:var(--white);border-color:var(--accent)}.btn-primary:hover:not(:disabled),.oc-btn-primary:hover:not(:disabled),.mkt-btn-primary:hover:not(:disabled),.pkg-btn-primary:hover:not(:disabled),.cfg-io-btn-primary:hover:not(:disabled),.tm-detail-hire-btn:hover:not(:disabled){opacity:.88}.btn-ghost,.oc-btn-ghost,.mkt-btn-ghost,.pkg-btn-ghost,.cfg-io-btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover:not(:disabled),.oc-btn-ghost:hover:not(:disabled),.mkt-btn-ghost:hover:not(:disabled),.pkg-btn-ghost:hover:not(:disabled),.cfg-io-btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.btn-secondary,.pkg-btn-secondary{background:var(--bg-secondary);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled),.pkg-btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-danger,.oc-btn-danger,.pkg-btn-danger{background:transparent;color:var(--red);border-color:var(--red)}.btn-danger:hover:not(:disabled),.oc-btn-danger:hover:not(:disabled),.pkg-btn-danger:hover:not(:disabled){background:var(--red);color:var(--white)}.btn-sm,.mkt-btn-sm,.pkg-btn-sm{padding:4px 10px;font-size:11px}.btn-lg,.qs-create-btn{padding:8px 24px;font-size:14px}.btn-icon,.pkg-btn-icon,.cfg-io-btn-icon{width:14px;height:14px;opacity:.9;flex-shrink:0}.btn-primary .btn-icon,.btn-primary .pkg-btn-icon,.btn-primary .cfg-io-btn-icon,.oc-btn-primary img,.mkt-btn-primary img,.pkg-btn-primary .pkg-btn-icon,.cfg-io-btn-primary .cfg-io-btn-icon{filter:brightness(0) invert(1)}.btn:focus-visible,.oc-btn-primary:focus-visible,.oc-btn-ghost:focus-visible,.oc-btn-danger:focus-visible,.mkt-btn:focus-visible,.mkt-btn-primary:focus-visible,.mkt-btn-ghost:focus-visible,.pkg-btn:focus-visible,.pkg-btn-primary:focus-visible,.pkg-btn-secondary:focus-visible,.pkg-btn-danger:focus-visible,.pkg-btn-ghost:focus-visible,.cfg-io-btn:focus-visible,.cfg-io-btn-primary:focus-visible,.cfg-io-btn-ghost:focus-visible,.tm-detail-hire-btn:focus-visible,.org-subtab:focus-visible,.mkt-pill:focus-visible,.myorg-inline-btn:focus-visible,.myorg-reset-btn:focus-visible,.wfe-action-btn:focus-visible,.wfe-pattern-btn:focus-visible,.oc-action-btn:focus-visible,.oc-advanced-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.oc-form-row input:focus-visible,.oc-form-row select:focus-visible,.oc-form-row textarea:focus-visible,.cfg-io-textarea:focus-visible,.mkt-search:focus-visible,.pkg-search:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.btn:focus:not(:focus-visible),.org-subtab:focus:not(:focus-visible),.mkt-pill:focus:not(:focus-visible){outline:none}.team-view{display:flex;flex-direction:column;gap:14px;padding:0;min-width:0}.team-command-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 34%,var(--bg) 66%)}.team-command-bar--readonly{background:color-mix(in srgb,var(--bg-elevated) 24%,var(--bg) 76%)}.team-command-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.team-command-eyebrow{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.team-command-title{color:var(--text);font-size:13px;font-weight:600}.team-command-metrics{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;color:var(--text-secondary);font-size:11px}.team-command-metrics span{min-height:24px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 54%,transparent);white-space:nowrap}.team-command-metrics b{color:var(--text);font-variant-numeric:tabular-nums}.team-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.team-readonly-strip{padding:9px 12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:8px;background:color-mix(in srgb,var(--text-secondary) 6%,transparent);color:var(--text-secondary);font-size:12px}.team-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(282px,1fr));gap:12px}.team-roster-card{min-width:0;background:color-mix(in srgb,var(--bg) 84%,var(--bg-elevated) 16%);border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;padding:11px 12px;transition:border-color .15s ease,background .15s ease}.team-roster-card:hover{background:color-mix(in srgb,var(--bg-elevated) 48%,var(--bg) 52%);border-color:color-mix(in srgb,var(--border-hover) 78%,var(--accent) 22%)}.team-roster-card-header{display:flex;align-items:center;gap:9px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.team-roster-card-icon{width:22px;height:22px;padding:4px;border-radius:7px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.team-roster-role-name{font-size:13px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-roster-count{font-size:10px;color:var(--text-secondary);padding:2px 7px;background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg) 22%);border-radius:999px;font-variant-numeric:tabular-nums}.team-roster-emp{display:flex;align-items:center;gap:9px;padding:7px 0}.team-roster-emp+.team-roster-emp{border-top:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.team-roster-emp-avatar{width:24px;height:24px;border-radius:50%;opacity:.58}.team-roster-emp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.team-roster-emp-name{font-size:12.5px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-roster-seniority{font-size:9px;text-transform:uppercase;letter-spacing:.3px;font-weight:600}.team-roster-seniority--junior{color:var(--text-secondary)}.team-roster-seniority--mid{color:var(--yellow)}.team-roster-seniority--senior{color:var(--accent)}.team-roster-seniority--lead{color:var(--green)}.team-roster-badge{font-size:9px;padding:3px 8px;border-radius:999px;font-weight:500;white-space:nowrap}.team-roster-badge--active{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.team-roster-deploy-btn{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:3px 10px;border:1px solid var(--accent);border-radius:999px;background:none;color:var(--accent);cursor:pointer;transition:all .15s}.team-roster-deploy-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.team-roster-deploy-icon{width:11px;height:11px}.team-roster-vacant{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}.team-roster-vacant-text{font-size:11px;color:var(--text-secondary);font-style:italic}.team-roster-hire-btn{font-size:10px;padding:3px 10px;border:1px solid var(--yellow);border-radius:999px;background:none;color:var(--yellow);cursor:pointer;transition:all .15s}.team-roster-hire-btn:hover{background:color-mix(in srgb,var(--yellow) 12%,transparent)}.wfe-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}.wfe-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.wfe-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.wfe-profile-badge{font-size:9px;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:3px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.wfe-header-actions{display:flex;gap:8px;margin-left:auto}.wfe-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.wfe-action-btn:hover{border-color:var(--accent);color:var(--text)}.wfe-action-icon{width:13px;height:13px;opacity:.6}.wfe-save-btn{border-color:var(--green, #27ae60);color:var(--green, #27ae60)}.wfe-save-btn:hover{background:var(--green, #27ae60);color:var(--white)}.wfe-dag-wrap{overflow-x:auto;overflow-y:visible;padding:8px 0;min-height:0}.wfe-dag-node{cursor:pointer}.wfe-dag-node:hover{box-shadow:0 0 0 2px var(--accent);border-radius:6px}.wfe-node-editing{box-shadow:0 0 0 2px var(--accent)}.wfe-editor{background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:14px;margin-top:12px}.wfe-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.wfe-editor-title{font-size:12px;font-weight:600;color:var(--text)}.wfe-editor-close{font-size:18px;background:none;border:none;color:var(--text-secondary);cursor:pointer}.wfe-editor-close:hover{color:var(--text)}.wfe-add-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.wfe-readonly{opacity:.6}.wfe-inline-input,.wfe-inline-select{margin-left:6px;padding:3px 6px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text)}.wfe-hint{font-size:10px;color:var(--text-secondary);font-style:italic}.wfe-empty{text-align:center;padding:30px;color:var(--text-secondary);font-size:13px}.wfe-empty-hint{font-size:11px;opacity:.7}.myorg-container{padding:0 4px;overflow-y:auto;flex:1}.myorg-section{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 30%,var(--bg) 70%),color-mix(in srgb,var(--bg) 94%,var(--bg-elevated) 6%));border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px;padding:15px 16px 16px;margin-bottom:0}.myorg-section-header{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap}.myorg-section-icon{width:16px;height:16px;opacity:.68}.myorg-section-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.myorg-section-count{font-size:11px;color:var(--text-secondary)}.myorg-section-spacer{flex:1 1 auto;min-width:12px}.myorg-section-note{color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums}.myorg-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:12px}.myorg-form-title{font-size:13px;font-weight:600;color:var(--text);margin:0 0 10px}.myorg-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.myorg-roster-role{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px}.myorg-roster-role-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.myorg-roster-role-name{font-size:12px;font-weight:600;color:var(--text)}.myorg-roster-role-count{font-size:10px;color:var(--text-secondary)}.myorg-roster-emp{display:flex;align-items:center;gap:6px;padding:3px 0}.myorg-roster-emp-name{font-size:11px;color:var(--text)}.myorg-roster-seniority{font-size:9px;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.myorg-seniority-junior{background:var(--bg-secondary);color:var(--text-secondary)}.myorg-seniority-mid{background:#3498db26;color:var(--accent)}.myorg-seniority-senior{background:#27ae6026;color:var(--green, #27ae60)}.myorg-roster-office-badge{font-size:9px;color:var(--green, #27ae60);border:1px solid var(--green, #27ae60);padding:0 4px;border-radius:3px}.myorg-roster-vacant{font-size:10px;color:var(--text-secondary);font-style:italic}.myorg-empty-hint{font-size:11px;color:var(--text-secondary);padding:12px 0}.myorg-collapsible{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden}.myorg-collapsible-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:12px;background:var(--bg-secondary);border:none;color:var(--text);cursor:pointer;text-align:left}.myorg-collapsible-toggle:hover{background:var(--bg)}.myorg-toggle-icon{font-size:10px;color:var(--text-secondary);width:12px}.myorg-collapsible-title{font-weight:500}.myorg-collapsible-count{font-size:10px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:8px}.myorg-collapsible-extra{margin-left:auto}.myorg-collapsible-body{padding:12px 14px}.myorg-inline-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:999px;padding:5px 9px;cursor:pointer}.myorg-inline-btn:hover{background:color-mix(in srgb,var(--accent) 13%,transparent)}.myorg-inline-icon{width:12px;height:12px}.myorg-action-bar{display:flex;justify-content:flex-end;padding:0}.myorg-reset-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;font-size:11px;color:var(--red);background:color-mix(in srgb,var(--red) 4%,transparent);border:1px solid color-mix(in srgb,var(--red) 30%,transparent);border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.myorg-reset-btn:hover{background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.myorg-reset-icon{width:12px;height:12px;filter:hue-rotate(0deg)}.oc-node-resp{font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.oc-icon-picker-trigger{position:relative}.oc-icon-preview-btn{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text);font-size:12px;transition:border-color .15s}.oc-icon-preview-btn:hover{border-color:var(--accent)}.oc-icon-preview-img{width:24px;height:24px;border-radius:4px}.oc-icon-placeholder{opacity:.35}.oc-icon-preview-label{color:var(--text-secondary);font-size:11px}.oc-icon-clear-btn{padding:2px 8px;font-size:10px;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer;margin-left:6px}.oc-icon-clear-btn:hover{color:var(--red);border-color:var(--red)}.oc-icon-gallery{position:absolute;top:100%;left:0;z-index:20;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000004d;margin-top:4px;width:240px}.oc-icon-option{display:flex;align-items:center;justify-content:center;padding:6px;border:1px solid transparent;border-radius:6px;background:none;cursor:pointer;transition:all .15s}.oc-icon-option:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.oc-icon-option--active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent)}.oc-icon-option-img{width:24px;height:24px}.qs-wizard{padding:24px;max-width:640px;margin:0 auto}.qs-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:48px 24px;color:var(--accent);font-size:14px}.qs-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.qs-header-icon{width:40px;height:40px;flex-shrink:0}.qs-header-title{margin:0;font-size:18px;font-weight:600;color:var(--text)}.qs-header-sub{margin:2px 0 0;font-size:12px;color:var(--text-dim)}.qs-link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:12px;text-decoration:underline}.qs-progress{display:flex;gap:4px;margin-bottom:20px;padding:8px 0;border-bottom:1px solid var(--border)}.qs-step{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:500;color:var(--text-dim);background:var(--bg-card);transition:all .2s}.qs-step-active{background:var(--accent);color:var(--white)}.qs-step-done{background:var(--green);color:var(--white)}.qs-step-icon{width:14px;height:14px;filter:grayscale(1) opacity(.5)}.qs-step-active .qs-step-icon,.qs-step-done .qs-step-icon{filter:brightness(10)}.qs-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px}.qs-panel h4{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--text)}.qs-hint{font-size:12px;color:var(--text-dim);margin:0 0 16px}.qs-members{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.qs-member-row{display:flex;gap:6px;align-items:center}.qs-member-name{flex:1;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px}.qs-member-resp{flex:1.5;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px}.qs-member-parent{flex:1;min-width:0;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:11px}.qs-remove-btn{background:none;border:none;cursor:pointer;padding:4px;opacity:.4;transition:opacity .15s}.qs-remove-btn:hover{opacity:1}.qs-remove-icon{width:14px;height:14px}.qs-add-member{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px dashed var(--border);background:none;color:var(--accent);font-size:12px;cursor:pointer;margin-bottom:16px}.qs-add-member:hover{background:var(--bg)}.qs-add-icon{width:14px;height:14px}.qs-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.qs-patterns{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.qs-pattern-card{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;border:2px solid var(--border);cursor:pointer;transition:border-color .15s}.qs-pattern-card:hover{border-color:var(--accent)}.qs-pattern-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.qs-pattern-card input[type=radio]{margin-top:3px;flex-shrink:0}.qs-pattern-label{font-size:13px;font-weight:600;color:var(--text)}.qs-pattern-desc{font-size:11px;color:var(--text-dim);margin:2px 0}.qs-pattern-preview{font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--accent);margin-top:4px}.qs-preview{margin-bottom:8px}.qs-preview-section{margin-bottom:12px}.qs-preview-section h5{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.qs-preview-member{font-size:12px;padding:4px 0;color:var(--text)}.qs-preview-resp{color:var(--text-dim)}.qs-preview-parent{color:var(--text-dim);font-size:11px}@media(max-width:980px){.team-command-bar{grid-template-columns:1fr;align-items:stretch}.team-command-metrics,.team-command-actions{justify-content:flex-start}}@media(max-width:560px){.team-roster-grid{grid-template-columns:1fr}.team-command-actions{align-items:stretch}.team-command-actions>*{justify-content:center}.myorg-section{padding:12px}.qs-wizard{padding:16px 0}.qs-member-row{flex-direction:column;align-items:stretch}}.org-dag{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:16px 0 24px}.org-dag-group-wrap{display:flex;align-items:center;gap:0}.org-dag-arrow{display:flex;align-items:center;justify-content:center;opacity:.4;padding:0 8px;flex-shrink:0}.org-dag-arrow-icon{width:16px;height:16px;filter:brightness(0) invert(.6)}.org-dag-group{display:flex;flex-direction:column;gap:8px;position:relative}.org-dag-parallel{border:1px dashed var(--border);border-radius:8px;padding:8px;background:#ffffff03}.org-dag-parallel-label{position:absolute;top:-8px;left:8px;font-size:9px;padding:0 4px;background:var(--bg);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.org-dag-node{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;min-width:180px;max-width:240px}.org-dag-node-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.org-dag-node-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-dag-node-role{font-size:10px;padding:1px 5px;border-radius:3px;background:#6366f114;color:var(--accent);white-space:nowrap;flex-shrink:0}.org-dag-node-id{font-size:10px;color:var(--text-secondary);font-family:JetBrains Mono,SF Mono,monospace;margin-bottom:6px}.org-dag-gate{display:flex;align-items:center;gap:4px;font-size:10px;padding:3px 6px;border-radius:4px;margin-bottom:4px}.org-gate-review{background:#eab30814;color:var(--yellow)}.org-gate-approval{background:#34d39914;color:var(--green)}.org-gate-human_confirmation{background:#ef444414;color:var(--red)}.org-gate-icon{width:12px;height:12px}.org-gate-reviewer{opacity:.7;font-style:italic}.org-dag-strategy{font-size:9px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.org-dag-legend{display:flex;gap:16px;padding-top:12px;border-top:1px solid var(--border);margin-top:8px}.org-dag-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.org-gate-icon-sm{font-size:12px}.org-channels-grid,.org-connectors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:24px}.org-channel-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.org-ch-running{border-color:color-mix(in srgb,var(--green) 35%,var(--border))}.org-ch-disabled{opacity:.5}.org-ch-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.org-ch-dot{width:8px;height:8px;border-radius:50%;background:var(--text-secondary);opacity:.3;flex-shrink:0}.org-ch-dot.configured{background:var(--yellow);opacity:.6}.org-ch-dot.ready{background:var(--yellow);opacity:1}.org-ch-dot.running{background:var(--green);opacity:1;animation:pulse-dot 2s ease-in-out infinite}.org-ch-name{font-size:13px;font-weight:500;text-transform:capitalize}.org-ch-status-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:4px}.org-ch-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:#ffffff0a;color:var(--text-secondary)}.org-ch-enabled{color:var(--accent);background:#6366f114}.org-ch-configured{color:var(--yellow);background:#eab30814}.org-ch-running-badge{color:var(--green);background:#34d39914}.org-ch-available{color:var(--green)}.org-ch-off{color:var(--text-secondary)}.org-ch-delivery{font-size:10px;color:var(--text-secondary);margin-top:4px}.org-ch-error{font-size:10px;color:var(--red);margin-top:4px;word-break:break-all}.org-connector-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.org-conn-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.org-conn-name{font-size:13px;font-weight:500}.org-conn-type{font-size:9px;padding:1px 5px;border-radius:3px;background:#6366f114;color:var(--accent);text-transform:uppercase}.org-conn-desc{font-size:11px;color:var(--text-secondary);line-height:1.3;margin-bottom:6px}.org-conn-actions{display:flex;flex-wrap:wrap;gap:3px}.org-conn-action-tag{font-size:9px;padding:1px 5px;border-radius:3px;background:#34d39914;color:var(--green);font-family:JetBrains Mono,SF Mono,monospace}.org-emp-card{cursor:pointer;transition:background .15s}.org-emp-card:hover{background:#ffffff0a}.org-emp-selected{background:#6366f10f;border:1px solid rgba(99,102,241,.15);border-radius:6px}.org-emp-detail{margin-top:8px;padding:10px;background:#ffffff05;border-top:1px solid var(--border);border-radius:0 0 6px 6px}.org-emp-detail-title{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.org-emp-detail-block{margin-bottom:8px}.org-emp-detail-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.org-emp-detail-text{font-size:11px;color:var(--text-secondary);line-height:1.4;white-space:pre-wrap;max-height:120px;overflow-y:auto}.org-emp-detail-stats{display:flex;flex-wrap:wrap;gap:6px}.org-stat-tag{font-size:10px;padding:2px 6px;border-radius:3px;background:#6366f114;color:var(--accent);font-family:JetBrains Mono,SF Mono,monospace}.org-reorg-refresh:hover{color:var(--text);border-color:var(--text-secondary)}.org-reorg-list{display:flex;flex-direction:column;gap:10px}.org-reorg-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px}.org-reorg-proposed{border-left:3px solid var(--accent)}.org-reorg-approved,.org-reorg-applied{border-left:3px solid var(--green)}.org-reorg-denied,.org-reorg-failed{border-left:3px solid var(--red)}.org-reorg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.org-reorg-title{font-size:14px;font-weight:600}.org-reorg-status{font-size:10px;text-transform:uppercase;font-weight:600;letter-spacing:.3px}.org-reorg-summary{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:6px}.org-reorg-change-item code{font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;color:var(--accent)}.org-reorg-actions{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.org-reorg-approve{background:var(--green);color:var(--white);border:none;padding:5px 14px;border-radius:4px;font-size:11px;cursor:pointer;font-weight:500}.org-reorg-approve:hover{opacity:.9}.org-reorg-deny{background:none;border:1px solid var(--red);color:var(--red);padding:5px 14px;border-radius:4px;font-size:11px;cursor:pointer}.org-reorg-deny:hover{background:var(--red);color:var(--white)}.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.tm-card{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 1px 2px #0000004d,0 8px 24px #0000001f;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;min-height:196px}.tm-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));box-shadow:inset 0 1px color-mix(in srgb,var(--text) 8%,transparent),0 2px 4px #00000052,0 14px 32px #00000038}.tm-card-head{display:flex;align-items:flex-start;gap:12px;min-width:0}.tm-card-avatar{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 1px color-mix(in srgb,var(--text) 6%,transparent);font-family:inherit;transition:background .18s ease}.tm-card:hover .tm-card-avatar{background:color-mix(in srgb,var(--accent) 20%,transparent)}.tm-card-avatar-emoji{font-size:22px;line-height:1}.tm-card-avatar-mono{font-size:15px;font-weight:700;letter-spacing:.02em}.tm-card-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.tm-card-name-row{display:flex;align-items:center;gap:8px;min-width:0}.tm-card-name{font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tm-card-agent-badge{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:9.5px;font-weight:500;padding:2px 6px;border-radius:4px;background:var(--bg-secondary);color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap;flex-shrink:0}.tm-card-category{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:9.5px;font-weight:600;color:var(--text-secondary);opacity:.75;text-transform:uppercase;letter-spacing:.08em}.tm-card-category:before{content:"· ";opacity:.5}.tm-card-body{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}.tm-card-vibe{font-size:12px;color:var(--text);opacity:.86;font-style:italic;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tm-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tm-card-chips{display:flex;flex-wrap:wrap;gap:4px}.tm-card-chip{font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:color-mix(in srgb,var(--accent) 85%,var(--text) 15%);letter-spacing:.01em;white-space:nowrap}.tm-card-chip-more{opacity:.6}.tm-card-footer{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);margin-top:auto}.tm-card-hire-btn{background:transparent;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.01em;padding:5px 14px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.tm-card-hire-btn:hover:not(:disabled){background:var(--accent);color:var(--white);border-color:var(--accent)}.tm-card-hire-btn:active:not(:disabled){transform:translateY(1px)}.tm-card-hire-btn:disabled{opacity:.55;cursor:default;border-color:var(--border);color:var(--text-secondary)}.tm-detail-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0000008c}.tm-detail-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:480px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.tm-detail-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:2px solid var(--border)}.tm-detail-emoji{font-size:48px;line-height:1;flex-shrink:0}.tm-detail-name{font-size:18px;font-weight:600;margin:0}.tm-detail-category{font-size:11px;color:var(--text-secondary);text-transform:capitalize}.tm-detail-close{margin-left:auto;background:none;border:none;color:var(--text-secondary);font-size:22px;cursor:pointer;line-height:1;padding:4px}.tm-detail-close:hover{color:var(--text)}.tm-detail-body{flex:1;overflow-y:auto;padding:20px}.tm-detail-vibe{margin:0 0 16px;padding:10px 14px;border-left:3px solid var(--accent);background:#6366f10a;font-size:13px;font-style:italic;color:var(--text-secondary);line-height:1.4}.tm-detail-desc{font-size:13px;color:var(--text);line-height:1.5;margin:0 0 16px}.tm-detail-section{margin-bottom:14px}.tm-detail-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.tm-detail-tags{display:flex;flex-wrap:wrap;gap:4px}.org-domain-tag,.org-tool-tag{font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;letter-spacing:.01em}.org-domain-tag{background:color-mix(in srgb,var(--accent) 10%,transparent);color:color-mix(in srgb,var(--accent) 85%,var(--text) 15%)}.org-tool-tag{background:color-mix(in srgb,var(--green) 10%,transparent);color:color-mix(in srgb,var(--green) 85%,var(--text) 15%)}.tm-detail-footer{display:flex;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.pkg-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:14px;transition:border-color .15s}.pkg-card:hover{border-color:var(--accent)}.pkg-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pkg-card-icon{width:32px;height:32px;opacity:.85}.pkg-card-title-wrap{display:flex;flex-direction:column;gap:2px}.pkg-card-name{font-size:13px;font-weight:600;color:var(--text)}.pkg-card-version{font-size:11px;color:var(--text-secondary)}.pkg-card-stats{display:flex;gap:14px;margin-bottom:8px}.pkg-card-stat{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.pkg-stat-icon{width:13px;height:13px;opacity:.6}.pkg-card-date{font-size:10px;color:var(--text-secondary);margin-bottom:10px}.pkg-card-actions{display:flex;justify-content:flex-end}.mkt-container{padding:0 4px;overflow-y:auto;flex:1}.mkt-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mkt-search-wrap{flex:1;position:relative}.mkt-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;opacity:.4}.mkt-search{width:100%;padding:7px 10px 7px 30px;font-size:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text)}.mkt-search:focus{border-color:var(--accent);outline:none}.mkt-count{font-size:11px;color:var(--text-secondary);white-space:nowrap}.mkt-filters{margin-bottom:14px}.mkt-pill-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.mkt-pill{padding:3px 10px;font-size:11px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;text-transform:capitalize;display:inline-flex;align-items:center;gap:4px}.mkt-pill:hover{border-color:var(--accent);color:var(--text)}.mkt-pill.active{background:var(--accent);color:var(--white);border-color:var(--accent)}.mkt-pill-pattern{border-style:dashed}.mkt-pill-pattern.active{border-style:solid}.mkt-section{margin-bottom:20px}.mkt-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mkt-section-icon{width:18px;height:18px;opacity:.6}.mkt-section-title{font-size:13px;font-weight:600;color:var(--text);margin:0}.mkt-section-count{font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);padding:1px 6px;border-radius:8px}.mkt-arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.mkt-arch-card{background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .2s}.mkt-arch-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #0000001a}.mkt-arch-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}.mkt-arch-emoji{font-size:26px;line-height:1}.mkt-arch-title-wrap{flex:1}.mkt-arch-name{font-size:14px;font-weight:600;color:var(--text);display:block}.mkt-arch-badges{display:flex;gap:6px;margin-top:3px}.mkt-arch-category{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:3px}.mkt-arch-pattern{font-size:9px;color:var(--accent);display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border:1px dashed var(--accent);border-radius:3px;opacity:.8}.mkt-arch-dag-summary{font-family:SF Mono,Fira Code,monospace;font-size:11px;color:var(--accent);background:var(--bg);padding:4px 8px;border-radius:4px;margin-bottom:8px;overflow-x:auto;white-space:nowrap;letter-spacing:.2px}.mkt-arch-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mkt-arch-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.mkt-arch-stat{font-size:10px;color:var(--text-secondary);background:var(--bg);padding:2px 6px;border-radius:4px}.mkt-arch-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.mkt-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.mkt-arch-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.mkt-installed-badge{font-size:11px;color:var(--green, #27ae60);font-weight:500;padding:3px 8px;border:1px solid var(--green, #27ae60);border-radius:4px}.mkt-empty{text-align:center;padding:40px;color:var(--text-secondary);font-size:13px}.mkt-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.mkt-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:700px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.mkt-modal-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:2px solid var(--border)}.mkt-modal-emoji{font-size:32px;line-height:1}.mkt-modal-name{font-size:18px;font-weight:700;color:var(--text);margin:0}.mkt-modal-category{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.mkt-modal-close{margin-left:auto;font-size:24px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0 4px}.mkt-modal-close:hover{color:var(--text)}.mkt-modal-body{padding:20px;overflow-y:auto;flex:1}.mkt-modal-desc{font-size:13px;color:var(--text);line-height:1.5;margin:0 0 16px}.mkt-modal-section{margin-bottom:16px}.mkt-modal-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.mkt-modal-tags{display:flex;flex-wrap:wrap;gap:4px}.mkt-role-list{display:flex;flex-direction:column;gap:8px}.mkt-role-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.mkt-role-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}.mkt-role-name code{font-size:10px;font-weight:400;color:var(--text-secondary);margin-left:4px}.mkt-role-resp{font-size:11px;color:var(--text-secondary);margin-bottom:3px}.mkt-role-meta{font-size:10px;color:var(--text-secondary)}.mkt-role-meta code{font-size:10px;background:var(--bg);padding:0 3px;border-radius:2px;margin:0 2px}.mkt-dag-wrap{overflow-x:auto}.mkt-modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;align-items:center;gap:10px}.htr-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.htr-modal{width:100%;max-width:520px;max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 60px #00000061}.htr-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.htr-title{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--text)}.htr-subtitle{margin:0;font-size:11.5px;color:var(--text-secondary)}.htr-close{background:transparent;border:none;color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer}.htr-close:hover{color:var(--text)}.htr-body{display:flex;flex-direction:column;gap:8px;padding:14px 18px;overflow:auto}.htr-empty{padding:24px 8px;text-align:center}.htr-empty-title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text)}.htr-empty-hint{margin:0;font-size:11.5px;color:var(--text-secondary)}.htr-role-list,.tm-detail-role-list{display:flex;flex-direction:column;gap:4px}.tm-detail-role-list{margin-top:4px}.htr-role-row,.tm-detail-role-row{display:flex;flex-direction:column;gap:2px;padding:9px 12px;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:border-color .12s ease,background .12s ease}.htr-role-row:hover,.tm-detail-role-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.htr-role-row.is-selected,.tm-detail-role-row.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.htr-role-name,.tm-detail-role-name{font-size:12.5px;font-weight:600;color:var(--text)}.htr-role-resp,.tm-detail-role-resp{font-size:11px;color:var(--text-secondary);line-height:1.35}.htr-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.tm-detail-vacancy-empty{margin:4px 0 0;font-size:11.5px;color:var(--text-secondary);font-style:italic}.cfg-io-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:16px;margin-top:16px;display:flex;flex-direction:column;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 1px 2px #0000004d,0 8px 24px #0000001f}.cfg-io-header{padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:4px}.cfg-io-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.cfg-io-subtitle{font-size:12px;color:var(--text-secondary);margin:4px 0 0;line-height:1.5}.cfg-io-section{padding:14px 0;display:flex;flex-direction:column;gap:10px}.cfg-io-section+.cfg-io-section{border-top:1px solid var(--border)}.cfg-io-section-header{display:flex;align-items:center;gap:8px}.cfg-io-section-icon{width:16px;height:16px;opacity:.6}.cfg-io-section-title{font-size:12px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.4px}.cfg-io-upload-row{display:flex;align-items:center}.cfg-io-file-label{display:inline-flex;align-items:center;gap:12px;cursor:pointer}.cfg-io-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.cfg-io-file-btn{padding:6px 14px;font-size:12px;font-weight:500;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);transition:border-color .15s,color .15s}.cfg-io-file-label:hover .cfg-io-file-btn{border-color:var(--accent);color:var(--accent)}.cfg-io-file-input:focus-visible+.cfg-io-file-btn{outline:2px solid var(--accent);outline-offset:2px}.cfg-io-file-name{font-size:12px;color:var(--text-secondary);font-style:italic}.cfg-io-textarea{width:100%;padding:10px 12px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);box-sizing:border-box;resize:vertical;min-height:140px}.cfg-io-textarea:focus{border-color:var(--accent);outline:none}.cfg-io-actions{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap}.cfg-io-preview{display:flex;gap:12px;padding:12px 14px;background:color-mix(in srgb,var(--green) 8%,transparent);border:1px solid color-mix(in srgb,var(--green) 28%,transparent);border-radius:var(--radius-xs);margin-top:4px}.cfg-io-preview-icon{width:20px;height:20px;flex-shrink:0;margin-top:1px}.cfg-io-preview-body{flex:1;min-width:0}.cfg-io-preview-title{font-size:12px;font-weight:600;color:var(--green);margin-bottom:8px}.cfg-io-preview-stats{display:flex;gap:20px;flex-wrap:wrap}.cfg-io-preview-stat{display:flex;flex-direction:column;gap:2px}.cfg-io-stat-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;font-weight:500}.cfg-io-stat-value{font-size:16px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.cfg-io-error{display:flex;gap:12px;padding:12px 14px;background:color-mix(in srgb,var(--red) 8%,transparent);border:1px solid color-mix(in srgb,var(--red) 28%,transparent);border-radius:var(--radius-xs);margin-top:4px}.cfg-io-error-icon{width:20px;height:20px;flex-shrink:0;margin-top:1px}.cfg-io-error-body{flex:1;min-width:0}.cfg-io-error-title{font-size:12px;font-weight:600;color:var(--red);margin-bottom:6px}.cfg-io-error-text{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);background:var(--bg-secondary);padding:8px 10px;border-radius:4px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;line-height:1.4}.oc-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}.oc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.oc-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.oc-header-actions{display:flex;gap:8px}.oc-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.oc-action-btn:hover{border-color:var(--accent);color:var(--text)}.oc-action-icon{width:13px;height:13px;opacity:.6}.oc-empty{text-align:center;padding:30px;color:var(--text-secondary)}.oc-empty-icon{width:40px;height:40px;opacity:.3;margin-bottom:8px}.oc-empty-hint{font-size:11px;opacity:.7}.oc-tree{overflow-x:auto;overflow-y:visible;padding:10px 0;min-height:0}.oc-node{display:flex;flex-direction:column;align-items:center}.oc-children{display:flex;gap:16px;padding-top:20px;position:relative}.oc-children:before{content:"";position:absolute;top:0;left:50%;width:0;height:20px;border-left:1px solid var(--border)}.oc-node:not(.oc-node-root){position:relative}.oc-node:not(.oc-node-root):before{content:"";position:absolute;top:-20px;left:50%;width:0;height:20px;border-left:1px solid var(--border)}.oc-node-card{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:8px;padding:8px 12px;min-width:120px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.oc-node-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #00000014}.oc-card-editing{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb, 52,152,219),.2)}.oc-card-owner{background:var(--accent);color:var(--white);border-left-color:var(--accent);cursor:default}.oc-node-top{display:flex;align-items:center;gap:6px}.oc-node-icon{width:20px;height:20px;flex-shrink:0;border-radius:4px}.oc-node-name{font-size:12px;font-weight:600;color:var(--text)}.oc-card-owner .oc-node-name{color:var(--white)}.oc-node-status{width:6px;height:6px;border-radius:50%;flex-shrink:0}.oc-node-emp{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.oc-emp-chip{font-size:9px;padding:1px 5px;background:var(--bg-secondary);border-radius:3px;color:var(--text-secondary)}.oc-node-vacant{font-size:10px;color:var(--yellow, #f39c12);font-style:italic;margin-top:3px}.oc-editor{background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:14px 16px;margin-top:6px;min-width:300px;width:max-content;max-width:420px}.oc-form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.oc-form-row label{font-size:11px;font-weight:600;color:var(--text-secondary)}.oc-form-row input,.oc-form-row select{width:100%;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);box-sizing:border-box}.oc-form-row input:focus,.oc-form-row select:focus{border-color:var(--accent);outline:none}.oc-spawn-checks{display:flex;flex-direction:column;gap:6px}.oc-check-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.oc-check-label input[type=checkbox],.oc-check-label input[type=radio]{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0}.oc-form-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.oc-add-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:14px}.wfe-pattern-strip{display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:5px 8px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.wfe-pattern-label{font-size:11px;color:var(--text-dim);margin-right:4px;font-weight:500}.wfe-pattern-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:11px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s}.wfe-pattern-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text)}.wfe-pattern-btn--active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);font-weight:600}.wfe-pattern-icon{width:14px;height:14px;filter:brightness(0) invert(.7)}.wfe-pattern-btn--active .wfe-pattern-icon{filter:none}.flow-dag-container{position:relative;overflow-x:auto;overflow-y:visible;padding:20px 16px;min-height:120px}.flow-dag-node{position:absolute;z-index:2;cursor:pointer;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px 12px;transition:box-shadow .15s,opacity .2s}.flow-dag-node:hover{box-shadow:0 0 0 2px var(--accent)}.flow-dag-node--selected{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.flow-dag-node--dimmed{opacity:.18}.flow-dag-node-header{display:flex;justify-content:space-between;align-items:center;gap:6px}.flow-dag-node-icon{width:16px;height:16px;flex-shrink:0;border-radius:3px}.flow-dag-node-title{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-dag-node-role{font-size:10px;color:var(--accent);font-weight:500;white-space:nowrap}.flow-dag-gate{display:flex;align-items:center;gap:4px;margin-top:4px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500}.flow-dag-gate--review{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.flow-dag-gate--approval{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.flow-dag-gate-icon{width:12px;height:12px}.flow-dag-gate-reviewer{font-style:italic;opacity:.7}.flow-dag-parallel-group{border:1px dashed var(--border);border-radius:10px;z-index:0}.flow-dag-parallel-label{position:absolute;top:-8px;left:10px;font-size:9px;padding:0 6px;background:var(--bg);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.flow-dag-svg{z-index:1}.flow-dag-insert-btn circle{transition:all .15s}.flow-dag-insert-btn:hover circle{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 12%,var(--bg-card))}.flow-dag-insert-btn:hover text{fill:var(--accent)}.wfe-connect-active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent);color:var(--accent)}.wfe-connect-hint{padding:8px 14px;font-size:12px;color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:6px;margin:0 0 8px}.wfe-hint-cancel{background:none;border:none;color:var(--text-secondary);cursor:pointer;text-decoration:underline;font-size:12px;padding:0;margin-left:8px}.flow-dag-port{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--border);border:1.5px solid var(--bg-card);z-index:3;transition:all .15s}.flow-dag-port--in{left:-4px;top:50%;transform:translateY(-50%)}.flow-dag-port--out{right:-4px;top:50%;transform:translateY(-50%)}.flow-dag-port--source{background:var(--accent);box-shadow:0 0 4px var(--accent)}.flow-dag-port--target{background:var(--green);box-shadow:0 0 4px var(--green)}.flow-dag-port--active{background:var(--yellow);box-shadow:0 0 6px var(--yellow);width:10px;height:10px;right:-5px}.oc-advanced-toggle{margin:4px 0;border-top:1px solid var(--border);padding-top:8px}.oc-advanced-btn{display:flex;align-items:center;gap:5px;padding:4px 0;background:none;border:none;color:var(--accent);font-size:11px;font-weight:600;cursor:pointer}.oc-advanced-btn:hover{opacity:.8}.oc-advanced-section{margin-top:4px}.oc-exec-options{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.oc-exec-options .oc-check-label{white-space:nowrap}.oc-exec-agent-select{margin-top:6px;width:100%;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);box-sizing:border-box}.oc-form-row textarea{width:100%;padding:8px 10px;font-size:12px;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);line-height:1.5;box-sizing:border-box}.oc-form-row textarea:focus{border-color:var(--accent);outline:none}.wfe-policy-settings{padding:8px 4px}.wfe-policy-settings .oc-form-row label{font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px}.wfe-policy-settings .oc-spawn-checks{gap:8px;padding-left:2px}.wfe-policy-settings .oc-check-label{font-size:12px;color:var(--text-secondary)}.wfe-policy-settings .wfe-max-workers{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.wfe-policy-settings .wfe-max-workers input{width:60px;padding:4px 8px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text)}.wfe-policy-settings .oc-form-actions{margin-top:16px}.oc-canvas-node{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 82%,var(--bg) 18%),color-mix(in srgb,var(--bg) 72%,var(--bg-elevated) 28%));border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px;padding:12px 14px;min-width:208px;max-width:228px;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 10px 28px #0000002e;font-family:inherit;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.oc-canvas-node:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:inset 0 1px color-mix(in srgb,var(--text) 7%,transparent),0 14px 32px #0000003d}.oc-canvas-node.is-owner{min-width:232px;max-width:256px;padding:14px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 17%,var(--bg-elevated) 83%),color-mix(in srgb,var(--bg) 66%,var(--accent) 8%));border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 28%,transparent),0 16px 34px #00000042}.oc-canvas-node.is-owner:hover{border-color:color-mix(in srgb,var(--accent) 90%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 34%,transparent),0 18px 42px #0000004d}.oc-canvas-node.is-selected{border-color:var(--accent);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 10%,transparent),0 0 0 2px var(--accent),0 0 0 6px color-mix(in srgb,var(--accent) 12%,transparent),0 8px 24px #0003}.oc-canvas-node.is-drop-target{border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 0 24px color-mix(in srgb,var(--green) 30%,transparent);transform:scale(1.03)}.oc-canvas-node-row{display:flex;align-items:center;gap:10px;min-width:0}.oc-canvas-node-chip{position:relative;flex-shrink:0;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px color-mix(in srgb,var(--text) 8%,transparent);transition:background .18s ease,box-shadow .18s ease}.oc-canvas-node:hover .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 18%,transparent)}.oc-canvas-node.is-selected .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 24%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent),inset 0 1px color-mix(in srgb,var(--text) 10%,transparent)}.is-owner .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 28%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent),inset 0 1px color-mix(in srgb,var(--text) 7%,transparent)}.oc-canvas-node-chip-icon{width:18px;height:18px;display:block;background-color:var(--accent);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;transition:background-color .18s ease}.is-owner .oc-canvas-node-chip-icon{background-color:var(--accent)}.oc-canvas-node-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.oc-canvas-node-name{font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-owner .oc-canvas-node-name{color:var(--text)}.oc-canvas-node-meta{display:flex;gap:6px;align-items:center;font-size:10.5px;color:var(--text-secondary);line-height:1.2}.is-owner .oc-canvas-node-meta{color:var(--text-secondary)}.oc-canvas-node-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-canvas-node-person{font-weight:600;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-owner .oc-canvas-node-person{color:var(--text)}.oc-canvas-node-badge{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);padding:1px 7px;border-radius:10px;font-weight:600;font-size:10px;letter-spacing:.02em}.is-owner .oc-canvas-node-badge{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.oc-canvas-handle{width:8px;height:8px;background:var(--accent);border:none;opacity:0}.oc-canvas-node:hover .oc-canvas-handle{opacity:.5}.react-flow__background{background:color-mix(in srgb,var(--bg) 92%,#000 8%)!important}.react-flow__edge-path{stroke:color-mix(in srgb,var(--text-secondary) 70%,var(--border) 30%);stroke-width:1.4;opacity:.48}.react-flow__edge:hover .react-flow__edge-path{stroke:var(--accent);opacity:1}.react-flow__minimap{background:color-mix(in srgb,var(--bg-elevated) 62%,transparent)!important;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:8px;opacity:.78;width:150px!important;height:92px!important;right:16px!important;bottom:16px!important}.react-flow__controls{left:16px!important;bottom:16px!important;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:8px;overflow:hidden}.react-flow__controls button{background:transparent;color:var(--text-secondary);border-bottom:1px solid var(--border)}.react-flow__controls button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.ri-panel{position:absolute;top:0;right:0;bottom:0;width:340px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-left:1px solid var(--border);box-shadow:-8px 0 32px #00000040;z-index:20;font-size:13px}.ri-panel-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.ri-panel-icon{width:22px;height:22px;opacity:.9;flex-shrink:0}.ri-panel-title-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ri-panel-title{margin:0;font-size:14px;font-weight:600;color:var(--text);letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-panel-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:var(--text-secondary);opacity:.8}.ri-panel-close{padding:4px 8px}.ri-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0}.ri-panel-body::-webkit-scrollbar{width:8px}.ri-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.ri-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.ri-group{border-bottom:1px solid var(--border)}.ri-group:last-child{border-bottom:none}.ri-group-header{width:100%;display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;cursor:pointer;color:var(--text);font-size:12px;font-weight:600;letter-spacing:.01em;transition:background .15s}.ri-group-header:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.ri-group-caret{font-size:10px;color:var(--text-secondary);width:12px;text-align:center;transition:transform .15s}.ri-group.is-expanded .ri-group-caret{color:var(--accent)}.ri-group-title{flex:1;text-align:left}.ri-group-body{padding:4px 16px 14px;display:flex;flex-direction:column;gap:12px}.ri-field{display:flex;flex-direction:column;gap:4px}.ri-field-label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.ri-field-control{display:flex;flex-direction:column;gap:4px}.ri-text-input,.ri-select,.ri-textarea{width:100%;padding:7px 10px;font-size:12px;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.ri-text-input:focus,.ri-select:focus,.ri-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.ri-textarea{resize:vertical;min-height:60px;line-height:1.5}.ri-textarea-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.ri-meta-value{font-size:12px;color:var(--text);padding:4px 0}.ri-radio-group{display:flex;gap:4px;flex-wrap:wrap}.ri-radio{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);font-size:11px;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s}.ri-radio:has(input:checked){border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.ri-radio input{margin:0;accent-color:var(--accent)}.ri-icon-picker{position:relative}.ri-icon-picker-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);cursor:pointer;transition:border-color .15s}.ri-icon-picker-trigger:hover:not(:disabled){border-color:var(--accent)}.ri-icon-picker-current{width:18px;height:18px;opacity:.9}.ri-icon-picker-label{font-size:11px;color:var(--text-secondary)}.ri-icon-picker-popover{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:280px;max-height:240px;overflow-y:auto;padding:8px;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-xs);box-shadow:0 8px 24px #00000059;display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.ri-icon-option{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);cursor:pointer;transition:background .15s,border-color .15s}.ri-icon-option:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}.ri-icon-option.is-active{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}.ri-icon-option img{width:20px;height:20px;opacity:.85}.ri-multiselect{position:relative}.ri-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.ri-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:999px;color:var(--accent);font-size:11px;font-weight:500}.ri-chip-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:50%;background:transparent;color:var(--accent);font-size:12px;cursor:pointer;opacity:.65;transition:opacity .15s,background .15s}.ri-chip-x:hover{opacity:1;background:color-mix(in srgb,var(--accent) 20%,transparent)}.ri-chip-add{padding:2px 10px;font-size:11px;color:var(--text-secondary);background:transparent;border:1px dashed var(--border);border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s}.ri-chip-add:hover{color:var(--accent);border-color:var(--accent)}.ri-multiselect-popover{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:180px;max-height:200px;overflow-y:auto;padding:4px;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-xs);box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column}.ri-multiselect-option{padding:6px 10px;text-align:left;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text);font-size:12px;cursor:pointer;transition:background .15s}.ri-multiselect-option:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ri-toolcheck{display:flex;flex-direction:column;gap:10px}.ri-toolcheck-group{border:1px solid var(--border);border-radius:var(--radius-xs);padding:6px 10px 8px;margin:0;background:color-mix(in srgb,var(--bg) 40%,transparent)}.ri-toolcheck-legend{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);padding:0 6px;font-weight:600}.ri-toolcheck-items{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}.ri-toolcheck-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);cursor:pointer;padding:2px 0;transition:color .15s}.ri-toolcheck-item:has(input:checked){color:var(--text)}.ri-toolcheck-item input{margin:0;accent-color:var(--accent)}.ri-toolcheck-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}.ri-panel-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;flex-shrink:0}.rt-container{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow:hidden}.rt-bulk-bar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:var(--radius-xs);font-size:12px}.rt-bulk-count{font-weight:600;color:var(--accent);margin-right:auto}.rt-bulk-select{padding:4px 8px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text)}.rt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.rt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.rt-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-elevated);padding:10px 12px;text-align:left;font-weight:600;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.rt-th-sortable{cursor:pointer;transition:color .15s}.rt-th-sortable:hover{color:var(--accent)}.rt-sort-caret{font-size:9px;color:var(--accent)}.rt-table tbody td{padding:8px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);vertical-align:middle}.rt-row{cursor:pointer;transition:background .1s}.rt-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.rt-row-checked{background:color-mix(in srgb,var(--accent) 8%,transparent)}.rt-row-checked:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.rt-row-active{background:color-mix(in srgb,var(--accent) 14%,transparent)}.rt-row-active:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.rt-cell-icon{width:18px;height:18px;opacity:.85;display:block}.rt-cell-name{font-weight:500;color:var(--text)}.rt-cell-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:var(--text-secondary);opacity:.85}.rt-cell-count{font-variant-numeric:tabular-nums;color:var(--text)}.rt-cell-select{padding:4px 8px;font-size:11px;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.rt-cell-select:hover{border-color:var(--border);background:var(--bg-secondary)}.rt-cell-select:focus{outline:none;border-color:var(--accent);background:var(--bg-secondary)}.rt-cell-action{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:12px;cursor:pointer;opacity:0;transition:background .15s,color .15s,opacity .15s}.rt-row:hover .rt-cell-action{opacity:1}.rt-cell-action:hover{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.rt-inline-input{width:100%;padding:4px 6px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--text);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.rt-empty{text-align:center;padding:48px 16px;color:var(--text-secondary);font-size:13px}.se-container{display:flex;flex-direction:column;gap:10px;flex:1;min-height:480px;position:relative}.se-toolbar{display:flex;align-items:center;gap:10px;padding:0;flex-shrink:0;flex-wrap:wrap}.se-toolbar-actions{display:flex;gap:7px;margin-left:auto;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0}.se-toolbar-actions--readonly{color:var(--text-secondary)}.se-saved-org-control{display:inline-flex;align-items:center;gap:7px;min-width:0}.se-toolbar-label{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.se-readonly-pill{min-height:26px;display:inline-flex;align-items:center;padding:4px 10px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 7%,transparent);color:var(--text-secondary);font-size:11px;white-space:nowrap}.se-view-switcher{display:inline-flex;padding:2px;background:color-mix(in srgb,var(--bg-elevated) 72%,var(--bg) 28%);border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px}.se-view-btn{padding:5px 14px;font-size:12px;font-weight:500;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.se-view-btn:hover{color:var(--text)}.se-view-btn.is-active{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elevated) 82%);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}.se-body{position:relative;height:clamp(430px,calc(100vh - 330px),660px);min-height:430px;background:color-mix(in srgb,var(--bg) 92%,#000 8%);border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;overflow:hidden}.se-body>div,.se-body>div>.react-flow,.se-body .react-flow{width:100%!important;height:100%!important;position:relative;z-index:2}.se-body:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent) 0%,transparent 18%),radial-gradient(ellipse at center,transparent 58%,color-mix(in srgb,var(--bg) 86%,#000000) 100%);border-radius:inherit}.se-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);font-size:13px}.se-export-bar{display:flex;justify-content:flex-end;padding:0;margin-top:-2px}.oc-canvas-node.is-drop-target{animation:oc-drop-pulse .8s cubic-bezier(.4,0,.2,1) 1}@keyframes oc-drop-pulse{0%{box-shadow:0 0 0 2px var(--green),0 0 #0000}50%{box-shadow:0 0 0 2px var(--green),0 0 28px color-mix(in srgb,var(--green) 45%,transparent)}to{box-shadow:0 0 0 2px var(--green),0 0 18px color-mix(in srgb,var(--green) 25%,transparent)}}@media(prefers-reduced-motion:reduce){.react-flow__edge,.oc-canvas-node,.oc-canvas-node.is-drop-target,.ri-panel,.se-view-btn{animation:none!important;transition:none!important}}.sos-wrap{position:relative;display:inline-flex;align-items:center}.sos-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);font-size:12px;font-weight:500;letter-spacing:0;cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease;max-width:240px}.sos-pill:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--bg-elevated)}.sos-pill[data-open=true]{border-color:var(--accent);background:color-mix(in srgb,var(--bg-elevated) 88%,var(--accent) 8%)}.sos-pill-glyph{color:var(--accent);opacity:.9;flex-shrink:0}.sos-pill-name{font-weight:600;letter-spacing:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sos-pill-name--placeholder{opacity:.55;font-weight:500;font-style:italic}.sos-pill-dirty{width:6px;height:6px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 2px color-mix(in srgb,var(--yellow) 30%,transparent);flex-shrink:0}.sos-pill-caret{color:var(--text-secondary);transition:transform .15s ease;flex-shrink:0}.sos-pill[data-open=true] .sos-pill-caret{transform:rotate(180deg)}.se-toolbar-divider{width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.sos-popover{position:absolute;top:calc(100% + 6px);right:0;width:min(420px,calc(100vw - 32px));min-width:min(320px,calc(100vw - 32px));max-width:calc(100vw - 32px);z-index:80;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px #0000003d;overflow:hidden}.sos-search-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.sos-search-glyph{color:var(--text-secondary);opacity:.8;flex-shrink:0}.sos-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:12px;font-family:inherit}.sos-search-input::placeholder{color:var(--text-secondary);opacity:.7}.sos-search-hint{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:10px;color:var(--text-secondary);opacity:.6;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--bg-secondary) 60%,transparent);flex-shrink:0;letter-spacing:.05em}.sos-list{max-height:280px;overflow-y:auto;padding:4px 0}.sos-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px 7px 16px;cursor:pointer;transition:background .1s ease}.sos-row:hover,.sos-row[data-highlighted=true]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.sos-row--active:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;border-radius:1px;background:var(--accent)}.sos-row-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.sos-row-name{font-size:12.5px;font-weight:600;color:var(--text);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sos-row--active .sos-row-name{color:var(--accent)}.sos-row-stats{font-size:10.5px;color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sos-row-delete{opacity:.5;transition:opacity .12s ease,background .12s ease,color .12s ease;background:transparent;border:none;padding:3px 9px;border-radius:4px;color:var(--text-secondary);font-size:10.5px;font-family:inherit;letter-spacing:.02em;cursor:pointer;flex-shrink:0}.sos-row:hover .sos-row-delete,.sos-row[data-highlighted=true] .sos-row-delete{opacity:1}.sos-row-delete:hover{background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red)}.sos-row-delete--confirm{opacity:1!important;background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red);font-weight:600}.sos-row-loading{font-size:10.5px;color:var(--accent);letter-spacing:.02em;padding:3px 9px;flex-shrink:0;opacity:.8}.sos-row-active-chip{font-size:10.5px;color:var(--green);border:1px solid color-mix(in srgb,var(--green) 28%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent);border-radius:999px;padding:3px 9px;flex-shrink:0;letter-spacing:0}.sos-empty{padding:20px 12px;text-align:center;color:var(--text-secondary);font-size:11.5px;font-style:italic;opacity:.8}.sos-save-as{border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);padding:8px 10px}.sos-save-as-trigger{display:block;width:100%;padding:6px 8px;background:transparent;border:none;color:var(--accent);font-size:12px;font-weight:500;letter-spacing:0;cursor:pointer;border-radius:4px;font-family:inherit;text-align:left;transition:background .1s ease}.sos-save-as-trigger:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.sos-save-as-form{display:flex;gap:6px;align-items:center;padding:2px 4px}.sos-save-as-input{flex:1;padding:5px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;font-family:inherit;outline:none}.sos-save-as-input:focus{border-color:var(--accent)}.sos-save-as-hint{margin-top:6px;padding:0 6px;font-size:10.5px;color:var(--text-secondary);letter-spacing:.01em}.sos-save-as-hint--warn{color:var(--yellow)}@media(max-width:900px){.se-toolbar{align-items:stretch}.se-toolbar-actions{width:100%;margin-left:0;justify-content:flex-start}.se-saved-org-control{flex:1 1 240px}.sos-wrap,.sos-pill{max-width:100%}.se-body{height:min(560px,68vh);min-height:380px}.ri-panel{inset:auto 0 0;width:auto;max-height:62%;border-left:none;border-top:1px solid var(--border);box-shadow:0 -8px 28px #00000040}}@media(max-width:640px){.se-container{min-height:0}.se-view-switcher,.se-view-btn{width:100%}.se-view-switcher{display:grid;grid-template-columns:1fr 1fr}.se-saved-org-control{flex-direction:column;align-items:stretch;gap:5px}.se-toolbar-divider{display:none}.se-toolbar-actions .btn,.se-toolbar-actions .oc-btn-primary,.se-toolbar-actions .oc-btn-ghost{justify-content:center}.se-body{height:440px;min-height:360px}.react-flow__minimap{display:none!important}.react-flow__controls{left:10px!important;bottom:10px!important}.sos-popover{right:auto;left:0}.sos-save-as-form{flex-wrap:wrap}.sos-save-as-input{flex-basis:100%}}.org-toast{position:fixed;bottom:20px;right:20px;z-index:200;padding:10px 16px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12.5px;font-weight:500;letter-spacing:0;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 8%,transparent),0 8px 28px #0000004d}.org-toast--ok{border-left:2px solid var(--green);padding-left:14px}.org-toast--error{border-left:2px solid var(--red);padding-left:14px}@media(prefers-reduced-motion:reduce){.sos-popover,.sos-pill-dirty,.org-toast{animation:none!important}.sos-pill-caret,.sos-pill,.sos-row,.sos-row-delete{transition:none!important}}.agent-status-bar{display:flex;align-items:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;overflow:hidden}.agent-status-summary{font-size:10px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.agent-status-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}.agent-status-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;border:1px solid var(--border);background:var(--surface);font-size:11px;white-space:nowrap;flex-shrink:0;transition:border-color .2s,background .2s}.agent-status-chip.status-idle{opacity:.6}.agent-status-chip.status-reflecting{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,var(--surface))}.agent-status-chip.status-tool_active{border-color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--surface))}.agent-status-avatar{width:20px;height:20px;border-radius:50%;background:var(--accent-soft);border:1.5px solid var(--accent);color:var(--accent);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.agent-status-chip.status-reflecting .agent-status-avatar{border-color:var(--yellow);color:var(--yellow);background:color-mix(in srgb,var(--yellow) 15%,var(--surface))}.agent-status-chip.status-tool_active .agent-status-avatar{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 15%,var(--surface))}.agent-status-name{font-weight:500;color:var(--text)}.agent-status-detail{color:var(--text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis}.agent-status-chip.status-reflecting .agent-status-detail{color:var(--yellow)}.agent-status-chip.status-tool_active .agent-status-detail{color:var(--green)}.agent-status-task{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--bg);color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace}.kanban-board{display:flex;gap:10px;padding:16px;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.kanban-column{display:flex;flex-direction:column;min-width:290px;max-width:290px;background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:hidden;flex-shrink:0}.kanban-column-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elevated)}.kanban-col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.kanban-col-label{font-size:11px;font-weight:600;color:var(--text-secondary);flex:1;text-transform:uppercase;letter-spacing:.06em}.kanban-col-count{font-size:10px;color:var(--text-secondary);padding:1px 6px;border-radius:999px;background:var(--bg);border:1px solid var(--border);min-width:20px;text-align:center}.kanban-col-add{margin-left:auto;background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:14px;width:22px;height:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s,color .15s}.kanban-col-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.kanban-quick-add{padding:4px 8px 8px}.kanban-quick-input{width:100%;padding:6px 8px;border:1px solid var(--accent);border-radius:6px;background:var(--bg);color:var(--text);font-size:.82rem;outline:none}.kanban-col-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:60px}.kanban-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.kanban-card:hover{border-color:var(--border-hover);box-shadow:0 2px 8px #0000001f}.kanban-card.is-dragging{box-shadow:0 8px 24px #00000047;border-color:var(--accent);opacity:.97}.kanban-card-id{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;letter-spacing:.02em;margin-bottom:5px;display:block}.kanban-card-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 6px}.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px;gap:4px}.kanban-card-footer-left{display:flex;align-items:center;gap:6px}.kanban-priority{font-size:13px;flex-shrink:0;line-height:1}.kanban-assignee-badge{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);border:1.5px solid var(--accent);color:var(--accent);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-transform:uppercase}.kanban-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-secondary);font-size:12px;opacity:.6}.kanban-empty-icon{font-size:28px;opacity:.4}.board-selector{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.board-tabs{display:flex;gap:2px;padding:6px 16px;overflow-x:auto;scrollbar-width:none}.board-tab{padding:6px 14px;border:1px solid transparent;border-radius:6px 6px 0 0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s;white-space:nowrap;display:flex;align-items:center;gap:6px}.board-tab:hover{background:var(--surface);color:var(--text)}.board-tab.active{background:var(--surface);color:var(--text);border-color:var(--border);border-bottom-color:var(--surface);font-weight:600}.board-tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.board-tab-editable{cursor:default}.board-tab-title{cursor:text;padding:2px 4px;border-radius:3px;transition:background .12s}.board-tab-title:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.board-tab-title-input{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--accent);border-radius:3px;padding:2px 4px;outline:none;min-width:120px}.kanban-start-btn{width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0}.kanban-start-btn:hover{background:var(--accent-soft);color:var(--accent)}.kanban-card.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 2px 8px #4f46e526}.kanban-card-runtime{display:flex;align-items:center;gap:6px;padding:3px 8px;margin-bottom:6px;border-radius:4px;font-size:10px;font-weight:500;background:var(--surface)}.kanban-card-runtime.status-reflecting{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,var(--surface))}.kanban-card-runtime.status-tool_active{color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface))}.kanban-runtime-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;animation:kanban-pulse 1.2s ease-in-out infinite}.kanban-runtime-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes kanban-pulse{0%,to{opacity:1}50%{opacity:.4}}.kanban-dep-badge{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.kanban-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.kanban-cross-badge{font-size:10px;padding:1px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-weight:600}.kanban-card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.kanban-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer}.kanban-assignee-group{display:flex;gap:0}.kanban-assignee-group .kanban-assignee-badge{margin-left:-4px}.kanban-assignee-group .kanban-assignee-badge:first-child{margin-left:0}.kanban-assignee-more{background:var(--surface);color:var(--text-secondary);border-color:var(--border);font-size:8px}.kanban-card-meta-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.kanban-meta-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:1px 6px;border-radius:3px;border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.kanban-meta-icon{font-size:10px;line-height:1}.kanban-employee-badge{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.kanban-role-badge{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent)}.kanban-projection-badge{border-color:var(--yellow);color:var(--yellow);font-family:var(--font-mono, monospace);font-size:9px}.kanban-gate-badge{gap:2px}.kanban-gate-review{border-color:var(--yellow);color:var(--yellow)}.kanban-gate-approval{border-color:var(--green);color:var(--green)}.kanban-gate-human_confirmation{border-color:var(--red);color:var(--red)}.kanban-origin-badge{border-color:var(--text-secondary);color:var(--text-secondary);font-size:9px}@keyframes exec-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.exec-panel-backdrop{position:fixed;inset:0;background:#0000004d;z-index:199;animation:exec-backdrop-in .2s ease}@keyframes exec-backdrop-in{0%{opacity:0}to{opacity:1}}.exec-panel{position:fixed;top:0;right:0;width:560px;max-width:90vw;height:100vh;height:100dvh;background:var(--surface);border-left:1px solid var(--border);z-index:200;display:flex;flex-direction:column;animation:exec-slide-in .25s cubic-bezier(.32,.72,0,1);box-shadow:-4px 0 24px #0003}.exec-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.exec-panel-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.exec-panel-title-row svg{flex-shrink:0;color:var(--accent)}.exec-panel-title{margin:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-badge{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.exec-badge-running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.exec-badge-idle{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.exec-badge-done{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.exec-badge-pending{background:color-mix(in srgb,var(--text-secondary) 15%,transparent);color:var(--text-secondary)}.exec-badge-failed{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.exec-badge-cancelled{background:color-mix(in srgb,var(--text-secondary) 10%,transparent);color:var(--text-secondary)}.exec-panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s}.exec-panel-close:hover{background:var(--surface-hover, rgba(255, 255, 255, .06));color:var(--text-primary)}.exec-panel-identity{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.exec-panel-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.exec-panel-agent-info{display:flex;flex-direction:column;gap:1px;min-width:0}.exec-panel-agent-name{font-size:13px;font-weight:600;color:var(--text-primary)}.exec-panel-agent-role{font-size:11px;color:var(--green)}.exec-panel-employee{font-size:11px;color:var(--text-tertiary, var(--text-secondary));opacity:.8}.exec-panel-projection{font-size:11px;color:var(--text-secondary);text-transform:capitalize}.exec-panel-body{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 16px;display:flex;flex-direction:column;gap:16px}.exec-section{display:flex;flex-direction:column;gap:8px}.exec-section-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.exec-section-header svg{width:14px;height:14px;flex-shrink:0}.exec-section-content{font-size:13px;color:var(--text-primary);line-height:1.5}.exec-handoff-scroll{max-height:28vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.exec-handoff-scroll::-webkit-scrollbar{width:8px}.exec-handoff-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.exec-handoff-scroll::-webkit-scrollbar-track{background:transparent}.exec-activity-scroll{max-height:55vh;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:6px;background:color-mix(in srgb,var(--bg, var(--surface)) 30%,transparent)}.exec-activity-scroll::-webkit-scrollbar{width:8px}.exec-activity-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.exec-activity-scroll::-webkit-scrollbar-track{background:transparent}pre.exec-section-content{white-space:pre-wrap;word-break:break-word;background:var(--bg, var(--surface));border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12px;font-family:var(--mono, monospace);margin:0}.exec-section-empty{font-size:12px;color:var(--text-secondary);font-style:italic;padding:8px 0}.exec-artifact-list{margin:0;padding:0 0 0 18px;font-size:13px;color:var(--text-primary);line-height:1.6}.exec-artifact-item{word-break:break-word}.exec-panel-task-count{font-size:11px;padding:2px 8px;border-radius:10px;background:color-mix(in srgb,var(--text-secondary) 15%,transparent);color:var(--text-secondary);margin-left:6px;letter-spacing:.2px}.exec-task-card{border:1px solid color-mix(in srgb,var(--text-secondary) 20%,transparent);border-radius:8px;margin-bottom:10px;background:color-mix(in srgb,var(--bg-primary) 80%,transparent);overflow:hidden;flex-shrink:0;flex-basis:auto}.exec-task-card-focused{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.exec-task-card-header{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--text-primary)}.exec-task-card-header:hover{background:color-mix(in srgb,var(--text-secondary) 5%,transparent)}.exec-task-card-index{font-family:var(--font-mono, monospace);font-size:11px;color:var(--text-secondary);min-width:22px}.exec-task-card-title{flex:1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-task-card-time{font-size:11px;color:var(--text-secondary);white-space:nowrap}.exec-task-card-chevron{font-size:12px;color:var(--text-secondary);display:inline-block;transition:transform .12s ease}.exec-task-card-chevron.open{transform:rotate(90deg)}.exec-task-card-body{padding:4px 14px 14px;border-top:1px solid color-mix(in srgb,var(--text-secondary) 12%,transparent)}.exec-task-card-projection{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--text-secondary);margin:8px 0 12px}.exec-task-card-projection svg{width:13px;height:13px;color:var(--accent)}.exec-task-card-projection code{font-family:var(--font-mono, monospace);background:color-mix(in srgb,var(--text-secondary) 10%,transparent);padding:1px 6px;border-radius:4px}.exec-inline-tag{padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow);font-size:10px;font-weight:600;text-transform:uppercase}.exec-activity-sections{display:flex;flex-direction:column;gap:10px}.exec-activity-section{padding-top:8px;border-top:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent)}.exec-activity-section:first-child{padding-top:0;border-top:0}.exec-activity-section-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;min-width:0;font-size:11px;color:var(--text-secondary)}.exec-activity-section-title{color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-activity-section-role{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 10%,transparent)}.exec-section-count{font-size:10px;color:var(--text-secondary);padding:1px 6px;border-radius:8px;background:color-mix(in srgb,var(--text-secondary) 10%,transparent);margin-left:auto}.chat-fullpage{display:flex;flex:1;min-height:0;overflow:hidden;background:var(--bg)}.chat-page{display:flex;width:100%;height:100%;min-height:0}.session-sidebar{width:272px;min-width:240px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;flex-shrink:0}.session-new-btn{margin:14px 14px 6px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .15s}.session-new-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.session-nav-btn{margin:2px 14px;padding:8px 12px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .12s;text-align:left}.session-nav-btn:hover{background:var(--surface-hover);color:var(--text)}.session-nav-btn.active{background:var(--accent-soft);color:var(--accent);border-left:2px solid var(--accent);padding-left:10px}.session-activity-btn{margin-top:auto;margin-bottom:10px}.session-search-wrap{display:flex;align-items:center;gap:6px;margin:6px 14px 8px;padding:6px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid transparent;color:var(--text-secondary);transition:border-color .15s}.session-search-wrap:focus-within{border-color:var(--accent)}.session-search{flex:1;border:none;background:transparent;color:var(--text);font-size:12px;font-family:inherit;outline:none}.session-search::placeholder{color:var(--text-secondary)}.session-list{flex:1;overflow-y:auto;padding:0 0 4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.session-list-virtualized{position:relative;contain:strict}.session-group{margin-bottom:2px}.session-group-label{padding:10px 16px 4px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.session-tree-node{position:relative}.session-tree-primary{display:flex;align-items:stretch}.session-expand-btn{width:20px;flex-shrink:0;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-left:4px;color:var(--text-secondary)}.session-expand-btn:before{content:"";display:block;width:0;height:0;border-left:4px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform .15s;transform:rotate(90deg)}.session-expand-btn.collapsed:before{transform:rotate(0)}.session-expand-btn:hover{color:var(--accent)}.session-children{position:relative;margin-left:12px;padding-left:8px;border-left:1px solid var(--border)}.session-child-count{border:none;background:transparent;color:var(--text-secondary);font-size:10px;font-weight:500;font-family:inherit;cursor:pointer;padding:2px 16px 2px 36px;text-align:left}.session-child-count:hover{color:var(--accent)}.session-unread-badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center}.session-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;border-radius:var(--radius-xs);margin:1px 8px;width:calc(100% - 16px);background:transparent;color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;position:relative;transition:background .12s,border-color .12s;border-left:2px solid transparent}.session-item:hover{background:var(--surface-hover)}.session-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.session-item.session-item-child{padding:5px 12px 5px 6px;border-left:none;font-size:12px;position:relative;margin:0;width:100%}.session-tree-line{position:absolute;left:-8px;top:0;bottom:50%;width:8px;border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-bottom-left-radius:4px;pointer-events:none}.session-tree-line.last{bottom:50%}.session-agent-tag{display:inline-block;font-size:10px;font-weight:600;padding:0 5px;border-radius:3px;background:var(--accent-soft);color:var(--accent);margin-right:4px}.session-runtime-badge{display:inline-flex;align-items:center;color:var(--accent);margin-right:4px;flex-shrink:0}.session-runtime-badge svg{width:12px;height:12px}.session-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.session-dot.status-running,.session-dot.status-running-idle{background:var(--green);opacity:.35}.session-dot.status-tool-active{background:var(--green);box-shadow:0 0 4px color-mix(in srgb,var(--green) 55%,transparent)}.session-dot.status-reflecting{background:var(--yellow);box-shadow:0 0 4px color-mix(in srgb,var(--yellow) 55%,transparent)}.session-dot.status-idle{background:var(--accent);opacity:.7}.session-dot.status-done{background:var(--green)}.session-dot.status-pending{background:var(--text-secondary);opacity:.4}.session-dot.status-failed{background:var(--red)}.session-dot.status-cancelled{background:var(--text-secondary);opacity:.3}.session-dot.status-blocked{background:var(--yellow)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.session-item-content{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.session-item-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.session-item-meta{font-size:11px;color:var(--text-secondary)}.session-delete-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;transition:all .12s}.session-delete-btn:hover{color:var(--red);background:#f871711a}.session-empty{padding:32px 16px;text-align:center;color:var(--text-secondary);font-size:12px}.task-header-shell{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.task-header-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px;min-height:48px;min-width:0}.task-header-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;flex-wrap:wrap;row-gap:6px}.task-title{font-size:14px;font-weight:600;color:var(--text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .12s;min-width:0;max-width:100%;flex:1 1 auto}.task-title:hover{color:var(--accent)}.task-title-input{font-size:14px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-xs);padding:2px 8px;font-family:inherit;outline:none;width:100%;max-width:400px}.task-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:var(--surface);font-size:11px;font-weight:500;color:var(--text-secondary);flex-shrink:0}.task-status-pill[data-status=running]{color:var(--green)}.task-status-pill[data-status=idle]{color:var(--accent)}.task-status-pill[data-status=failed]{color:var(--red)}.task-status-pill[data-status=blocked]{color:var(--yellow)}.task-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-status-pill[data-working=true] .task-status-dot{opacity:.9;box-shadow:0 0 5px color-mix(in srgb,currentColor 45%,transparent)}.task-tool-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;background:#34d39914;color:var(--green);font-size:11px;flex-shrink:0}.task-tool-pill code{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:500;background:none;padding:0}.task-projection-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:#eab30814;color:var(--yellow);font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;flex-shrink:0}.task-role-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:#10b98114;color:var(--green);font-size:11px;flex-shrink:0}.task-employee-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:#6366f114;color:var(--accent);font-size:11px;flex-shrink:0}.task-employee-icon{font-size:11px;line-height:1}.task-agent-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:#0ea5e914;color:var(--blue);font-size:11px;flex-shrink:0}.task-agent-icon{font-size:11px;line-height:1}.task-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.task-header-avatars{display:flex}.task-header-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);border:2px solid var(--bg);color:var(--accent);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:-4px}.task-header-avatar:first-child{margin-left:0}.task-header-time{font-size:11px;color:var(--text-secondary);opacity:.6}.task-header-metrics{display:flex;flex-wrap:wrap;gap:6px 10px;padding:0 20px 10px}.task-runtime-metric{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 85%,transparent 15%);background:color-mix(in srgb,var(--surface) 86%,var(--bg-elevated) 14%)}.task-runtime-metric-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);flex-shrink:0}.task-runtime-metric-value{font-size:11px;color:var(--text);font-family:JetBrains Mono,SF Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.task-stop-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--red);border-radius:var(--radius-xs);background:transparent;color:var(--red);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-stop-btn:hover{background:var(--red);color:#fff}.task-stop-btn:disabled{opacity:.45;cursor:not-allowed}.task-stop-btn:disabled:hover{background:transparent;color:var(--red)}.task-resume-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--accent);border-radius:var(--radius-xs);background:transparent;color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-resume-btn:hover{background:var(--accent);color:#fff}.task-done-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--green);border-radius:var(--radius-xs);background:transparent;color:var(--green);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-done-btn:hover{background:var(--green);color:#fff}.task-board-btn{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;transition:all .12s}.task-board-btn:hover{background:var(--surface-hover);color:var(--text)}@container ctxpanel (max-width: 720px){.task-header-bar{align-items:flex-start;flex-wrap:wrap;padding:10px 14px;gap:8px}.task-header-right{width:100%;justify-content:flex-end;flex-wrap:wrap}.task-header-metrics{padding:0 14px 10px}}@container ctxpanel (max-width: 560px){.task-projection-pill,.task-employee-pill,.task-tool-pill,.task-header-time,.task-header-avatars{display:none}.task-header-bar{padding:10px 12px}.task-runtime-metric-value{font-size:10.5px}}@container ctxpanel (max-width: 420px){.task-role-pill{display:none}.task-agent-pill .task-agent-icon{margin-right:0}.task-stop-btn span,.task-done-btn span,.task-resume-btn span{display:none}.task-stop-btn,.task-done-btn,.task-resume-btn{padding:5px 8px}.task-header-bar{padding:8px 10px}.task-header-metrics{padding:0 10px 8px;gap:6px 8px}}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.chat-main-header{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0;min-height:48px}.chat-main-icon{font-size:13px;font-weight:700;color:var(--text-secondary)}.chat-main-name{font-size:14px;font-weight:600;color:var(--text)}.chat-main-desc{margin-left:8px;font-size:11px;color:var(--text-secondary);font-weight:400}.msg-list{flex:1;min-height:0;overflow-y:auto;padding:16px 0 20px;scrollbar-width:thin;scrollbar-gutter:stable;scrollbar-color:var(--border) transparent;overscroll-behavior-y:contain;overflow-anchor:none;position:relative}.msg-end-anchor{height:1px;flex-shrink:0;overflow-anchor:none}.msg-history-hint{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 20px 14px;flex-wrap:wrap}.msg-history-load-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 12px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,border-color .12s}.msg-history-load-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.msg-history-load-btn:disabled{opacity:.65;cursor:default}.msg-history-meta{font-size:11px;color:var(--text-secondary)}.msg-pending-section{margin-top:10px;padding:12px 16px 0;border-top:1px solid var(--border);background:linear-gradient(180deg,transparent 0%,var(--bg-elevated) 28px)}.msg-pending-header{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 8px 10px}.msg-pending-stack{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.msg-row-pending{animation:msg-enter .2s ease-out}.msg-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 24px;color:var(--text-secondary);text-align:center;flex:1;min-height:0}.msg-welcome-icon{color:var(--accent);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--accent) 18%,transparent 82%),transparent 70%),color-mix(in srgb,var(--accent-soft) 65%,var(--bg-elevated) 35%);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent 78%);border-radius:50%;box-shadow:0 1px color-mix(in srgb,var(--accent) 22%,transparent 78%) inset,0 8px 24px -10px color-mix(in srgb,var(--accent) 60%,transparent 40%)}.msg-welcome-icon svg{width:26px;height:26px;opacity:.85}.msg-welcome-title{font-size:18px;font-weight:600;color:var(--text);margin-top:2px;letter-spacing:-.01em}.msg-welcome-hint{font-size:13px;line-height:1.55;max-width:320px;color:var(--text-secondary);opacity:.85}@container ctxpanel (max-width: 480px){.msg-welcome{padding:36px 20px;gap:10px}.msg-welcome-icon{width:48px;height:48px}.msg-welcome-icon svg{width:22px;height:22px}.msg-welcome-title{font-size:16px}.msg-welcome-hint{font-size:12px;line-height:1.5}}.msg-date-sep{display:flex;align-items:center;justify-content:center;padding:12px 0 8px}.msg-date-sep span{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;padding:2px 12px;background:var(--surface);border-radius:999px}.msg-system{display:flex;justify-content:center;padding:6px 20px}.msg-system span{font-size:11px;color:var(--text-secondary);background:var(--surface);padding:4px 12px;border-radius:999px}.work-item-divider{display:flex;align-items:center;gap:12px;padding:14px 24px;max-width:820px;margin:4px auto;animation:msg-enter .2s ease-out}.work-item-divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent)}.work-item-divider-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;text-transform:capitalize}.work-item-divider-icon{font-size:10px;line-height:1}.work-item-divider-action{font-weight:400;opacity:.7;font-size:10px}.work-item-divider-active .work-item-divider-icon{color:#f59e0b}.work-item-divider-active .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(245,158,11,.25) 20%,rgba(245,158,11,.25) 80%,transparent)}.work-item-divider-passed .work-item-divider-icon{color:#10b981}.work-item-divider-passed .work-item-divider-label{color:#10b981;opacity:.8}.work-item-divider-passed .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(16,185,129,.2) 20%,rgba(16,185,129,.2) 80%,transparent)}.work-item-divider-rejected .work-item-divider-icon{color:#f59e0b}.work-item-divider-rejected .work-item-divider-label{color:#f59e0b;opacity:.8}.work-item-divider-failed .work-item-divider-icon{color:var(--red)}.work-item-divider-failed .work-item-divider-label{color:var(--red);opacity:.8}.work-item-divider-failed .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(239,68,68,.15) 20%,rgba(239,68,68,.15) 80%,transparent)}.work-item-divider-waiting .work-item-divider-icon,.work-item-divider-waiting .work-item-divider-label{color:var(--text-secondary)}.msg-row{display:flex;gap:10px;padding:6px 24px;max-width:820px;width:100%;margin:0 auto;animation:msg-enter .2s ease-out;border-radius:var(--radius-xs);transition:background .1s}@keyframes msg-enter{0%{opacity:0}to{opacity:1}}.msg-row.user{justify-content:flex-end}.msg-row.deleted-sender{opacity:.5}.msg-row.grouped{padding-top:0;padding-bottom:0;animation:none}.msg-row-inline-progress,.msg-row-context,.msg-row-draft{align-items:flex-start}.msg-row.agent.grouped .msg-content-agent-card{border-top:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-top:-1px}.msg-row.user.grouped{padding-top:2px}.msg-row.user.grouped .msg-content-user{border-radius:18px 4px 4px 18px}.msg-avatar-spacer{width:34px;flex-shrink:0}.msg-time-inline{font-size:10px;opacity:0;transition:opacity .15s}.msg-row:hover .msg-time-inline{opacity:.6}.msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:700;margin-top:1px}.agent-avatar{background:linear-gradient(135deg,var(--accent-soft),var(--surface));color:#fff;border:none;box-shadow:0 1px 3px #00000026;text-shadow:0 1px 2px rgba(0,0,0,.2)}.msg-avatar-context{background:linear-gradient(135deg,#3b82f62e,#0ea5e947);color:var(--accent)}.msg-avatar-draft{background:linear-gradient(135deg,#10b98138,#3b82f633);color:var(--green)}.msg-body{flex:1;min-width:0}.msg-inline-progress-body{width:100%}.msg-inline-progress-shell{width:100%;max-width:100%}.msg-body-user{max-width:70%}.msg-agent-header{display:flex;align-items:center;gap:8px;margin-bottom:3px}.msg-sender{font-size:12px;font-weight:600;color:var(--text)}.msg-sender.deleted{color:var(--text-secondary);text-decoration:line-through}.msg-time{font-size:10px;color:var(--text-secondary);opacity:.6}.msg-reply-indicator{font-size:11px;color:var(--text-secondary);padding:2px 0 4px 10px;border-left:2px solid var(--accent-soft);margin-bottom:4px}.msg-ops-row{display:flex;align-items:center;gap:8px;width:min(820px,100%);margin:2px auto;padding:5px clamp(12px,3vw,24px) 5px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;font-size:clamp(11px,.74rem,12.5px);color:var(--text-secondary);background:transparent;border:1px solid transparent;cursor:default;-webkit-user-select:none;user-select:none;transition:background .14s ease,border-color .14s ease,color .14s ease;min-width:0}.msg-ops-row[role=button]{cursor:pointer}.msg-ops-row:hover,.msg-ops-row.expanded{background:color-mix(in srgb,var(--surface) 60%,transparent 40%);border-color:color-mix(in srgb,var(--border) 60%,transparent 40%);color:var(--text)}.msg-ops-dot{width:5px;height:5px;border-radius:999px;flex-shrink:0;background:color-mix(in srgb,var(--text-secondary) 60%,transparent 40%)}.msg-ops-tone-info .msg-ops-dot{background:color-mix(in srgb,var(--accent) 80%,transparent 20%)}.msg-ops-tone-success .msg-ops-dot{background:var(--green)}.msg-ops-tone-warning .msg-ops-dot{background:var(--yellow)}.msg-ops-tone-danger .msg-ops-dot{background:var(--red)}.msg-ops-label{font-weight:600;letter-spacing:.01em;color:var(--text);flex-shrink:0}.msg-ops-tone-info .msg-ops-label{color:color-mix(in srgb,var(--accent) 88%,var(--text) 12%)}.msg-ops-tone-success .msg-ops-label{color:color-mix(in srgb,var(--green) 90%,var(--text) 10%)}.msg-ops-tone-warning .msg-ops-label{color:color-mix(in srgb,var(--yellow) 90%,var(--text) 10%)}.msg-ops-tone-danger .msg-ops-label{color:color-mix(in srgb,var(--red) 90%,var(--text) 10%)}.msg-ops-summary{color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-ops-time{font-size:10.5px;color:var(--text-secondary);opacity:.55;flex-shrink:0;font-variant-numeric:tabular-nums}.msg-ops-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-secondary);opacity:.6;flex-shrink:0;transition:transform .16s ease,opacity .16s ease;transform:rotate(0)}.msg-ops-row.expanded .msg-ops-chevron{opacity:1}.msg-ops-details{width:min(820px,100%);margin:0 auto 6px;padding:10px clamp(12px,3vw,24px) 10px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 80%,var(--surface) 20%);border:1px solid color-mix(in srgb,var(--border) 70%,transparent 30%)}.msg-ops-details-pre{margin:0;font-family:JetBrains Mono,SF Mono,monospace;font-size:10.5px;line-height:1.55;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:220px;overflow-y:auto}.msg-ops-bundle{display:flex;align-items:center;gap:8px;width:min(820px,100%);margin:3px auto;padding:6px clamp(12px,3vw,24px) 6px clamp(20px,8vw,56px);box-sizing:border-box;border:1px dashed color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 42%,transparent);color:var(--text-secondary);font:inherit;font-size:12px;text-align:left;cursor:pointer;min-width:0;transition:background .14s ease,border-color .14s ease,color .14s ease}.msg-ops-bundle:hover,.msg-ops-bundle.expanded{background:color-mix(in srgb,var(--surface) 76%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--text)}.msg-ops-bundle-dot{width:6px;height:6px;border-radius:999px;flex:0 0 auto;background:color-mix(in srgb,var(--accent) 72%,transparent)}.msg-ops-bundle-title{flex:0 0 auto;color:var(--text);font-weight:650}.msg-ops-bundle-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-ops-bundle-time{flex:0 0 auto;font-size:10.5px;color:var(--text-secondary);opacity:.6;font-variant-numeric:tabular-nums}.msg-ops-bundle-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-secondary);flex:0 0 auto}.msg-ops-bundle-details{width:min(820px,100%);margin:0 auto 8px;padding:6px clamp(12px,3vw,24px) 8px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 80%,var(--surface) 20%);border:1px solid color-mix(in srgb,var(--border) 68%,transparent)}.msg-ops-bundle-event{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 0;font-size:11.5px}.msg-content-agent-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px var(--radius-sm) var(--radius-sm) 2px;padding:10px 14px;transition:border-color .2s,box-shadow .2s,border-left-color .2s}.msg-attached-thinking{margin-bottom:10px}.msg-row.agent:hover .msg-content-agent-card{border-color:var(--border-hover);border-left-color:var(--accent);box-shadow:0 2px 8px #00000014}.msg-context-card{border-left-color:#3b82f6bf;background:linear-gradient(180deg,rgba(59,130,246,.06),var(--surface))}.msg-context-label,.msg-draft-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.msg-draft-card{border-style:dashed;border-left-color:var(--green);background:linear-gradient(180deg,rgba(16,185,129,.06),var(--surface))}.msg-row-project-update .msg-body{min-width:0}.msg-project-update-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px var(--radius-sm) var(--radius-sm) 2px;padding:11px 14px 10px;display:flex;flex-direction:column;gap:10px;min-width:0;overflow:hidden}.msg-project-update-report{border-left-color:var(--accent)}.msg-project-update-review{border-left-color:var(--green)}.msg-project-update-update{border-left-color:var(--yellow)}.msg-project-update-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.msg-project-update-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.msg-project-update-chip{flex:0 1 auto;min-width:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,transparent);color:color-mix(in srgb,var(--green) 86%,var(--text) 14%);font-size:11px;font-weight:650}.msg-project-update-title{margin-top:8px;color:var(--text-secondary);font-size:12px;font-weight:650;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.msg-project-update-summary{color:var(--text);line-height:1.58;font-size:14px;overflow-wrap:anywhere;word-break:break-word}.msg-project-update-summary p{margin:0 0 7px}.msg-project-update-summary p:last-child{margin-bottom:0}.msg-project-update-section{min-width:0}.msg-project-update-section-label{margin-bottom:5px;color:var(--text-secondary);font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.msg-project-update-artifacts{display:grid;gap:6px}.msg-project-update-artifact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;min-width:0;padding:7px 9px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg-elevated) 46%,transparent)}.msg-project-update-artifact-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12.5px;font-weight:650}.msg-project-update-artifact-status{color:var(--green);font-size:11px;font-weight:650;text-transform:lowercase}.msg-project-update-artifact-path{grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);background:transparent;font-size:11px}.msg-project-update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.msg-project-update-list{margin:0;padding-left:18px;color:var(--text-secondary);font-size:12.5px;line-height:1.48;min-width:0}.msg-project-update-list li{margin:0 0 4px;overflow-wrap:anywhere;word-break:break-word}@media(max-width:680px){.msg-project-update-grid{grid-template-columns:1fr}.msg-project-update-head{align-items:flex-start;flex-direction:column}.msg-project-update-chip{max-width:100%}}.msg-content-agent{font-size:14px;line-height:1.65;color:var(--text);word-wrap:break-word}.msg-content-agent h1,.msg-content-agent h2,.msg-content-agent h3,.msg-content-agent h4,.msg-content-agent h5,.msg-content-agent h6{margin:0 0 10px;line-height:1.35}.msg-content-agent p{margin:0 0 8px}.msg-content-agent p:last-child{margin-bottom:0}.msg-content-agent ul,.msg-content-agent ol{margin:4px 0 8px;padding-left:20px}.msg-content-agent li{margin-bottom:3px;line-height:1.55}.msg-content-agent pre{background:var(--bg);padding:10px 14px;border-radius:var(--radius-xs);border:1px solid var(--border);overflow-x:auto;font-size:12px;line-height:1.5;margin:8px 0}.msg-content-agent code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:12px;background:var(--accent-soft);padding:2px 6px;border-radius:4px;color:var(--accent)}.msg-content-agent pre code{background:transparent;padding:0;color:var(--text)}.msg-content-agent blockquote{margin:8px 0;padding:6px 14px;border-left:3px solid var(--accent-soft);color:var(--text-secondary);background:#0000000a;border-radius:0 var(--radius-xs) var(--radius-xs) 0}.msg-content-agent table{border-collapse:collapse;margin:8px 0;font-size:13px;width:100%}.msg-content-agent th,.msg-content-agent td{border:1px solid var(--border);padding:6px 12px;text-align:left}.msg-content-agent th{background:var(--bg);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.msg-content-agent strong{color:var(--text)}.msg-content-agent a{color:var(--accent);text-decoration:none}.msg-content-agent a:hover{text-decoration:underline}.msg-content-agent hr{border:none;border-top:1px solid var(--border);margin:12px 0}.msg-content-user{background:var(--accent);color:#fff;padding:10px 16px;border-radius:18px 18px 4px;font-size:14px;line-height:1.5;word-wrap:break-word;white-space:pre-wrap;box-shadow:0 1px 3px #0000001a}.msg-content-user-markdown{color:inherit;font-size:inherit;line-height:inherit}.msg-content-user-markdown h1,.msg-content-user-markdown h2,.msg-content-user-markdown h3,.msg-content-user-markdown h4,.msg-content-user-markdown h5,.msg-content-user-markdown h6{margin:0 0 8px;line-height:1.35;color:inherit}.msg-content-user-markdown p{margin:0 0 8px}.msg-content-user-markdown p:last-child{margin-bottom:0}.msg-content-user-markdown ul,.msg-content-user-markdown ol{margin:4px 0 8px;padding-left:20px}.msg-content-user-markdown li{margin-bottom:3px;line-height:1.5}.msg-content-user-markdown strong{color:inherit}.msg-content-user-markdown a{color:inherit;text-decoration:underline}.msg-content-user-markdown code{background:#ffffff24;color:inherit;border-radius:4px;padding:.08em .35em;font-size:.92em}.msg-content-user-markdown pre{background:#00000029;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-xs);padding:10px 12px;margin:8px 0;overflow-x:auto}.msg-content-user-markdown pre code{background:transparent;border:none;padding:0}.msg-meta-user{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;opacity:0;transition:opacity .15s}.msg-row.user:hover .msg-meta-user{opacity:1}.msg-card-actions{display:flex;gap:2px;margin-top:4px;padding-top:0;height:0;overflow:hidden;opacity:0;transition:opacity .15s,height .15s}.msg-row:hover .msg-card-actions{opacity:1;height:26px}.msg-action-btn{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px;font-family:inherit;transition:all .12s}.msg-action-btn:hover{background:var(--surface);color:var(--text)}.agent-working-row{animation:msg-enter .2s ease-out}.agent-working-row .progress-block{border:1px dashed var(--border-hover);background:transparent}.ptl-block{display:flex;flex-direction:column;gap:0;animation:ptl-enter .2s ease-out}@keyframes ptl-enter{0%{opacity:0}to{opacity:1}}.ptl-live{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:6px;font-size:12px;font-weight:500}.ptl-live-think{background:var(--accent-soft);color:var(--accent)}.ptl-live-tool{background:#34d3990f;color:var(--green)}.ptl-live-icon{display:flex;align-items:center;flex-shrink:0}.ptl-live-think .ptl-live-icon{animation:ptl-spin 3s linear infinite}@keyframes ptl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptl-live-text{white-space:nowrap}.ptl-live-tool-name{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:600;background:#34d3991a;padding:2px 8px;border-radius:4px}.ptl-live-shimmer{flex:1;height:2px;min-width:32px;border-radius:1px;background:linear-gradient(90deg,transparent 0%,currentColor 50%,transparent 100%);opacity:.25;background-size:200% 100%;animation:ptl-shimmer 1.5s ease-in-out infinite}@keyframes ptl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ptl-live-elapsed{font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-secondary);white-space:nowrap}.ptl-last-tool-summary{display:flex;align-items:baseline;gap:6px;padding:4px 12px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid rgba(128,128,128,.08)}.ptl-last-tool-label{font-weight:600;white-space:nowrap;color:var(--green);font-size:10px;text-transform:uppercase;letter-spacing:.3px}.ptl-last-tool-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptl-autonomy-card{border-left-color:var(--yellow)}.ptl-autonomy-detail{color:var(--text-secondary);font-size:11px;padding:4px 8px}.task-runtime-metric-approval{color:var(--yellow);font-weight:600}.ptl-completion{display:flex;align-items:center;gap:6px;padding:6px 12px;margin-top:4px;border-radius:6px;font-size:11px;font-weight:600}.ptl-completion-icon{font-size:13px;line-height:1}.ptl-completion-done{color:var(--green);background:#10b98114}.ptl-completion-failed{color:var(--red);background:#ef444414}.ptl-completion-cancelled{color:var(--text-secondary);background:#8080800f}.ptl-expand{display:flex;align-items:center;gap:4px;border:none;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;padding:4px 12px;margin-bottom:2px;transition:color .12s}.ptl-expand:hover{color:var(--accent)}.ptl-timeline{display:flex;flex-direction:column;padding-left:2px}.ptl-entry{display:flex;gap:0;min-height:30px;animation:ptl-entry-in .18s ease-out}@keyframes ptl-entry-in{0%{opacity:0}to{opacity:1}}.ptl-connector{display:flex;flex-direction:column;align-items:center;width:26px;flex-shrink:0}.ptl-dot{width:22px;height:22px;border-radius:6px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s,background .2s}.ptl-dot svg{width:12px;height:12px}.ptl-entry:hover .ptl-dot{border-color:currentColor;background:color-mix(in srgb,currentColor 6%,var(--surface))}.ptl-line{width:1px;flex:1;background:var(--border);min-height:8px}.ptl-entry-last .ptl-line{display:none}.ptl-content{flex:1;min-width:0;padding:2px 0 8px 8px}.ptl-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-height:22px}.ptl-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.ptl-tool-badge{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:600;background:#34d39914;color:var(--green);padding:1px 7px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.ptl-summary{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.ptl-tool-card{width:100%;min-width:0;background:color-mix(in srgb,var(--surface) 78%,#d9dde5 22%);border:1px solid var(--border);border-radius:10px;overflow:hidden}.ptl-tool-toggle{width:100%;border:none;background:transparent;padding:8px 10px;text-align:left}.ptl-tool-toggle.clickable{cursor:pointer}.ptl-tool-toggle.clickable:hover{background:color-mix(in srgb,var(--surface) 70%,#e7ebf2 30%)}.ptl-tool-chevron{margin-left:auto;color:var(--text-secondary);display:inline-flex;align-items:center}.ptl-tool-card-detail{border-top:1px solid var(--border);padding:9px 10px 10px;margin:0;font-size:11px;color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:auto;max-width:100%;font-family:JetBrains Mono,SF Mono,monospace;background:color-mix(in srgb,var(--surface) 86%,#f2f4f8 14%)}.ptl-thinking-detail{font-family:inherit;font-size:12px;line-height:1.6;color:var(--text);max-height:300px;overflow-y:auto}.ptl-time{font-size:10px;color:var(--text-secondary);opacity:.5;flex-shrink:0;white-space:nowrap}.ptl-detail{font-size:11px;color:var(--text-secondary);opacity:.7;margin-top:2px;padding-left:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:JetBrains Mono,SF Mono,monospace;max-width:400px}.ckpt-escalation{border-color:color-mix(in srgb,var(--yellow) 55%,var(--border) 45%)}.ckpt-icon-escalation{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 14%,transparent)}.ckpt-escalation-body{display:flex;flex-direction:column;gap:6px;margin-top:10px}.ckpt-escalation-line{font-size:12px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.ckpt-escalation-actions{flex-wrap:wrap}.ckpt-escalation-hint{margin-top:10px;font-size:11px;color:var(--text-secondary)}.agent-working-row .ptl-block{border:1px dashed var(--border-hover);border-radius:var(--radius-sm);padding:10px 12px;background:transparent}.code-block-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin:8px 0}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;background:var(--surface);border-bottom:1px solid var(--border)}.code-block-lang{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.code-block-copy{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;font-family:inherit;display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;transition:all .12s}.code-block-copy:hover{color:var(--text);background:var(--surface-hover)}.code-block-wrap pre{margin:0;border:none;border-radius:0;background:var(--bg)!important}.msg-composer{padding:4px 24px 16px;flex-shrink:0;max-width:820px;width:100%;margin:0 auto}.msg-composer .composer-input-area{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s,box-shadow .2s;box-shadow:0 2px 8px #0000000f}.msg-composer.focused .composer-input-area{border-color:var(--accent);box-shadow:0 2px 12px #00000014,0 0 0 3px var(--accent-glow)}.msg-composer .composer-input-area textarea{width:100%;padding:14px 16px 0;border:none;background:transparent;color:var(--text);font-size:14px;font-family:inherit;outline:none;resize:none;min-height:24px;max-height:200px;line-height:1.5}.msg-composer .composer-input-area textarea::placeholder{color:var(--text-secondary)}.composer-bottom{display:flex;align-items:center;gap:8px;padding:6px 8px 8px 16px}.composer-config-group{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:18px;border:1px solid color-mix(in srgb,var(--border) 78%,var(--accent-soft) 22%);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,white 12%),color-mix(in srgb,var(--surface) 86%,var(--bg-elevated) 14%));box-shadow:inset 0 1px #ffffff14,0 10px 20px #0f172a14;min-width:0;flex-shrink:0}.composer-config-divider{width:1px;height:24px;background:color-mix(in srgb,var(--border) 72%,transparent 28%);border-radius:999px;flex-shrink:0}.composer-mode-inline{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-shrink:0;padding:0 4px}.composer-mode-inline-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.composer-mode-inline[data-kind=mode] .composer-mode-inline-label{color:color-mix(in srgb,var(--accent) 74%,var(--text-secondary) 26%)}.composer-mode-inline[data-kind=agent] .composer-mode-inline-label{color:color-mix(in srgb,var(--yellow) 78%,var(--text-secondary) 22%)}.composer-mode-inline[data-kind=org] .composer-mode-inline-label{color:color-mix(in srgb,var(--green) 74%,var(--text-secondary) 26%)}.composer-mode-select-wrap{position:relative;display:inline-flex;align-items:center}.composer-mode-select-wrap:after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);transform:translateY(-65%) rotate(45deg);pointer-events:none}.composer-mode-select{appearance:none;min-height:30px;max-width:210px;padding:5px 28px 5px 12px;border:1px solid transparent;border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);color:var(--text);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.composer-mode-select:hover{border-color:color-mix(in srgb,var(--border-hover) 70%,var(--accent-soft) 30%);background:color-mix(in srgb,var(--surface-hover) 76%,var(--bg-elevated) 24%)}.composer-mode-select:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 52%,var(--border) 48%);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-soft) 78%,transparent 22%)}.composer-mode-select:disabled{opacity:.5;cursor:default}.composer-mode-inline[data-kind=org] .composer-mode-select{max-width:260px}.composer-hint{font-size:10px;color:var(--text-secondary);opacity:.5;flex:1}.composer-mode{font-size:10px;font-weight:600;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--surface) 72%,var(--bg-elevated) 28%);color:var(--text);flex-shrink:0}.composer-mode[data-kind=mode]{color:var(--accent)}.composer-mode[data-kind=agent]{color:var(--yellow)}.composer-config-group[data-locked=true]{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 94%,transparent 6%),color-mix(in srgb,var(--surface) 92%,var(--bg-elevated) 8%));border-color:color-mix(in srgb,var(--border) 90%,transparent 10%);box-shadow:none}.composer-mode-chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent 22%);background:color-mix(in srgb,var(--surface) 60%,var(--bg-elevated) 40%);font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;cursor:default;outline:none;transition:border-color .15s,background .15s}.composer-mode-chip:before{content:"";position:absolute;bottom:100%;left:-8px;right:-8px;height:12px;background:transparent;pointer-events:none}.composer-mode-chip:hover:before,.composer-mode-chip:focus-within:before{pointer-events:auto}.composer-mode-chip:hover,.composer-mode-chip:focus-visible{border-color:color-mix(in srgb,var(--border-hover) 78%,var(--accent-soft) 22%);background:color-mix(in srgb,var(--surface-hover) 70%,var(--bg-elevated) 30%)}.composer-mode-chip[data-kind=mode]{color:color-mix(in srgb,var(--accent) 92%,var(--text) 8%)}.composer-mode-chip[data-kind=agent]{color:color-mix(in srgb,var(--yellow) 88%,var(--text) 12%)}.composer-mode-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:6px;background:color-mix(in srgb,currentColor 14%,transparent 86%);color:currentColor;flex-shrink:0;opacity:.85}.composer-mode-chip-label{letter-spacing:.01em}.composer-mode-chip-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:280px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:11px;font-weight:400;line-height:1.45;letter-spacing:0;text-align:left;white-space:normal;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .14s ease,transform .14s ease,visibility .14s ease;z-index:20}.composer-mode-chip-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--bg-elevated);filter:drop-shadow(0 1px 0 var(--border))}.composer-mode-chip:hover .composer-mode-chip-popover,.composer-mode-chip:focus-visible .composer-mode-chip-popover,.composer-mode-chip:focus-within .composer-mode-chip-popover{opacity:1;pointer-events:auto;visibility:visible;transform:translate(-50%) translateY(0)}.composer-mode-chip-popover-title{font-size:11px;font-weight:600;color:var(--text);letter-spacing:.01em}.composer-mode-chip-popover-body{font-size:11px;color:var(--text-secondary)}.composer-mode-chip-popover-body strong{color:var(--text);font-weight:600}.composer-mode-chip-popover-divider{height:1px;margin:4px -12px 2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--border) 80%,transparent 20%) 16%,color-mix(in srgb,var(--border) 80%,transparent 20%) 84%,transparent 100%)}.composer-mode-chip-popover-action-title{margin-top:2px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.composer-mode-chip-popover-actions{display:flex;flex-direction:column;gap:4px;margin:2px -4px -2px}.composer-mode-chip-popover-action{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:11px;text-align:left;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.composer-mode-chip-popover-action:hover,.composer-mode-chip-popover-action:focus-visible{background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface) 65%);border-color:color-mix(in srgb,var(--accent) 36%,transparent 64%);outline:none}.composer-mode-chip-popover-action:active{transform:scale(.985)}.composer-mode-chip-popover-action-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);color:var(--accent);flex-shrink:0;transition:background .14s ease,color .14s ease}.composer-mode-chip-popover-action:hover .composer-mode-chip-popover-action-icon,.composer-mode-chip-popover-action:focus-visible .composer-mode-chip-popover-action-icon{background:color-mix(in srgb,var(--accent) 18%,var(--surface) 82%);color:var(--accent)}.composer-mode-chip-popover-action-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.composer-mode-chip-popover-action-label{font-size:11.5px;font-weight:600;color:var(--text);line-height:1.25}.composer-mode-chip-popover-action-desc{font-size:10px;color:var(--text-secondary);line-height:1.3}.composer-mode-chip-popover-action-arrow{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text-secondary);opacity:.6;transform:translate(-2px);transition:transform .16s ease,opacity .16s ease,color .16s ease;flex-shrink:0}.composer-mode-chip-popover-action:hover .composer-mode-chip-popover-action-arrow,.composer-mode-chip-popover-action:focus-visible .composer-mode-chip-popover-action-arrow{opacity:1;color:var(--accent);transform:translate(0)}@container ctxpanel (max-width: 540px){.composer-mode-chip-popover{left:auto;right:0;transform:translateY(4px)}.composer-mode-chip-popover:after{left:auto;right:16px;transform:none}.composer-mode-chip:hover .composer-mode-chip-popover,.composer-mode-chip:focus-visible .composer-mode-chip-popover,.composer-mode-chip:focus-within .composer-mode-chip-popover{transform:translateY(0)}}.composer-send-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.composer-send-btn:disabled{opacity:.3;cursor:default}.composer-send-btn:not(:disabled):hover{filter:brightness(1.15);transform:scale(1.05)}@container ctxpanel (max-width: 540px){.composer-bottom{display:grid;grid-template-columns:36px minmax(0,1fr) 32px 32px;grid-template-areas:"attach hint context send" "config config config config";align-items:center;row-gap:8px;column-gap:8px}.composer-config-group{grid-area:config;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;justify-content:stretch;padding:6px;border-radius:16px}.composer-mode-inline{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0;padding:0}.composer-mode-select-wrap{width:100%;min-width:0}.composer-mode-select{max-width:none;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.composer-config-divider{height:28px}.composer-attach-btn{grid-area:attach}.composer-hint{grid-area:hint;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-context-ring{grid-area:context;justify-self:end}.composer-send-btn{grid-area:send;justify-self:end}}@media(max-width:760px){.composer-bottom{display:grid;grid-template-columns:36px minmax(0,1fr) 32px 32px;grid-template-areas:"attach hint context send" "config config config config";align-items:center;row-gap:8px;column-gap:8px}.composer-config-group{grid-area:config;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;justify-content:stretch}.composer-mode-inline{display:grid;grid-template-columns:auto minmax(0,1fr);min-width:0}.composer-mode-select-wrap,.composer-mode-select{width:100%;min-width:0;max-width:none}.composer-attach-btn{grid-area:attach}.composer-hint{grid-area:hint;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-context-ring{grid-area:context;justify-self:end}.composer-send-btn{grid-area:send;justify-self:end}}@container ctxpanel (max-width: 430px){.msg-composer{padding-left:14px;padding-right:14px}.msg-composer .composer-input-area textarea{padding:13px 14px 2px}.composer-bottom{grid-template-columns:36px minmax(0,1fr) 32px;grid-template-areas:"attach hint send" "config config config"}.composer-context-ring{display:none}.composer-config-group{grid-template-columns:1fr;gap:6px;border-radius:14px}.composer-config-divider{display:none}.composer-mode-inline{grid-template-columns:minmax(68px,auto) minmax(0,1fr);gap:8px;width:100%}}@media(max-width:430px){.composer-bottom{grid-template-columns:36px minmax(0,1fr) 32px;grid-template-areas:"attach hint send" "config config config"}.composer-context-ring{display:none}.composer-config-group{grid-template-columns:1fr}.composer-config-divider{display:none}.composer-mode-inline{grid-template-columns:minmax(68px,auto) minmax(0,1fr);width:100%}}.composer-status{display:flex;align-items:center;gap:8px;padding:8px 16px;margin-bottom:6px;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:12px;box-shadow:0 1px 4px #0000000a}.composer-status-indicator{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 6px #10b98166}.composer-status-text{flex:1;color:var(--text-secondary);font-weight:500;letter-spacing:.01em}.composer-stop-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--red);border-radius:var(--radius-xs);background:transparent;color:var(--red);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.composer-stop-btn:hover{background:var(--red);color:#fff}.composer-stop-btn:disabled{opacity:.45;cursor:not-allowed}.composer-stop-btn:disabled:hover{background:transparent;color:var(--red)}.msg-composer .composer-input-area textarea:disabled{cursor:not-allowed;opacity:.5}.msg-composer .composer-input-area textarea:disabled::placeholder{font-style:italic}.msg-composer.working .composer-input-area{border-color:var(--green);box-shadow:0 0 0 2px #34d39914}.chat-main.chat-main-split{flex:1}.child-sessions-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid var(--border);min-width:300px;max-width:50%}.child-session-panel{display:flex;flex-direction:column;border-bottom:1px solid var(--border);min-height:200px;max-height:400px}.child-session-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px}.child-session-agent{font-weight:700;color:var(--accent)}.child-session-title{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-session-status{font-size:10px;padding:2px 6px;border-radius:999px;background:var(--bg);border:1px solid var(--border)}.child-session-status.status-running{color:var(--yellow);border-color:var(--yellow)}.child-session-status.status-done{color:var(--green);border-color:var(--green)}.child-session-status.status-failed{color:var(--red);border-color:var(--red)}.child-session-messages{flex:1;overflow-y:auto;min-height:0}.awp{display:flex;flex-direction:column;border-left:1px solid var(--border);width:clamp(280px,30vw,420px);min-width:280px;min-height:0;background:var(--bg);overflow:hidden}.awp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.awp-title{font-size:12px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px}.awp-count{font-weight:400;font-size:10px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:999px;border:1px solid var(--border)}.awp-controls{display:flex;align-items:center;gap:4px}.awp-filter{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer}.awp-filter:focus{outline:1px solid var(--accent)}.awp-search-toggle{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center}.awp-search-toggle:hover,.awp-search-toggle.active{color:var(--accent);background:var(--bg)}.awp-search-toggle svg{width:14px;height:14px}.awp-search-bar{padding:4px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.awp-search-input{width:100%;font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.awp-search-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.awp-list{flex:1 1 260px;min-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.awp-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;border:none;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);background:transparent;color:var(--text);cursor:pointer;text-align:left;font-size:11px;transition:background .12s}.awp-row:hover{background:var(--bg-elevated)}.awp-row-selected{background:color-mix(in srgb,var(--accent) 8%,transparent);border-left:2px solid var(--accent);padding-left:10px}.awp-row-active .awp-row-activity{color:var(--accent);font-weight:600}.awp-dot{width:6px;height:6px;border-radius:50%;background:var(--text-secondary);flex-shrink:0;opacity:.5}.awp-dot-active{background:var(--green);opacity:1;box-shadow:0 0 4px var(--green);animation:awp-pulse 2s ease-in-out infinite}@keyframes awp-pulse{0%,to{opacity:1}50%{opacity:.5}}.awp-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.awp-row-name{font-weight:600;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.awp-row-projection{font-size:9px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.awp-row-activity{font-size:10px;color:var(--text-secondary);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.awp-row-time{font-size:9px;color:var(--text-muted, var(--text-secondary));opacity:.6;white-space:nowrap;flex-shrink:0;min-width:20px;text-align:right}.awp-empty{padding:16px;text-align:center;font-size:11px;color:var(--text-secondary)}.awp-detail{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border);overflow:hidden}.awp-detail-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.awp-detail-identity{display:flex;align-items:center;gap:8px;min-width:0}.awp-detail-avatar{width:28px;height:28px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.awp-detail-meta{display:flex;flex-direction:column;min-width:0}.awp-detail-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.awp-detail-projection{font-size:10px;color:var(--accent);text-transform:capitalize}.awp-detail-role{font-size:10px;color:var(--green)}.awp-detail-employee{font-size:10px;color:var(--text-secondary)}.awp-detail-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.awp-detail-expand,.awp-detail-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.awp-detail-expand:hover,.awp-detail-close:hover{color:var(--text);background:var(--bg)}.awp-detail-expand svg,.awp-detail-close svg{width:14px;height:14px}.awp-detail-body{flex:1;overflow-y:auto;padding:8px 12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.awp-detail-section{margin-bottom:12px}.awp-detail-section-label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.awp-detail-section-label svg{width:12px;height:12px}.awp-detail-handoff{font-size:11px;color:var(--text-secondary);max-height:220px;overflow-y:auto}.awp-detail-handoff-markdown{padding:2px 0}.awp-detail-empty{font-size:11px;color:var(--text-secondary);text-align:center;padding:12px}.awp-terminal-icon{width:16px;flex-shrink:0;font-size:11px;font-weight:700;text-align:center;line-height:1}.awp-terminal-done{color:var(--green)}.awp-terminal-failed{color:var(--red)}.awp-terminal-cancelled{color:var(--text-secondary);opacity:.6}.awp-row-terminal{opacity:.7}.awp-row-terminal:hover{opacity:.9}.awp-row-terminal .awp-row-activity{font-weight:500}.awp-row-terminal.awp-terminal-done .awp-row-activity{color:var(--green)}.awp-row-terminal.awp-terminal-failed .awp-row-activity{color:var(--red)}.awp-result-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:8px 12px 12px;border-radius:8px;font-size:12px;font-weight:500}.awp-result-icon{font-size:14px;font-weight:700;line-height:1}.awp-result-done{background:#10b9811a;color:var(--green);border:1px solid rgba(16,185,129,.2)}.awp-result-failed{background:#ef44441a;color:var(--red);border:1px solid rgba(239,68,68,.2)}.awp-result-cancelled{background:#80808014;color:var(--text-secondary);border:1px solid var(--border)}.awp-detail-avatar.awp-terminal-done{border:2px solid var(--green)}.awp-detail-avatar.awp-terminal-failed{border:2px solid var(--red)}.awp-detail-avatar.awp-terminal-cancelled{border:2px solid var(--text-secondary);opacity:.6}.kanban-status-badge{font-size:10px;font-weight:600;display:inline-flex;align-items:center;margin-left:auto}@media(max-width:1024px){.session-sidebar{width:60px;min-width:60px}.session-new-btn span{display:none}.session-new-btn{justify-content:center;padding:10px}.session-search-wrap,.session-group-label,.session-item-content{display:none}.session-item{padding:10px;justify-content:center;margin:1px 4px;width:calc(100% - 8px);border-left:none}.session-item.active{border-left:none}.session-dot{width:10px;height:10px}.session-nav-btn span{display:none}.session-nav-btn{justify-content:center}.session-expand-btn,.session-children,.session-child-count{display:none}.session-tree-primary{justify-content:center}.session-delete-btn{display:none}}@media(max-width:700px){.chat-page{flex-direction:column}.session-sidebar{width:100%;max-height:52px;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow:hidden}.session-new-btn{margin:8px;padding:6px 12px}.session-search-wrap{display:none}.session-list{display:flex;overflow-x:auto;padding:4px 8px;gap:4px;flex-direction:row}.session-list.session-list-virtualized{display:block;overflow-x:hidden;overflow-y:auto;padding:4px 8px}.session-group{display:flex;gap:2px;margin-bottom:0}.session-group-label{display:none}.session-item{white-space:nowrap;padding:4px 10px;border-radius:999px;border:1px solid var(--border);flex-shrink:0;margin:0;width:auto}.session-item.active{border-color:var(--accent);background:var(--accent-soft);border-left:none}.session-item-meta,.session-nav-btn,.session-expand-btn,.session-children,.session-child-count,.session-item.session-item-child{display:none}.session-tree-primary{flex-shrink:0}.msg-row{padding:8px 16px}.msg-body-user{max-width:85%}.msg-composer{padding:0 12px 12px}.msg-composer .composer-input-area textarea{font-size:16px}}.ckpt-panel{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;animation:msg-enter .2s ease-out}.ckpt-recruitment{border-left:3px solid var(--accent)}.ckpt-staffing{border-left:3px solid var(--green)}.ckpt-reorg{border-left:3px solid var(--yellow)}.ckpt-user-input{border-left:3px solid var(--blue)}.ckpt-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.ckpt-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ckpt-icon-recruit{background:var(--accent-soft);color:var(--accent)}.ckpt-icon-staffing{background:#34d3991a;color:var(--green)}.ckpt-icon-reorg{background:#fbbf241a;color:var(--yellow)}.ckpt-icon-user-input{background:#3b82f61a;color:var(--blue)}.ckpt-title{font-size:13px;font-weight:600;color:var(--text);flex:1}.ckpt-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);flex-shrink:0}.ckpt-badge-profile{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.ckpt-badge-responded{color:var(--green);border-color:var(--green);background:#34d3990f}.ckpt-badge-scope{color:var(--yellow);border-color:var(--yellow);background:#fbbf240f}.ckpt-badge-proposed_hire{color:var(--accent);border-color:var(--accent)}.ckpt-badge-existing_staff{color:var(--green);border-color:var(--green)}.ckpt-badge-fallback_role_only{color:var(--text-secondary)}.ckpt-badge-direct_role_execution{color:var(--blue);border-color:var(--blue)}.ckpt-badge-employee{color:var(--green);border-color:var(--green)}.ckpt-badge-template{color:var(--accent);border-color:var(--accent)}.ckpt-badge-fallback{color:var(--text-secondary)}.ckpt-summary{padding:10px 14px;font-size:13px;line-height:1.55;color:var(--text);border-bottom:1px solid var(--border);background:var(--bg)}.ckpt-rationale{padding:6px 14px;font-size:12px;line-height:1.5;color:var(--text-secondary);font-style:italic}.ckpt-recruitment-reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.ckpt-recruitment-reason{min-width:0;padding:10px 14px;background:var(--bg)}.ckpt-recruitment-reason .ckpt-rationale{padding:0}.ckpt-proposals{display:flex;flex-direction:column;gap:1px;background:var(--border)}.ckpt-proposal-card{padding:10px 14px;background:var(--bg)}.ckpt-proposal-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ckpt-role-name{font-size:13px;font-weight:600;color:var(--text);font-family:JetBrains Mono,SF Mono,monospace}.ckpt-role-labels{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.ckpt-field-tag{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.ckpt-candidate,.ckpt-employee{padding:8px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);margin-top:4px}.ckpt-cand-name,.ckpt-emp-name{font-size:13px;font-weight:600;color:var(--text)}.ckpt-cand-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.ckpt-cand-category{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.ckpt-domain-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:#34d39914;color:var(--green);font-weight:500}.ckpt-emp-row{display:flex;align-items:center;gap:8px}.ckpt-emp-id{font-size:11px;color:var(--text-secondary);font-family:JetBrains Mono,SF Mono,monospace}.ckpt-exp-bar-wrap{display:flex;align-items:center;gap:8px;margin-top:6px;height:16px;background:var(--bg);border-radius:8px;overflow:hidden;border:1px solid var(--border);position:relative}.ckpt-exp-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:8px 0 0 8px;transition:width .5s ease-out;min-width:4px}.ckpt-exp-label{position:absolute;right:6px;font-size:9px;font-weight:700;color:var(--text)}.ckpt-agent-picker{display:flex;align-items:center;gap:10px;margin-top:10px}.ckpt-recruiter-agent{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 72%,var(--bg))}.ckpt-agent-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:0;flex:0 0 auto}.ckpt-agent-select{min-width:180px;max-width:100%;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;line-height:1.2}.ckpt-agent-select:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--border)}.ckpt-staffing-card{min-width:0;padding:10px 14px;background:var(--bg)}.ckpt-staffing-selected{padding:8px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);margin-bottom:8px}.ckpt-staffing-search{width:100%;padding:7px 10px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;font-family:inherit;outline:none}.ckpt-staffing-search:focus{border-color:var(--accent)}.ckpt-staffing-search:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:6px;margin-top:8px}.ckpt-staffing-option{min-width:0;min-height:42px;padding:6px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:3px;transition:border-color .12s,background .12s}.ckpt-staffing-option:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover)}.ckpt-staffing-option.active{border-color:var(--green);background:#34d39914}.ckpt-staffing-option:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-option-kind{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.ckpt-staffing-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}@media(max-width:640px){.ckpt-recruiter-agent,.ckpt-agent-picker{align-items:stretch;flex-direction:column;gap:6px}.ckpt-agent-select{width:100%;min-width:0}}.ckpt-reorg-badges{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border)}.ckpt-changes-section{padding:8px 14px;border-top:1px solid var(--border)}.ckpt-changes-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ckpt-change-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12px}.ckpt-change-action{font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase}.ckpt-action-add{background:#34d3991a;color:var(--green)}.ckpt-action-remove{background:#f871711a;color:var(--red)}.ckpt-action-replace{background:#fbbf241a;color:var(--yellow)}.ckpt-action-update{background:var(--accent-soft);color:var(--accent)}.ckpt-change-id{font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;font-weight:500;color:var(--text)}.ckpt-change-arrow{color:var(--text-secondary);font-size:12px}.ckpt-change-reason{color:var(--text-secondary);font-size:11px;margin-left:auto;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ckpt-impact{display:flex;gap:16px;padding:8px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.ckpt-section,.ckpt-task-section{padding:10px 14px 0}.ckpt-section+.ckpt-section,.ckpt-task-section+.ckpt-task-section{border-top:1px solid rgba(148,163,184,.12);margin-top:10px}.ckpt-section-title,.ckpt-task-section-title{margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.ckpt-markdown{min-width:0;font-size:13px;line-height:1.58;color:var(--text)}.ckpt-markdown-muted{color:var(--text-secondary)}.ckpt-markdown>:first-child{margin-top:0}.ckpt-markdown>:last-child{margin-bottom:0}.ckpt-markdown p{margin:0 0 8px}.ckpt-markdown ul,.ckpt-markdown ol{margin:0 0 8px;padding-left:20px}.ckpt-markdown li+li{margin-top:4px}.ckpt-markdown code{font-size:12px;border-radius:4px;padding:1px 4px;background:var(--surface);border:1px solid var(--border)}.ckpt-markdown pre code{padding:0;border:0;background:transparent}.ckpt-task-prompt{padding:10px 14px;font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;background:var(--bg)}.ckpt-task-list{margin:0;padding-left:18px;color:var(--text)}.ckpt-task-list li+li{margin-top:6px}.ckpt-task-tags{display:flex;gap:6px;flex-wrap:wrap}.ckpt-task-note{padding:10px 14px 0;font-size:12px;line-height:1.5;color:var(--text-secondary)}.ckpt-choice-list{display:grid;gap:12px}.ckpt-choice-question{display:grid;gap:8px;min-width:0}.ckpt-question-header{font-size:13px;font-weight:700;color:var(--text)}.ckpt-choice-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ckpt-choice-option{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:flex-start;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);text-align:left;font:inherit;cursor:pointer}.ckpt-choice-option:hover{border-color:var(--accent);background:var(--surface-hover)}.ckpt-choice-option.is-selected{border-color:var(--accent);background:var(--accent-soft)}.ckpt-choice-letter{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:700}.ckpt-choice-option.is-selected .ckpt-choice-letter{background:var(--accent);border-color:var(--accent);color:#fff}.ckpt-choice-copy{display:grid;gap:3px;min-width:0}.ckpt-choice-label{font-size:12px;font-weight:700;color:var(--text)}.ckpt-choice-desc{font-size:12px;line-height:1.35;color:var(--text-secondary)}.ckpt-other-field{min-height:64px}.ckpt-runtime-details{margin:10px 14px 0;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary)}.ckpt-runtime-details summary{cursor:pointer;padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.ckpt-runtime-body{display:grid;gap:5px;padding:0 10px 10px;font-size:12px;line-height:1.45}.ckpt-actions{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface)}.ckpt-actions-inline-feedback{align-items:stretch}.ckpt-btn{padding:6px 16px;border-radius:var(--radius-xs);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:all .12s}.ckpt-btn:disabled{opacity:.4;cursor:default}.ckpt-btn-approve{background:var(--green);color:#fff;border-color:var(--green)}.ckpt-btn-approve:not(:disabled):hover{filter:brightness(1.1)}.ckpt-btn-deny{background:transparent;color:var(--red);border-color:var(--red)}.ckpt-btn-deny:hover{background:var(--red);color:#fff}.ckpt-btn-feedback{background:transparent;color:var(--accent);border-color:var(--accent)}.ckpt-btn-feedback:hover{background:var(--accent-soft)}.ckpt-btn-cancel{background:transparent;color:var(--text-secondary);border-color:var(--border)}.ckpt-btn-cancel:hover{background:var(--surface-hover)}.ckpt-feedback-area{flex:1;display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface)}.ckpt-feedback-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);font-size:12px;font-family:inherit;resize:vertical;outline:none;min-height:48px}.ckpt-feedback-input:focus{border-color:var(--accent)}.ckpt-feedback-inline-input{min-height:34px;flex:1;resize:vertical}.ckpt-feedback-btns{display:flex;gap:6px}@media(max-width:640px){.ckpt-actions-inline-feedback{flex-direction:column}}.wi-progress-card{width:100%;min-width:0;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.wi-progress-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-primary)}.wi-progress-header svg{color:var(--accent)}.wi-progress-pipeline{display:flex;align-items:center;gap:0;flex-wrap:wrap;row-gap:6px}.wi-projection-group{display:flex;align-items:center;gap:0}.wi-projection-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:500;border:1px solid var(--border);background:transparent;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s;white-space:nowrap}.wi-projection-chip:hover{background:var(--surface-hover, rgba(255, 255, 255, .04))}.wi-projection-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}.wi-projection-icon{font-size:10px;line-height:1}.wi-projection-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.wi-projection-done{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent)}.wi-projection-failed{border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.wi-projection-waiting{border-color:var(--yellow);color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,transparent)}.wi-projection-pending{color:var(--text-secondary)}@keyframes wf-pulse{0%,to{opacity:1}50%{opacity:.3}}.wi-projection-pulse{animation:wf-pulse 1.5s ease-in-out infinite}.wi-projection-connector{margin:0 4px;color:var(--text-tertiary, var(--text-secondary));font-size:12px;opacity:.6}.wi-progress-toggle{align-self:flex-start;margin-top:-2px}.wf-role-summaries{display:flex;flex-direction:column;gap:10px}.wf-role-summary{border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 92%,transparent);padding:10px 11px;display:flex;flex-direction:column;gap:10px}.wf-role-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wf-role-summary-identity{min-width:0;display:flex;flex-direction:column;gap:6px}.wf-role-summary-meta{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:11px;color:var(--text-secondary)}.wf-role-open{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:5px 9px;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .12s,color .12s,background .12s;flex-shrink:0}.wf-role-open:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface-hover)}.wf-role-summary-body{display:flex;flex-direction:column;gap:10px}.wf-role-summary-block{display:flex;flex-direction:column;gap:6px}.wf-role-summary-block-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase}.wf-role-summary-block-content{font-size:12px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.wf-role-turns{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.wf-role-turn{border-radius:6px;border:1px solid var(--border);background:var(--surface-muted, rgba(255, 255, 255, .03))}.wf-role-turn-button{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 10px;background:transparent;border:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.wf-role-turn-button:hover{background:var(--surface-hover, rgba(255, 255, 255, .06))}.wf-role-turn-column{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--surface-muted, rgba(255, 255, 255, .06));color:var(--text-secondary);white-space:nowrap}.wf-role-turn-column-todo{background:color-mix(in srgb,var(--text-secondary) 18%,transparent);color:var(--text-secondary)}.wf-role-turn-column-in_progress{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.wf-role-turn-column-in_review{background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow)}.wf-role-turn-column-done{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.wf-role-turn-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-primary)}.wf-role-turn-time{font-size:11px;color:var(--text-secondary);flex-shrink:0}.wf-role-turn-active .wf-role-turn-title{font-weight:600}.wf-role-turn-failed .wf-role-turn-column{background:#ff64642e;color:#ff9696f2}.wf-role-turn-expander{border-style:dashed;background:transparent}.wf-role-turn-expander-button{width:100%;padding:6px 10px;background:transparent;border:none;color:var(--text-secondary);font:inherit;font-size:11px;cursor:pointer;text-align:center}.wf-role-turn-expander-button:hover{color:var(--text-primary);background:var(--surface-hover, rgba(255, 255, 255, .04))}.wf-event-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding-top:4px;border-top:1px solid var(--border)}.wf-event-icon{display:flex;flex-shrink:0}.wf-event-icon svg{width:14px;height:14px}.wf-event-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-event-text strong{color:var(--text-primary);font-weight:600}.wf-event-time{flex-shrink:0;font-size:11px;opacity:.7}@media(max-width:640px){.wf-role-summary-head{flex-direction:column}.wf-role-open{width:fit-content}}.composer-attachments{display:flex;gap:10px;padding:10px 12px 6px;overflow-x:auto;scrollbar-width:thin}.attachment-chip{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 85%,transparent),color-mix(in srgb,var(--surface) 92%,transparent));border:1px solid var(--border);box-shadow:inset 0 1px #ffffff08;min-width:220px;max-width:min(320px,72vw);flex-shrink:0}.attachment-chip.error{border-color:color-mix(in srgb,var(--red) 55%,var(--border));background:color-mix(in srgb,var(--red) 10%,var(--bg-elevated))}.attachment-chip-remove{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);color:var(--text-secondary);border:none;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,color .15s ease;display:inline-flex;align-items:center;justify-content:center}.attachment-chip:hover .attachment-chip-remove,.attachment-chip-remove:focus-visible{opacity:1}.attachment-chip-remove:hover{background:color-mix(in srgb,var(--red) 16%,var(--bg-elevated));color:var(--red)}.attachment-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;cursor:pointer;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--bg-elevated) 80%,transparent)}.attachment-file-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid color-mix(in srgb,var(--border) 75%,transparent);color:var(--text);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.attachment-file-icon.tone-image{background:color-mix(in srgb,var(--green) 12%,var(--bg-elevated));color:var(--green)}.attachment-file-icon.tone-video{background:color-mix(in srgb,var(--accent) 16%,var(--bg-elevated));color:color-mix(in srgb,var(--accent) 70%,var(--text))}.attachment-file-icon.tone-pdf{background:color-mix(in srgb,var(--red) 12%,var(--bg-elevated));color:var(--red)}.attachment-file-icon.tone-office{background:color-mix(in srgb,var(--yellow) 14%,var(--bg-elevated));color:var(--yellow)}.attachment-file-icon.tone-data{background:color-mix(in srgb,var(--accent) 14%,var(--bg-elevated));color:var(--accent)}.attachment-file-icon.tone-text{background:color-mix(in srgb,var(--text-secondary) 16%,var(--bg-elevated));color:var(--text)}.attachment-file-icon.tone-code{background:color-mix(in srgb,var(--accent) 12%,var(--bg-elevated));color:color-mix(in srgb,var(--accent) 40%,var(--text))}.attachment-chip-info{display:flex;flex-direction:column;min-width:0;gap:4px}.attachment-chip-name{font-size:12px;font-weight:600;color:var(--text);line-height:1.35;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.attachment-chip-size{font-size:11px;color:var(--text-secondary)}.attachment-chip.error .attachment-chip-size{color:var(--red)}.attachment-progress-ring{position:relative;width:32px;height:32px;flex-shrink:0}.attachment-progress-ring svg{width:32px;height:32px;transform:rotate(-90deg)}.attachment-progress-track,.attachment-progress-value{fill:none;stroke-width:2.5}.attachment-progress-track{stroke:color-mix(in srgb,var(--border) 85%,transparent)}.attachment-progress-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .2s ease}.attachment-progress-ring.ready .attachment-progress-value{stroke:var(--green)}.attachment-progress-ring.error .attachment-progress-value{stroke:var(--red)}.attachment-progress-center{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--text)}.attachment-progress-ring.ready .attachment-progress-center{color:var(--green)}.attachment-progress-ring.error .attachment-progress-center{color:var(--red)}.attachment-progress-center svg{width:13px;height:13px;transform:none}.composer-attach-btn{background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid var(--border);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border-radius:10px;color:var(--text-secondary);transition:border-color .15s ease,color .15s ease,background .15s ease}.composer-attach-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-hover);background:color-mix(in srgb,var(--surface-hover) 88%,transparent)}.msg-attachments{margin-top:10px}.msg-attachment-grid{display:grid;gap:8px}.msg-attachment-grid.cols-2{grid-template-columns:1fr 1fr}.msg-attachment-image{max-width:320px;border-radius:12px;cursor:pointer;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);transition:opacity .15s ease,transform .15s ease}.msg-attachment-video{width:100%;max-width:320px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent)}.msg-attachment-image:hover{opacity:.92;transform:translateY(-1px)}.msg-attachment-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,max-content));gap:8px;margin-top:8px}.msg-attachment-file-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid color-mix(in srgb,var(--border) 85%,transparent);font-size:12px;text-decoration:none;color:var(--text);transition:background .15s ease,border-color .15s ease,transform .15s ease}.msg-attachment-file-chip:hover{background:color-mix(in srgb,var(--surface-hover) 96%,transparent);border-color:var(--border-hover);transform:translateY(-1px)}.msg-attachment-file-size{color:var(--text-secondary);font-size:11px;margin-left:4px}@media(max-width:640px){.attachment-chip{min-width:min(250px,82vw);max-width:82vw}.msg-attachment-files{grid-template-columns:1fr}}.lightbox-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:zoom-out}.lightbox-img{max-width:90vw;max-height:90vh;border-radius:8px}.session-confirm-delete{display:flex;gap:4px;flex-shrink:0;margin-left:auto;animation:msgListFadeIn .15s ease-out}.session-confirm-yes{font-size:11px;padding:1px 8px;border-radius:4px;border:none;background:#e53935;color:#fff;cursor:pointer;font-weight:600}.session-confirm-yes:hover{background:#c62828}.session-confirm-no{font-size:11px;padding:1px 6px;border-radius:4px;border:1px solid var(--border, #ddd);background:transparent;color:var(--text-secondary);cursor:pointer}.session-confirm-no:hover{background:var(--surface-hover, #f0f0f0)}@keyframes msgListFadeIn{0%{opacity:0}to{opacity:1}}.msg-list{animation:msgListFadeIn .2s ease-out}.msg-collapse-toggle{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.msg-collapse-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.code-block-omitted{display:block;padding:6px 0;color:var(--accent);font-style:italic;font-weight:500;cursor:pointer;opacity:.85;transition:opacity .12s;-webkit-user-select:none;user-select:none}.code-block-omitted:hover{opacity:1;text-decoration:underline}.code-block-collapse-btn{display:block;width:100%;padding:4px 12px;border:none;border-top:1px solid var(--border);background:var(--surface);color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;text-align:center;transition:background .12s}.code-block-collapse-btn:hover{background:var(--accent-soft)}.composer-context-ring{position:relative;width:28px;height:28px;flex-shrink:0;cursor:default}.composer-context-ring svg{width:28px;height:28px;transform:rotate(-90deg)}.composer-context-ring-track,.composer-context-ring-value{fill:none;stroke-width:2.5}.composer-context-ring-track{stroke:color-mix(in srgb,var(--border) 85%,transparent)}.composer-context-ring-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .4s ease,stroke .4s ease}.composer-context-ring.low .composer-context-ring-value{stroke:var(--yellow)}.composer-context-ring.critical .composer-context-ring-value{stroke:var(--red)}.composer-context-ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:var(--text-secondary);line-height:1;pointer-events:none}.composer-context-ring.low .composer-context-ring-label{color:var(--yellow)}.composer-context-ring.critical .composer-context-ring-label{color:var(--red)}.composer-send-btn:focus-visible,.composer-attach-btn:focus-visible,.composer-stop-btn:focus-visible,.msg-action-btn:focus-visible,.session-item:focus-visible,.awp-row:focus-visible,.awp-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wf-role-turn-tag{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:3px;background:color-mix(in srgb,var(--yellow) 22%,transparent);color:var(--yellow);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.wf-role-turn-chevron{display:inline-flex;align-items:center;color:var(--text-secondary);margin-left:4px}.wf-role-turn-expanded{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.wf-role-turn-activity{padding:8px 10px 10px;border-top:1px dashed var(--border);background:var(--surface, rgba(255, 255, 255, .02));display:flex;flex-direction:column;gap:6px}.wf-role-turn-activity-sections{display:flex;flex-direction:column;gap:8px}.wf-role-turn-activity-section{padding:6px 0 0;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.wf-role-turn-activity-section:first-child{padding-top:0;border-top:0}.wf-role-turn-activity-section-head{display:flex;align-items:center;gap:6px;margin-bottom:4px;min-width:0;font-size:11px;color:var(--text-secondary)}.wf-role-turn-activity-section-title{color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-role-turn-activity-section-role,.wf-role-turn-activity-section-count{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--border) 55%,transparent)}.wf-role-turn-empty-activity{color:var(--text-secondary);font-size:12px;padding:4px 0}.wf-role-turn-open-session{align-self:flex-start;padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer}.wf-role-turn-open-session:hover{background:var(--surface-hover, rgba(255, 255, 255, .06));color:var(--text-primary)}.awp-dot-active{background:var(--accent);opacity:1;box-shadow:0 0 4px var(--accent);animation:awp-pulse 2s ease-in-out infinite}.awp-dot-waiting{background:var(--yellow);opacity:1}.awp-dot-pending{background:var(--text-secondary);opacity:.6}.awp-dot-done{background:var(--green);opacity:1}.awp-dot-failed{background:var(--red);opacity:1}.awp-row-terminal.awp-terminal-active .awp-row-activity{color:var(--accent)}.awp-row-terminal.awp-terminal-waiting .awp-row-activity{color:var(--yellow)}.workspace-page{display:flex;flex:1;min-height:0;overflow:hidden}.workspace-board{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.project-cockpit{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 92%,var(--surface) 8%);flex-shrink:0}.project-cockpit.embedded{flex:1;padding:12px;border-bottom:none;background:transparent;overflow:auto}.project-cockpit.embedded .project-cockpit-grid--team,.project-cockpit.embedded .project-cockpit-team-grid{grid-template-columns:minmax(0,1fr)}.project-cockpit.embedded .project-cockpit-team-head{flex-direction:column;align-items:flex-start}.project-cockpit.embedded .project-cockpit-team-status{align-self:flex-start}.project-cockpit.embedded .project-cockpit-seat-row{grid-template-columns:minmax(0,1fr);align-items:flex-start}.project-cockpit.embedded .project-cockpit-metrics span,.project-cockpit.embedded .project-cockpit-summary span,.project-cockpit.embedded .project-cockpit-team-meta span,.project-cockpit.embedded .project-cockpit-seat-role,.project-cockpit.embedded .project-cockpit-seat-id{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.project-cockpit-overview{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.project-cockpit-title{display:flex;align-items:center;min-width:0;gap:8px;flex-wrap:wrap}.project-cockpit-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.project-cockpit-title strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere}.project-cockpit-stop-btn{margin-left:auto;padding:3px 12px;font-size:12px;font-weight:600;font-family:inherit;border:1px solid var(--red);border-radius:6px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);cursor:pointer;transition:background .12s}.project-cockpit-stop-btn:hover{background:color-mix(in srgb,var(--red) 20%,transparent)}.project-cockpit-metrics{display:flex;flex-wrap:wrap;gap:6px}.project-cockpit-metrics span,.project-cockpit-summary span{border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:12px;background:var(--surface)}.project-cockpit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}.project-cockpit-grid--team{grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr)}.project-cockpit-panel{display:flex;flex-direction:column;min-width:0;min-height:180px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.project-cockpit-panel--wide{min-width:0}.project-cockpit-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.project-cockpit-panel h3{margin:0;font-size:13px}.project-cockpit-summary{display:flex;flex-direction:column;gap:8px;padding:10px 12px;min-width:0;overflow:auto}.project-cockpit-inline-text{margin:0;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.project-cockpit-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;padding:10px 12px;overflow:auto}.project-cockpit-team-card{display:flex;flex-direction:column;gap:10px;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);padding:10px}.project-cockpit-team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.project-cockpit-team-title{min-width:0;display:flex;flex-direction:column;gap:4px}.project-cockpit-team-title strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.project-cockpit-team-title span{font-size:11px;color:var(--text-secondary);overflow-wrap:anywhere}.project-cockpit-team-status,.project-cockpit-seat-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;text-transform:uppercase;border:1px solid var(--border);flex-shrink:0}.project-cockpit-team-meta{display:flex;flex-wrap:wrap;gap:6px}.project-cockpit-team-meta span{border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:11px;color:var(--text-secondary);background:var(--surface)}.project-cockpit-seat-list{display:flex;flex-direction:column;gap:8px}.project-cockpit-seat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--surface)}.project-cockpit-seat-role,.project-cockpit-seat-id{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.project-cockpit-seat-id{color:var(--text-secondary)}.project-cockpit-team-status.status-running,.project-cockpit-seat-status.status-running,.project-cockpit-team-status.status-active,.project-cockpit-seat-status.status-active,.project-cockpit-team-status.status-ready,.project-cockpit-seat-status.status-ready{color:var(--green);border-color:color-mix(in srgb,var(--green) 55%,var(--border) 45%);background:color-mix(in srgb,var(--green) 10%,transparent)}.project-cockpit-team-status.status-blocked,.project-cockpit-seat-status.status-blocked,.project-cockpit-team-status.status-awaiting-review,.project-cockpit-seat-status.status-awaiting-review,.project-cockpit-team-status.status-awaiting-peer,.project-cockpit-seat-status.status-awaiting-peer,.project-cockpit-team-status.status-awaiting_review,.project-cockpit-seat-status.status-awaiting_review,.project-cockpit-team-status.status-awaiting-manager-review,.project-cockpit-seat-status.status-awaiting-manager-review,.project-cockpit-team-status.status-awaiting-human-review,.project-cockpit-seat-status.status-awaiting-human-review{color:var(--yellow);border-color:color-mix(in srgb,var(--yellow) 55%,var(--border) 45%);background:color-mix(in srgb,var(--yellow) 10%,transparent)}.project-cockpit-team-status.status-failed,.project-cockpit-seat-status.status-failed,.project-cockpit-team-status.status-error,.project-cockpit-seat-status.status-error{color:var(--red);border-color:color-mix(in srgb,var(--red) 55%,var(--border) 45%);background:color-mix(in srgb,var(--red) 10%,transparent)}.project-cockpit-team-status.status-idle,.project-cockpit-seat-status.status-idle,.project-cockpit-team-status.status-cold,.project-cockpit-seat-status.status-cold,.project-cockpit-team-status.status-paused,.project-cockpit-seat-status.status-paused,.project-cockpit-team-status.status-done,.project-cockpit-seat-status.status-done{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent) 10%,transparent)}@media(max-width:1280px){.project-cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cockpit-grid--team{grid-template-columns:minmax(0,1fr)}}@media(max-width:780px){.project-cockpit-grid,.project-cockpit-seat-row{grid-template-columns:minmax(0,1fr)}}.workspace-page.panel-maximized .workspace-board{display:none}.ctx-panel{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--border);background:var(--bg-elevated);overflow:hidden;transition:width .15s ease;position:relative;container-type:inline-size;container-name:ctxpanel}.ctx-panel.collapsed{width:0!important;border-left:none;overflow:hidden}.ctx-panel.maximized{flex:1}.ctx-resize-handle{width:4px;cursor:col-resize;background:transparent;flex-shrink:0;transition:background .15s}.ctx-resize-handle:hover,.ctx-resize-handle.active{background:var(--accent);opacity:.5}.ctx-collapse-strip{width:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;border-left:1px solid var(--border);opacity:.5;transition:opacity .15s}.ctx-collapse-strip:hover{opacity:1}.ctx-header{display:flex;align-items:center;padding:0 8px;border-bottom:1px solid var(--border);height:36px;gap:2px;flex-shrink:0;min-width:0}.ctx-header-tabs{display:flex;align-items:center;gap:2px;min-width:0;flex:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(to right,transparent 0,black 6px,black calc(100% - 14px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 6px,black calc(100% - 14px),transparent 100%)}.ctx-header-tabs::-webkit-scrollbar{display:none}.ctx-tab{background:none;border:none;color:var(--text-secondary);font-size:12px;padding:6px 10px;cursor:pointer;border-radius:var(--radius-xs);transition:color .15s,background .15s;flex-shrink:0;white-space:nowrap;font-family:inherit}.ctx-tab:hover{color:var(--text);background:var(--surface-hover)}.ctx-tab.active{color:var(--text);background:var(--accent-soft)}.ctx-header-actions{margin-left:auto;display:flex;gap:4px;padding-left:6px;flex-shrink:0}.ctx-header-actions button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-xs);display:flex;align-items:center}.ctx-header-actions button:hover{color:var(--text);background:var(--surface-hover)}.ctx-header-title{font-size:13px;font-weight:600;padding:0 4px}.ctx-session-strip{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 90%,var(--surface) 10%);flex-shrink:0}.ctx-session-strip-scroll{display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:thin}.ctx-session-chip{display:flex;align-items:center;min-width:0;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.ctx-session-chip.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface) 25%)}.ctx-session-chip-main{display:flex;align-items:center;gap:8px;min-width:0;border:none;background:transparent;color:var(--text);padding:6px 10px;cursor:pointer}.ctx-session-chip-status,.ctx-multi-card-status{width:8px;height:8px;border-radius:999px;flex-shrink:0;background:var(--text-secondary)}.ctx-session-chip-status.status-running,.ctx-multi-card-status.status-running{background:var(--green)}.ctx-session-chip-status.status-idle,.ctx-multi-card-status.status-idle,.ctx-session-chip-status.status-done,.ctx-multi-card-status.status-done{background:var(--accent)}.ctx-session-chip-status.status-failed,.ctx-multi-card-status.status-failed{background:var(--red)}.ctx-session-chip-status.status-cancelled,.ctx-multi-card-status.status-cancelled{background:var(--text-secondary)}.ctx-session-chip-title{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;min-width:0}@container ctxpanel (max-width: 480px){.ctx-session-chip-title{max-width:120px}}.ctx-session-chip-unread{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:700}.ctx-session-chip-close{border:none;border-left:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;width:28px;height:28px;flex-shrink:0}.ctx-session-chip-close:hover,.ctx-session-view-btn:hover{color:var(--text);background:var(--surface-hover)}.ctx-session-view-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;padding:6px 10px;font-size:11px;cursor:pointer;flex-shrink:0}.ctx-session-view-btn.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface) 25%)}.ctx-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ctx-body>.msg-list{min-height:0}.ctx-work-item-progress{flex-shrink:0;padding:12px 12px 0;overflow-y:auto;overflow-x:hidden;max-height:50vh;position:relative;z-index:1;background:var(--bg-elevated)}.ctx-multi-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;padding:12px;align-content:start}.ctx-multi-card{min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--bg-elevated) 86%,var(--surface) 14%);overflow:hidden;container-type:inline-size;container-name:ctxpanel}.ctx-multi-card.focused{border-color:color-mix(in srgb,var(--accent) 60%,var(--border) 40%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent 76%)}.ctx-multi-card-header{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid var(--border);min-width:0;flex-wrap:wrap;row-gap:6px}.ctx-multi-card-main{min-width:0;flex:1;display:flex;align-items:center;gap:8px;border:none;background:transparent;color:var(--text);cursor:pointer;padding:0}.ctx-multi-card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;text-align:left}.ctx-multi-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;min-width:0}.ctx-multi-card-actions button{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;padding:4px 8px;font-size:11px;cursor:pointer}.ctx-multi-card-actions button:hover{color:var(--text);background:var(--surface-hover)}.ctx-multi-card-meta{display:flex;flex-wrap:wrap;gap:6px 8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.ctx-multi-card-body{flex:1;min-height:220px;overflow:hidden;display:flex;flex-direction:column}.ctx-multi-card-body .msg-list{flex:1;min-height:0}.ctx-multi-card .msg-composer{border-top:1px solid var(--border);border-radius:0;border-left:none;border-right:none;border-bottom:none}@media(max-width:900px){.ctx-multi-grid{grid-template-columns:1fr;gap:8px;padding:8px}.ctx-multi-card-actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:640px){.ctx-session-strip{flex-wrap:wrap}.ctx-session-strip-scroll{flex-basis:100%;order:2}}.ctx-child-topbar{display:flex;align-items:center;gap:8px;flex-shrink:0}.ctx-back-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:6px 10px;display:flex;align-items:center;gap:4px;flex-shrink:0}.ctx-back-btn:hover{text-decoration:underline}.ctx-child-stop-btn{margin-left:auto;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border:1px solid var(--red);border-radius:5px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);cursor:pointer;transition:background .12s}.ctx-child-stop-btn:hover{background:color-mix(in srgb,var(--red) 20%,transparent)}.ctx-child-resume-btn{margin-left:auto;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border:1px solid var(--green);border-radius:5px;background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);cursor:pointer;transition:background .12s}.ctx-child-resume-btn:hover{background:color-mix(in srgb,var(--green) 22%,transparent)}.ctx-child-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.ctx-child-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.ctx-child-meta{flex:1;min-width:0}.ctx-child-name{font-weight:600;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-child-work-item{font-size:11px;color:var(--text-secondary)}.ctx-task-chip-row{display:flex;flex-wrap:wrap;gap:6px}.ctx-task-detail-card{border:1px solid var(--border);border-radius:6px;padding:10px 12px;background:var(--surface)}.ctx-task-kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.ctx-task-kv-item{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.ctx-task-kv-label{font-size:10px;text-transform:uppercase;color:var(--text-secondary)}.ctx-task-kv-value{font-size:12px;color:var(--text);white-space:pre-wrap;word-break:break-word}.kanban-card.is-selected{box-shadow:0 0 0 2px var(--accent)}.ctx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:13px;gap:8px;padding:20px;text-align:center}.ctx-empty-icon{font-size:24px;opacity:.4}.ctx-child-detail{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.ctx-child-detail .exec-section{padding:8px 12px;border-bottom:1px solid var(--border)}.ctx-child-detail .exec-section-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ctx-child-detail .exec-section-content{font-size:12px}.ctx-child-transcript{display:flex;flex-direction:column;min-height:280px;max-height:55vh;overflow:hidden;border-bottom:1px solid var(--border);flex-shrink:0}.ctx-child-transcript-header,.ctx-child-section-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ctx-child-transcript-header{padding:8px 12px 0}.ctx-child-transcript .msg-list{min-height:0}.ctx-child-markdown-section,.ctx-child-artifacts,.ctx-child-passed-to{padding:8px 12px}.ctx-child-artifacts,.ctx-child-passed-to{border-top:1px solid var(--border)}.ctx-child-markdown-card{padding:10px 12px}.ctx-child-markdown-card .msg-content-agent{font-size:12px}.ctx-child-artifact-list{margin:0;padding-left:16px;font-size:12px}.ctx-info-v2{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 24px;display:flex;flex-direction:column;gap:14px}.ctx-info-section{display:flex;flex-direction:column;gap:6px}.ctx-info-section-title{margin:0 4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.ctx-info-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent 20%);background:color-mix(in srgb,var(--surface) 60%,var(--bg-elevated) 40%)}.ctx-info-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ctx-info-status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);border:1px solid color-mix(in srgb,var(--border) 70%,transparent 30%);color:var(--text);text-transform:capitalize}.ctx-info-status-pill.status-running{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,transparent 65%)}.ctx-info-status-pill.status-idle,.ctx-info-status-pill.status-suspended{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent 65%)}.ctx-info-status-pill.status-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,transparent 65%)}.ctx-info-status-pill.status-failed,.ctx-info-status-pill.status-cancelled{color:var(--red);border-color:color-mix(in srgb,var(--red) 35%,transparent 65%)}.ctx-info-status-pill.status-blocked,.ctx-info-status-pill.status-awaiting_human{color:var(--yellow);border-color:color-mix(in srgb,var(--yellow) 35%,transparent 65%)}.ctx-info-status-dot{width:7px;height:7px;border-radius:999px;background:currentColor}.ctx-info-priority-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500;background:transparent}.ctx-info-chips{display:flex;flex-wrap:wrap;gap:5px}.ctx-info-chip{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--bg-elevated) 80%,transparent 20%);border:1px solid color-mix(in srgb,var(--border) 65%,transparent 35%);color:var(--text-secondary);font-size:11px;line-height:1.3}.ctx-info-fact{display:flex;align-items:flex-start;gap:12px;padding:0;min-width:0}.ctx-info-fact-label{flex:0 0 auto;width:clamp(72px,22%,104px);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);padding-top:2px;word-break:break-word}.ctx-info-fact-value{flex:1;min-width:0;font-size:12.5px;color:var(--text);word-break:break-word}.ctx-info-mono{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;color:var(--text-secondary)}.ctx-info-mono-break{word-break:break-all;display:inline-block;line-height:1.5}.ctx-info-dev-section{margin-top:4px}.ctx-info-dev-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;margin-left:-4px;background:transparent;border:none;color:var(--text-secondary);font:inherit;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:6px;align-self:flex-start;transition:color .14s ease,background .14s ease}.ctx-info-dev-toggle:hover,.ctx-info-dev-toggle.expanded{color:var(--text);background:color-mix(in srgb,var(--surface) 50%,transparent 50%)}.ctx-info-dev-card{background:color-mix(in srgb,var(--bg-elevated) 86%,var(--surface) 14%);border-style:dashed}@container ctxpanel (max-width: 360px){.ctx-info-v2{padding:12px 10px 20px;gap:12px}.ctx-info-card{padding:10px 12px}.ctx-info-fact{flex-direction:column;align-items:stretch;gap:4px}.ctx-info-fact-label{width:auto;font-size:9.5px}.ctx-info-fact-value{font-size:12px}}.ctx-body .awp{flex:1 1 auto;display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header header" "search search" "list detail";width:100%;min-width:0;min-height:0;border-left:none;background:color-mix(in srgb,var(--bg) 88%,var(--surface) 12%)}.ctx-body .awp-header{grid-area:header;padding:10px 16px;background:color-mix(in srgb,var(--bg-elevated) 82%,var(--surface) 18%)}.ctx-body .awp-title{font-size:13px;gap:8px}.ctx-body .awp-count{font-size:11px;padding:2px 7px}.ctx-body .awp-controls{gap:8px}.ctx-body .awp-filter{min-width:112px;padding:5px 8px;font-size:11px}.ctx-body .awp-search-toggle{width:28px;height:28px;justify-content:center;border:1px solid transparent}.ctx-body .awp-search-toggle:hover,.ctx-body .awp-search-toggle.active{border-color:var(--border);background:var(--surface)}.ctx-body .awp-search-bar{grid-area:search;padding:8px 12px;background:color-mix(in srgb,var(--bg) 82%,var(--surface) 18%)}.ctx-body .awp-search-input{padding:7px 10px;font-size:12px}.ctx-body .awp-list{grid-area:list;flex:unset;min-height:0;max-height:none;border-right:1px solid var(--border);background:color-mix(in srgb,var(--bg) 94%,var(--surface) 6%)}.ctx-body .awp:not(:has(.awp-detail)) .awp-list{grid-column:1 / -1;border-right:none}.ctx-body .awp-row{display:grid;grid-template-columns:10px minmax(160px,1fr) minmax(148px,220px) minmax(44px,max-content);gap:10px;min-height:58px;padding:10px 16px;font-size:12px}.ctx-body .awp-row-selected{padding-left:14px}.ctx-body .awp-dot{align-self:center}.ctx-body .awp-row-info{gap:3px}.ctx-body .awp-row-name{font-size:12.5px;line-height:1.25}.ctx-body .awp-row-projection{font-size:10.5px;line-height:1.25}.ctx-body .awp-row-activity{max-width:none;justify-self:end;font-size:11.5px;line-height:1.25}.ctx-body .awp-row-time{min-width:36px;font-size:10.5px}.ctx-body .awp-detail{grid-area:detail;flex:unset;min-width:0;min-height:260px;border-top:none;border-left:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg) 22%)}.ctx-body .awp-detail-header{padding:12px 16px}.ctx-body .awp-detail-avatar{width:36px;height:36px;border-radius:8px;font-size:15px}.ctx-body .awp-detail-name{font-size:13px;line-height:1.25}.ctx-body .awp-detail-role,.ctx-body .awp-detail-employee,.ctx-body .awp-detail-projection{font-size:11px;line-height:1.25}.ctx-body .awp-detail-body{padding:12px 16px 16px}.ctx-body .awp-detail-section-label{letter-spacing:0}.ctx-body .awp .wf-role-turns{gap:8px;margin-top:10px}.ctx-body .awp .wf-role-turn{border-radius:8px;background:color-mix(in srgb,var(--surface) 72%,var(--bg) 28%)}.ctx-body .awp .wf-role-turn-button{grid-template-columns:auto minmax(0,1fr) max-content 22px;min-height:48px;padding:10px 12px;gap:10px}.ctx-body .awp .wf-role-turn-title{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;color:var(--text)}.ctx-body .awp .wf-role-turn-time{align-self:center;white-space:nowrap}.ctx-body .awp .wf-role-turn-chevron{align-self:center;justify-self:end;width:22px;height:22px;justify-content:center;color:var(--text-secondary);opacity:.9}.ctx-body .awp .wf-role-turn-chevron svg{width:14px;height:14px}.ctx-body .awp .wf-role-turn-activity{padding:12px}@container ctxpanel (max-width: 720px){.ctx-body .awp{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(180px,42%) minmax(260px,1fr);grid-template-areas:"header" "search" "list" "detail"}.ctx-body .awp-list{border-right:none;border-bottom:1px solid var(--border)}.ctx-body .awp-detail{min-height:260px;border-left:none;border-top:1px solid var(--border)}.ctx-body .awp:not(:has(.awp-detail)) .awp-list{grid-row:3 / -1}.ctx-body .awp-row{grid-template-columns:10px minmax(0,1fr) minmax(34px,max-content);grid-template-rows:auto auto;gap:4px 10px;min-height:56px;padding:9px 12px}.ctx-body .awp-row-activity{grid-column:2 / 4;justify-self:start}.ctx-body .awp-row-time{grid-column:3;grid-row:1}.ctx-body .awp .wf-role-turn-button{grid-template-columns:auto minmax(0,1fr) 22px;grid-template-rows:auto auto;min-height:58px}.ctx-body .awp .wf-role-turn-time{grid-column:2;grid-row:2;justify-self:start}.ctx-body .awp .wf-role-turn-chevron{grid-column:3;grid-row:1 / span 2}}@container ctxpanel (max-width: 420px){.ctx-body .awp-header{align-items:flex-start;gap:8px;flex-direction:column}.ctx-body .awp-controls{width:100%}.ctx-body .awp-filter{flex:1}}.wfr-panel{padding:0 8px}.wfr-card{background:color-mix(in srgb,var(--yellow, #f39c12) 8%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--yellow, #f39c12) 25%,transparent);border-radius:8px;padding:12px 14px;margin-bottom:8px}.wfr-header{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.wfr-icon{font-size:16px;line-height:1;flex-shrink:0}.wfr-header-text{display:flex;flex-direction:column;gap:2px;min-width:0}.wfr-title{font-size:13px;font-weight:600;color:var(--text)}.wfr-subtitle{font-size:11px;color:var(--text-secondary)}.wfr-work-items{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.wfr-work-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.wfr-work-item-icon{font-size:12px;width:14px;text-align:center;flex-shrink:0;font-weight:700}.wfr-work-item-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wfr-work-item-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--red, #e74c3c) 15%,transparent);color:var(--red, #e74c3c);flex-shrink:0}.wfr-actions{display:flex;gap:8px;align-items:center}.wfr-btn{padding:5px 14px;font-size:12px;font-weight:500;border:none;border-radius:6px;cursor:pointer}.wfr-btn--resume{background:var(--green, #27ae60);color:#fff}.wfr-btn--resume:hover{opacity:.85}.wfr-btn--cancel{background:var(--red, #e74c3c);color:#fff}.wfr-btn--cancel:hover{opacity:.85}.wfr-btn--dismiss{background:transparent;color:var(--text-secondary)}.wfr-btn--dismiss:hover{color:var(--text)}.wfr-recovering{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--accent)}.kanban-empty-state{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:14px;padding:32px 16px;text-align:center}.kanban-empty-state-inline{flex:0;padding:16px}.task-detail-runtime{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:11px;font-weight:500;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}.task-detail-runtime.status-reflecting{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,var(--surface))}.task-detail-runtime.status-tool_active{color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--surface))}.task-detail-runtime-agent{color:var(--text-secondary);font-weight:400}.task-detail-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.task-detail-section{display:flex;flex-direction:column;gap:6px}.task-detail-section-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.task-detail-dep-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.task-detail-dep-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;background:var(--surface);font-size:12px;color:var(--text)}.task-detail-dep-id{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;flex-shrink:0}.task-detail-handoff{margin:0;padding:8px 10px;border-radius:6px;background:var(--surface);font-size:11px;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto;border:1px solid var(--border)}.task-detail-progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.progress-entry{display:flex;align-items:baseline;gap:8px;padding:3px 8px;border-radius:3px;font-size:11px}.progress-entry:hover{background:var(--surface)}.progress-time{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;flex-shrink:0;min-width:64px}.progress-summary{color:var(--text);word-break:break-word}.progress-entry.type-thinking .progress-summary{color:var(--yellow)}.progress-entry.type-tool_call .progress-summary{color:var(--green)}.progress-entry.type-handoff .progress-summary{color:var(--accent)}.progress-entry.type-gate_result .progress-summary{color:#d97706}.task-detail-linked-messages{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:4px 0;background:var(--bg)}.task-detail-empty-hint{color:var(--text-secondary);font-size:12px;font-style:italic;margin:4px 0}:root{font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;min-width:0}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden}.app-shell{--bg: #0c111b;--bg-elevated: #141b2b;--text: #e2e8f0;--text-secondary: #8494a7;--border: rgba(148, 163, 184, .12);--border-hover: rgba(148, 163, 184, .22);--surface: rgba(20, 27, 43, .7);--surface-hover: rgba(30, 41, 63, .7);--accent: #6366f1;--accent-soft: rgba(99, 102, 241, .15);--accent-glow: rgba(99, 102, 241, .3);--green: #34d399;--yellow: #fbbf24;--red: #f87171;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--white: #ffffff;--text-dim: #64748b;--bg-card: #141b2b;--bg-secondary: #1a2332;height:100vh;max-height:100vh;display:grid;grid-template-rows:48px minmax(0,1fr);gap:0;color:var(--text);overflow:hidden;background:var(--bg)}.theme-neon{--bg: #05100e;--bg-elevated: #0a1f1a;--text: #d0fef0;--text-secondary: #5eada0;--text-dim: #3d7a6e;--bg-card: #0a1f1a;--bg-secondary: #0e2a24;--border: rgba(94, 173, 160, .15);--border-hover: rgba(94, 173, 160, .28);--surface: rgba(10, 31, 26, .75);--surface-hover: rgba(16, 48, 40, .75);--accent: #00ddc6;--accent-soft: rgba(0, 221, 198, .12);--accent-glow: rgba(0, 221, 198, .3)}.theme-paper{--bg: #f8f9fb;--bg-elevated: #ffffff;--text: #1e293b;--text-secondary: #64748b;--text-dim: #94a3b8;--bg-card: #ffffff;--bg-secondary: #f1f5f9;--border: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .14);--surface: rgba(255, 255, 255, .9);--surface-hover: rgba(241, 245, 249, .95);--accent: #4f46e5;--accent-soft: rgba(79, 70, 229, .08);--accent-glow: rgba(79, 70, 229, .15);--green: #059669;--yellow: #d97706;--red: #dc2626;color-scheme:light}.theme-paper .kanban-card:hover{box-shadow:0 2px 8px #0000000f}.theme-paper .kanban-card.is-dragging{box-shadow:0 8px 24px #0000001f}.theme-retro{--bg: #080e08;--bg-elevated: #0e1a0e;--text: #a8d8a8;--text-secondary: #4a8a4a;--text-dim: #3a6a3a;--bg-card: #0e1a0e;--bg-secondary: #142014;--border: rgba(74, 138, 74, .18);--border-hover: rgba(74, 138, 74, .3);--surface: rgba(14, 26, 14, .8);--surface-hover: rgba(20, 40, 20, .8);--accent: #4ade80;--accent-soft: rgba(74, 222, 128, .12);--accent-glow: rgba(74, 222, 128, .3)}.theme-terminal{--bg: #080808;--bg-elevated: #111111;--text: #22c55e;--text-secondary: #166534;--text-dim: #0f4a22;--bg-card: #111111;--bg-secondary: #181818;--border: rgba(34, 197, 94, .12);--border-hover: rgba(34, 197, 94, .25);--surface: rgba(17, 17, 17, .9);--surface-hover: rgba(24, 24, 24, .9);--accent: #22c55e;--accent-soft: rgba(34, 197, 94, .1);--accent-glow: rgba(34, 197, 94, .3)}.theme-cozy{--bg: #16120e;--bg-elevated: #201a14;--text: #ede0d4;--text-secondary: #9a8470;--text-dim: #7a6a5a;--bg-card: #201a14;--bg-secondary: #2a221a;--border: rgba(154, 132, 112, .16);--border-hover: rgba(154, 132, 112, .28);--surface: rgba(32, 26, 20, .8);--surface-hover: rgba(42, 34, 26, .8);--accent: #f59e0b;--accent-soft: rgba(245, 158, 11, .12);--accent-glow: rgba(245, 158, 11, .3)}.theme-openopc{--bg: #0a0a0a;--bg-elevated: #161616;--bg-card: #121111;--bg-secondary: #171412;--text: #f0ede8;--text-secondary: #8a8580;--text-dim: #6f6a66;--border: rgba(217, 119, 87, .12);--border-hover: rgba(217, 119, 87, .24);--surface: rgba(22, 22, 22, .85);--surface-hover: rgba(34, 30, 28, .85);--accent: #d97757;--accent-soft: rgba(217, 119, 87, .12);--accent-glow: rgba(217, 119, 87, .25);--green: #98c379;--yellow: #e5c07b;--red: #e06c75}.theme-openopc .topbar{background:#0e0e0e;border-bottom-color:#d9775714}.theme-openopc .session-sidebar{background:#0e0e0e;border-right-color:#d9775714}.theme-openopc .session-new-btn{border-color:#d977572e}.theme-openopc .session-new-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-openopc .msg-content-user{background:linear-gradient(135deg,#d97757,#c96442);box-shadow:0 2px 8px #d9775726}.theme-openopc .msg-content-agent-card{background:#131313;border-color:#d977571a;border-left-color:#d97757}.theme-openopc .msg-row.agent:hover .msg-content-agent-card{border-color:#d9775733;border-left-color:#d97757;box-shadow:0 2px 12px #d977570f}.theme-openopc .msg-content-agent pre{background:#0c0c0c;border-color:#d9775714}.theme-openopc .msg-content-agent blockquote{background:#d9775708;border-left-color:#d9775740}.theme-openopc .msg-card-actions{border-top-color:#d9775714}.theme-openopc .agent-avatar{background:linear-gradient(135deg,#d9775726,#d977570d);border-color:#d9775726;color:var(--accent)}.theme-openopc .composer-send-btn{background:linear-gradient(135deg,#d97757,#c96442)}.theme-openopc .composer-send-btn:not(:disabled):hover{filter:brightness(1.2)}.theme-openopc .task-header-bar{background:#0e0e0e;border-bottom-color:#d9775714}.theme-openopc .ptl-live-think{background:#d977570f}.theme-openopc .ptl-live-tool-name{background:#98c3791a;color:#98c379}.theme-openopc .ptl-tool-badge{background:#98c37914;color:#98c379}.theme-openopc .ptl-dot{background:#131313;border-color:#d977571f}.theme-openopc .ptl-line{background:#d977571a}.theme-openopc .agent-working-row .ptl-block{border-color:#d9775726}.theme-openopc .code-block-header{background:#111}.theme-openopc .code-block-wrap pre{background:#0e0e0e!important}.theme-openopc .msg-content-agent code{background:#d9775714;color:#ffb38a}.theme-openopc .msg-content-agent pre code{background:transparent;color:#f0ede8}.theme-openopc .kanban-card:hover{box-shadow:0 2px 12px #d977570f}.theme-openopc .kanban-card.is-dragging{box-shadow:0 8px 24px #d977571f}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg);z-index:10}.topbar-left{display:flex;align-items:center;gap:10px}.logo-text{font-size:15px;font-weight:700;letter-spacing:-.02em}.logo-accent{color:var(--accent)}.conn-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;cursor:help;transition:background .2s}.conn-dot.ok{background:var(--green);box-shadow:0 0 6px #34d39980}.conn-dot.warn{background:var(--yellow);box-shadow:0 0 6px #fbbf2466}.conn-dot.error{background:var(--red);box-shadow:0 0 6px #f8717166}.conn-dot.off{background:var(--text-secondary)}.topbar-center{flex:0 0 auto;display:flex;align-items:center;gap:12px}.page-nav{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;flex-shrink:0}.page-nav-btn{padding:4px 14px;border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s}.page-nav-btn:first-child{border-right:1px solid var(--border)}.page-nav-btn.active{background:var(--accent);color:#fff}.page-nav-btn:not(.active):hover{background:var(--surface-hover);color:var(--text)}.page-nav-btn{position:relative}.nav-unread-badge{position:absolute;top:-2px;right:-2px;font-size:8px;padding:1px 4px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;line-height:1.2;min-width:14px;text-align:center}.stat-chips{display:flex;gap:6px}.stat-chip{font-size:11px;color:var(--text-secondary);padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);white-space:nowrap}.stat-chip b{color:var(--text);font-weight:600}.topbar-right{display:flex;align-items:center;gap:6px}.theme-select{font-size:11px;padding:4px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;outline:none}.theme-select:focus{border-color:var(--accent)}.icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;padding:0;transition:all .15s}.icon-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover);transform:none}.icon-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.main-grid{display:grid;grid-template-columns:1fr clamp(280px,30vw,360px);height:100%;min-height:0;overflow:hidden}.main-grid.hidden{display:none}.canvas-wrap{position:relative;overflow:hidden;background:#1a2533;min-width:0;min-height:0}.canvas-wrap>div{width:100%;height:100%}.canvas-wrap canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.canvas-float-btn{position:absolute;bottom:12px;left:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#141b2bf0;box-shadow:0 8px 20px #0000003d;color:var(--text);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s;z-index:5}.canvas-float-btn:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:scale(1.05)}.sidebar{display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid var(--border);background:var(--bg-elevated);overflow:hidden}.sidebar-body{overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.input-row{display:flex;gap:6px;align-items:flex-end}.input-row input,.dev-group .input-row input{flex:1;padding:9px 14px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;outline:none;transition:border-color .15s}.input-row input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.input-row input::placeholder{color:var(--text-secondary);opacity:.7}.send-btn{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.send-btn:hover{transform:scale(1.05);filter:brightness(1.1)}.send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none;filter:none}.team-panel{padding:12px;display:flex;flex-direction:column;gap:12px;min-width:0;overflow-x:hidden}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}.toast-success{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#22c55e;color:#0c111b;padding:8px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;z-index:9999;animation:toast-in .3s ease-out;pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-error{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--red, #f87171);color:#fff;padding:8px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;z-index:9999;animation:toast-in .3s ease-out;pointer-events:none}.spinner-inline{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin-inline .6s linear infinite;vertical-align:middle}@keyframes spin-inline{to{transform:rotate(360deg)}}.del-confirm{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--bg-elevated);border:1px solid var(--red);border-radius:var(--radius-xs);animation:del-pop .12s ease-out;z-index:10;white-space:nowrap}.del-confirm-label{font-size:10px;color:var(--red);font-weight:500}.del-confirm-yes{padding:1px 8px;font-size:10px;border-radius:3px;border:none;background:var(--red);color:#fff;cursor:pointer;font-weight:600}.del-confirm-yes:hover{filter:brightness(1.15)}.del-confirm-no{padding:1px 6px;font-size:10px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer}.del-confirm-no:hover{background:var(--surface-hover);color:var(--text)}@keyframes del-pop{0%{opacity:0;transform:translateY(-50%) scale(.92)}to{opacity:1;transform:translateY(-50%) scale(1)}}.office-cards{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.office-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;cursor:pointer;transition:border-color .15s,background .15s}.office-card:hover{border-color:var(--accent);background:var(--accent-soft)}.office-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.office-name{font-size:12px;font-weight:600;color:var(--text)}.office-edit-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:13px;padding:0 2px;line-height:1;opacity:0;transition:opacity .15s}.office-card:hover .office-edit-btn{opacity:.7}.office-edit-btn:hover{opacity:1!important;color:var(--accent)}.office-name-input{font-size:12px;font-weight:600;background:var(--bg-elevated);color:var(--text);border:1px solid var(--accent);border-radius:3px;padding:1px 4px;width:120px;outline:none}.office-capacity{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono, monospace)}.office-agents{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.office-agent-chip{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--accent-soft);color:var(--text-primary);cursor:pointer;border:1px solid var(--border);transition:background .1s}.office-agent-chip:hover{background:var(--accent);color:#fff}.assign-dropdown{font-size:10px;padding:2px 16px 2px 4px;border-radius:4px;appearance:none;-webkit-appearance:none;background:var(--bg-elevated);color:var(--text);color-scheme:inherit;border:1px solid var(--border);cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:8px 5px}.agent-list{display:flex;flex-direction:column;gap:4px}.agent-row{position:relative;display:flex;align-items:stretch;border-radius:var(--radius-sm);border:1px solid var(--border);overflow:visible;transition:border-color .15s}.agent-row:hover{border-color:var(--border-hover)}.agent-row.selected{border-color:var(--accent);background:var(--accent-soft)}.agent-row-main{flex:1;display:flex;align-items:center;gap:8px;padding:8px 10px;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left;border-radius:0}.agent-row-main:hover{background:var(--surface-hover);transform:none}.agent-info{display:flex;flex-direction:column;gap:1px;min-width:0}.agent-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-spec{font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-del{flex-shrink:0;width:30px;display:flex;align-items:center;justify-content:center;border:none;border-left:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:0;border-radius:0;transition:all .12s}.agent-del:hover{background:#f8717126;color:var(--red);transform:none}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-secondary)}.dot.active,.dot.working{background:var(--green);box-shadow:0 0 4px #34d39966}.dot.idle{background:var(--text-secondary)}.dot.waiting{background:var(--yellow)}.dot.delegating{background:var(--accent)}.dot.reflecting{background:#c084fc}.dot.spawned{background:var(--green)}.empty-state{font-size:12px;color:var(--text-secondary);text-align:center;padding:16px 12px;line-height:1.5}.agent-detail{padding:10px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent-soft);display:flex;flex-direction:column;gap:6px}.agent-detail-name{font-size:13px;font-weight:700;color:var(--accent)}.agent-detail-row{display:flex;justify-content:space-between;gap:8px;font-size:11px}.detail-label{color:var(--text-secondary);flex-shrink:0}.detail-value{text-align:right;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-select{flex:1;text-align:right;appearance:none;-webkit-appearance:none;background:var(--bg-elevated);color:var(--text);color-scheme:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 20px 4px 8px;font-size:12px;cursor:pointer;min-width:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px 6px}.agent-row-simple{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;text-align:left;font-size:12px;transition:all .12s}.agent-row-simple:hover{border-color:var(--border-hover);background:var(--surface-hover);transform:none}.agent-row-simple.selected{border-color:var(--accent);background:var(--accent-soft)}.sub-badge{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent)}.inline-btn{font-size:10px;padding:1px 6px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;margin-left:auto}.inline-btn:hover{background:var(--surface-hover);color:var(--text);transform:none}.dev-overlay{position:fixed;top:52px;right:8px;width:400px;max-height:calc(100vh - 60px);overflow-y:auto;z-index:100;padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 16px 48px #0006,0 0 0 1px var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dev-header{display:flex;justify-content:space-between;align-items:center}.dev-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.dev-group{display:flex;flex-direction:column;gap:8px}.dev-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.inline-select{font-size:10px;padding:2px 6px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);margin-left:auto;outline:none}.dev-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dev-row select{padding:5px 8px;font-size:11px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none}.pill-btn{padding:5px 12px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s}.pill-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover);transform:none}.pill-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.evo-pipeline{display:flex;align-items:center;gap:0;padding:6px 0}.evo-phase-group{display:flex;align-items:center;flex-shrink:0}.evo-connector{width:16px;height:2px;background:var(--border)}.evo-node{display:flex;flex-direction:column;align-items:center;gap:5px}.evo-dot{width:14px;height:14px;border-radius:50%;border:2px dashed var(--border);background:transparent;transition:all .2s}.evo-node.active .evo-dot{border-style:solid;border-color:var(--accent);background:var(--accent);box-shadow:0 0 8px var(--accent-glow);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 4px var(--accent-glow)}50%{box-shadow:0 0 14px var(--accent-glow)}}.evo-label{font-size:9px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.evo-node.active .evo-label{color:var(--text);font-weight:600}.event-log{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.log-row{display:grid;grid-template-columns:52px 80px 70px minmax(0,1fr);gap:6px;padding:4px 6px;border-radius:var(--radius-xs);background:var(--surface);font-size:10px;overflow:hidden;font-variant-numeric:tabular-nums}.log-time{color:var(--text-secondary)}.log-type{color:var(--accent);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-agent{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-data{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:SF Mono,Consolas,monospace}.list{display:flex;flex-direction:column;gap:4px}.list-row{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:4px 8px;border-radius:var(--radius-xs);background:var(--surface)}.list-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:SF Mono,Consolas,Courier New,monospace}.muted{color:var(--text-secondary)}@media(max-width:1024px){.main-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,1.2fr) minmax(0,1fr)}.sidebar{border-left:none;border-top:1px solid var(--border);max-height:48vh;min-height:0}.stat-chips{display:none}}@media(max-width:760px){.topbar{padding:0 10px}.dev-overlay{width:calc(100vw - 16px);right:8px;left:8px}}@media(max-width:480px){.main-grid{grid-template-rows:minmax(0,1fr) minmax(0,auto)}.sidebar{max-height:45vh}}.org-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.editor-page{overflow:hidden;display:flex;flex-direction:column}.collision-editor{display:flex;flex-direction:column;height:100%;background:var(--bg);color:var(--text)}.ce-toolbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:44px}.ce-toolbar-group{display:flex;align-items:center;gap:6px}.ce-title{font-weight:700;font-size:14px;letter-spacing:.02em;white-space:nowrap}.ce-office-select{font-size:12px;padding:2px 6px;border-radius:4px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);cursor:pointer;outline:none}.ce-mode-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.ce-mode-btn:hover{background:var(--surface-hover);color:var(--text)}.ce-mode-btn.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.ce-mode-btn.active.wall{border-color:var(--red);background:#f8717126}.ce-mode-btn.active.floor{border-color:var(--green);background:#34d39926}.ce-mode-btn.active.seat{border-color:var(--yellow);background:#fbbf2426}.ce-mode-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.ce-mode-dot.wall{background:var(--red)}.ce-mode-dot.floor{background:var(--green)}.ce-mode-dot.seat{background:var(--yellow)}.ce-btn{padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.ce-btn:hover{background:var(--surface-hover);color:var(--text)}.ce-btn.active{border-color:var(--accent);color:var(--accent)}.ce-btn.apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.ce-btn.apply:hover{filter:brightness(1.1)}.ce-btn.apply.success{background:var(--green);border-color:var(--green)}.ce-btn.upload{background:linear-gradient(135deg,var(--accent-soft),var(--surface));border-color:var(--accent);color:var(--accent);font-weight:600}.ce-btn.upload:hover{filter:brightness(1.1)}.ce-btn.danger{color:var(--red)}.ce-btn.danger:hover{background:#f8717126;border-color:var(--red)}.ce-zoom-label{font-size:11px;color:var(--text-secondary);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.ce-stats{font-size:11px;color:var(--text-secondary);gap:10px;margin-left:auto}.ce-body{flex:1;display:flex;overflow:hidden}.ce-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px;background:#1a1a2e}.ce-canvas-wrap canvas{box-shadow:0 4px 24px #00000080;border:1px solid var(--border);border-radius:4px}.ce-export-panel{width:380px;min-width:320px;border-left:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;overflow:hidden}.ce-export-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.ce-export-textarea{flex:1;padding:12px;background:var(--bg);color:var(--text);border:none;font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:11px;line-height:1.5;resize:none;outline:none} +.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.org-tab{display:flex;flex-direction:column;height:100%;min-width:0;overflow-y:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 26%,var(--bg) 74%) 0%,var(--bg) 240px);color:var(--text)}.org-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:14px}.org-empty{padding:32px;text-align:center;color:var(--text-secondary);font-size:13px}.org-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px 16px;border-bottom:1px solid var(--border);flex-shrink:0;gap:18px;flex-wrap:wrap;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 34%,var(--bg) 66%),color-mix(in srgb,var(--bg) 92%,var(--bg-elevated) 8%));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.org-header-main{display:flex;flex-direction:column;gap:7px;min-width:min(100%,260px);flex:1 1 420px}.org-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-eyebrow-separator{color:color-mix(in srgb,var(--text-secondary) 46%,transparent)}.org-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.org-title{font-size:21px;font-weight:650;margin:0;max-width:min(58vw,680px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.org-version-badge{font-size:10px;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font-family:JetBrains Mono,SF Mono,monospace}.org-state-badge,.org-profile-badge{font-size:10px;padding:3px 8px;border-radius:4px;white-space:nowrap}.org-state-badge--editable{background:color-mix(in srgb,var(--green) 11%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 20%,transparent)}.org-state-badge--readonly{background:color-mix(in srgb,var(--text-secondary) 10%,transparent);color:var(--text-secondary);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}.org-profile-badge{background:color-mix(in srgb,var(--yellow) 11%,transparent);color:var(--yellow)}.org-header-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.org-meta-pill,.org-meta-code{min-height:22px;display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--bg) 58%,transparent);color:var(--text-secondary);font-size:10.5px;line-height:1;text-transform:capitalize}.org-meta-code{max-width:min(52vw,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:none;color:var(--text)}.org-meta-pill--runtime{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 22%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.org-meta-pill--saved{color:var(--green);border-color:color-mix(in srgb,var(--green) 24%,transparent);background:color-mix(in srgb,var(--green) 8%,transparent)}.org-control-panel{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex:0 1 430px;min-width:min(100%,300px)}.org-switcher{display:flex;flex-direction:column;gap:5px;min-width:210px;flex:1 1 240px}.org-switcher-label{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-switcher-select-wrap{position:relative;display:block}.org-switcher-select{width:100%;min-height:36px;padding:7px 34px 7px 11px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 76%,var(--bg) 24%),color-mix(in srgb,var(--bg) 88%,var(--bg-elevated) 12%));color:var(--text);font:inherit;font-size:12px;outline:none;cursor:pointer;appearance:none}.org-switcher-select option{background:var(--bg-elevated);color:var(--text)}.org-switcher-select-wrap:after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);transform:translateY(-68%) rotate(45deg);pointer-events:none}.org-switcher-select:hover,.org-switcher-select:focus{border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}.org-create-trigger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);border-radius:7px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,var(--bg-elevated) 78%),color-mix(in srgb,var(--accent) 13%,var(--bg) 87%));color:color-mix(in srgb,var(--accent) 84%,var(--text) 16%);font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 10%,transparent);transition:transform .15s,border-color .15s,background .15s}.org-create-trigger:hover{border-color:color-mix(in srgb,var(--accent) 54%,transparent);transform:translateY(-1px)}.org-create-trigger-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);font-size:16px;line-height:1}.org-stats-strip{display:grid;grid-template-columns:repeat(4,minmax(104px,auto));gap:7px;align-items:center;justify-content:flex-end;flex:1 1 460px}.org-stat{display:inline-flex;align-items:center;gap:6px;justify-content:center;font-size:11px;color:var(--text-secondary);min-height:32px;padding:6px 11px;background:color-mix(in srgb,var(--bg-elevated) 58%,var(--bg) 42%);border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);white-space:nowrap}.org-stat b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.org-stat-icon{width:13px;height:13px;opacity:.72}.org-subtabs{display:flex;gap:2px;padding:0 28px;border-bottom:1px solid var(--border);flex-shrink:0;background:color-mix(in srgb,var(--bg) 92%,transparent);position:sticky;top:0;z-index:10;overflow-x:auto}.org-subtab{display:inline-flex;align-items:center;gap:6px;padding:11px 16px 12px;margin-bottom:-1px;font-size:12px;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.org-subtab:hover:not(.org-subtab--active){color:var(--text)}.org-subtab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.org-subtab-icon{width:14px;height:14px;opacity:.6;flex-shrink:0}.org-subtab--active .org-subtab-icon{opacity:1}.org-subtab-label{font-size:12px}.org-subtab-count{font-size:10px;padding:1px 6px;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 70%,var(--bg) 30%);color:var(--text-secondary);font-weight:500}.org-subtab--active .org-subtab-count{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.org-toast{padding:8px 16px;margin:0 20px;font-size:12px;border-radius:6px;cursor:pointer;flex-shrink:0}.org-toast--info{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.org-toast--warn{background:color-mix(in srgb,var(--yellow) 12%,transparent);color:var(--yellow);border:1px solid color-mix(in srgb,var(--yellow) 25%,transparent)}.org-toast--ok{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 25%,transparent)}.org-toast--error{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);border:1px solid color-mix(in srgb,var(--red) 25%,transparent)}.org-tab-content{flex:1 0 auto;overflow:visible;padding:16px 28px 28px}.org-create-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,#05070b 68%,transparent)}.org-create-modal{width:min(720px,100%);max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,var(--bg) 12%),color-mix(in srgb,var(--bg) 94%,var(--bg-elevated) 6%));box-shadow:0 28px 80px #00000075;overflow:hidden}.org-create-header,.org-create-actions,.org-create-review-head,.org-create-review-row{display:flex;align-items:center}.org-create-header{justify-content:space-between;gap:16px;flex-shrink:0}.org-create-eyebrow{display:block;margin-bottom:5px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.org-create-title{margin:0;color:var(--text);font-size:19px;font-weight:650;letter-spacing:0}.org-create-close,.org-create-icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--text-secondary);cursor:pointer}.org-create-close{width:30px;height:30px;font-size:14px}.org-create-close:hover,.org-create-icon-btn:hover:not(:disabled){color:var(--text);border-color:color-mix(in srgb,var(--text-secondary) 34%,var(--border))}.org-create-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex-shrink:0}.org-create-step{display:inline-flex;align-items:center;gap:8px;min-width:0;min-height:34px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 58%,transparent);color:var(--text-secondary);font-size:12px;font-weight:600}.org-create-step span{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--text-secondary) 12%,transparent);color:var(--text-secondary);font-size:10px}.org-create-step--active{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text);background:color-mix(in srgb,var(--accent) 9%,var(--bg) 91%)}.org-create-step--active span,.org-create-step--done span{background:color-mix(in srgb,var(--accent) 24%,transparent);color:var(--accent)}.org-create-panel{min-height:180px;overflow:auto;padding:4px 2px}.org-create-field{display:flex;flex-direction:column;gap:8px}.org-create-field span{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.org-create-field input,.org-create-member-row input,.org-create-member-row select,.org-create-member-row textarea{min-height:38px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 64%,transparent);color:var(--text);font:inherit;font-size:13px;outline:none}.org-create-field input:focus,.org-create-member-row input:focus,.org-create-member-row select:focus,.org-create-member-row textarea:focus{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.org-create-member-row select option{background:var(--bg-elevated);color:var(--text)}.org-create-member-row textarea{grid-column:1 / -1;min-height:62px;line-height:1.45;resize:vertical}.org-create-member-list{display:flex;flex-direction:column;gap:8px}.org-create-member-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1.5fr) minmax(120px,.8fr) 34px;gap:8px;align-items:center}.org-create-icon-btn{width:34px;height:34px;font-size:16px}.org-create-icon-btn:disabled{cursor:not-allowed;opacity:.42}.org-create-add{margin-top:12px;min-height:34px;padding:7px 12px;border:1px dashed color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent);font-size:12px;font-weight:700;cursor:pointer}.org-create-review{display:flex;flex-direction:column;gap:8px}.org-create-review-head,.org-create-review-row{justify-content:space-between;gap:14px;min-height:38px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--border) 74%,transparent);border-radius:7px;background:color-mix(in srgb,var(--bg) 56%,transparent)}.org-create-review-head span,.org-create-review-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-create-review-head b,.org-create-review-row span{flex-shrink:0;color:var(--text-secondary);font-size:12px;font-weight:600}.org-create-review-row span{display:inline-flex;align-items:center;gap:6px}.org-create-review-row em{padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase}.org-create-error{padding:9px 11px;border:1px solid color-mix(in srgb,var(--red) 28%,transparent);border-radius:7px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);font-size:12px}.org-create-actions{justify-content:flex-end;gap:8px;flex-shrink:0}@media(max-width:1040px){.org-title{max-width:100%}.org-control-panel{flex:1 1 100%;justify-content:stretch}.org-stats-strip{grid-template-columns:repeat(2,minmax(128px,1fr));justify-content:stretch;width:100%}}@media(max-width:760px){.org-header{padding:14px 16px 12px}.org-header-main{flex-basis:100%}.org-title{max-width:100%;font-size:18px}.org-stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.org-control-panel{flex-direction:column;align-items:stretch}.org-switcher{min-width:0}.org-create-trigger{width:100%}.org-subtabs{padding:0 16px}.org-tab-content{padding:12px 16px 18px}.org-create-backdrop{align-items:flex-start;padding:14px}.org-create-modal{max-height:calc(100vh - 28px);padding:16px}.org-create-steps,.org-create-member-row{grid-template-columns:1fr}.org-create-icon-btn{width:100%}}@media(max-width:460px){.org-header{gap:12px}.org-stats-strip{grid-template-columns:1fr}.org-meta-code{max-width:100%}}.btn,.oc-btn-primary,.oc-btn-ghost,.oc-btn-danger,.mkt-btn,.mkt-btn-primary,.mkt-btn-ghost,.pkg-btn,.pkg-btn-primary,.pkg-btn-secondary,.pkg-btn-danger,.pkg-btn-ghost,.cfg-io-btn,.cfg-io-btn-primary,.cfg-io-btn-ghost,.tm-detail-hire-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;border-radius:var(--radius-xs);border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn:disabled,.oc-btn-primary:disabled,.mkt-btn-primary:disabled,.pkg-btn-primary:disabled,.pkg-btn-danger:disabled,.cfg-io-btn:disabled,.cfg-io-btn-primary:disabled,.cfg-io-btn-ghost:disabled,.tm-detail-hire-btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.oc-btn-primary,.mkt-btn-primary,.pkg-btn-primary,.cfg-io-btn-primary,.tm-detail-hire-btn{background:var(--accent);color:var(--white);border-color:var(--accent)}.btn-primary:hover:not(:disabled),.oc-btn-primary:hover:not(:disabled),.mkt-btn-primary:hover:not(:disabled),.pkg-btn-primary:hover:not(:disabled),.cfg-io-btn-primary:hover:not(:disabled),.tm-detail-hire-btn:hover:not(:disabled){opacity:.88}.btn-ghost,.oc-btn-ghost,.mkt-btn-ghost,.pkg-btn-ghost,.cfg-io-btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover:not(:disabled),.oc-btn-ghost:hover:not(:disabled),.mkt-btn-ghost:hover:not(:disabled),.pkg-btn-ghost:hover:not(:disabled),.cfg-io-btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.btn-secondary,.pkg-btn-secondary{background:var(--bg-secondary);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled),.pkg-btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-danger,.oc-btn-danger,.pkg-btn-danger{background:transparent;color:var(--red);border-color:var(--red)}.btn-danger:hover:not(:disabled),.oc-btn-danger:hover:not(:disabled),.pkg-btn-danger:hover:not(:disabled){background:var(--red);color:var(--white)}.btn-sm,.mkt-btn-sm,.pkg-btn-sm{padding:4px 10px;font-size:11px}.btn-lg,.qs-create-btn{padding:8px 24px;font-size:14px}.btn-icon,.pkg-btn-icon,.cfg-io-btn-icon{width:14px;height:14px;opacity:.9;flex-shrink:0}.btn-primary .btn-icon,.btn-primary .pkg-btn-icon,.btn-primary .cfg-io-btn-icon,.oc-btn-primary img,.mkt-btn-primary img,.pkg-btn-primary .pkg-btn-icon,.cfg-io-btn-primary .cfg-io-btn-icon{filter:brightness(0) invert(1)}.btn:focus-visible,.oc-btn-primary:focus-visible,.oc-btn-ghost:focus-visible,.oc-btn-danger:focus-visible,.mkt-btn:focus-visible,.mkt-btn-primary:focus-visible,.mkt-btn-ghost:focus-visible,.pkg-btn:focus-visible,.pkg-btn-primary:focus-visible,.pkg-btn-secondary:focus-visible,.pkg-btn-danger:focus-visible,.pkg-btn-ghost:focus-visible,.cfg-io-btn:focus-visible,.cfg-io-btn-primary:focus-visible,.cfg-io-btn-ghost:focus-visible,.tm-detail-hire-btn:focus-visible,.org-subtab:focus-visible,.mkt-pill:focus-visible,.myorg-inline-btn:focus-visible,.myorg-reset-btn:focus-visible,.wfe-action-btn:focus-visible,.wfe-pattern-btn:focus-visible,.oc-action-btn:focus-visible,.oc-advanced-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.oc-form-row input:focus-visible,.oc-form-row select:focus-visible,.oc-form-row textarea:focus-visible,.cfg-io-textarea:focus-visible,.mkt-search:focus-visible,.pkg-search:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.btn:focus:not(:focus-visible),.org-subtab:focus:not(:focus-visible),.mkt-pill:focus:not(:focus-visible){outline:none}.team-view{display:flex;flex-direction:column;gap:14px;padding:0;min-width:0}.team-command-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 34%,var(--bg) 66%)}.team-command-bar--readonly{background:color-mix(in srgb,var(--bg-elevated) 24%,var(--bg) 76%)}.team-command-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.team-command-eyebrow{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.team-command-title{color:var(--text);font-size:13px;font-weight:600}.team-command-metrics{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;color:var(--text-secondary);font-size:11px}.team-command-metrics span{min-height:24px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 54%,transparent);white-space:nowrap}.team-command-metrics b{color:var(--text);font-variant-numeric:tabular-nums}.team-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.team-readonly-strip{padding:9px 12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:8px;background:color-mix(in srgb,var(--text-secondary) 6%,transparent);color:var(--text-secondary);font-size:12px}.team-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(282px,1fr));gap:12px}.team-roster-card{min-width:0;background:color-mix(in srgb,var(--bg) 84%,var(--bg-elevated) 16%);border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;padding:11px 12px;transition:border-color .15s ease,background .15s ease}.team-roster-card:hover{background:color-mix(in srgb,var(--bg-elevated) 48%,var(--bg) 52%);border-color:color-mix(in srgb,var(--border-hover) 78%,var(--accent) 22%)}.team-roster-card-header{display:flex;align-items:center;gap:9px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.team-roster-card-icon{width:22px;height:22px;padding:4px;border-radius:7px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.team-roster-role-name{font-size:13px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-roster-count{font-size:10px;color:var(--text-secondary);padding:2px 7px;background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg) 22%);border-radius:999px;font-variant-numeric:tabular-nums}.team-roster-emp{display:flex;align-items:center;gap:9px;padding:7px 0}.team-roster-emp+.team-roster-emp{border-top:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.team-roster-emp-avatar{width:24px;height:24px;border-radius:50%;opacity:.58}.team-roster-emp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.team-roster-emp-name{font-size:12.5px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-roster-seniority{font-size:9px;text-transform:uppercase;letter-spacing:.3px;font-weight:600}.team-roster-seniority--junior{color:var(--text-secondary)}.team-roster-seniority--mid{color:var(--yellow)}.team-roster-seniority--senior{color:var(--accent)}.team-roster-seniority--lead{color:var(--green)}.team-roster-badge{font-size:9px;padding:3px 8px;border-radius:999px;font-weight:500;white-space:nowrap}.team-roster-badge--active{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.team-roster-deploy-btn{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:3px 10px;border:1px solid var(--accent);border-radius:999px;background:none;color:var(--accent);cursor:pointer;transition:all .15s}.team-roster-deploy-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.team-roster-deploy-icon{width:11px;height:11px}.team-roster-vacant{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}.team-roster-vacant-text{font-size:11px;color:var(--text-secondary);font-style:italic}.team-roster-hire-btn{font-size:10px;padding:3px 10px;border:1px solid var(--yellow);border-radius:999px;background:none;color:var(--yellow);cursor:pointer;transition:all .15s}.team-roster-hire-btn:hover{background:color-mix(in srgb,var(--yellow) 12%,transparent)}.wfe-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}.wfe-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.wfe-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.wfe-profile-badge{font-size:9px;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:3px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.wfe-header-actions{display:flex;gap:8px;margin-left:auto}.wfe-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.wfe-action-btn:hover{border-color:var(--accent);color:var(--text)}.wfe-action-icon{width:13px;height:13px;opacity:.6}.wfe-save-btn{border-color:var(--green, #27ae60);color:var(--green, #27ae60)}.wfe-save-btn:hover{background:var(--green, #27ae60);color:var(--white)}.wfe-dag-wrap{overflow-x:auto;overflow-y:visible;padding:8px 0;min-height:0}.wfe-dag-node{cursor:pointer}.wfe-dag-node:hover{box-shadow:0 0 0 2px var(--accent);border-radius:6px}.wfe-node-editing{box-shadow:0 0 0 2px var(--accent)}.wfe-editor{background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:14px;margin-top:12px}.wfe-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.wfe-editor-title{font-size:12px;font-weight:600;color:var(--text)}.wfe-editor-close{font-size:18px;background:none;border:none;color:var(--text-secondary);cursor:pointer}.wfe-editor-close:hover{color:var(--text)}.wfe-add-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.wfe-readonly{opacity:.6}.wfe-inline-input,.wfe-inline-select{margin-left:6px;padding:3px 6px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text)}.wfe-hint{font-size:10px;color:var(--text-secondary);font-style:italic}.wfe-empty{text-align:center;padding:30px;color:var(--text-secondary);font-size:13px}.wfe-empty-hint{font-size:11px;opacity:.7}.myorg-container{padding:0 4px;overflow-y:auto;flex:1}.myorg-section{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 30%,var(--bg) 70%),color-mix(in srgb,var(--bg) 94%,var(--bg-elevated) 6%));border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px;padding:15px 16px 16px;margin-bottom:0}.myorg-section-header{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap}.myorg-section-icon{width:16px;height:16px;opacity:.68}.myorg-section-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.myorg-section-count{font-size:11px;color:var(--text-secondary)}.myorg-section-spacer{flex:1 1 auto;min-width:12px}.myorg-section-note{color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums}.myorg-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:12px}.myorg-form-title{font-size:13px;font-weight:600;color:var(--text);margin:0 0 10px}.myorg-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.myorg-roster-role{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px}.myorg-roster-role-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.myorg-roster-role-name{font-size:12px;font-weight:600;color:var(--text)}.myorg-roster-role-count{font-size:10px;color:var(--text-secondary)}.myorg-roster-emp{display:flex;align-items:center;gap:6px;padding:3px 0}.myorg-roster-emp-name{font-size:11px;color:var(--text)}.myorg-roster-seniority{font-size:9px;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.myorg-seniority-junior{background:var(--bg-secondary);color:var(--text-secondary)}.myorg-seniority-mid{background:#3498db26;color:var(--accent)}.myorg-seniority-senior{background:#27ae6026;color:var(--green, #27ae60)}.myorg-roster-office-badge{font-size:9px;color:var(--green, #27ae60);border:1px solid var(--green, #27ae60);padding:0 4px;border-radius:3px}.myorg-roster-vacant{font-size:10px;color:var(--text-secondary);font-style:italic}.myorg-empty-hint{font-size:11px;color:var(--text-secondary);padding:12px 0}.myorg-collapsible{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden}.myorg-collapsible-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:12px;background:var(--bg-secondary);border:none;color:var(--text);cursor:pointer;text-align:left}.myorg-collapsible-toggle:hover{background:var(--bg)}.myorg-toggle-icon{font-size:10px;color:var(--text-secondary);width:12px}.myorg-collapsible-title{font-weight:500}.myorg-collapsible-count{font-size:10px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:8px}.myorg-collapsible-extra{margin-left:auto}.myorg-collapsible-body{padding:12px 14px}.myorg-inline-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);border-radius:999px;padding:5px 9px;cursor:pointer}.myorg-inline-btn:hover{background:color-mix(in srgb,var(--accent) 13%,transparent)}.myorg-inline-icon{width:12px;height:12px}.myorg-action-bar{display:flex;justify-content:flex-end;padding:0}.myorg-reset-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;font-size:11px;color:var(--red);background:color-mix(in srgb,var(--red) 4%,transparent);border:1px solid color-mix(in srgb,var(--red) 30%,transparent);border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.myorg-reset-btn:hover{background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.myorg-reset-icon{width:12px;height:12px;filter:hue-rotate(0deg)}.oc-node-resp{font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.oc-icon-picker-trigger{position:relative}.oc-icon-preview-btn{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text);font-size:12px;transition:border-color .15s}.oc-icon-preview-btn:hover{border-color:var(--accent)}.oc-icon-preview-img{width:24px;height:24px;border-radius:4px}.oc-icon-placeholder{opacity:.35}.oc-icon-preview-label{color:var(--text-secondary);font-size:11px}.oc-icon-clear-btn{padding:2px 8px;font-size:10px;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer;margin-left:6px}.oc-icon-clear-btn:hover{color:var(--red);border-color:var(--red)}.oc-icon-gallery{position:absolute;top:100%;left:0;z-index:20;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000004d;margin-top:4px;width:240px}.oc-icon-option{display:flex;align-items:center;justify-content:center;padding:6px;border:1px solid transparent;border-radius:6px;background:none;cursor:pointer;transition:all .15s}.oc-icon-option:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.oc-icon-option--active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent)}.oc-icon-option-img{width:24px;height:24px}.qs-wizard{padding:24px;max-width:640px;margin:0 auto}.qs-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:48px 24px;color:var(--accent);font-size:14px}.qs-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.qs-header-icon{width:40px;height:40px;flex-shrink:0}.qs-header-title{margin:0;font-size:18px;font-weight:600;color:var(--text)}.qs-header-sub{margin:2px 0 0;font-size:12px;color:var(--text-dim)}.qs-link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:12px;text-decoration:underline}.qs-progress{display:flex;gap:4px;margin-bottom:20px;padding:8px 0;border-bottom:1px solid var(--border)}.qs-step{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:500;color:var(--text-dim);background:var(--bg-card);transition:all .2s}.qs-step-active{background:var(--accent);color:var(--white)}.qs-step-done{background:var(--green);color:var(--white)}.qs-step-icon{width:14px;height:14px;filter:grayscale(1) opacity(.5)}.qs-step-active .qs-step-icon,.qs-step-done .qs-step-icon{filter:brightness(10)}.qs-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px}.qs-panel h4{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--text)}.qs-hint{font-size:12px;color:var(--text-dim);margin:0 0 16px}.qs-members{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.qs-member-row{display:flex;gap:6px;align-items:center}.qs-member-name{flex:1;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px}.qs-member-resp{flex:1.5;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px}.qs-member-parent{flex:1;min-width:0;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:11px}.qs-remove-btn{background:none;border:none;cursor:pointer;padding:4px;opacity:.4;transition:opacity .15s}.qs-remove-btn:hover{opacity:1}.qs-remove-icon{width:14px;height:14px}.qs-add-member{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px dashed var(--border);background:none;color:var(--accent);font-size:12px;cursor:pointer;margin-bottom:16px}.qs-add-member:hover{background:var(--bg)}.qs-add-icon{width:14px;height:14px}.qs-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.qs-patterns{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.qs-pattern-card{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;border:2px solid var(--border);cursor:pointer;transition:border-color .15s}.qs-pattern-card:hover{border-color:var(--accent)}.qs-pattern-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.qs-pattern-card input[type=radio]{margin-top:3px;flex-shrink:0}.qs-pattern-label{font-size:13px;font-weight:600;color:var(--text)}.qs-pattern-desc{font-size:11px;color:var(--text-dim);margin:2px 0}.qs-pattern-preview{font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--accent);margin-top:4px}.qs-preview{margin-bottom:8px}.qs-preview-section{margin-bottom:12px}.qs-preview-section h5{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.qs-preview-member{font-size:12px;padding:4px 0;color:var(--text)}.qs-preview-resp{color:var(--text-dim)}.qs-preview-parent{color:var(--text-dim);font-size:11px}@media(max-width:980px){.team-command-bar{grid-template-columns:1fr;align-items:stretch}.team-command-metrics,.team-command-actions{justify-content:flex-start}}@media(max-width:560px){.team-roster-grid{grid-template-columns:1fr}.team-command-actions{align-items:stretch}.team-command-actions>*{justify-content:center}.myorg-section{padding:12px}.qs-wizard{padding:16px 0}.qs-member-row{flex-direction:column;align-items:stretch}}.org-dag{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:16px 0 24px}.org-dag-group-wrap{display:flex;align-items:center;gap:0}.org-dag-arrow{display:flex;align-items:center;justify-content:center;opacity:.4;padding:0 8px;flex-shrink:0}.org-dag-arrow-icon{width:16px;height:16px;filter:brightness(0) invert(.6)}.org-dag-group{display:flex;flex-direction:column;gap:8px;position:relative}.org-dag-parallel{border:1px dashed var(--border);border-radius:8px;padding:8px;background:#ffffff03}.org-dag-parallel-label{position:absolute;top:-8px;left:8px;font-size:9px;padding:0 4px;background:var(--bg);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.org-dag-node{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;min-width:180px;max-width:240px}.org-dag-node-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.org-dag-node-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-dag-node-role{font-size:10px;padding:1px 5px;border-radius:3px;background:#6366f114;color:var(--accent);white-space:nowrap;flex-shrink:0}.org-dag-node-id{font-size:10px;color:var(--text-secondary);font-family:JetBrains Mono,SF Mono,monospace;margin-bottom:6px}.org-dag-gate{display:flex;align-items:center;gap:4px;font-size:10px;padding:3px 6px;border-radius:4px;margin-bottom:4px}.org-gate-review{background:#eab30814;color:var(--yellow)}.org-gate-approval{background:#34d39914;color:var(--green)}.org-gate-human_confirmation{background:#ef444414;color:var(--red)}.org-gate-icon{width:12px;height:12px}.org-gate-reviewer{opacity:.7;font-style:italic}.org-dag-strategy{font-size:9px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.org-dag-legend{display:flex;gap:16px;padding-top:12px;border-top:1px solid var(--border);margin-top:8px}.org-dag-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.org-gate-icon-sm{font-size:12px}.org-channels-grid,.org-connectors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:24px}.org-channel-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.org-ch-running{border-color:color-mix(in srgb,var(--green) 35%,var(--border))}.org-ch-disabled{opacity:.5}.org-ch-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.org-ch-dot{width:8px;height:8px;border-radius:50%;background:var(--text-secondary);opacity:.3;flex-shrink:0}.org-ch-dot.configured{background:var(--yellow);opacity:.6}.org-ch-dot.ready{background:var(--yellow);opacity:1}.org-ch-dot.running{background:var(--green);opacity:1;animation:pulse-dot 2s ease-in-out infinite}.org-ch-name{font-size:13px;font-weight:500;text-transform:capitalize}.org-ch-status-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:4px}.org-ch-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:#ffffff0a;color:var(--text-secondary)}.org-ch-enabled{color:var(--accent);background:#6366f114}.org-ch-configured{color:var(--yellow);background:#eab30814}.org-ch-running-badge{color:var(--green);background:#34d39914}.org-ch-available{color:var(--green)}.org-ch-off{color:var(--text-secondary)}.org-ch-delivery{font-size:10px;color:var(--text-secondary);margin-top:4px}.org-ch-error{font-size:10px;color:var(--red);margin-top:4px;word-break:break-all}.org-connector-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.org-conn-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.org-conn-name{font-size:13px;font-weight:500}.org-conn-type{font-size:9px;padding:1px 5px;border-radius:3px;background:#6366f114;color:var(--accent);text-transform:uppercase}.org-conn-desc{font-size:11px;color:var(--text-secondary);line-height:1.3;margin-bottom:6px}.org-conn-actions{display:flex;flex-wrap:wrap;gap:3px}.org-conn-action-tag{font-size:9px;padding:1px 5px;border-radius:3px;background:#34d39914;color:var(--green);font-family:JetBrains Mono,SF Mono,monospace}.org-emp-card{cursor:pointer;transition:background .15s}.org-emp-card:hover{background:#ffffff0a}.org-emp-selected{background:#6366f10f;border:1px solid rgba(99,102,241,.15);border-radius:6px}.org-emp-detail{margin-top:8px;padding:10px;background:#ffffff05;border-top:1px solid var(--border);border-radius:0 0 6px 6px}.org-emp-detail-title{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.org-emp-detail-block{margin-bottom:8px}.org-emp-detail-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.org-emp-detail-text{font-size:11px;color:var(--text-secondary);line-height:1.4;white-space:pre-wrap;max-height:120px;overflow-y:auto}.org-emp-detail-stats{display:flex;flex-wrap:wrap;gap:6px}.org-stat-tag{font-size:10px;padding:2px 6px;border-radius:3px;background:#6366f114;color:var(--accent);font-family:JetBrains Mono,SF Mono,monospace}.org-reorg-refresh:hover{color:var(--text);border-color:var(--text-secondary)}.org-reorg-list{display:flex;flex-direction:column;gap:10px}.org-reorg-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px}.org-reorg-proposed{border-left:3px solid var(--accent)}.org-reorg-approved,.org-reorg-applied{border-left:3px solid var(--green)}.org-reorg-denied,.org-reorg-failed{border-left:3px solid var(--red)}.org-reorg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.org-reorg-title{font-size:14px;font-weight:600}.org-reorg-status{font-size:10px;text-transform:uppercase;font-weight:600;letter-spacing:.3px}.org-reorg-summary{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:6px}.org-reorg-change-item code{font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;color:var(--accent)}.org-reorg-actions{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.org-reorg-approve{background:var(--green);color:var(--white);border:none;padding:5px 14px;border-radius:4px;font-size:11px;cursor:pointer;font-weight:500}.org-reorg-approve:hover{opacity:.9}.org-reorg-deny{background:none;border:1px solid var(--red);color:var(--red);padding:5px 14px;border-radius:4px;font-size:11px;cursor:pointer}.org-reorg-deny:hover{background:var(--red);color:var(--white)}.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.tm-card{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 1px 2px #0000004d,0 8px 24px #0000001f;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;min-height:196px}.tm-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));box-shadow:inset 0 1px color-mix(in srgb,var(--text) 8%,transparent),0 2px 4px #00000052,0 14px 32px #00000038}.tm-card-head{display:flex;align-items:flex-start;gap:12px;min-width:0}.tm-card-avatar{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 1px color-mix(in srgb,var(--text) 6%,transparent);font-family:inherit;transition:background .18s ease}.tm-card:hover .tm-card-avatar{background:color-mix(in srgb,var(--accent) 20%,transparent)}.tm-card-avatar-emoji{font-size:22px;line-height:1}.tm-card-avatar-mono{font-size:15px;font-weight:700;letter-spacing:.02em}.tm-card-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.tm-card-name-row{display:flex;align-items:center;gap:8px;min-width:0}.tm-card-name{font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tm-card-agent-badge{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:9.5px;font-weight:500;padding:2px 6px;border-radius:4px;background:var(--bg-secondary);color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap;flex-shrink:0}.tm-card-category{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:9.5px;font-weight:600;color:var(--text-secondary);opacity:.75;text-transform:uppercase;letter-spacing:.08em}.tm-card-category:before{content:"· ";opacity:.5}.tm-card-body{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}.tm-card-vibe{font-size:12px;color:var(--text);opacity:.86;font-style:italic;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tm-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tm-card-chips{display:flex;flex-wrap:wrap;gap:4px}.tm-card-chip{font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:color-mix(in srgb,var(--accent) 85%,var(--text) 15%);letter-spacing:.01em;white-space:nowrap}.tm-card-chip-more{opacity:.6}.tm-card-footer{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);margin-top:auto}.tm-card-hire-btn{background:transparent;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.01em;padding:5px 14px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.tm-card-hire-btn:hover:not(:disabled){background:var(--accent);color:var(--white);border-color:var(--accent)}.tm-card-hire-btn:active:not(:disabled){transform:translateY(1px)}.tm-card-hire-btn:disabled{opacity:.55;cursor:default;border-color:var(--border);color:var(--text-secondary)}.tm-detail-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0000008c}.tm-detail-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:480px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.tm-detail-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:2px solid var(--border)}.tm-detail-emoji{font-size:48px;line-height:1;flex-shrink:0}.tm-detail-name{font-size:18px;font-weight:600;margin:0}.tm-detail-category{font-size:11px;color:var(--text-secondary);text-transform:capitalize}.tm-detail-close{margin-left:auto;background:none;border:none;color:var(--text-secondary);font-size:22px;cursor:pointer;line-height:1;padding:4px}.tm-detail-close:hover{color:var(--text)}.tm-detail-body{flex:1;overflow-y:auto;padding:20px}.tm-detail-vibe{margin:0 0 16px;padding:10px 14px;border-left:3px solid var(--accent);background:#6366f10a;font-size:13px;font-style:italic;color:var(--text-secondary);line-height:1.4}.tm-detail-desc{font-size:13px;color:var(--text);line-height:1.5;margin:0 0 16px}.tm-detail-section{margin-bottom:14px}.tm-detail-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.tm-detail-tags{display:flex;flex-wrap:wrap;gap:4px}.org-domain-tag,.org-tool-tag{font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;letter-spacing:.01em}.org-domain-tag{background:color-mix(in srgb,var(--accent) 10%,transparent);color:color-mix(in srgb,var(--accent) 85%,var(--text) 15%)}.org-tool-tag{background:color-mix(in srgb,var(--green) 10%,transparent);color:color-mix(in srgb,var(--green) 85%,var(--text) 15%)}.tm-detail-footer{display:flex;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.pkg-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:14px;transition:border-color .15s}.pkg-card:hover{border-color:var(--accent)}.pkg-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pkg-card-icon{width:32px;height:32px;opacity:.85}.pkg-card-title-wrap{display:flex;flex-direction:column;gap:2px}.pkg-card-name{font-size:13px;font-weight:600;color:var(--text)}.pkg-card-version{font-size:11px;color:var(--text-secondary)}.pkg-card-stats{display:flex;gap:14px;margin-bottom:8px}.pkg-card-stat{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.pkg-stat-icon{width:13px;height:13px;opacity:.6}.pkg-card-date{font-size:10px;color:var(--text-secondary);margin-bottom:10px}.pkg-card-actions{display:flex;justify-content:flex-end}.mkt-container{padding:0 4px;overflow-y:auto;flex:1}.mkt-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mkt-search-wrap{flex:1;position:relative}.mkt-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;opacity:.4}.mkt-search{width:100%;padding:7px 10px 7px 30px;font-size:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text)}.mkt-search:focus{border-color:var(--accent);outline:none}.mkt-count{font-size:11px;color:var(--text-secondary);white-space:nowrap}.mkt-filters{margin-bottom:14px}.mkt-pill-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.mkt-pill{padding:3px 10px;font-size:11px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;text-transform:capitalize;display:inline-flex;align-items:center;gap:4px}.mkt-pill:hover{border-color:var(--accent);color:var(--text)}.mkt-pill.active{background:var(--accent);color:var(--white);border-color:var(--accent)}.mkt-pill-pattern{border-style:dashed}.mkt-pill-pattern.active{border-style:solid}.mkt-section{margin-bottom:20px}.mkt-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mkt-section-icon{width:18px;height:18px;opacity:.6}.mkt-section-title{font-size:13px;font-weight:600;color:var(--text);margin:0}.mkt-section-count{font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);padding:1px 6px;border-radius:8px}.mkt-arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.mkt-arch-card{background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .2s}.mkt-arch-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #0000001a}.mkt-arch-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}.mkt-arch-emoji{font-size:26px;line-height:1}.mkt-arch-title-wrap{flex:1}.mkt-arch-name{font-size:14px;font-weight:600;color:var(--text);display:block}.mkt-arch-badges{display:flex;gap:6px;margin-top:3px}.mkt-arch-category{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:3px}.mkt-arch-pattern{font-size:9px;color:var(--accent);display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border:1px dashed var(--accent);border-radius:3px;opacity:.8}.mkt-arch-dag-summary{font-family:SF Mono,Fira Code,monospace;font-size:11px;color:var(--accent);background:var(--bg);padding:4px 8px;border-radius:4px;margin-bottom:8px;overflow-x:auto;white-space:nowrap;letter-spacing:.2px}.mkt-arch-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mkt-arch-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.mkt-arch-stat{font-size:10px;color:var(--text-secondary);background:var(--bg);padding:2px 6px;border-radius:4px}.mkt-arch-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.mkt-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.mkt-arch-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.mkt-installed-badge{font-size:11px;color:var(--green, #27ae60);font-weight:500;padding:3px 8px;border:1px solid var(--green, #27ae60);border-radius:4px}.mkt-empty{text-align:center;padding:40px;color:var(--text-secondary);font-size:13px}.mkt-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.mkt-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:700px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.mkt-modal-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:2px solid var(--border)}.mkt-modal-emoji{font-size:32px;line-height:1}.mkt-modal-name{font-size:18px;font-weight:700;color:var(--text);margin:0}.mkt-modal-category{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.mkt-modal-close{margin-left:auto;font-size:24px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0 4px}.mkt-modal-close:hover{color:var(--text)}.mkt-modal-body{padding:20px;overflow-y:auto;flex:1}.mkt-modal-desc{font-size:13px;color:var(--text);line-height:1.5;margin:0 0 16px}.mkt-modal-section{margin-bottom:16px}.mkt-modal-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.mkt-modal-tags{display:flex;flex-wrap:wrap;gap:4px}.mkt-role-list{display:flex;flex-direction:column;gap:8px}.mkt-role-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.mkt-role-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px}.mkt-role-name code{font-size:10px;font-weight:400;color:var(--text-secondary);margin-left:4px}.mkt-role-resp{font-size:11px;color:var(--text-secondary);margin-bottom:3px}.mkt-role-meta{font-size:10px;color:var(--text-secondary)}.mkt-role-meta code{font-size:10px;background:var(--bg);padding:0 3px;border-radius:2px;margin:0 2px}.mkt-dag-wrap{overflow-x:auto}.mkt-modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;align-items:center;gap:10px}.htr-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.htr-modal{width:100%;max-width:520px;max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 60px #00000061}.htr-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.htr-title{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--text)}.htr-subtitle{margin:0;font-size:11.5px;color:var(--text-secondary)}.htr-close{background:transparent;border:none;color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer}.htr-close:hover{color:var(--text)}.htr-body{display:flex;flex-direction:column;gap:8px;padding:14px 18px;overflow:auto}.htr-empty{padding:24px 8px;text-align:center}.htr-empty-title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text)}.htr-empty-hint{margin:0;font-size:11.5px;color:var(--text-secondary)}.htr-role-list,.tm-detail-role-list{display:flex;flex-direction:column;gap:4px}.tm-detail-role-list{margin-top:4px}.htr-role-row,.tm-detail-role-row{display:flex;flex-direction:column;gap:2px;padding:9px 12px;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:border-color .12s ease,background .12s ease}.htr-role-row:hover,.tm-detail-role-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.htr-role-row.is-selected,.tm-detail-role-row.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.htr-role-name,.tm-detail-role-name{font-size:12.5px;font-weight:600;color:var(--text)}.htr-role-resp,.tm-detail-role-resp{font-size:11px;color:var(--text-secondary);line-height:1.35}.htr-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.tm-detail-vacancy-empty{margin:4px 0 0;font-size:11.5px;color:var(--text-secondary);font-style:italic}.cfg-io-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:16px;margin-top:16px;display:flex;flex-direction:column;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 1px 2px #0000004d,0 8px 24px #0000001f}.cfg-io-header{padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:4px}.cfg-io-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.cfg-io-subtitle{font-size:12px;color:var(--text-secondary);margin:4px 0 0;line-height:1.5}.cfg-io-section{padding:14px 0;display:flex;flex-direction:column;gap:10px}.cfg-io-section+.cfg-io-section{border-top:1px solid var(--border)}.cfg-io-section-header{display:flex;align-items:center;gap:8px}.cfg-io-section-icon{width:16px;height:16px;opacity:.6}.cfg-io-section-title{font-size:12px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.4px}.cfg-io-upload-row{display:flex;align-items:center}.cfg-io-file-label{display:inline-flex;align-items:center;gap:12px;cursor:pointer}.cfg-io-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.cfg-io-file-btn{padding:6px 14px;font-size:12px;font-weight:500;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);transition:border-color .15s,color .15s}.cfg-io-file-label:hover .cfg-io-file-btn{border-color:var(--accent);color:var(--accent)}.cfg-io-file-input:focus-visible+.cfg-io-file-btn{outline:2px solid var(--accent);outline-offset:2px}.cfg-io-file-name{font-size:12px;color:var(--text-secondary);font-style:italic}.cfg-io-textarea{width:100%;padding:10px 12px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);box-sizing:border-box;resize:vertical;min-height:140px}.cfg-io-textarea:focus{border-color:var(--accent);outline:none}.cfg-io-actions{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap}.cfg-io-preview{display:flex;gap:12px;padding:12px 14px;background:color-mix(in srgb,var(--green) 8%,transparent);border:1px solid color-mix(in srgb,var(--green) 28%,transparent);border-radius:var(--radius-xs);margin-top:4px}.cfg-io-preview-icon{width:20px;height:20px;flex-shrink:0;margin-top:1px}.cfg-io-preview-body{flex:1;min-width:0}.cfg-io-preview-title{font-size:12px;font-weight:600;color:var(--green);margin-bottom:8px}.cfg-io-preview-stats{display:flex;gap:20px;flex-wrap:wrap}.cfg-io-preview-stat{display:flex;flex-direction:column;gap:2px}.cfg-io-stat-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;font-weight:500}.cfg-io-stat-value{font-size:16px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.cfg-io-error{display:flex;gap:12px;padding:12px 14px;background:color-mix(in srgb,var(--red) 8%,transparent);border:1px solid color-mix(in srgb,var(--red) 28%,transparent);border-radius:var(--radius-xs);margin-top:4px}.cfg-io-error-icon{width:20px;height:20px;flex-shrink:0;margin-top:1px}.cfg-io-error-body{flex:1;min-width:0}.cfg-io-error-title{font-size:12px;font-weight:600;color:var(--red);margin-bottom:6px}.cfg-io-error-text{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);background:var(--bg-secondary);padding:8px 10px;border-radius:4px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;line-height:1.4}.oc-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}.oc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.oc-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.oc-header-actions{display:flex;gap:8px}.oc-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.oc-action-btn:hover{border-color:var(--accent);color:var(--text)}.oc-action-icon{width:13px;height:13px;opacity:.6}.oc-empty{text-align:center;padding:30px;color:var(--text-secondary)}.oc-empty-icon{width:40px;height:40px;opacity:.3;margin-bottom:8px}.oc-empty-hint{font-size:11px;opacity:.7}.oc-tree{overflow-x:auto;overflow-y:visible;padding:10px 0;min-height:0}.oc-node{display:flex;flex-direction:column;align-items:center}.oc-children{display:flex;gap:16px;padding-top:20px;position:relative}.oc-children:before{content:"";position:absolute;top:0;left:50%;width:0;height:20px;border-left:1px solid var(--border)}.oc-node:not(.oc-node-root){position:relative}.oc-node:not(.oc-node-root):before{content:"";position:absolute;top:-20px;left:50%;width:0;height:20px;border-left:1px solid var(--border)}.oc-node-card{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:8px;padding:8px 12px;min-width:120px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.oc-node-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #00000014}.oc-card-editing{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb, 52,152,219),.2)}.oc-card-owner{background:var(--accent);color:var(--white);border-left-color:var(--accent);cursor:default}.oc-node-top{display:flex;align-items:center;gap:6px}.oc-node-icon{width:20px;height:20px;flex-shrink:0;border-radius:4px}.oc-node-name{font-size:12px;font-weight:600;color:var(--text)}.oc-card-owner .oc-node-name{color:var(--white)}.oc-node-status{width:6px;height:6px;border-radius:50%;flex-shrink:0}.oc-node-emp{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.oc-emp-chip{font-size:9px;padding:1px 5px;background:var(--bg-secondary);border-radius:3px;color:var(--text-secondary)}.oc-node-vacant{font-size:10px;color:var(--yellow, #f39c12);font-style:italic;margin-top:3px}.oc-editor{background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:14px 16px;margin-top:6px;min-width:300px;width:max-content;max-width:420px}.oc-form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.oc-form-row label{font-size:11px;font-weight:600;color:var(--text-secondary)}.oc-form-row input,.oc-form-row select{width:100%;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);box-sizing:border-box}.oc-form-row input:focus,.oc-form-row select:focus{border-color:var(--accent);outline:none}.oc-spawn-checks{display:flex;flex-direction:column;gap:6px}.oc-check-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.oc-check-label input[type=checkbox],.oc-check-label input[type=radio]{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0}.oc-form-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.oc-add-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:14px}.wfe-pattern-strip{display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:5px 8px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.wfe-pattern-label{font-size:11px;color:var(--text-dim);margin-right:4px;font-weight:500}.wfe-pattern-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:11px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s}.wfe-pattern-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text)}.wfe-pattern-btn--active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);font-weight:600}.wfe-pattern-icon{width:14px;height:14px;filter:brightness(0) invert(.7)}.wfe-pattern-btn--active .wfe-pattern-icon{filter:none}.flow-dag-container{position:relative;overflow-x:auto;overflow-y:visible;padding:20px 16px;min-height:120px}.flow-dag-node{position:absolute;z-index:2;cursor:pointer;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px 12px;transition:box-shadow .15s,opacity .2s}.flow-dag-node:hover{box-shadow:0 0 0 2px var(--accent)}.flow-dag-node--selected{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.flow-dag-node--dimmed{opacity:.18}.flow-dag-node-header{display:flex;justify-content:space-between;align-items:center;gap:6px}.flow-dag-node-icon{width:16px;height:16px;flex-shrink:0;border-radius:3px}.flow-dag-node-title{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-dag-node-role{font-size:10px;color:var(--accent);font-weight:500;white-space:nowrap}.flow-dag-gate{display:flex;align-items:center;gap:4px;margin-top:4px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500}.flow-dag-gate--review{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.flow-dag-gate--approval{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.flow-dag-gate-icon{width:12px;height:12px}.flow-dag-gate-reviewer{font-style:italic;opacity:.7}.flow-dag-parallel-group{border:1px dashed var(--border);border-radius:10px;z-index:0}.flow-dag-parallel-label{position:absolute;top:-8px;left:10px;font-size:9px;padding:0 6px;background:var(--bg);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.flow-dag-svg{z-index:1}.flow-dag-insert-btn circle{transition:all .15s}.flow-dag-insert-btn:hover circle{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 12%,var(--bg-card))}.flow-dag-insert-btn:hover text{fill:var(--accent)}.wfe-connect-active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent);color:var(--accent)}.wfe-connect-hint{padding:8px 14px;font-size:12px;color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:6px;margin:0 0 8px}.wfe-hint-cancel{background:none;border:none;color:var(--text-secondary);cursor:pointer;text-decoration:underline;font-size:12px;padding:0;margin-left:8px}.flow-dag-port{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--border);border:1.5px solid var(--bg-card);z-index:3;transition:all .15s}.flow-dag-port--in{left:-4px;top:50%;transform:translateY(-50%)}.flow-dag-port--out{right:-4px;top:50%;transform:translateY(-50%)}.flow-dag-port--source{background:var(--accent);box-shadow:0 0 4px var(--accent)}.flow-dag-port--target{background:var(--green);box-shadow:0 0 4px var(--green)}.flow-dag-port--active{background:var(--yellow);box-shadow:0 0 6px var(--yellow);width:10px;height:10px;right:-5px}.oc-advanced-toggle{margin:4px 0;border-top:1px solid var(--border);padding-top:8px}.oc-advanced-btn{display:flex;align-items:center;gap:5px;padding:4px 0;background:none;border:none;color:var(--accent);font-size:11px;font-weight:600;cursor:pointer}.oc-advanced-btn:hover{opacity:.8}.oc-advanced-section{margin-top:4px}.oc-exec-options{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}.oc-exec-options .oc-check-label{white-space:nowrap}.oc-exec-agent-select{margin-top:6px;width:100%;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);box-sizing:border-box}.oc-form-row textarea{width:100%;padding:8px 10px;font-size:12px;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);line-height:1.5;box-sizing:border-box}.oc-form-row textarea:focus{border-color:var(--accent);outline:none}.wfe-policy-settings{padding:8px 4px}.wfe-policy-settings .oc-form-row label{font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px}.wfe-policy-settings .oc-spawn-checks{gap:8px;padding-left:2px}.wfe-policy-settings .oc-check-label{font-size:12px;color:var(--text-secondary)}.wfe-policy-settings .wfe-max-workers{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.wfe-policy-settings .wfe-max-workers input{width:60px;padding:4px 8px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text)}.wfe-policy-settings .oc-form-actions{margin-top:16px}.oc-canvas-node{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 82%,var(--bg) 18%),color-mix(in srgb,var(--bg) 72%,var(--bg-elevated) 28%));border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px;padding:12px 14px;min-width:208px;max-width:228px;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent),0 10px 28px #0000002e;font-family:inherit;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.oc-canvas-node:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:inset 0 1px color-mix(in srgb,var(--text) 7%,transparent),0 14px 32px #0000003d}.oc-canvas-node.is-owner{min-width:232px;max-width:256px;padding:14px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 17%,var(--bg-elevated) 83%),color-mix(in srgb,var(--bg) 66%,var(--accent) 8%));border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 28%,transparent),0 16px 34px #00000042}.oc-canvas-node.is-owner:hover{border-color:color-mix(in srgb,var(--accent) 90%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 34%,transparent),0 18px 42px #0000004d}.oc-canvas-node.is-selected{border-color:var(--accent);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 10%,transparent),0 0 0 2px var(--accent),0 0 0 6px color-mix(in srgb,var(--accent) 12%,transparent),0 8px 24px #0003}.oc-canvas-node.is-drop-target{border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 0 24px color-mix(in srgb,var(--green) 30%,transparent);transform:scale(1.03)}.oc-canvas-node-row{display:flex;align-items:center;gap:10px;min-width:0}.oc-canvas-node-chip{position:relative;flex-shrink:0;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px color-mix(in srgb,var(--text) 8%,transparent);transition:background .18s ease,box-shadow .18s ease}.oc-canvas-node:hover .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 18%,transparent)}.oc-canvas-node.is-selected .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 24%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent),inset 0 1px color-mix(in srgb,var(--text) 10%,transparent)}.is-owner .oc-canvas-node-chip{background:color-mix(in srgb,var(--accent) 28%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent),inset 0 1px color-mix(in srgb,var(--text) 7%,transparent)}.oc-canvas-node-chip-icon{width:18px;height:18px;display:block;background-color:var(--accent);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;transition:background-color .18s ease}.is-owner .oc-canvas-node-chip-icon{background-color:var(--accent)}.oc-canvas-node-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.oc-canvas-node-name{font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-owner .oc-canvas-node-name{color:var(--text)}.oc-canvas-node-meta{display:flex;gap:6px;align-items:center;font-size:10.5px;color:var(--text-secondary);line-height:1.2}.is-owner .oc-canvas-node-meta{color:var(--text-secondary)}.oc-canvas-node-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-canvas-node-person{font-weight:600;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-owner .oc-canvas-node-person{color:var(--text)}.oc-canvas-node-badge{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);padding:1px 7px;border-radius:10px;font-weight:600;font-size:10px;letter-spacing:.02em}.is-owner .oc-canvas-node-badge{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent)}.oc-canvas-handle{width:8px;height:8px;background:var(--accent);border:none;opacity:0}.oc-canvas-node:hover .oc-canvas-handle{opacity:.5}.react-flow__background{background:color-mix(in srgb,var(--bg) 92%,#000 8%)!important}.react-flow__edge-path{stroke:color-mix(in srgb,var(--text-secondary) 70%,var(--border) 30%);stroke-width:1.4;opacity:.48}.react-flow__edge:hover .react-flow__edge-path{stroke:var(--accent);opacity:1}.react-flow__minimap{background:color-mix(in srgb,var(--bg-elevated) 62%,transparent)!important;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:8px;opacity:.78;width:150px!important;height:92px!important;right:16px!important;bottom:16px!important}.react-flow__controls{left:16px!important;bottom:16px!important;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:8px;overflow:hidden}.react-flow__controls button{background:transparent;color:var(--text-secondary);border-bottom:1px solid var(--border)}.react-flow__controls button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.ri-panel{position:absolute;top:0;right:0;bottom:0;width:340px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-left:1px solid var(--border);box-shadow:-8px 0 32px #00000040;z-index:20;font-size:13px}.ri-panel-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.ri-panel-icon{width:22px;height:22px;opacity:.9;flex-shrink:0}.ri-panel-title-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ri-panel-title{margin:0;font-size:14px;font-weight:600;color:var(--text);letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-panel-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:var(--text-secondary);opacity:.8}.ri-panel-close{padding:4px 8px}.ri-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0}.ri-panel-body::-webkit-scrollbar{width:8px}.ri-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.ri-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.ri-group{border-bottom:1px solid var(--border)}.ri-group:last-child{border-bottom:none}.ri-group-header{width:100%;display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;cursor:pointer;color:var(--text);font-size:12px;font-weight:600;letter-spacing:.01em;transition:background .15s}.ri-group-header:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.ri-group-caret{font-size:10px;color:var(--text-secondary);width:12px;text-align:center;transition:transform .15s}.ri-group.is-expanded .ri-group-caret{color:var(--accent)}.ri-group-title{flex:1;text-align:left}.ri-group-body{padding:4px 16px 14px;display:flex;flex-direction:column;gap:12px}.ri-field{display:flex;flex-direction:column;gap:4px}.ri-field-label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.ri-field-control{display:flex;flex-direction:column;gap:4px}.ri-text-input,.ri-select,.ri-textarea{width:100%;padding:7px 10px;font-size:12px;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.ri-text-input:focus,.ri-select:focus,.ri-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.ri-textarea{resize:vertical;min-height:60px;line-height:1.5}.ri-textarea-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.ri-meta-value{font-size:12px;color:var(--text);padding:4px 0}.ri-radio-group{display:flex;gap:4px;flex-wrap:wrap}.ri-radio{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);font-size:11px;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s}.ri-radio:has(input:checked){border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.ri-radio input{margin:0;accent-color:var(--accent)}.ri-icon-picker{position:relative}.ri-icon-picker-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);cursor:pointer;transition:border-color .15s}.ri-icon-picker-trigger:hover:not(:disabled){border-color:var(--accent)}.ri-icon-picker-current{width:18px;height:18px;opacity:.9}.ri-icon-picker-label{font-size:11px;color:var(--text-secondary)}.ri-icon-picker-popover{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:280px;max-height:240px;overflow-y:auto;padding:8px;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-xs);box-shadow:0 8px 24px #00000059;display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.ri-icon-option{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);cursor:pointer;transition:background .15s,border-color .15s}.ri-icon-option:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}.ri-icon-option.is-active{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}.ri-icon-option img{width:20px;height:20px;opacity:.85}.ri-multiselect{position:relative}.ri-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.ri-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:999px;color:var(--accent);font-size:11px;font-weight:500}.ri-chip-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:50%;background:transparent;color:var(--accent);font-size:12px;cursor:pointer;opacity:.65;transition:opacity .15s,background .15s}.ri-chip-x:hover{opacity:1;background:color-mix(in srgb,var(--accent) 20%,transparent)}.ri-chip-add{padding:2px 10px;font-size:11px;color:var(--text-secondary);background:transparent;border:1px dashed var(--border);border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s}.ri-chip-add:hover{color:var(--accent);border-color:var(--accent)}.ri-multiselect-popover{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:180px;max-height:200px;overflow-y:auto;padding:4px;background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-xs);box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column}.ri-multiselect-option{padding:6px 10px;text-align:left;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text);font-size:12px;cursor:pointer;transition:background .15s}.ri-multiselect-option:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ri-toolcheck{display:flex;flex-direction:column;gap:10px}.ri-toolcheck-group{border:1px solid var(--border);border-radius:var(--radius-xs);padding:6px 10px 8px;margin:0;background:color-mix(in srgb,var(--bg) 40%,transparent)}.ri-toolcheck-legend{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);padding:0 6px;font-weight:600}.ri-toolcheck-items{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}.ri-toolcheck-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);cursor:pointer;padding:2px 0;transition:color .15s}.ri-toolcheck-item:has(input:checked){color:var(--text)}.ri-toolcheck-item input{margin:0;accent-color:var(--accent)}.ri-toolcheck-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}.ri-panel-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;flex-shrink:0}.rt-container{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow:hidden}.rt-bulk-bar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:var(--radius-xs);font-size:12px}.rt-bulk-count{font-weight:600;color:var(--accent);margin-right:auto}.rt-bulk-select{padding:4px 8px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text)}.rt-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.rt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.rt-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-elevated);padding:10px 12px;text-align:left;font-weight:600;font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.rt-th-sortable{cursor:pointer;transition:color .15s}.rt-th-sortable:hover{color:var(--accent)}.rt-sort-caret{font-size:9px;color:var(--accent)}.rt-table tbody td{padding:8px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);vertical-align:middle}.rt-row{cursor:pointer;transition:background .1s}.rt-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.rt-row-checked{background:color-mix(in srgb,var(--accent) 8%,transparent)}.rt-row-checked:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.rt-row-active{background:color-mix(in srgb,var(--accent) 14%,transparent)}.rt-row-active:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.rt-cell-icon{width:18px;height:18px;opacity:.85;display:block}.rt-cell-name{font-weight:500;color:var(--text)}.rt-cell-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;color:var(--text-secondary);opacity:.85}.rt-cell-count{font-variant-numeric:tabular-nums;color:var(--text)}.rt-cell-select{padding:4px 8px;font-size:11px;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.rt-cell-select:hover{border-color:var(--border);background:var(--bg-secondary)}.rt-cell-select:focus{outline:none;border-color:var(--accent);background:var(--bg-secondary)}.rt-cell-action{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:12px;cursor:pointer;opacity:0;transition:background .15s,color .15s,opacity .15s}.rt-row:hover .rt-cell-action{opacity:1}.rt-cell-action:hover{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.rt-inline-input{width:100%;padding:4px 6px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--text);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.rt-empty{text-align:center;padding:48px 16px;color:var(--text-secondary);font-size:13px}.se-container{display:flex;flex-direction:column;gap:10px;flex:1;min-height:480px;position:relative}.se-toolbar{display:flex;align-items:center;gap:10px;padding:0;flex-shrink:0;flex-wrap:wrap}.se-toolbar-actions{display:flex;gap:7px;margin-left:auto;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0}.se-toolbar-actions--readonly{color:var(--text-secondary)}.se-saved-org-control{display:inline-flex;align-items:center;gap:7px;min-width:0}.se-toolbar-label{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.se-readonly-pill{min-height:26px;display:inline-flex;align-items:center;padding:4px 10px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 7%,transparent);color:var(--text-secondary);font-size:11px;white-space:nowrap}.se-view-switcher{display:inline-flex;padding:2px;background:color-mix(in srgb,var(--bg-elevated) 72%,var(--bg) 28%);border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:8px}.se-view-btn{padding:5px 14px;font-size:12px;font-weight:500;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.se-view-btn:hover{color:var(--text)}.se-view-btn.is-active{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elevated) 82%);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}.se-body{position:relative;height:clamp(430px,calc(100vh - 330px),660px);min-height:430px;background:color-mix(in srgb,var(--bg) 92%,#000 8%);border:1px solid color-mix(in srgb,var(--border) 84%,transparent);border-radius:8px;overflow:hidden}.se-body>div,.se-body>div>.react-flow,.se-body .react-flow{width:100%!important;height:100%!important;position:relative;z-index:2}.se-body:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent) 0%,transparent 18%),radial-gradient(ellipse at center,transparent 58%,color-mix(in srgb,var(--bg) 86%,#000000) 100%);border-radius:inherit}.se-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);font-size:13px}.se-export-bar{display:flex;justify-content:flex-end;padding:0;margin-top:-2px}.oc-canvas-node.is-drop-target{animation:oc-drop-pulse .8s cubic-bezier(.4,0,.2,1) 1}@keyframes oc-drop-pulse{0%{box-shadow:0 0 0 2px var(--green),0 0 #0000}50%{box-shadow:0 0 0 2px var(--green),0 0 28px color-mix(in srgb,var(--green) 45%,transparent)}to{box-shadow:0 0 0 2px var(--green),0 0 18px color-mix(in srgb,var(--green) 25%,transparent)}}@media(prefers-reduced-motion:reduce){.react-flow__edge,.oc-canvas-node,.oc-canvas-node.is-drop-target,.ri-panel,.se-view-btn{animation:none!important;transition:none!important}}.sos-wrap{position:relative;display:inline-flex;align-items:center}.sos-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);font-size:12px;font-weight:500;letter-spacing:0;cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease;max-width:240px}.sos-pill:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--bg-elevated)}.sos-pill[data-open=true]{border-color:var(--accent);background:color-mix(in srgb,var(--bg-elevated) 88%,var(--accent) 8%)}.sos-pill-glyph{color:var(--accent);opacity:.9;flex-shrink:0}.sos-pill-name{font-weight:600;letter-spacing:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sos-pill-name--placeholder{opacity:.55;font-weight:500;font-style:italic}.sos-pill-dirty{width:6px;height:6px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 2px color-mix(in srgb,var(--yellow) 30%,transparent);flex-shrink:0}.sos-pill-caret{color:var(--text-secondary);transition:transform .15s ease;flex-shrink:0}.sos-pill[data-open=true] .sos-pill-caret{transform:rotate(180deg)}.se-toolbar-divider{width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.sos-popover{position:absolute;top:calc(100% + 6px);right:0;width:min(420px,calc(100vw - 32px));min-width:min(320px,calc(100vw - 32px));max-width:calc(100vw - 32px);z-index:80;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px #0000003d;overflow:hidden}.sos-search-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.sos-search-glyph{color:var(--text-secondary);opacity:.8;flex-shrink:0}.sos-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:12px;font-family:inherit}.sos-search-input::placeholder{color:var(--text-secondary);opacity:.7}.sos-search-hint{font-family:ui-monospace,SFMono-Regular,JetBrains Mono,Menlo,monospace;font-size:10px;color:var(--text-secondary);opacity:.6;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--bg-secondary) 60%,transparent);flex-shrink:0;letter-spacing:.05em}.sos-list{max-height:280px;overflow-y:auto;padding:4px 0}.sos-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px 7px 16px;cursor:pointer;transition:background .1s ease}.sos-row:hover,.sos-row[data-highlighted=true]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.sos-row--active:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;border-radius:1px;background:var(--accent)}.sos-row-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.sos-row-name{font-size:12.5px;font-weight:600;color:var(--text);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sos-row--active .sos-row-name{color:var(--accent)}.sos-row-stats{font-size:10.5px;color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sos-row-delete{opacity:.5;transition:opacity .12s ease,background .12s ease,color .12s ease;background:transparent;border:none;padding:3px 9px;border-radius:4px;color:var(--text-secondary);font-size:10.5px;font-family:inherit;letter-spacing:.02em;cursor:pointer;flex-shrink:0}.sos-row:hover .sos-row-delete,.sos-row[data-highlighted=true] .sos-row-delete{opacity:1}.sos-row-delete:hover{background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red)}.sos-row-delete--confirm{opacity:1!important;background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red);font-weight:600}.sos-row-loading{font-size:10.5px;color:var(--accent);letter-spacing:.02em;padding:3px 9px;flex-shrink:0;opacity:.8}.sos-row-active-chip{font-size:10.5px;color:var(--green);border:1px solid color-mix(in srgb,var(--green) 28%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent);border-radius:999px;padding:3px 9px;flex-shrink:0;letter-spacing:0}.sos-empty{padding:20px 12px;text-align:center;color:var(--text-secondary);font-size:11.5px;font-style:italic;opacity:.8}.sos-save-as{border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);padding:8px 10px}.sos-save-as-trigger{display:block;width:100%;padding:6px 8px;background:transparent;border:none;color:var(--accent);font-size:12px;font-weight:500;letter-spacing:0;cursor:pointer;border-radius:4px;font-family:inherit;text-align:left;transition:background .1s ease}.sos-save-as-trigger:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.sos-save-as-form{display:flex;gap:6px;align-items:center;padding:2px 4px}.sos-save-as-input{flex:1;padding:5px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;font-family:inherit;outline:none}.sos-save-as-input:focus{border-color:var(--accent)}.sos-save-as-hint{margin-top:6px;padding:0 6px;font-size:10.5px;color:var(--text-secondary);letter-spacing:.01em}.sos-save-as-hint--warn{color:var(--yellow)}@media(max-width:900px){.se-toolbar{align-items:stretch}.se-toolbar-actions{width:100%;margin-left:0;justify-content:flex-start}.se-saved-org-control{flex:1 1 240px}.sos-wrap,.sos-pill{max-width:100%}.se-body{height:min(560px,68vh);min-height:380px}.ri-panel{inset:auto 0 0;width:auto;max-height:62%;border-left:none;border-top:1px solid var(--border);box-shadow:0 -8px 28px #00000040}}@media(max-width:640px){.se-container{min-height:0}.se-view-switcher,.se-view-btn{width:100%}.se-view-switcher{display:grid;grid-template-columns:1fr 1fr}.se-saved-org-control{flex-direction:column;align-items:stretch;gap:5px}.se-toolbar-divider{display:none}.se-toolbar-actions .btn,.se-toolbar-actions .oc-btn-primary,.se-toolbar-actions .oc-btn-ghost{justify-content:center}.se-body{height:440px;min-height:360px}.react-flow__minimap{display:none!important}.react-flow__controls{left:10px!important;bottom:10px!important}.sos-popover{right:auto;left:0}.sos-save-as-form{flex-wrap:wrap}.sos-save-as-input{flex-basis:100%}}.org-toast{position:fixed;bottom:20px;right:20px;z-index:200;padding:10px 16px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12.5px;font-weight:500;letter-spacing:0;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 8%,transparent),0 8px 28px #0000004d}.org-toast--ok{border-left:2px solid var(--green);padding-left:14px}.org-toast--error{border-left:2px solid var(--red);padding-left:14px}@media(prefers-reduced-motion:reduce){.sos-popover,.sos-pill-dirty,.org-toast{animation:none!important}.sos-pill-caret,.sos-pill,.sos-row,.sos-row-delete{transition:none!important}}.agent-status-bar{display:flex;align-items:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;overflow:hidden}.agent-status-summary{font-size:10px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.agent-status-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}.agent-status-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;border:1px solid var(--border);background:var(--surface);font-size:11px;white-space:nowrap;flex-shrink:0;transition:border-color .2s,background .2s}.agent-status-chip.status-idle{opacity:.6}.agent-status-chip.status-reflecting{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,var(--surface))}.agent-status-chip.status-tool_active{border-color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--surface))}.agent-status-avatar{width:20px;height:20px;border-radius:50%;background:var(--accent-soft);border:1.5px solid var(--accent);color:var(--accent);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.agent-status-chip.status-reflecting .agent-status-avatar{border-color:var(--yellow);color:var(--yellow);background:color-mix(in srgb,var(--yellow) 15%,var(--surface))}.agent-status-chip.status-tool_active .agent-status-avatar{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 15%,var(--surface))}.agent-status-name{font-weight:500;color:var(--text)}.agent-status-detail{color:var(--text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis}.agent-status-chip.status-reflecting .agent-status-detail{color:var(--yellow)}.agent-status-chip.status-tool_active .agent-status-detail{color:var(--green)}.agent-status-task{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--bg);color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace}.kanban-board{display:flex;gap:10px;padding:16px;height:100%;min-height:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.kanban-column{display:flex;flex-direction:column;min-width:290px;max-width:290px;background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:hidden;flex-shrink:0}.kanban-column-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elevated)}.kanban-col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.kanban-col-label{font-size:11px;font-weight:600;color:var(--text-secondary);flex:1;text-transform:uppercase;letter-spacing:.06em}.kanban-col-count{font-size:10px;color:var(--text-secondary);padding:1px 6px;border-radius:999px;background:var(--bg);border:1px solid var(--border);min-width:20px;text-align:center}.kanban-col-add{margin-left:auto;background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:14px;width:22px;height:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s,color .15s}.kanban-col-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.kanban-quick-add{padding:4px 8px 8px}.kanban-quick-input{width:100%;padding:6px 8px;border:1px solid var(--accent);border-radius:6px;background:var(--bg);color:var(--text);font-size:.82rem;outline:none}.kanban-col-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:60px}.kanban-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.kanban-card:hover{border-color:var(--border-hover);box-shadow:0 2px 8px #0000001f}.kanban-card.is-dragging{box-shadow:0 8px 24px #00000047;border-color:var(--accent);opacity:.97}.kanban-card-id{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;letter-spacing:.02em;margin-bottom:5px;display:block}.kanban-card-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 6px}.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px;gap:4px}.kanban-card-footer-left{display:flex;align-items:center;gap:6px}.kanban-priority{font-size:13px;flex-shrink:0;line-height:1}.kanban-assignee-badge{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);border:1.5px solid var(--accent);color:var(--accent);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-transform:uppercase}.kanban-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-secondary);font-size:12px;opacity:.6}.kanban-empty-icon{font-size:28px;opacity:.4}.board-selector{border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.board-tabs{display:flex;gap:2px;padding:6px 16px;overflow-x:auto;scrollbar-width:none}.board-tab{padding:6px 14px;border:1px solid transparent;border-radius:6px 6px 0 0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s;white-space:nowrap;display:flex;align-items:center;gap:6px}.board-tab:hover{background:var(--surface);color:var(--text)}.board-tab.active{background:var(--surface);color:var(--text);border-color:var(--border);border-bottom-color:var(--surface);font-weight:600}.board-tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.board-tab-editable{cursor:default}.board-tab-title{cursor:text;padding:2px 4px;border-radius:3px;transition:background .12s}.board-tab-title:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.board-tab-title-input{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--accent);border-radius:3px;padding:2px 4px;outline:none;min-width:120px}.kanban-start-btn{width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0}.kanban-start-btn:hover{background:var(--accent-soft);color:var(--accent)}.kanban-card.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 2px 8px #4f46e526}.kanban-card-runtime{display:flex;align-items:center;gap:6px;padding:3px 8px;margin-bottom:6px;border-radius:4px;font-size:10px;font-weight:500;background:var(--surface)}.kanban-card-runtime.status-reflecting{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,var(--surface))}.kanban-card-runtime.status-tool_active{color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface))}.kanban-runtime-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;animation:kanban-pulse 1.2s ease-in-out infinite}.kanban-runtime-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes kanban-pulse{0%,to{opacity:1}50%{opacity:.4}}.kanban-dep-badge{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.kanban-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.kanban-cross-badge{font-size:10px;padding:1px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-weight:600}.kanban-card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.kanban-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer}.kanban-assignee-group{display:flex;gap:0}.kanban-assignee-group .kanban-assignee-badge{margin-left:-4px}.kanban-assignee-group .kanban-assignee-badge:first-child{margin-left:0}.kanban-assignee-more{background:var(--surface);color:var(--text-secondary);border-color:var(--border);font-size:8px}.kanban-card-meta-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.kanban-meta-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:1px 6px;border-radius:3px;border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.kanban-meta-icon{font-size:10px;line-height:1}.kanban-employee-badge{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.kanban-role-badge{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent)}.kanban-projection-badge{border-color:var(--yellow);color:var(--yellow);font-family:var(--font-mono, monospace);font-size:9px}.kanban-gate-badge{gap:2px}.kanban-gate-review{border-color:var(--yellow);color:var(--yellow)}.kanban-gate-approval{border-color:var(--green);color:var(--green)}.kanban-gate-human_confirmation{border-color:var(--red);color:var(--red)}.kanban-origin-badge{border-color:var(--text-secondary);color:var(--text-secondary);font-size:9px}@keyframes exec-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.exec-panel-backdrop{position:fixed;inset:0;background:#0000004d;z-index:199;animation:exec-backdrop-in .2s ease}@keyframes exec-backdrop-in{0%{opacity:0}to{opacity:1}}.exec-panel{position:fixed;top:0;right:0;width:560px;max-width:90vw;height:100vh;height:100dvh;background:var(--surface);border-left:1px solid var(--border);z-index:200;display:flex;flex-direction:column;animation:exec-slide-in .25s cubic-bezier(.32,.72,0,1);box-shadow:-4px 0 24px #0003}.exec-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.exec-panel-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.exec-panel-title-row svg{flex-shrink:0;color:var(--accent)}.exec-panel-title{margin:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-badge{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.exec-badge-running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.exec-badge-idle{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.exec-badge-done{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)}.exec-badge-pending{background:color-mix(in srgb,var(--text-secondary) 15%,transparent);color:var(--text-secondary)}.exec-badge-failed{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.exec-badge-cancelled{background:color-mix(in srgb,var(--text-secondary) 10%,transparent);color:var(--text-secondary)}.exec-panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s}.exec-panel-close:hover{background:var(--surface-hover, rgba(255, 255, 255, .06));color:var(--text-primary)}.exec-panel-identity{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.exec-panel-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.exec-panel-agent-info{display:flex;flex-direction:column;gap:1px;min-width:0}.exec-panel-agent-name{font-size:13px;font-weight:600;color:var(--text-primary)}.exec-panel-agent-role{font-size:11px;color:var(--green)}.exec-panel-employee{font-size:11px;color:var(--text-tertiary, var(--text-secondary));opacity:.8}.exec-panel-projection{font-size:11px;color:var(--text-secondary);text-transform:capitalize}.exec-panel-body{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 16px;display:flex;flex-direction:column;gap:16px}.exec-section{display:flex;flex-direction:column;gap:8px}.exec-section-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.exec-section-header svg{width:14px;height:14px;flex-shrink:0}.exec-section-content{font-size:13px;color:var(--text-primary);line-height:1.5}.exec-handoff-scroll{max-height:28vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.exec-handoff-scroll::-webkit-scrollbar{width:8px}.exec-handoff-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.exec-handoff-scroll::-webkit-scrollbar-track{background:transparent}.exec-activity-scroll{max-height:55vh;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:6px;background:color-mix(in srgb,var(--bg, var(--surface)) 30%,transparent)}.exec-activity-scroll::-webkit-scrollbar{width:8px}.exec-activity-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.exec-activity-scroll::-webkit-scrollbar-track{background:transparent}pre.exec-section-content{white-space:pre-wrap;word-break:break-word;background:var(--bg, var(--surface));border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12px;font-family:var(--mono, monospace);margin:0}.exec-section-empty{font-size:12px;color:var(--text-secondary);font-style:italic;padding:8px 0}.exec-artifact-list{margin:0;padding:0 0 0 18px;font-size:13px;color:var(--text-primary);line-height:1.6}.exec-artifact-item{word-break:break-word}.exec-panel-task-count{font-size:11px;padding:2px 8px;border-radius:10px;background:color-mix(in srgb,var(--text-secondary) 15%,transparent);color:var(--text-secondary);margin-left:6px;letter-spacing:.2px}.exec-task-card{border:1px solid color-mix(in srgb,var(--text-secondary) 20%,transparent);border-radius:8px;margin-bottom:10px;background:color-mix(in srgb,var(--bg-primary) 80%,transparent);overflow:hidden;flex-shrink:0;flex-basis:auto}.exec-task-card-focused{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.exec-task-card-header{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--text-primary)}.exec-task-card-header:hover{background:color-mix(in srgb,var(--text-secondary) 5%,transparent)}.exec-task-card-index{font-family:var(--font-mono, monospace);font-size:11px;color:var(--text-secondary);min-width:22px}.exec-task-card-title{flex:1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-task-card-time{font-size:11px;color:var(--text-secondary);white-space:nowrap}.exec-task-card-chevron{font-size:12px;color:var(--text-secondary);display:inline-block;transition:transform .12s ease}.exec-task-card-chevron.open{transform:rotate(90deg)}.exec-task-card-body{padding:4px 14px 14px;border-top:1px solid color-mix(in srgb,var(--text-secondary) 12%,transparent)}.exec-task-card-projection{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--text-secondary);margin:8px 0 12px}.exec-task-card-projection svg{width:13px;height:13px;color:var(--accent)}.exec-task-card-projection code{font-family:var(--font-mono, monospace);background:color-mix(in srgb,var(--text-secondary) 10%,transparent);padding:1px 6px;border-radius:4px}.exec-inline-tag{padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow);font-size:10px;font-weight:600;text-transform:uppercase}.exec-activity-sections{display:flex;flex-direction:column;gap:10px}.exec-activity-section{padding-top:8px;border-top:1px solid color-mix(in srgb,var(--text-secondary) 10%,transparent)}.exec-activity-section:first-child{padding-top:0;border-top:0}.exec-activity-section-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;min-width:0;font-size:11px;color:var(--text-secondary)}.exec-activity-section-title{color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-activity-section-role{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 10%,transparent)}.exec-section-count{font-size:10px;color:var(--text-secondary);padding:1px 6px;border-radius:8px;background:color-mix(in srgb,var(--text-secondary) 10%,transparent);margin-left:auto}.chat-fullpage{display:flex;flex:1;min-height:0;overflow:hidden;background:var(--bg)}.chat-page{display:flex;width:100%;height:100%;min-height:0}.session-sidebar{width:272px;min-width:240px;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;flex-shrink:0}.session-new-btn{margin:14px 14px 6px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .15s}.session-new-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.session-nav-btn{margin:2px 14px;padding:8px 12px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .12s;text-align:left}.session-nav-btn:hover{background:var(--surface-hover);color:var(--text)}.session-nav-btn.active{background:var(--accent-soft);color:var(--accent);border-left:2px solid var(--accent);padding-left:10px}.session-activity-btn{margin-top:auto;margin-bottom:10px}.session-search-wrap{display:flex;align-items:center;gap:6px;margin:6px 14px 8px;padding:6px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid transparent;color:var(--text-secondary);transition:border-color .15s}.session-search-wrap:focus-within{border-color:var(--accent)}.session-search{flex:1;border:none;background:transparent;color:var(--text);font-size:12px;font-family:inherit;outline:none}.session-search::placeholder{color:var(--text-secondary)}.session-list{flex:1;overflow-y:auto;padding:0 0 4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.session-list-virtualized{position:relative;contain:strict}.session-group{margin-bottom:2px}.session-group-label{padding:10px 16px 4px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.session-tree-node{position:relative}.session-tree-primary{display:flex;align-items:stretch}.session-expand-btn{width:20px;flex-shrink:0;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-left:4px;color:var(--text-secondary)}.session-expand-btn:before{content:"";display:block;width:0;height:0;border-left:4px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform .15s;transform:rotate(90deg)}.session-expand-btn.collapsed:before{transform:rotate(0)}.session-expand-btn:hover{color:var(--accent)}.session-children{position:relative;margin-left:12px;padding-left:8px;border-left:1px solid var(--border)}.session-child-count{border:none;background:transparent;color:var(--text-secondary);font-size:10px;font-weight:500;font-family:inherit;cursor:pointer;padding:2px 16px 2px 36px;text-align:left}.session-child-count:hover{color:var(--accent)}.session-unread-badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center}.session-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;border-radius:var(--radius-xs);margin:1px 8px;width:calc(100% - 16px);background:transparent;color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;position:relative;transition:background .12s,border-color .12s;border-left:2px solid transparent}.session-item:hover{background:var(--surface-hover)}.session-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.session-item.session-item-child{padding:5px 12px 5px 6px;border-left:none;font-size:12px;position:relative;margin:0;width:100%}.session-tree-line{position:absolute;left:-8px;top:0;bottom:50%;width:8px;border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-bottom-left-radius:4px;pointer-events:none}.session-tree-line.last{bottom:50%}.session-agent-tag{display:inline-block;font-size:10px;font-weight:600;padding:0 5px;border-radius:3px;background:var(--accent-soft);color:var(--accent);margin-right:4px}.session-runtime-badge{display:inline-flex;align-items:center;color:var(--accent);margin-right:4px;flex-shrink:0}.session-runtime-badge svg{width:12px;height:12px}.session-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.session-dot.status-running,.session-dot.status-running-idle{background:var(--green);opacity:.35}.session-dot.status-tool-active{background:var(--green);box-shadow:0 0 4px color-mix(in srgb,var(--green) 55%,transparent)}.session-dot.status-reflecting{background:var(--yellow);box-shadow:0 0 4px color-mix(in srgb,var(--yellow) 55%,transparent)}.session-dot.status-idle{background:var(--accent);opacity:.7}.session-dot.status-done{background:var(--green)}.session-dot.status-pending{background:var(--text-secondary);opacity:.4}.session-dot.status-failed{background:var(--red)}.session-dot.status-cancelled{background:var(--text-secondary);opacity:.3}.session-dot.status-blocked{background:var(--yellow)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.session-item-content{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.session-item-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.session-item-meta{font-size:11px;color:var(--text-secondary)}.session-delete-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;transition:all .12s}.session-delete-btn:hover{color:var(--red);background:#f871711a}.session-empty{padding:32px 16px;text-align:center;color:var(--text-secondary);font-size:12px}.task-header-shell{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.task-header-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px;min-height:48px;min-width:0}.task-header-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;flex-wrap:wrap;row-gap:6px}.task-title{font-size:14px;font-weight:600;color:var(--text);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .12s;min-width:0;max-width:100%;flex:1 1 auto}.task-title:hover{color:var(--accent)}.task-title-input{font-size:14px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-xs);padding:2px 8px;font-family:inherit;outline:none;width:100%;max-width:400px}.task-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:var(--surface);font-size:11px;font-weight:500;color:var(--text-secondary);flex-shrink:0}.task-status-pill[data-status=running]{color:var(--green)}.task-status-pill[data-status=idle]{color:var(--accent)}.task-status-pill[data-status=failed]{color:var(--red)}.task-status-pill[data-status=blocked]{color:var(--yellow)}.task-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-status-pill[data-working=true] .task-status-dot{opacity:.9;box-shadow:0 0 5px color-mix(in srgb,currentColor 45%,transparent)}.task-tool-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;background:#34d39914;color:var(--green);font-size:11px;flex-shrink:0}.task-tool-pill code{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:500;background:none;padding:0}.task-projection-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:#eab30814;color:var(--yellow);font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;flex-shrink:0}.task-role-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:#10b98114;color:var(--green);font-size:11px;flex-shrink:0}.task-employee-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:#6366f114;color:var(--accent);font-size:11px;flex-shrink:0}.task-employee-icon{font-size:11px;line-height:1}.task-agent-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:#0ea5e914;color:var(--blue);font-size:11px;flex-shrink:0}.task-agent-icon{font-size:11px;line-height:1}.task-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.task-header-avatars{display:flex}.task-header-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);border:2px solid var(--bg);color:var(--accent);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:-4px}.task-header-avatar:first-child{margin-left:0}.task-header-time{font-size:11px;color:var(--text-secondary);opacity:.6}.task-header-metrics{display:flex;flex-wrap:wrap;gap:6px 10px;padding:0 20px 10px}.task-runtime-metric{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 85%,transparent 15%);background:color-mix(in srgb,var(--surface) 86%,var(--bg-elevated) 14%)}.task-runtime-metric-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);flex-shrink:0}.task-runtime-metric-value{font-size:11px;color:var(--text);font-family:JetBrains Mono,SF Mono,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.task-stop-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--red);border-radius:var(--radius-xs);background:transparent;color:var(--red);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-stop-btn:hover{background:var(--red);color:#fff}.task-stop-btn:disabled{opacity:.45;cursor:not-allowed}.task-stop-btn:disabled:hover{background:transparent;color:var(--red)}.task-resume-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--accent);border-radius:var(--radius-xs);background:transparent;color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-resume-btn:hover{background:var(--accent);color:#fff}.task-done-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--green);border-radius:var(--radius-xs);background:transparent;color:var(--green);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.task-done-btn:hover{background:var(--green);color:#fff}.task-board-btn{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;transition:all .12s}.task-board-btn:hover{background:var(--surface-hover);color:var(--text)}@container ctxpanel (max-width: 720px){.task-header-bar{align-items:flex-start;flex-wrap:wrap;padding:10px 14px;gap:8px}.task-header-right{width:100%;justify-content:flex-end;flex-wrap:wrap}.task-header-metrics{padding:0 14px 10px}}@container ctxpanel (max-width: 560px){.task-projection-pill,.task-employee-pill,.task-tool-pill,.task-header-time,.task-header-avatars{display:none}.task-header-bar{padding:10px 12px}.task-runtime-metric-value{font-size:10.5px}}@container ctxpanel (max-width: 420px){.task-role-pill{display:none}.task-agent-pill .task-agent-icon{margin-right:0}.task-stop-btn span,.task-done-btn span,.task-resume-btn span{display:none}.task-stop-btn,.task-done-btn,.task-resume-btn{padding:5px 8px}.task-header-bar{padding:8px 10px}.task-header-metrics{padding:0 10px 8px;gap:6px 8px}}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.chat-main-header{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0;min-height:48px}.chat-main-icon{font-size:13px;font-weight:700;color:var(--text-secondary)}.chat-main-name{font-size:14px;font-weight:600;color:var(--text)}.chat-main-desc{margin-left:8px;font-size:11px;color:var(--text-secondary);font-weight:400}.msg-list{flex:1;min-height:0;overflow-y:auto;padding:16px 0 20px;scrollbar-width:thin;scrollbar-gutter:stable;scrollbar-color:var(--border) transparent;overscroll-behavior-y:contain;overflow-anchor:none;position:relative}.msg-end-anchor{height:1px;flex-shrink:0;overflow-anchor:none}.msg-history-hint{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 20px 14px;flex-wrap:wrap}.msg-history-load-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 12px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,border-color .12s}.msg-history-load-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.msg-history-load-btn:disabled{opacity:.65;cursor:default}.msg-history-meta{font-size:11px;color:var(--text-secondary)}.msg-pending-section{margin-top:10px;padding:12px 16px 0;border-top:1px solid var(--border);background:linear-gradient(180deg,transparent 0%,var(--bg-elevated) 28px)}.msg-pending-header{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 8px 10px}.msg-pending-stack{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.msg-row-pending{animation:msg-enter .2s ease-out}.msg-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 24px;color:var(--text-secondary);text-align:center;flex:1;min-height:0}.msg-welcome-icon{color:var(--accent);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--accent) 18%,transparent 82%),transparent 70%),color-mix(in srgb,var(--accent-soft) 65%,var(--bg-elevated) 35%);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent 78%);border-radius:50%;box-shadow:0 1px color-mix(in srgb,var(--accent) 22%,transparent 78%) inset,0 8px 24px -10px color-mix(in srgb,var(--accent) 60%,transparent 40%)}.msg-welcome-icon svg{width:26px;height:26px;opacity:.85}.msg-welcome-title{font-size:18px;font-weight:600;color:var(--text);margin-top:2px;letter-spacing:-.01em}.msg-welcome-hint{font-size:13px;line-height:1.55;max-width:320px;color:var(--text-secondary);opacity:.85}@container ctxpanel (max-width: 480px){.msg-welcome{padding:36px 20px;gap:10px}.msg-welcome-icon{width:48px;height:48px}.msg-welcome-icon svg{width:22px;height:22px}.msg-welcome-title{font-size:16px}.msg-welcome-hint{font-size:12px;line-height:1.5}}.msg-date-sep{display:flex;align-items:center;justify-content:center;padding:12px 0 8px}.msg-date-sep span{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;padding:2px 12px;background:var(--surface);border-radius:999px}.msg-system{display:flex;justify-content:center;padding:6px 20px}.msg-system span{font-size:11px;color:var(--text-secondary);background:var(--surface);padding:4px 12px;border-radius:999px}.work-item-divider{display:flex;align-items:center;gap:12px;padding:14px 24px;max-width:820px;margin:4px auto;animation:msg-enter .2s ease-out}.work-item-divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent)}.work-item-divider-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;text-transform:capitalize}.work-item-divider-icon{font-size:10px;line-height:1}.work-item-divider-action{font-weight:400;opacity:.7;font-size:10px}.work-item-divider-active .work-item-divider-icon{color:#f59e0b}.work-item-divider-active .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(245,158,11,.25) 20%,rgba(245,158,11,.25) 80%,transparent)}.work-item-divider-passed .work-item-divider-icon{color:#10b981}.work-item-divider-passed .work-item-divider-label{color:#10b981;opacity:.8}.work-item-divider-passed .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(16,185,129,.2) 20%,rgba(16,185,129,.2) 80%,transparent)}.work-item-divider-rejected .work-item-divider-icon{color:#f59e0b}.work-item-divider-rejected .work-item-divider-label{color:#f59e0b;opacity:.8}.work-item-divider-failed .work-item-divider-icon{color:var(--red)}.work-item-divider-failed .work-item-divider-label{color:var(--red);opacity:.8}.work-item-divider-failed .work-item-divider-line{background:linear-gradient(90deg,transparent,rgba(239,68,68,.15) 20%,rgba(239,68,68,.15) 80%,transparent)}.work-item-divider-waiting .work-item-divider-icon,.work-item-divider-waiting .work-item-divider-label{color:var(--text-secondary)}.msg-row{display:flex;gap:10px;padding:6px 24px;max-width:820px;width:100%;margin:0 auto;animation:msg-enter .2s ease-out;border-radius:var(--radius-xs);transition:background .1s}@keyframes msg-enter{0%{opacity:0}to{opacity:1}}.msg-row.user{justify-content:flex-end}.msg-row.deleted-sender{opacity:.5}.msg-row.grouped{padding-top:0;padding-bottom:0;animation:none}.msg-row-inline-progress,.msg-row-context,.msg-row-draft{align-items:flex-start}.msg-row.agent.grouped .msg-content-agent-card{border-top:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-top:-1px}.msg-row.user.grouped{padding-top:2px}.msg-row.user.grouped .msg-content-user{border-radius:18px 4px 4px 18px}.msg-avatar-spacer{width:34px;flex-shrink:0}.msg-time-inline{font-size:10px;opacity:0;transition:opacity .15s}.msg-row:hover .msg-time-inline{opacity:.6}.msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:700;margin-top:1px}.agent-avatar{background:linear-gradient(135deg,var(--accent-soft),var(--surface));color:#fff;border:none;box-shadow:0 1px 3px #00000026;text-shadow:0 1px 2px rgba(0,0,0,.2)}.msg-avatar-context{background:linear-gradient(135deg,#3b82f62e,#0ea5e947);color:var(--accent)}.msg-avatar-draft{background:linear-gradient(135deg,#10b98138,#3b82f633);color:var(--green)}.msg-body{flex:1;min-width:0}.msg-inline-progress-body{width:100%}.msg-inline-progress-shell{width:100%;max-width:100%}.msg-body-user{max-width:70%}.msg-agent-header{display:flex;align-items:center;gap:8px;margin-bottom:3px}.msg-sender{font-size:12px;font-weight:600;color:var(--text)}.msg-sender.deleted{color:var(--text-secondary);text-decoration:line-through}.msg-time{font-size:10px;color:var(--text-secondary);opacity:.6}.msg-reply-indicator{font-size:11px;color:var(--text-secondary);padding:2px 0 4px 10px;border-left:2px solid var(--accent-soft);margin-bottom:4px}.msg-ops-row{display:flex;align-items:center;gap:8px;width:min(820px,100%);margin:2px auto;padding:5px clamp(12px,3vw,24px) 5px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;font-size:clamp(11px,.74rem,12.5px);color:var(--text-secondary);background:transparent;border:1px solid transparent;cursor:default;-webkit-user-select:none;user-select:none;transition:background .14s ease,border-color .14s ease,color .14s ease;min-width:0}.msg-ops-row[role=button]{cursor:pointer}.msg-ops-row:hover,.msg-ops-row.expanded{background:color-mix(in srgb,var(--surface) 60%,transparent 40%);border-color:color-mix(in srgb,var(--border) 60%,transparent 40%);color:var(--text)}.msg-ops-dot{width:5px;height:5px;border-radius:999px;flex-shrink:0;background:color-mix(in srgb,var(--text-secondary) 60%,transparent 40%)}.msg-ops-tone-info .msg-ops-dot{background:color-mix(in srgb,var(--accent) 80%,transparent 20%)}.msg-ops-tone-success .msg-ops-dot{background:var(--green)}.msg-ops-tone-warning .msg-ops-dot{background:var(--yellow)}.msg-ops-tone-danger .msg-ops-dot{background:var(--red)}.msg-ops-label{font-weight:600;letter-spacing:.01em;color:var(--text);flex-shrink:0}.msg-ops-tone-info .msg-ops-label{color:color-mix(in srgb,var(--accent) 88%,var(--text) 12%)}.msg-ops-tone-success .msg-ops-label{color:color-mix(in srgb,var(--green) 90%,var(--text) 10%)}.msg-ops-tone-warning .msg-ops-label{color:color-mix(in srgb,var(--yellow) 90%,var(--text) 10%)}.msg-ops-tone-danger .msg-ops-label{color:color-mix(in srgb,var(--red) 90%,var(--text) 10%)}.msg-ops-summary{color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-ops-time{font-size:10.5px;color:var(--text-secondary);opacity:.55;flex-shrink:0;font-variant-numeric:tabular-nums}.msg-ops-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-secondary);opacity:.6;flex-shrink:0;transition:transform .16s ease,opacity .16s ease;transform:rotate(0)}.msg-ops-row.expanded .msg-ops-chevron{opacity:1}.msg-ops-details{width:min(820px,100%);margin:0 auto 6px;padding:10px clamp(12px,3vw,24px) 10px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 80%,var(--surface) 20%);border:1px solid color-mix(in srgb,var(--border) 70%,transparent 30%)}.msg-ops-details-pre{margin:0;font-family:JetBrains Mono,SF Mono,monospace;font-size:10.5px;line-height:1.55;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:220px;overflow-y:auto}.msg-ops-bundle{display:flex;align-items:center;gap:8px;width:min(820px,100%);margin:3px auto;padding:6px clamp(12px,3vw,24px) 6px clamp(20px,8vw,56px);box-sizing:border-box;border:1px dashed color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 42%,transparent);color:var(--text-secondary);font:inherit;font-size:12px;text-align:left;cursor:pointer;min-width:0;transition:background .14s ease,border-color .14s ease,color .14s ease}.msg-ops-bundle:hover,.msg-ops-bundle.expanded{background:color-mix(in srgb,var(--surface) 76%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--text)}.msg-ops-bundle-dot{width:6px;height:6px;border-radius:999px;flex:0 0 auto;background:color-mix(in srgb,var(--accent) 72%,transparent)}.msg-ops-bundle-title{flex:0 0 auto;color:var(--text);font-weight:650}.msg-ops-bundle-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-ops-bundle-time{flex:0 0 auto;font-size:10.5px;color:var(--text-secondary);opacity:.6;font-variant-numeric:tabular-nums}.msg-ops-bundle-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-secondary);flex:0 0 auto}.msg-ops-bundle-details{width:min(820px,100%);margin:0 auto 8px;padding:6px clamp(12px,3vw,24px) 8px clamp(20px,8vw,56px);box-sizing:border-box;border-radius:8px;background:color-mix(in srgb,var(--bg-elevated) 80%,var(--surface) 20%);border:1px solid color-mix(in srgb,var(--border) 68%,transparent)}.msg-ops-bundle-event{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 0;font-size:11.5px}.msg-content-agent-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px var(--radius-sm) var(--radius-sm) 2px;padding:10px 14px;transition:border-color .2s,box-shadow .2s,border-left-color .2s}.msg-attached-thinking{margin-bottom:10px}.msg-row.agent:hover .msg-content-agent-card{border-color:var(--border-hover);border-left-color:var(--accent);box-shadow:0 2px 8px #00000014}.msg-context-card{border-left-color:#3b82f6bf;background:linear-gradient(180deg,rgba(59,130,246,.06),var(--surface))}.msg-context-label,.msg-draft-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.msg-draft-card{border-style:dashed;border-left-color:var(--green);background:linear-gradient(180deg,rgba(16,185,129,.06),var(--surface))}.msg-row-project-update .msg-body{min-width:0}.msg-project-update-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px var(--radius-sm) var(--radius-sm) 2px;padding:11px 14px 10px;display:flex;flex-direction:column;gap:10px;min-width:0;overflow:hidden}.msg-project-update-report{border-left-color:var(--accent)}.msg-project-update-review{border-left-color:var(--green)}.msg-project-update-update{border-left-color:var(--yellow)}.msg-project-update-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.msg-project-update-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.msg-project-update-chip{flex:0 1 auto;min-width:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,transparent);color:color-mix(in srgb,var(--green) 86%,var(--text) 14%);font-size:11px;font-weight:650}.msg-project-update-title{margin-top:8px;color:var(--text-secondary);font-size:12px;font-weight:650;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.msg-project-update-summary{color:var(--text);line-height:1.58;font-size:14px;overflow-wrap:anywhere;word-break:break-word}.msg-project-update-summary p{margin:0 0 7px}.msg-project-update-summary p:last-child{margin-bottom:0}.msg-project-update-section{min-width:0}.msg-project-update-section-label{margin-bottom:5px;color:var(--text-secondary);font-size:11px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.msg-project-update-artifacts{display:grid;gap:6px}.msg-project-update-artifact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;min-width:0;padding:7px 9px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:6px;background:color-mix(in srgb,var(--bg-elevated) 46%,transparent)}.msg-project-update-artifact-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12.5px;font-weight:650}.msg-project-update-artifact-status{color:var(--green);font-size:11px;font-weight:650;text-transform:lowercase}.msg-project-update-artifact-path{grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);background:transparent;font-size:11px}.msg-project-update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.msg-project-update-list{margin:0;padding-left:18px;color:var(--text-secondary);font-size:12.5px;line-height:1.48;min-width:0}.msg-project-update-list li{margin:0 0 4px;overflow-wrap:anywhere;word-break:break-word}@media(max-width:680px){.msg-project-update-grid{grid-template-columns:1fr}.msg-project-update-head{align-items:flex-start;flex-direction:column}.msg-project-update-chip{max-width:100%}}.msg-content-agent{font-size:14px;line-height:1.65;color:var(--text);word-wrap:break-word}.msg-content-agent h1,.msg-content-agent h2,.msg-content-agent h3,.msg-content-agent h4,.msg-content-agent h5,.msg-content-agent h6{margin:0 0 10px;line-height:1.35}.msg-content-agent p{margin:0 0 8px}.msg-content-agent p:last-child{margin-bottom:0}.msg-content-agent ul,.msg-content-agent ol{margin:4px 0 8px;padding-left:20px}.msg-content-agent li{margin-bottom:3px;line-height:1.55}.msg-content-agent pre{background:var(--bg);padding:10px 14px;border-radius:var(--radius-xs);border:1px solid var(--border);overflow-x:auto;font-size:12px;line-height:1.5;margin:8px 0}.msg-content-agent code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:12px;background:var(--accent-soft);padding:2px 6px;border-radius:4px;color:var(--accent)}.msg-content-agent pre code{background:transparent;padding:0;color:var(--text)}.msg-content-agent blockquote{margin:8px 0;padding:6px 14px;border-left:3px solid var(--accent-soft);color:var(--text-secondary);background:#0000000a;border-radius:0 var(--radius-xs) var(--radius-xs) 0}.msg-content-agent table{border-collapse:collapse;margin:8px 0;font-size:13px;width:100%}.msg-content-agent th,.msg-content-agent td{border:1px solid var(--border);padding:6px 12px;text-align:left}.msg-content-agent th{background:var(--bg);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.msg-content-agent strong{color:var(--text)}.msg-content-agent a{color:var(--accent);text-decoration:none}.msg-content-agent a:hover{text-decoration:underline}.msg-content-agent hr{border:none;border-top:1px solid var(--border);margin:12px 0}.msg-content-user{background:var(--accent);color:#fff;padding:10px 16px;border-radius:18px 18px 4px;font-size:14px;line-height:1.5;word-wrap:break-word;white-space:pre-wrap;box-shadow:0 1px 3px #0000001a}.msg-content-user-markdown{color:inherit;font-size:inherit;line-height:inherit}.msg-content-user-markdown h1,.msg-content-user-markdown h2,.msg-content-user-markdown h3,.msg-content-user-markdown h4,.msg-content-user-markdown h5,.msg-content-user-markdown h6{margin:0 0 8px;line-height:1.35;color:inherit}.msg-content-user-markdown p{margin:0 0 8px}.msg-content-user-markdown p:last-child{margin-bottom:0}.msg-content-user-markdown ul,.msg-content-user-markdown ol{margin:4px 0 8px;padding-left:20px}.msg-content-user-markdown li{margin-bottom:3px;line-height:1.5}.msg-content-user-markdown strong{color:inherit}.msg-content-user-markdown a{color:inherit;text-decoration:underline}.msg-content-user-markdown code{background:#ffffff24;color:inherit;border-radius:4px;padding:.08em .35em;font-size:.92em}.msg-content-user-markdown pre{background:#00000029;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-xs);padding:10px 12px;margin:8px 0;overflow-x:auto}.msg-content-user-markdown pre code{background:transparent;border:none;padding:0}.msg-meta-user{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;opacity:0;transition:opacity .15s}.msg-row.user:hover .msg-meta-user{opacity:1}.msg-card-actions{display:flex;gap:2px;margin-top:4px;padding-top:0;height:0;overflow:hidden;opacity:0;transition:opacity .15s,height .15s}.msg-row:hover .msg-card-actions{opacity:1;height:26px}.msg-action-btn{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px;font-family:inherit;transition:all .12s}.msg-action-btn:hover{background:var(--surface);color:var(--text)}.agent-working-row{animation:msg-enter .2s ease-out}.agent-working-row .progress-block{border:1px dashed var(--border-hover);background:transparent}.ptl-block{display:flex;flex-direction:column;gap:0;animation:ptl-enter .2s ease-out}@keyframes ptl-enter{0%{opacity:0}to{opacity:1}}.ptl-live{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:6px;font-size:12px;font-weight:500}.ptl-live-think{background:var(--accent-soft);color:var(--accent)}.ptl-live-tool{background:#34d3990f;color:var(--green)}.ptl-live-icon{display:flex;align-items:center;flex-shrink:0}.ptl-live-think .ptl-live-icon{animation:ptl-spin 3s linear infinite}@keyframes ptl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptl-live-text{white-space:nowrap}.ptl-live-tool-name{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:600;background:#34d3991a;padding:2px 8px;border-radius:4px}.ptl-live-shimmer{flex:1;height:2px;min-width:32px;border-radius:1px;background:linear-gradient(90deg,transparent 0%,currentColor 50%,transparent 100%);opacity:.25;background-size:200% 100%;animation:ptl-shimmer 1.5s ease-in-out infinite}@keyframes ptl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ptl-live-elapsed{font-size:10px;font-family:JetBrains Mono,SF Mono,monospace;color:var(--text-secondary);white-space:nowrap}.ptl-last-tool-summary{display:flex;align-items:baseline;gap:6px;padding:4px 12px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid rgba(128,128,128,.08)}.ptl-last-tool-label{font-weight:600;white-space:nowrap;color:var(--green);font-size:10px;text-transform:uppercase;letter-spacing:.3px}.ptl-last-tool-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptl-autonomy-card{border-left-color:var(--yellow)}.ptl-autonomy-detail{color:var(--text-secondary);font-size:11px;padding:4px 8px}.task-runtime-metric-approval{color:var(--yellow);font-weight:600}.ptl-completion{display:flex;align-items:center;gap:6px;padding:6px 12px;margin-top:4px;border-radius:6px;font-size:11px;font-weight:600}.ptl-completion-icon{font-size:13px;line-height:1}.ptl-completion-done{color:var(--green);background:#10b98114}.ptl-completion-failed{color:var(--red);background:#ef444414}.ptl-completion-cancelled{color:var(--text-secondary);background:#8080800f}.ptl-expand{display:flex;align-items:center;gap:4px;border:none;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;padding:4px 12px;margin-bottom:2px;transition:color .12s}.ptl-expand:hover{color:var(--accent)}.ptl-timeline{display:flex;flex-direction:column;padding-left:2px}.ptl-entry{display:flex;gap:0;min-height:30px;animation:ptl-entry-in .18s ease-out}@keyframes ptl-entry-in{0%{opacity:0}to{opacity:1}}.ptl-connector{display:flex;flex-direction:column;align-items:center;width:26px;flex-shrink:0}.ptl-dot{width:22px;height:22px;border-radius:6px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s,background .2s}.ptl-dot svg{width:12px;height:12px}.ptl-entry:hover .ptl-dot{border-color:currentColor;background:color-mix(in srgb,currentColor 6%,var(--surface))}.ptl-line{width:1px;flex:1;background:var(--border);min-height:8px}.ptl-entry-last .ptl-line{display:none}.ptl-content{flex:1;min-width:0;padding:2px 0 8px 8px}.ptl-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-height:22px}.ptl-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.ptl-tool-badge{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;font-weight:600;background:#34d39914;color:var(--green);padding:1px 7px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.ptl-summary{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.ptl-tool-card{width:100%;min-width:0;background:color-mix(in srgb,var(--surface) 78%,#d9dde5 22%);border:1px solid var(--border);border-radius:10px;overflow:hidden}.ptl-tool-toggle{width:100%;border:none;background:transparent;padding:8px 10px;text-align:left}.ptl-tool-toggle.clickable{cursor:pointer}.ptl-tool-toggle.clickable:hover{background:color-mix(in srgb,var(--surface) 70%,#e7ebf2 30%)}.ptl-tool-chevron{margin-left:auto;color:var(--text-secondary);display:inline-flex;align-items:center}.ptl-tool-card-detail{border-top:1px solid var(--border);padding:9px 10px 10px;margin:0;font-size:11px;color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:auto;max-width:100%;font-family:JetBrains Mono,SF Mono,monospace;background:color-mix(in srgb,var(--surface) 86%,#f2f4f8 14%)}.ptl-thinking-detail{font-family:inherit;font-size:12px;line-height:1.6;color:var(--text);max-height:300px;overflow-y:auto}.ptl-time{font-size:10px;color:var(--text-secondary);opacity:.5;flex-shrink:0;white-space:nowrap}.ptl-detail{font-size:11px;color:var(--text-secondary);opacity:.7;margin-top:2px;padding-left:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:JetBrains Mono,SF Mono,monospace;max-width:400px}.ckpt-escalation{border-color:color-mix(in srgb,var(--yellow) 55%,var(--border) 45%)}.ckpt-icon-escalation{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 14%,transparent)}.ckpt-escalation-body{display:flex;flex-direction:column;gap:6px;margin-top:10px}.ckpt-escalation-line{font-size:12px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.ckpt-escalation-actions{flex-wrap:wrap}.ckpt-escalation-hint{margin-top:10px;font-size:11px;color:var(--text-secondary)}.agent-working-row .ptl-block{border:1px dashed var(--border-hover);border-radius:var(--radius-sm);padding:10px 12px;background:transparent}.code-block-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin:8px 0}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;background:var(--surface);border-bottom:1px solid var(--border)}.code-block-lang{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.code-block-copy{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;font-family:inherit;display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;transition:all .12s}.code-block-copy:hover{color:var(--text);background:var(--surface-hover)}.code-block-wrap pre{margin:0;border:none;border-radius:0;background:var(--bg)!important}.msg-composer{padding:4px 24px 16px;flex-shrink:0;max-width:820px;width:100%;margin:0 auto}.msg-composer .composer-input-area{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s,box-shadow .2s;box-shadow:0 2px 8px #0000000f}.msg-composer.focused .composer-input-area{border-color:var(--accent);box-shadow:0 2px 12px #00000014,0 0 0 3px var(--accent-glow)}.msg-composer .composer-input-area textarea{width:100%;padding:14px 16px 0;border:none;background:transparent;color:var(--text);font-size:14px;font-family:inherit;outline:none;resize:none;min-height:24px;max-height:200px;line-height:1.5}.msg-composer .composer-input-area textarea::placeholder{color:var(--text-secondary)}.composer-bottom{display:flex;align-items:center;gap:8px;padding:6px 8px 8px 16px}.composer-config-group{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:18px;border:1px solid color-mix(in srgb,var(--border) 78%,var(--accent-soft) 22%);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 88%,white 12%),color-mix(in srgb,var(--surface) 86%,var(--bg-elevated) 14%));box-shadow:inset 0 1px #ffffff14,0 10px 20px #0f172a14;min-width:0;flex-shrink:0}.composer-config-divider{width:1px;height:24px;background:color-mix(in srgb,var(--border) 72%,transparent 28%);border-radius:999px;flex-shrink:0}.composer-mode-inline{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-shrink:0;padding:0 4px}.composer-mode-inline-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.composer-mode-inline[data-kind=mode] .composer-mode-inline-label{color:color-mix(in srgb,var(--accent) 74%,var(--text-secondary) 26%)}.composer-mode-inline[data-kind=agent] .composer-mode-inline-label{color:color-mix(in srgb,var(--yellow) 78%,var(--text-secondary) 22%)}.composer-mode-inline[data-kind=org] .composer-mode-inline-label{color:color-mix(in srgb,var(--green) 74%,var(--text-secondary) 26%)}.composer-mode-select-wrap{position:relative;display:inline-flex;align-items:center}.composer-mode-select-wrap:after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);transform:translateY(-65%) rotate(45deg);pointer-events:none}.composer-mode-select{appearance:none;min-height:30px;max-width:210px;padding:5px 28px 5px 12px;border:1px solid transparent;border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);color:var(--text);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.composer-mode-select:hover{border-color:color-mix(in srgb,var(--border-hover) 70%,var(--accent-soft) 30%);background:color-mix(in srgb,var(--surface-hover) 76%,var(--bg-elevated) 24%)}.composer-mode-select:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 52%,var(--border) 48%);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-soft) 78%,transparent 22%)}.composer-mode-select:disabled{opacity:.5;cursor:default}.composer-mode-inline[data-kind=org] .composer-mode-select{max-width:260px}.composer-hint{font-size:10px;color:var(--text-secondary);opacity:.5;flex:1}.composer-mode{font-size:10px;font-weight:600;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--surface) 72%,var(--bg-elevated) 28%);color:var(--text);flex-shrink:0}.composer-mode[data-kind=mode]{color:var(--accent)}.composer-mode[data-kind=agent]{color:var(--yellow)}.composer-config-group[data-locked=true]{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 94%,transparent 6%),color-mix(in srgb,var(--surface) 92%,var(--bg-elevated) 8%));border-color:color-mix(in srgb,var(--border) 90%,transparent 10%);box-shadow:none}.composer-mode-chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent 22%);background:color-mix(in srgb,var(--surface) 60%,var(--bg-elevated) 40%);font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;cursor:default;outline:none;transition:border-color .15s,background .15s}.composer-mode-chip:before{content:"";position:absolute;bottom:100%;left:-8px;right:-8px;height:12px;background:transparent;pointer-events:none}.composer-mode-chip:hover:before,.composer-mode-chip:focus-within:before{pointer-events:auto}.composer-mode-chip:hover,.composer-mode-chip:focus-visible{border-color:color-mix(in srgb,var(--border-hover) 78%,var(--accent-soft) 22%);background:color-mix(in srgb,var(--surface-hover) 70%,var(--bg-elevated) 30%)}.composer-mode-chip[data-kind=mode]{color:color-mix(in srgb,var(--accent) 92%,var(--text) 8%)}.composer-mode-chip[data-kind=agent]{color:color-mix(in srgb,var(--yellow) 88%,var(--text) 12%)}.composer-mode-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:6px;background:color-mix(in srgb,currentColor 14%,transparent 86%);color:currentColor;flex-shrink:0;opacity:.85}.composer-mode-chip-label{letter-spacing:.01em}.composer-mode-chip-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:280px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:11px;font-weight:400;line-height:1.45;letter-spacing:0;text-align:left;white-space:normal;box-shadow:0 8px 24px #0f172a2e,0 2px 6px #0f172a14;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .14s ease,transform .14s ease,visibility .14s ease;z-index:20}.composer-mode-chip-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--bg-elevated);filter:drop-shadow(0 1px 0 var(--border))}.composer-mode-chip:hover .composer-mode-chip-popover,.composer-mode-chip:focus-visible .composer-mode-chip-popover,.composer-mode-chip:focus-within .composer-mode-chip-popover{opacity:1;pointer-events:auto;visibility:visible;transform:translate(-50%) translateY(0)}.composer-mode-chip-popover-title{font-size:11px;font-weight:600;color:var(--text);letter-spacing:.01em}.composer-mode-chip-popover-body{font-size:11px;color:var(--text-secondary)}.composer-mode-chip-popover-body strong{color:var(--text);font-weight:600}.composer-mode-chip-popover-divider{height:1px;margin:4px -12px 2px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--border) 80%,transparent 20%) 16%,color-mix(in srgb,var(--border) 80%,transparent 20%) 84%,transparent 100%)}.composer-mode-chip-popover-action-title{margin-top:2px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.composer-mode-chip-popover-actions{display:flex;flex-direction:column;gap:4px;margin:2px -4px -2px}.composer-mode-chip-popover-action{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:11px;text-align:left;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.composer-mode-chip-popover-action:hover,.composer-mode-chip-popover-action:focus-visible{background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface) 65%);border-color:color-mix(in srgb,var(--accent) 36%,transparent 64%);outline:none}.composer-mode-chip-popover-action:active{transform:scale(.985)}.composer-mode-chip-popover-action-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);color:var(--accent);flex-shrink:0;transition:background .14s ease,color .14s ease}.composer-mode-chip-popover-action:hover .composer-mode-chip-popover-action-icon,.composer-mode-chip-popover-action:focus-visible .composer-mode-chip-popover-action-icon{background:color-mix(in srgb,var(--accent) 18%,var(--surface) 82%);color:var(--accent)}.composer-mode-chip-popover-action-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.composer-mode-chip-popover-action-label{font-size:11.5px;font-weight:600;color:var(--text);line-height:1.25}.composer-mode-chip-popover-action-desc{font-size:10px;color:var(--text-secondary);line-height:1.3}.composer-mode-chip-popover-action-arrow{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text-secondary);opacity:.6;transform:translate(-2px);transition:transform .16s ease,opacity .16s ease,color .16s ease;flex-shrink:0}.composer-mode-chip-popover-action:hover .composer-mode-chip-popover-action-arrow,.composer-mode-chip-popover-action:focus-visible .composer-mode-chip-popover-action-arrow{opacity:1;color:var(--accent);transform:translate(0)}@container ctxpanel (max-width: 540px){.composer-mode-chip-popover{left:auto;right:0;transform:translateY(4px)}.composer-mode-chip-popover:after{left:auto;right:16px;transform:none}.composer-mode-chip:hover .composer-mode-chip-popover,.composer-mode-chip:focus-visible .composer-mode-chip-popover,.composer-mode-chip:focus-within .composer-mode-chip-popover{transform:translateY(0)}}.composer-send-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.composer-send-btn:disabled{opacity:.3;cursor:default}.composer-send-btn:not(:disabled):hover{filter:brightness(1.15);transform:scale(1.05)}@container ctxpanel (max-width: 540px){.composer-bottom{display:grid;grid-template-columns:36px minmax(0,1fr) 32px 32px;grid-template-areas:"attach hint context send" "config config config config";align-items:center;row-gap:8px;column-gap:8px}.composer-config-group{grid-area:config;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;justify-content:stretch;padding:6px;border-radius:16px}.composer-mode-inline{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0;padding:0}.composer-mode-select-wrap{width:100%;min-width:0}.composer-mode-select{max-width:none;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.composer-config-divider{height:28px}.composer-attach-btn{grid-area:attach}.composer-hint{grid-area:hint;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-context-ring{grid-area:context;justify-self:end}.composer-send-btn{grid-area:send;justify-self:end}}@media(max-width:760px){.composer-bottom{display:grid;grid-template-columns:36px minmax(0,1fr) 32px 32px;grid-template-areas:"attach hint context send" "config config config config";align-items:center;row-gap:8px;column-gap:8px}.composer-config-group{grid-area:config;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;justify-content:stretch}.composer-mode-inline{display:grid;grid-template-columns:auto minmax(0,1fr);min-width:0}.composer-mode-select-wrap,.composer-mode-select{width:100%;min-width:0;max-width:none}.composer-attach-btn{grid-area:attach}.composer-hint{grid-area:hint;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-context-ring{grid-area:context;justify-self:end}.composer-send-btn{grid-area:send;justify-self:end}}@container ctxpanel (max-width: 430px){.msg-composer{padding-left:14px;padding-right:14px}.msg-composer .composer-input-area textarea{padding:13px 14px 2px}.composer-bottom{grid-template-columns:36px minmax(0,1fr) 32px;grid-template-areas:"attach hint send" "config config config"}.composer-context-ring{display:none}.composer-config-group{grid-template-columns:1fr;gap:6px;border-radius:14px}.composer-config-divider{display:none}.composer-mode-inline{grid-template-columns:minmax(68px,auto) minmax(0,1fr);gap:8px;width:100%}}@media(max-width:430px){.composer-bottom{grid-template-columns:36px minmax(0,1fr) 32px;grid-template-areas:"attach hint send" "config config config"}.composer-context-ring{display:none}.composer-config-group{grid-template-columns:1fr}.composer-config-divider{display:none}.composer-mode-inline{grid-template-columns:minmax(68px,auto) minmax(0,1fr);width:100%}}.composer-status{display:flex;align-items:center;gap:8px;padding:8px 16px;margin-bottom:6px;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:12px;box-shadow:0 1px 4px #0000000a}.composer-status-indicator{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 6px #10b98166}.composer-status-text{flex:1;color:var(--text-secondary);font-weight:500;letter-spacing:.01em}.composer-stop-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--red);border-radius:var(--radius-xs);background:transparent;color:var(--red);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.composer-stop-btn:hover{background:var(--red);color:#fff}.composer-stop-btn:disabled{opacity:.45;cursor:not-allowed}.composer-stop-btn:disabled:hover{background:transparent;color:var(--red)}.msg-composer .composer-input-area textarea:disabled{cursor:not-allowed;opacity:.5}.msg-composer .composer-input-area textarea:disabled::placeholder{font-style:italic}.msg-composer.working .composer-input-area{border-color:var(--green);box-shadow:0 0 0 2px #34d39914}.chat-main.chat-main-split{flex:1}.child-sessions-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid var(--border);min-width:300px;max-width:50%}.child-session-panel{display:flex;flex-direction:column;border-bottom:1px solid var(--border);min-height:200px;max-height:400px}.child-session-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px}.child-session-agent{font-weight:700;color:var(--accent)}.child-session-title{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-session-status{font-size:10px;padding:2px 6px;border-radius:999px;background:var(--bg);border:1px solid var(--border)}.child-session-status.status-running{color:var(--yellow);border-color:var(--yellow)}.child-session-status.status-done{color:var(--green);border-color:var(--green)}.child-session-status.status-failed{color:var(--red);border-color:var(--red)}.child-session-messages{flex:1;overflow-y:auto;min-height:0}.awp{display:flex;flex-direction:column;border-left:1px solid var(--border);width:clamp(280px,30vw,420px);min-width:280px;min-height:0;background:var(--bg);overflow:hidden}.awp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.awp-title{font-size:12px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px}.awp-count{font-weight:400;font-size:10px;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:999px;border:1px solid var(--border)}.awp-controls{display:flex;align-items:center;gap:4px}.awp-filter{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer}.awp-filter:focus{outline:1px solid var(--accent)}.awp-search-toggle{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center}.awp-search-toggle:hover,.awp-search-toggle.active{color:var(--accent);background:var(--bg)}.awp-search-toggle svg{width:14px;height:14px}.awp-search-bar{padding:4px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.awp-search-input{width:100%;font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.awp-search-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.awp-list{flex:1 1 260px;min-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.awp-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;border:none;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);background:transparent;color:var(--text);cursor:pointer;text-align:left;font-size:11px;transition:background .12s}.awp-row:hover{background:var(--bg-elevated)}.awp-row-selected{background:color-mix(in srgb,var(--accent) 8%,transparent);border-left:2px solid var(--accent);padding-left:10px}.awp-row-active .awp-row-activity{color:var(--accent);font-weight:600}.awp-dot{width:6px;height:6px;border-radius:50%;background:var(--text-secondary);flex-shrink:0;opacity:.5}.awp-dot-active{background:var(--green);opacity:1;box-shadow:0 0 4px var(--green);animation:awp-pulse 2s ease-in-out infinite}@keyframes awp-pulse{0%,to{opacity:1}50%{opacity:.5}}.awp-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.awp-row-name{font-weight:600;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.awp-row-projection{font-size:9px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.awp-row-activity{font-size:10px;color:var(--text-secondary);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.awp-row-time{font-size:9px;color:var(--text-muted, var(--text-secondary));opacity:.6;white-space:nowrap;flex-shrink:0;min-width:20px;text-align:right}.awp-empty{padding:16px;text-align:center;font-size:11px;color:var(--text-secondary)}.awp-detail{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border);overflow:hidden}.awp-detail-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.awp-detail-identity{display:flex;align-items:center;gap:8px;min-width:0}.awp-detail-avatar{width:28px;height:28px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.awp-detail-meta{display:flex;flex-direction:column;min-width:0}.awp-detail-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.awp-detail-projection{font-size:10px;color:var(--accent);text-transform:capitalize}.awp-detail-role{font-size:10px;color:var(--green)}.awp-detail-employee{font-size:10px;color:var(--text-secondary)}.awp-detail-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.awp-detail-expand,.awp-detail-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.awp-detail-expand:hover,.awp-detail-close:hover{color:var(--text);background:var(--bg)}.awp-detail-expand svg,.awp-detail-close svg{width:14px;height:14px}.awp-detail-body{flex:1;overflow-y:auto;padding:8px 12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.awp-detail-section{margin-bottom:12px}.awp-detail-section-label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.awp-detail-section-label svg{width:12px;height:12px}.awp-detail-handoff{font-size:11px;color:var(--text-secondary);max-height:220px;overflow-y:auto}.awp-detail-handoff-markdown{padding:2px 0}.awp-detail-empty{font-size:11px;color:var(--text-secondary);text-align:center;padding:12px}.awp-terminal-icon{width:16px;flex-shrink:0;font-size:11px;font-weight:700;text-align:center;line-height:1}.awp-terminal-done{color:var(--green)}.awp-terminal-failed{color:var(--red)}.awp-terminal-cancelled{color:var(--text-secondary);opacity:.6}.awp-row-terminal{opacity:.7}.awp-row-terminal:hover{opacity:.9}.awp-row-terminal .awp-row-activity{font-weight:500}.awp-row-terminal.awp-terminal-done .awp-row-activity{color:var(--green)}.awp-row-terminal.awp-terminal-failed .awp-row-activity{color:var(--red)}.awp-result-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:8px 12px 12px;border-radius:8px;font-size:12px;font-weight:500}.awp-result-icon{font-size:14px;font-weight:700;line-height:1}.awp-result-done{background:#10b9811a;color:var(--green);border:1px solid rgba(16,185,129,.2)}.awp-result-failed{background:#ef44441a;color:var(--red);border:1px solid rgba(239,68,68,.2)}.awp-result-cancelled{background:#80808014;color:var(--text-secondary);border:1px solid var(--border)}.awp-detail-avatar.awp-terminal-done{border:2px solid var(--green)}.awp-detail-avatar.awp-terminal-failed{border:2px solid var(--red)}.awp-detail-avatar.awp-terminal-cancelled{border:2px solid var(--text-secondary);opacity:.6}.kanban-status-badge{font-size:10px;font-weight:600;display:inline-flex;align-items:center;margin-left:auto}@media(max-width:1024px){.session-sidebar{width:60px;min-width:60px}.session-new-btn span{display:none}.session-new-btn{justify-content:center;padding:10px}.session-search-wrap,.session-group-label,.session-item-content{display:none}.session-item{padding:10px;justify-content:center;margin:1px 4px;width:calc(100% - 8px);border-left:none}.session-item.active{border-left:none}.session-dot{width:10px;height:10px}.session-nav-btn span{display:none}.session-nav-btn{justify-content:center}.session-expand-btn,.session-children,.session-child-count{display:none}.session-tree-primary{justify-content:center}.session-delete-btn{display:none}}@media(max-width:700px){.chat-page{flex-direction:column}.session-sidebar{width:100%;max-height:52px;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow:hidden}.session-new-btn{margin:8px;padding:6px 12px}.session-search-wrap{display:none}.session-list{display:flex;overflow-x:auto;padding:4px 8px;gap:4px;flex-direction:row}.session-list.session-list-virtualized{display:block;overflow-x:hidden;overflow-y:auto;padding:4px 8px}.session-group{display:flex;gap:2px;margin-bottom:0}.session-group-label{display:none}.session-item{white-space:nowrap;padding:4px 10px;border-radius:999px;border:1px solid var(--border);flex-shrink:0;margin:0;width:auto}.session-item.active{border-color:var(--accent);background:var(--accent-soft);border-left:none}.session-item-meta,.session-nav-btn,.session-expand-btn,.session-children,.session-child-count,.session-item.session-item-child{display:none}.session-tree-primary{flex-shrink:0}.msg-row{padding:8px 16px}.msg-body-user{max-width:85%}.msg-composer{padding:0 12px 12px}.msg-composer .composer-input-area textarea{font-size:16px}}.ckpt-panel{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;animation:msg-enter .2s ease-out}.ckpt-recruitment{border-left:3px solid var(--accent)}.ckpt-staffing{border-left:3px solid var(--green)}.ckpt-reorg{border-left:3px solid var(--yellow)}.ckpt-user-input{border-left:3px solid var(--blue)}.ckpt-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.ckpt-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ckpt-icon-recruit{background:var(--accent-soft);color:var(--accent)}.ckpt-icon-staffing{background:#34d3991a;color:var(--green)}.ckpt-icon-reorg{background:#fbbf241a;color:var(--yellow)}.ckpt-icon-user-input{background:#3b82f61a;color:var(--blue)}.ckpt-title{font-size:13px;font-weight:600;color:var(--text);flex:1}.ckpt-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);flex-shrink:0}.ckpt-badge-profile{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.ckpt-badge-responded{color:var(--green);border-color:var(--green);background:#34d3990f}.ckpt-badge-scope{color:var(--yellow);border-color:var(--yellow);background:#fbbf240f}.ckpt-badge-proposed_hire{color:var(--accent);border-color:var(--accent)}.ckpt-badge-existing_staff{color:var(--green);border-color:var(--green)}.ckpt-badge-fallback_role_only{color:var(--text-secondary)}.ckpt-badge-direct_role_execution{color:var(--blue);border-color:var(--blue)}.ckpt-badge-employee{color:var(--green);border-color:var(--green)}.ckpt-badge-template{color:var(--accent);border-color:var(--accent)}.ckpt-badge-fallback{color:var(--text-secondary)}.ckpt-summary{padding:10px 14px;font-size:13px;line-height:1.55;color:var(--text);border-bottom:1px solid var(--border);background:var(--bg)}.ckpt-rationale{padding:6px 14px;font-size:12px;line-height:1.5;color:var(--text-secondary);font-style:italic}.ckpt-recruitment-reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.ckpt-recruitment-reason{min-width:0;padding:10px 14px;background:var(--bg)}.ckpt-recruitment-reason .ckpt-rationale{padding:0}.ckpt-proposals{display:flex;flex-direction:column;gap:1px;background:var(--border)}.ckpt-proposal-card{padding:10px 14px;background:var(--bg)}.ckpt-proposal-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ckpt-role-name{font-size:13px;font-weight:600;color:var(--text);font-family:JetBrains Mono,SF Mono,monospace}.ckpt-role-labels{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.ckpt-field-tag{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.ckpt-candidate,.ckpt-employee{padding:8px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);margin-top:4px}.ckpt-cand-name,.ckpt-emp-name{font-size:13px;font-weight:600;color:var(--text)}.ckpt-cand-meta{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.ckpt-cand-category{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.ckpt-domain-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:#34d39914;color:var(--green);font-weight:500}.ckpt-emp-row{display:flex;align-items:center;gap:8px}.ckpt-emp-id{font-size:11px;color:var(--text-secondary);font-family:JetBrains Mono,SF Mono,monospace}.ckpt-exp-bar-wrap{display:flex;align-items:center;gap:8px;margin-top:6px;height:16px;background:var(--bg);border-radius:8px;overflow:hidden;border:1px solid var(--border);position:relative}.ckpt-exp-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:8px 0 0 8px;transition:width .5s ease-out;min-width:4px}.ckpt-exp-label{position:absolute;right:6px;font-size:9px;font-weight:700;color:var(--text)}.ckpt-agent-picker{display:flex;align-items:center;gap:10px;margin-top:10px}.ckpt-recruiter-agent{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 72%,var(--bg))}.ckpt-agent-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:0;flex:0 0 auto}.ckpt-agent-select{min-width:180px;max-width:100%;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;line-height:1.2}.ckpt-agent-select:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--border)}.ckpt-staffing-card{min-width:0;padding:10px 14px;background:var(--bg)}.ckpt-staffing-selected{padding:8px 10px;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);margin-bottom:8px}.ckpt-staffing-search{width:100%;padding:7px 10px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;font-family:inherit;outline:none}.ckpt-staffing-search:focus{border-color:var(--accent)}.ckpt-staffing-search:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:6px;margin-top:8px}.ckpt-staffing-option{min-width:0;min-height:42px;padding:6px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:3px;transition:border-color .12s,background .12s}.ckpt-staffing-option:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover)}.ckpt-staffing-option.active{border-color:var(--green);background:#34d39914}.ckpt-staffing-option:disabled{opacity:.7;cursor:not-allowed}.ckpt-staffing-option-kind{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.ckpt-staffing-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}@media(max-width:640px){.ckpt-recruiter-agent,.ckpt-agent-picker{align-items:stretch;flex-direction:column;gap:6px}.ckpt-agent-select{width:100%;min-width:0}}.ckpt-reorg-badges{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border)}.ckpt-changes-section{padding:8px 14px;border-top:1px solid var(--border)}.ckpt-changes-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ckpt-change-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12px}.ckpt-change-action{font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase}.ckpt-action-add{background:#34d3991a;color:var(--green)}.ckpt-action-remove{background:#f871711a;color:var(--red)}.ckpt-action-replace{background:#fbbf241a;color:var(--yellow)}.ckpt-action-update{background:var(--accent-soft);color:var(--accent)}.ckpt-change-id{font-family:JetBrains Mono,SF Mono,monospace;font-size:12px;font-weight:500;color:var(--text)}.ckpt-change-arrow{color:var(--text-secondary);font-size:12px}.ckpt-change-reason{color:var(--text-secondary);font-size:11px;margin-left:auto;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ckpt-impact{display:flex;gap:16px;padding:8px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.ckpt-section,.ckpt-task-section{padding:10px 14px 0}.ckpt-section+.ckpt-section,.ckpt-task-section+.ckpt-task-section{border-top:1px solid rgba(148,163,184,.12);margin-top:10px}.ckpt-section-title,.ckpt-task-section-title{margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.ckpt-markdown{min-width:0;font-size:13px;line-height:1.58;color:var(--text)}.ckpt-markdown-muted{color:var(--text-secondary)}.ckpt-markdown>:first-child{margin-top:0}.ckpt-markdown>:last-child{margin-bottom:0}.ckpt-markdown p{margin:0 0 8px}.ckpt-markdown ul,.ckpt-markdown ol{margin:0 0 8px;padding-left:20px}.ckpt-markdown li+li{margin-top:4px}.ckpt-markdown code{font-size:12px;border-radius:4px;padding:1px 4px;background:var(--surface);border:1px solid var(--border)}.ckpt-markdown pre code{padding:0;border:0;background:transparent}.ckpt-task-prompt{padding:10px 14px;font-size:13px;line-height:1.55;color:var(--text);white-space:pre-wrap;background:var(--bg)}.ckpt-task-list{margin:0;padding-left:18px;color:var(--text)}.ckpt-task-list li+li{margin-top:6px}.ckpt-task-tags{display:flex;gap:6px;flex-wrap:wrap}.ckpt-task-note{padding:10px 14px 0;font-size:12px;line-height:1.5;color:var(--text-secondary)}.ckpt-choice-list{display:grid;gap:12px}.ckpt-choice-question{display:grid;gap:8px;min-width:0}.ckpt-question-header{font-size:13px;font-weight:700;color:var(--text)}.ckpt-choice-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ckpt-choice-option{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:flex-start;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);text-align:left;font:inherit;cursor:pointer}.ckpt-choice-option:hover{border-color:var(--accent);background:var(--surface-hover)}.ckpt-choice-option.is-selected{border-color:var(--accent);background:var(--accent-soft)}.ckpt-choice-letter{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:700}.ckpt-choice-option.is-selected .ckpt-choice-letter{background:var(--accent);border-color:var(--accent);color:#fff}.ckpt-choice-copy{display:grid;gap:3px;min-width:0}.ckpt-choice-label{font-size:12px;font-weight:700;color:var(--text)}.ckpt-choice-desc{font-size:12px;line-height:1.35;color:var(--text-secondary)}.ckpt-other-field{min-height:64px}.ckpt-runtime-details{margin:10px 14px 0;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary)}.ckpt-runtime-details summary{cursor:pointer;padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.ckpt-runtime-body{display:grid;gap:5px;padding:0 10px 10px;font-size:12px;line-height:1.45}.ckpt-actions{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface)}.ckpt-actions-inline-feedback{align-items:stretch}.ckpt-btn{padding:6px 16px;border-radius:var(--radius-xs);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:all .12s}.ckpt-btn:disabled{opacity:.4;cursor:default}.ckpt-btn-approve{background:var(--green);color:#fff;border-color:var(--green)}.ckpt-btn-approve:not(:disabled):hover{filter:brightness(1.1)}.ckpt-btn-deny{background:transparent;color:var(--red);border-color:var(--red)}.ckpt-btn-deny:hover{background:var(--red);color:#fff}.ckpt-btn-feedback{background:transparent;color:var(--accent);border-color:var(--accent)}.ckpt-btn-feedback:hover{background:var(--accent-soft)}.ckpt-btn-cancel{background:transparent;color:var(--text-secondary);border-color:var(--border)}.ckpt-btn-cancel:hover{background:var(--surface-hover)}.ckpt-feedback-area{flex:1;display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface)}.ckpt-feedback-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);font-size:12px;font-family:inherit;resize:vertical;outline:none;min-height:48px}.ckpt-feedback-input:focus{border-color:var(--accent)}.ckpt-feedback-inline-input{min-height:34px;flex:1;resize:vertical}.ckpt-feedback-btns{display:flex;gap:6px}@media(max-width:640px){.ckpt-actions-inline-feedback{flex-direction:column}}.wi-progress-card{width:100%;min-width:0;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.wi-progress-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-primary)}.wi-progress-header svg{color:var(--accent)}.wi-progress-pipeline{display:flex;align-items:center;gap:0;flex-wrap:wrap;row-gap:6px}.wi-projection-group{display:flex;align-items:center;gap:0}.wi-projection-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:500;border:1px solid var(--border);background:transparent;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s;white-space:nowrap}.wi-projection-chip:hover{background:var(--surface-hover, rgba(255, 255, 255, .04))}.wi-projection-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}.wi-projection-icon{font-size:10px;line-height:1}.wi-projection-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.wi-projection-done{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent)}.wi-projection-failed{border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.wi-projection-waiting{border-color:var(--yellow);color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,transparent)}.wi-projection-pending{color:var(--text-secondary)}@keyframes wf-pulse{0%,to{opacity:1}50%{opacity:.3}}.wi-projection-pulse{animation:wf-pulse 1.5s ease-in-out infinite}.wi-projection-connector{margin:0 4px;color:var(--text-tertiary, var(--text-secondary));font-size:12px;opacity:.6}.wi-progress-toggle{align-self:flex-start;margin-top:-2px}.wf-role-summaries{display:flex;flex-direction:column;gap:10px}.wf-role-summary{border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface) 92%,transparent);padding:10px 11px;display:flex;flex-direction:column;gap:10px}.wf-role-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wf-role-summary-identity{min-width:0;display:flex;flex-direction:column;gap:6px}.wf-role-summary-meta{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:11px;color:var(--text-secondary)}.wf-role-open{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:5px 9px;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .12s,color .12s,background .12s;flex-shrink:0}.wf-role-open:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface-hover)}.wf-role-summary-body{display:flex;flex-direction:column;gap:10px}.wf-role-summary-block{display:flex;flex-direction:column;gap:6px}.wf-role-summary-block-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase}.wf-role-summary-block-content{font-size:12px;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.wf-role-turns{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.wf-role-turn{border-radius:6px;border:1px solid var(--border);background:var(--surface-muted, rgba(255, 255, 255, .03))}.wf-role-turn-button{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 10px;background:transparent;border:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.wf-role-turn-button:hover{background:var(--surface-hover, rgba(255, 255, 255, .06))}.wf-role-turn-column{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--surface-muted, rgba(255, 255, 255, .06));color:var(--text-secondary);white-space:nowrap}.wf-role-turn-column-todo{background:color-mix(in srgb,var(--text-secondary) 18%,transparent);color:var(--text-secondary)}.wf-role-turn-column-in_progress{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.wf-role-turn-column-in_review{background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow)}.wf-role-turn-column-done{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.wf-role-turn-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-primary)}.wf-role-turn-time{font-size:11px;color:var(--text-secondary);flex-shrink:0}.wf-role-turn-active .wf-role-turn-title{font-weight:600}.wf-role-turn-failed .wf-role-turn-column{background:#ff64642e;color:#ff9696f2}.wf-role-turn-expander{border-style:dashed;background:transparent}.wf-role-turn-expander-button{width:100%;padding:6px 10px;background:transparent;border:none;color:var(--text-secondary);font:inherit;font-size:11px;cursor:pointer;text-align:center}.wf-role-turn-expander-button:hover{color:var(--text-primary);background:var(--surface-hover, rgba(255, 255, 255, .04))}.wf-event-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding-top:4px;border-top:1px solid var(--border)}.wf-event-icon{display:flex;flex-shrink:0}.wf-event-icon svg{width:14px;height:14px}.wf-event-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-event-text strong{color:var(--text-primary);font-weight:600}.wf-event-time{flex-shrink:0;font-size:11px;opacity:.7}@media(max-width:640px){.wf-role-summary-head{flex-direction:column}.wf-role-open{width:fit-content}}.composer-attachments{display:flex;gap:10px;padding:10px 12px 6px;overflow-x:auto;scrollbar-width:thin}.attachment-chip{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 85%,transparent),color-mix(in srgb,var(--surface) 92%,transparent));border:1px solid var(--border);box-shadow:inset 0 1px #ffffff08;min-width:220px;max-width:min(320px,72vw);flex-shrink:0}.attachment-chip.error{border-color:color-mix(in srgb,var(--red) 55%,var(--border));background:color-mix(in srgb,var(--red) 10%,var(--bg-elevated))}.attachment-chip-remove{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);color:var(--text-secondary);border:none;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,color .15s ease;display:inline-flex;align-items:center;justify-content:center}.attachment-chip:hover .attachment-chip-remove,.attachment-chip-remove:focus-visible{opacity:1}.attachment-chip-remove:hover{background:color-mix(in srgb,var(--red) 16%,var(--bg-elevated));color:var(--red)}.attachment-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;cursor:pointer;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--bg-elevated) 80%,transparent)}.attachment-file-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid color-mix(in srgb,var(--border) 75%,transparent);color:var(--text);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.attachment-file-icon.tone-image{background:color-mix(in srgb,var(--green) 12%,var(--bg-elevated));color:var(--green)}.attachment-file-icon.tone-video{background:color-mix(in srgb,var(--accent) 16%,var(--bg-elevated));color:color-mix(in srgb,var(--accent) 70%,var(--text))}.attachment-file-icon.tone-pdf{background:color-mix(in srgb,var(--red) 12%,var(--bg-elevated));color:var(--red)}.attachment-file-icon.tone-office{background:color-mix(in srgb,var(--yellow) 14%,var(--bg-elevated));color:var(--yellow)}.attachment-file-icon.tone-data{background:color-mix(in srgb,var(--accent) 14%,var(--bg-elevated));color:var(--accent)}.attachment-file-icon.tone-text{background:color-mix(in srgb,var(--text-secondary) 16%,var(--bg-elevated));color:var(--text)}.attachment-file-icon.tone-code{background:color-mix(in srgb,var(--accent) 12%,var(--bg-elevated));color:color-mix(in srgb,var(--accent) 40%,var(--text))}.attachment-chip-info{display:flex;flex-direction:column;min-width:0;gap:4px}.attachment-chip-name{font-size:12px;font-weight:600;color:var(--text);line-height:1.35;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.attachment-chip-size{font-size:11px;color:var(--text-secondary)}.attachment-chip.error .attachment-chip-size{color:var(--red)}.attachment-progress-ring{position:relative;width:32px;height:32px;flex-shrink:0}.attachment-progress-ring svg{width:32px;height:32px;transform:rotate(-90deg)}.attachment-progress-track,.attachment-progress-value{fill:none;stroke-width:2.5}.attachment-progress-track{stroke:color-mix(in srgb,var(--border) 85%,transparent)}.attachment-progress-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .2s ease}.attachment-progress-ring.ready .attachment-progress-value{stroke:var(--green)}.attachment-progress-ring.error .attachment-progress-value{stroke:var(--red)}.attachment-progress-center{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--text)}.attachment-progress-ring.ready .attachment-progress-center{color:var(--green)}.attachment-progress-ring.error .attachment-progress-center{color:var(--red)}.attachment-progress-center svg{width:13px;height:13px;transform:none}.composer-attach-btn{background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid var(--border);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border-radius:10px;color:var(--text-secondary);transition:border-color .15s ease,color .15s ease,background .15s ease}.composer-attach-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-hover);background:color-mix(in srgb,var(--surface-hover) 88%,transparent)}.msg-attachments{margin-top:10px}.msg-attachment-grid{display:grid;gap:8px}.msg-attachment-grid.cols-2{grid-template-columns:1fr 1fr}.msg-attachment-image{max-width:320px;border-radius:12px;cursor:pointer;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);transition:opacity .15s ease,transform .15s ease}.msg-attachment-video{width:100%;max-width:320px;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent)}.msg-attachment-image:hover{opacity:.92;transform:translateY(-1px)}.msg-attachment-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,max-content));gap:8px;margin-top:8px}.msg-attachment-file-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid color-mix(in srgb,var(--border) 85%,transparent);font-size:12px;text-decoration:none;color:var(--text);transition:background .15s ease,border-color .15s ease,transform .15s ease}.msg-attachment-file-chip:hover{background:color-mix(in srgb,var(--surface-hover) 96%,transparent);border-color:var(--border-hover);transform:translateY(-1px)}.msg-attachment-file-size{color:var(--text-secondary);font-size:11px;margin-left:4px}@media(max-width:640px){.attachment-chip{min-width:min(250px,82vw);max-width:82vw}.msg-attachment-files{grid-template-columns:1fr}}.lightbox-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:zoom-out}.lightbox-img{max-width:90vw;max-height:90vh;border-radius:8px}.session-confirm-delete{display:flex;gap:4px;flex-shrink:0;margin-left:auto;animation:msgListFadeIn .15s ease-out}.session-confirm-yes{font-size:11px;padding:1px 8px;border-radius:4px;border:none;background:#e53935;color:#fff;cursor:pointer;font-weight:600}.session-confirm-yes:hover{background:#c62828}.session-confirm-no{font-size:11px;padding:1px 6px;border-radius:4px;border:1px solid var(--border, #ddd);background:transparent;color:var(--text-secondary);cursor:pointer}.session-confirm-no:hover{background:var(--surface-hover, #f0f0f0)}@keyframes msgListFadeIn{0%{opacity:0}to{opacity:1}}.msg-list{animation:msgListFadeIn .2s ease-out}.msg-collapse-toggle{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.msg-collapse-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.code-block-omitted{display:block;padding:6px 0;color:var(--accent);font-style:italic;font-weight:500;cursor:pointer;opacity:.85;transition:opacity .12s;-webkit-user-select:none;user-select:none}.code-block-omitted:hover{opacity:1;text-decoration:underline}.code-block-collapse-btn{display:block;width:100%;padding:4px 12px;border:none;border-top:1px solid var(--border);background:var(--surface);color:var(--accent);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;text-align:center;transition:background .12s}.code-block-collapse-btn:hover{background:var(--accent-soft)}.composer-context-ring{position:relative;width:28px;height:28px;flex-shrink:0;cursor:default}.composer-context-ring svg{width:28px;height:28px;transform:rotate(-90deg)}.composer-context-ring-track,.composer-context-ring-value{fill:none;stroke-width:2.5}.composer-context-ring-track{stroke:color-mix(in srgb,var(--border) 85%,transparent)}.composer-context-ring-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .4s ease,stroke .4s ease}.composer-context-ring.low .composer-context-ring-value{stroke:var(--yellow)}.composer-context-ring.critical .composer-context-ring-value{stroke:var(--red)}.composer-context-ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:var(--text-secondary);line-height:1;pointer-events:none}.composer-context-ring.low .composer-context-ring-label{color:var(--yellow)}.composer-context-ring.critical .composer-context-ring-label{color:var(--red)}.composer-send-btn:focus-visible,.composer-attach-btn:focus-visible,.composer-stop-btn:focus-visible,.msg-action-btn:focus-visible,.session-item:focus-visible,.awp-row:focus-visible,.awp-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wf-role-turn-tag{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:3px;background:color-mix(in srgb,var(--yellow) 22%,transparent);color:var(--yellow);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.wf-role-turn-chevron{display:inline-flex;align-items:center;color:var(--text-secondary);margin-left:4px}.wf-role-turn-expanded{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.wf-role-turn-activity{padding:8px 10px 10px;border-top:1px dashed var(--border);background:var(--surface, rgba(255, 255, 255, .02));display:flex;flex-direction:column;gap:6px}.wf-role-turn-activity-sections{display:flex;flex-direction:column;gap:8px}.wf-role-turn-activity-section{padding:6px 0 0;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.wf-role-turn-activity-section:first-child{padding-top:0;border-top:0}.wf-role-turn-activity-section-head{display:flex;align-items:center;gap:6px;margin-bottom:4px;min-width:0;font-size:11px;color:var(--text-secondary)}.wf-role-turn-activity-section-title{color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-role-turn-activity-section-role,.wf-role-turn-activity-section-count{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--border) 55%,transparent)}.wf-role-turn-empty-activity{color:var(--text-secondary);font-size:12px;padding:4px 0}.wf-role-turn-open-session{align-self:flex-start;padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer}.wf-role-turn-open-session:hover{background:var(--surface-hover, rgba(255, 255, 255, .06));color:var(--text-primary)}.awp-dot-active{background:var(--accent);opacity:1;box-shadow:0 0 4px var(--accent);animation:awp-pulse 2s ease-in-out infinite}.awp-dot-waiting{background:var(--yellow);opacity:1}.awp-dot-pending{background:var(--text-secondary);opacity:.6}.awp-dot-done{background:var(--green);opacity:1}.awp-dot-failed{background:var(--red);opacity:1}.awp-row-terminal.awp-terminal-active .awp-row-activity{color:var(--accent)}.awp-row-terminal.awp-terminal-waiting .awp-row-activity{color:var(--yellow)}.workspace-page{display:flex;flex:1;min-height:0;overflow:hidden}.workspace-board{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.project-cockpit{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 92%,var(--surface) 8%);flex-shrink:0}.project-cockpit.embedded{flex:1;padding:12px;border-bottom:none;background:transparent;overflow:auto}.project-cockpit.embedded .project-cockpit-grid--team,.project-cockpit.embedded .project-cockpit-team-grid{grid-template-columns:minmax(0,1fr)}.project-cockpit.embedded .project-cockpit-team-head{flex-direction:column;align-items:flex-start}.project-cockpit.embedded .project-cockpit-team-status{align-self:flex-start}.project-cockpit.embedded .project-cockpit-seat-row{grid-template-columns:minmax(0,1fr);align-items:flex-start}.project-cockpit.embedded .project-cockpit-metrics span,.project-cockpit.embedded .project-cockpit-summary span,.project-cockpit.embedded .project-cockpit-team-meta span,.project-cockpit.embedded .project-cockpit-seat-role,.project-cockpit.embedded .project-cockpit-seat-id{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.project-cockpit-overview{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.project-cockpit-title{display:flex;align-items:center;min-width:0;gap:8px;flex-wrap:wrap}.project-cockpit-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.project-cockpit-title strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere}.project-cockpit-stop-btn{margin-left:auto;padding:3px 12px;font-size:12px;font-weight:600;font-family:inherit;border:1px solid var(--red);border-radius:6px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);cursor:pointer;transition:background .12s}.project-cockpit-stop-btn:hover{background:color-mix(in srgb,var(--red) 20%,transparent)}.project-cockpit-metrics{display:flex;flex-wrap:wrap;gap:6px}.project-cockpit-metrics span,.project-cockpit-summary span{border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:12px;background:var(--surface)}.project-cockpit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}.project-cockpit-grid--team{grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr)}.project-cockpit-panel{display:flex;flex-direction:column;min-width:0;min-height:180px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.project-cockpit-panel--wide{min-width:0}.project-cockpit-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.project-cockpit-panel h3{margin:0;font-size:13px}.project-cockpit-summary{display:flex;flex-direction:column;gap:8px;padding:10px 12px;min-width:0;overflow:auto}.project-cockpit-inline-text{margin:0;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.project-cockpit-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;padding:10px 12px;overflow:auto}.project-cockpit-team-card{display:flex;flex-direction:column;gap:10px;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);padding:10px}.project-cockpit-team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.project-cockpit-team-title{min-width:0;display:flex;flex-direction:column;gap:4px}.project-cockpit-team-title strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.project-cockpit-team-title span{font-size:11px;color:var(--text-secondary);overflow-wrap:anywhere}.project-cockpit-team-status,.project-cockpit-seat-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;text-transform:uppercase;border:1px solid var(--border);flex-shrink:0}.project-cockpit-team-meta{display:flex;flex-wrap:wrap;gap:6px}.project-cockpit-team-meta span{border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:11px;color:var(--text-secondary);background:var(--surface)}.project-cockpit-seat-list{display:flex;flex-direction:column;gap:8px}.project-cockpit-seat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--surface)}.project-cockpit-seat-role,.project-cockpit-seat-id{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.project-cockpit-seat-id{color:var(--text-secondary)}.project-cockpit-team-status.status-running,.project-cockpit-seat-status.status-running,.project-cockpit-team-status.status-active,.project-cockpit-seat-status.status-active,.project-cockpit-team-status.status-ready,.project-cockpit-seat-status.status-ready{color:var(--green);border-color:color-mix(in srgb,var(--green) 55%,var(--border) 45%);background:color-mix(in srgb,var(--green) 10%,transparent)}.project-cockpit-team-status.status-blocked,.project-cockpit-seat-status.status-blocked,.project-cockpit-team-status.status-awaiting-review,.project-cockpit-seat-status.status-awaiting-review,.project-cockpit-team-status.status-awaiting-peer,.project-cockpit-seat-status.status-awaiting-peer,.project-cockpit-team-status.status-awaiting_review,.project-cockpit-seat-status.status-awaiting_review,.project-cockpit-team-status.status-awaiting-manager-review,.project-cockpit-seat-status.status-awaiting-manager-review,.project-cockpit-team-status.status-awaiting-human-review,.project-cockpit-seat-status.status-awaiting-human-review{color:var(--yellow);border-color:color-mix(in srgb,var(--yellow) 55%,var(--border) 45%);background:color-mix(in srgb,var(--yellow) 10%,transparent)}.project-cockpit-team-status.status-failed,.project-cockpit-seat-status.status-failed,.project-cockpit-team-status.status-error,.project-cockpit-seat-status.status-error{color:var(--red);border-color:color-mix(in srgb,var(--red) 55%,var(--border) 45%);background:color-mix(in srgb,var(--red) 10%,transparent)}.project-cockpit-team-status.status-idle,.project-cockpit-seat-status.status-idle,.project-cockpit-team-status.status-cold,.project-cockpit-seat-status.status-cold,.project-cockpit-team-status.status-paused,.project-cockpit-seat-status.status-paused,.project-cockpit-team-status.status-done,.project-cockpit-seat-status.status-done{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent) 10%,transparent)}@media(max-width:1280px){.project-cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cockpit-grid--team{grid-template-columns:minmax(0,1fr)}}@media(max-width:780px){.project-cockpit-grid,.project-cockpit-seat-row{grid-template-columns:minmax(0,1fr)}}.workspace-page.panel-maximized .workspace-board{display:none}.ctx-panel{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--border);background:var(--bg-elevated);overflow:hidden;transition:width .15s ease;position:relative;container-type:inline-size;container-name:ctxpanel}.ctx-panel.collapsed{width:0!important;border-left:none;overflow:hidden}.ctx-panel.maximized{flex:1}.ctx-resize-handle{width:4px;cursor:col-resize;background:transparent;flex-shrink:0;transition:background .15s}.ctx-resize-handle:hover,.ctx-resize-handle.active{background:var(--accent);opacity:.5}.ctx-collapse-strip{width:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;border-left:1px solid var(--border);opacity:.5;transition:opacity .15s}.ctx-collapse-strip:hover{opacity:1}.ctx-header{display:flex;align-items:center;padding:0 8px;border-bottom:1px solid var(--border);height:36px;gap:2px;flex-shrink:0;min-width:0}.ctx-header-tabs{display:flex;align-items:center;gap:2px;min-width:0;flex:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(to right,transparent 0,black 6px,black calc(100% - 14px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 6px,black calc(100% - 14px),transparent 100%)}.ctx-header-tabs::-webkit-scrollbar{display:none}.ctx-tab{background:none;border:none;color:var(--text-secondary);font-size:12px;padding:6px 10px;cursor:pointer;border-radius:var(--radius-xs);transition:color .15s,background .15s;flex-shrink:0;white-space:nowrap;font-family:inherit}.ctx-tab:hover{color:var(--text);background:var(--surface-hover)}.ctx-tab.active{color:var(--text);background:var(--accent-soft)}.ctx-header-actions{margin-left:auto;display:flex;gap:4px;padding-left:6px;flex-shrink:0}.ctx-header-actions button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-xs);display:flex;align-items:center}.ctx-header-actions button:hover{color:var(--text);background:var(--surface-hover)}.ctx-header-title{font-size:13px;font-weight:600;padding:0 4px}.ctx-session-strip{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 90%,var(--surface) 10%);flex-shrink:0}.ctx-session-strip-scroll{display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:thin}.ctx-session-chip{display:flex;align-items:center;min-width:0;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.ctx-session-chip.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface) 25%)}.ctx-session-chip-main{display:flex;align-items:center;gap:8px;min-width:0;border:none;background:transparent;color:var(--text);padding:6px 10px;cursor:pointer}.ctx-session-chip-status,.ctx-multi-card-status{width:8px;height:8px;border-radius:999px;flex-shrink:0;background:var(--text-secondary)}.ctx-session-chip-status.status-running,.ctx-multi-card-status.status-running{background:var(--green)}.ctx-session-chip-status.status-idle,.ctx-multi-card-status.status-idle,.ctx-session-chip-status.status-done,.ctx-multi-card-status.status-done{background:var(--accent)}.ctx-session-chip-status.status-failed,.ctx-multi-card-status.status-failed{background:var(--red)}.ctx-session-chip-status.status-cancelled,.ctx-multi-card-status.status-cancelled{background:var(--text-secondary)}.ctx-session-chip-title{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;min-width:0}@container ctxpanel (max-width: 480px){.ctx-session-chip-title{max-width:120px}}.ctx-session-chip-unread{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:700}.ctx-session-chip-close{border:none;border-left:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;width:28px;height:28px;flex-shrink:0}.ctx-session-chip-close:hover,.ctx-session-view-btn:hover{color:var(--text);background:var(--surface-hover)}.ctx-session-view-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;padding:6px 10px;font-size:11px;cursor:pointer;flex-shrink:0}.ctx-session-view-btn.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent-soft) 75%,var(--surface) 25%)}.ctx-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ctx-body>.msg-list{min-height:0}.ctx-work-item-progress{flex-shrink:0;padding:12px 12px 0;overflow-y:auto;overflow-x:hidden;max-height:50vh;position:relative;z-index:1;background:var(--bg-elevated)}.ctx-multi-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;padding:12px;align-content:start}.ctx-multi-card{min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--bg-elevated) 86%,var(--surface) 14%);overflow:hidden;container-type:inline-size;container-name:ctxpanel}.ctx-multi-card.focused{border-color:color-mix(in srgb,var(--accent) 60%,var(--border) 40%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent 76%)}.ctx-multi-card-header{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid var(--border);min-width:0;flex-wrap:wrap;row-gap:6px}.ctx-multi-card-main{min-width:0;flex:1;display:flex;align-items:center;gap:8px;border:none;background:transparent;color:var(--text);cursor:pointer;padding:0}.ctx-multi-card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;text-align:left}.ctx-multi-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;min-width:0}.ctx-multi-card-actions button{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;padding:4px 8px;font-size:11px;cursor:pointer}.ctx-multi-card-actions button:hover{color:var(--text);background:var(--surface-hover)}.ctx-multi-card-meta{display:flex;flex-wrap:wrap;gap:6px 8px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.ctx-multi-card-body{flex:1;min-height:220px;overflow:hidden;display:flex;flex-direction:column}.ctx-multi-card-body .msg-list{flex:1;min-height:0}.ctx-multi-card .msg-composer{border-top:1px solid var(--border);border-radius:0;border-left:none;border-right:none;border-bottom:none}@media(max-width:900px){.ctx-multi-grid{grid-template-columns:1fr;gap:8px;padding:8px}.ctx-multi-card-actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:640px){.ctx-session-strip{flex-wrap:wrap}.ctx-session-strip-scroll{flex-basis:100%;order:2}}.ctx-child-topbar{display:flex;align-items:center;gap:8px;flex-shrink:0}.ctx-back-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:6px 10px;display:flex;align-items:center;gap:4px;flex-shrink:0}.ctx-back-btn:hover{text-decoration:underline}.ctx-child-stop-btn{margin-left:auto;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border:1px solid var(--red);border-radius:5px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);cursor:pointer;transition:background .12s}.ctx-child-stop-btn:hover{background:color-mix(in srgb,var(--red) 20%,transparent)}.ctx-child-resume-btn{margin-left:auto;padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;border:1px solid var(--green);border-radius:5px;background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);cursor:pointer;transition:background .12s}.ctx-child-resume-btn:hover{background:color-mix(in srgb,var(--green) 22%,transparent)}.ctx-child-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.ctx-child-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.ctx-child-meta{flex:1;min-width:0}.ctx-child-name{font-weight:600;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-child-work-item{font-size:11px;color:var(--text-secondary)}.ctx-task-chip-row{display:flex;flex-wrap:wrap;gap:6px}.ctx-task-detail-card{border:1px solid var(--border);border-radius:6px;padding:10px 12px;background:var(--surface)}.ctx-task-kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.ctx-task-kv-item{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.ctx-task-kv-label{font-size:10px;text-transform:uppercase;color:var(--text-secondary)}.ctx-task-kv-value{font-size:12px;color:var(--text);white-space:pre-wrap;word-break:break-word}.kanban-card.is-selected{box-shadow:0 0 0 2px var(--accent)}.ctx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:13px;gap:8px;padding:20px;text-align:center}.ctx-empty-icon{font-size:24px;opacity:.4}.ctx-child-detail{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.ctx-child-detail .exec-section{padding:8px 12px;border-bottom:1px solid var(--border)}.ctx-child-detail .exec-section-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ctx-child-detail .exec-section-content{font-size:12px}.ctx-child-transcript{display:flex;flex-direction:column;min-height:280px;max-height:55vh;overflow:hidden;border-bottom:1px solid var(--border);flex-shrink:0}.ctx-child-transcript-header,.ctx-child-section-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.ctx-child-transcript-header{padding:8px 12px 0}.ctx-child-transcript .msg-list{min-height:0}.ctx-child-markdown-section,.ctx-child-artifacts,.ctx-child-passed-to{padding:8px 12px}.ctx-child-artifacts,.ctx-child-passed-to{border-top:1px solid var(--border)}.ctx-child-markdown-card{padding:10px 12px}.ctx-child-markdown-card .msg-content-agent{font-size:12px}.ctx-child-artifact-list{margin:0;padding-left:16px;font-size:12px}.ctx-info-v2{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 24px;display:flex;flex-direction:column;gap:14px}.ctx-info-section{display:flex;flex-direction:column;gap:6px}.ctx-info-section-title{margin:0 4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.ctx-info-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent 20%);background:color-mix(in srgb,var(--surface) 60%,var(--bg-elevated) 40%)}.ctx-info-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ctx-info-status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--surface) 70%,var(--bg-elevated) 30%);border:1px solid color-mix(in srgb,var(--border) 70%,transparent 30%);color:var(--text);text-transform:capitalize}.ctx-info-status-pill.status-running{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,transparent 65%)}.ctx-info-status-pill.status-idle,.ctx-info-status-pill.status-suspended{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent 65%)}.ctx-info-status-pill.status-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 35%,transparent 65%)}.ctx-info-status-pill.status-failed,.ctx-info-status-pill.status-cancelled{color:var(--red);border-color:color-mix(in srgb,var(--red) 35%,transparent 65%)}.ctx-info-status-pill.status-blocked,.ctx-info-status-pill.status-awaiting_human{color:var(--yellow);border-color:color-mix(in srgb,var(--yellow) 35%,transparent 65%)}.ctx-info-status-dot{width:7px;height:7px;border-radius:999px;background:currentColor}.ctx-info-priority-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500;background:transparent}.ctx-info-chips{display:flex;flex-wrap:wrap;gap:5px}.ctx-info-chip{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--bg-elevated) 80%,transparent 20%);border:1px solid color-mix(in srgb,var(--border) 65%,transparent 35%);color:var(--text-secondary);font-size:11px;line-height:1.3}.ctx-info-fact{display:flex;align-items:flex-start;gap:12px;padding:0;min-width:0}.ctx-info-fact-label{flex:0 0 auto;width:clamp(72px,22%,104px);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);padding-top:2px;word-break:break-word}.ctx-info-fact-value{flex:1;min-width:0;font-size:12.5px;color:var(--text);word-break:break-word}.ctx-info-mono{font-family:JetBrains Mono,SF Mono,monospace;font-size:11px;color:var(--text-secondary)}.ctx-info-mono-break{word-break:break-all;display:inline-block;line-height:1.5}.ctx-info-dev-section{margin-top:4px}.ctx-info-dev-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;margin-left:-4px;background:transparent;border:none;color:var(--text-secondary);font:inherit;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:6px;align-self:flex-start;transition:color .14s ease,background .14s ease}.ctx-info-dev-toggle:hover,.ctx-info-dev-toggle.expanded{color:var(--text);background:color-mix(in srgb,var(--surface) 50%,transparent 50%)}.ctx-info-dev-card{background:color-mix(in srgb,var(--bg-elevated) 86%,var(--surface) 14%);border-style:dashed}@container ctxpanel (max-width: 360px){.ctx-info-v2{padding:12px 10px 20px;gap:12px}.ctx-info-card{padding:10px 12px}.ctx-info-fact{flex-direction:column;align-items:stretch;gap:4px}.ctx-info-fact-label{width:auto;font-size:9.5px}.ctx-info-fact-value{font-size:12px}}.ctx-body .awp{flex:1 1 auto;display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header header" "search search" "list detail";width:100%;min-width:0;min-height:0;border-left:none;background:color-mix(in srgb,var(--bg) 88%,var(--surface) 12%)}.ctx-body .awp-header{grid-area:header;padding:10px 16px;background:color-mix(in srgb,var(--bg-elevated) 82%,var(--surface) 18%)}.ctx-body .awp-title{font-size:13px;gap:8px}.ctx-body .awp-count{font-size:11px;padding:2px 7px}.ctx-body .awp-controls{gap:8px}.ctx-body .awp-filter{min-width:112px;padding:5px 8px;font-size:11px}.ctx-body .awp-search-toggle{width:28px;height:28px;justify-content:center;border:1px solid transparent}.ctx-body .awp-search-toggle:hover,.ctx-body .awp-search-toggle.active{border-color:var(--border);background:var(--surface)}.ctx-body .awp-search-bar{grid-area:search;padding:8px 12px;background:color-mix(in srgb,var(--bg) 82%,var(--surface) 18%)}.ctx-body .awp-search-input{padding:7px 10px;font-size:12px}.ctx-body .awp-list{grid-area:list;flex:unset;min-height:0;max-height:none;border-right:1px solid var(--border);background:color-mix(in srgb,var(--bg) 94%,var(--surface) 6%)}.ctx-body .awp:not(:has(.awp-detail)) .awp-list{grid-column:1 / -1;border-right:none}.ctx-body .awp-row{display:grid;grid-template-columns:10px minmax(160px,1fr) minmax(148px,220px) minmax(44px,max-content);gap:10px;min-height:58px;padding:10px 16px;font-size:12px}.ctx-body .awp-row-selected{padding-left:14px}.ctx-body .awp-dot{align-self:center}.ctx-body .awp-row-info{gap:3px}.ctx-body .awp-row-name{font-size:12.5px;line-height:1.25}.ctx-body .awp-row-projection{font-size:10.5px;line-height:1.25}.ctx-body .awp-row-activity{max-width:none;justify-self:end;font-size:11.5px;line-height:1.25}.ctx-body .awp-row-time{min-width:36px;font-size:10.5px}.ctx-body .awp-detail{grid-area:detail;flex:unset;min-width:0;min-height:260px;border-top:none;border-left:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 78%,var(--bg) 22%)}.ctx-body .awp-detail-header{padding:12px 16px}.ctx-body .awp-detail-avatar{width:36px;height:36px;border-radius:8px;font-size:15px}.ctx-body .awp-detail-name{font-size:13px;line-height:1.25}.ctx-body .awp-detail-role,.ctx-body .awp-detail-employee,.ctx-body .awp-detail-projection{font-size:11px;line-height:1.25}.ctx-body .awp-detail-body{padding:12px 16px 16px}.ctx-body .awp-detail-section-label{letter-spacing:0}.ctx-body .awp .wf-role-turns{gap:8px;margin-top:10px}.ctx-body .awp .wf-role-turn{border-radius:8px;background:color-mix(in srgb,var(--surface) 72%,var(--bg) 28%)}.ctx-body .awp .wf-role-turn-button{grid-template-columns:auto minmax(0,1fr) max-content 22px;min-height:48px;padding:10px 12px;gap:10px}.ctx-body .awp .wf-role-turn-title{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;color:var(--text)}.ctx-body .awp .wf-role-turn-time{align-self:center;white-space:nowrap}.ctx-body .awp .wf-role-turn-chevron{align-self:center;justify-self:end;width:22px;height:22px;justify-content:center;color:var(--text-secondary);opacity:.9}.ctx-body .awp .wf-role-turn-chevron svg{width:14px;height:14px}.ctx-body .awp .wf-role-turn-activity{padding:12px}@container ctxpanel (max-width: 720px){.ctx-body .awp{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(180px,42%) minmax(260px,1fr);grid-template-areas:"header" "search" "list" "detail"}.ctx-body .awp-list{border-right:none;border-bottom:1px solid var(--border)}.ctx-body .awp-detail{min-height:260px;border-left:none;border-top:1px solid var(--border)}.ctx-body .awp:not(:has(.awp-detail)) .awp-list{grid-row:3 / -1}.ctx-body .awp-row{grid-template-columns:10px minmax(0,1fr) minmax(34px,max-content);grid-template-rows:auto auto;gap:4px 10px;min-height:56px;padding:9px 12px}.ctx-body .awp-row-activity{grid-column:2 / 4;justify-self:start}.ctx-body .awp-row-time{grid-column:3;grid-row:1}.ctx-body .awp .wf-role-turn-button{grid-template-columns:auto minmax(0,1fr) 22px;grid-template-rows:auto auto;min-height:58px}.ctx-body .awp .wf-role-turn-time{grid-column:2;grid-row:2;justify-self:start}.ctx-body .awp .wf-role-turn-chevron{grid-column:3;grid-row:1 / span 2}}@container ctxpanel (max-width: 420px){.ctx-body .awp-header{align-items:flex-start;gap:8px;flex-direction:column}.ctx-body .awp-controls{width:100%}.ctx-body .awp-filter{flex:1}}.wfr-panel{padding:0 8px}.wfr-card{background:color-mix(in srgb,var(--yellow, #f39c12) 8%,var(--bg-secondary));border:1px solid color-mix(in srgb,var(--yellow, #f39c12) 25%,transparent);border-radius:8px;padding:12px 14px;margin-bottom:8px}.wfr-header{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.wfr-icon{font-size:16px;line-height:1;flex-shrink:0}.wfr-header-text{display:flex;flex-direction:column;gap:2px;min-width:0}.wfr-title{font-size:13px;font-weight:600;color:var(--text)}.wfr-subtitle{font-size:11px;color:var(--text-secondary)}.wfr-work-items{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.wfr-work-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.wfr-work-item-icon{font-size:12px;width:14px;text-align:center;flex-shrink:0;font-weight:700}.wfr-work-item-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wfr-work-item-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--red, #e74c3c) 15%,transparent);color:var(--red, #e74c3c);flex-shrink:0}.wfr-actions{display:flex;gap:8px;align-items:center}.wfr-btn{padding:5px 14px;font-size:12px;font-weight:500;border:none;border-radius:6px;cursor:pointer}.wfr-btn--resume{background:var(--green, #27ae60);color:#fff}.wfr-btn--resume:hover{opacity:.85}.wfr-btn--cancel{background:var(--red, #e74c3c);color:#fff}.wfr-btn--cancel:hover{opacity:.85}.wfr-btn--dismiss{background:transparent;color:var(--text-secondary)}.wfr-btn--dismiss:hover{color:var(--text)}.wfr-recovering{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--accent)}.kanban-empty-state{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:14px;padding:32px 16px;text-align:center}.kanban-empty-state-inline{flex:0;padding:16px}.task-detail-runtime{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:11px;font-weight:500;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}.task-detail-runtime.status-reflecting{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,var(--surface))}.task-detail-runtime.status-tool_active{color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--surface))}.task-detail-runtime-agent{color:var(--text-secondary);font-weight:400}.task-detail-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.task-detail-section{display:flex;flex-direction:column;gap:6px}.task-detail-section-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.task-detail-dep-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.task-detail-dep-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;background:var(--surface);font-size:12px;color:var(--text)}.task-detail-dep-id{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;flex-shrink:0}.task-detail-handoff{margin:0;padding:8px 10px;border-radius:6px;background:var(--surface);font-size:11px;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto;border:1px solid var(--border)}.task-detail-progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.progress-entry{display:flex;align-items:baseline;gap:8px;padding:3px 8px;border-radius:3px;font-size:11px}.progress-entry:hover{background:var(--surface)}.progress-time{font-size:10px;color:var(--text-secondary);font-family:SF Mono,Fira Code,Consolas,Courier New,monospace;flex-shrink:0;min-width:64px}.progress-summary{color:var(--text);word-break:break-word}.progress-entry.type-thinking .progress-summary{color:var(--yellow)}.progress-entry.type-tool_call .progress-summary{color:var(--green)}.progress-entry.type-handoff .progress-summary{color:var(--accent)}.progress-entry.type-gate_result .progress-summary{color:#d97706}.task-detail-linked-messages{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:4px 0;background:var(--bg)}.task-detail-empty-hint{color:var(--text-secondary);font-size:12px;font-style:italic;margin:4px 0}:root{font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;min-width:0}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden}.app-shell{--bg: #0c111b;--bg-elevated: #141b2b;--text: #e2e8f0;--text-secondary: #8494a7;--border: rgba(148, 163, 184, .12);--border-hover: rgba(148, 163, 184, .22);--surface: rgba(20, 27, 43, .7);--surface-hover: rgba(30, 41, 63, .7);--accent: #6366f1;--accent-soft: rgba(99, 102, 241, .15);--accent-glow: rgba(99, 102, 241, .3);--green: #34d399;--yellow: #fbbf24;--red: #f87171;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--white: #ffffff;--text-dim: #64748b;--bg-card: #141b2b;--bg-secondary: #1a2332;height:100vh;max-height:100vh;display:grid;grid-template-rows:48px minmax(0,1fr);gap:0;color:var(--text);overflow:hidden;background:var(--bg)}.theme-neon{--bg: #05100e;--bg-elevated: #0a1f1a;--text: #d0fef0;--text-secondary: #5eada0;--text-dim: #3d7a6e;--bg-card: #0a1f1a;--bg-secondary: #0e2a24;--border: rgba(94, 173, 160, .15);--border-hover: rgba(94, 173, 160, .28);--surface: rgba(10, 31, 26, .75);--surface-hover: rgba(16, 48, 40, .75);--accent: #00ddc6;--accent-soft: rgba(0, 221, 198, .12);--accent-glow: rgba(0, 221, 198, .3)}.theme-paper{--bg: #f8f9fb;--bg-elevated: #ffffff;--text: #1e293b;--text-secondary: #64748b;--text-dim: #94a3b8;--bg-card: #ffffff;--bg-secondary: #f1f5f9;--border: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .14);--surface: rgba(255, 255, 255, .9);--surface-hover: rgba(241, 245, 249, .95);--accent: #4f46e5;--accent-soft: rgba(79, 70, 229, .08);--accent-glow: rgba(79, 70, 229, .15);--green: #059669;--yellow: #d97706;--red: #dc2626;color-scheme:light}.theme-paper .kanban-card:hover{box-shadow:0 2px 8px #0000000f}.theme-paper .kanban-card.is-dragging{box-shadow:0 8px 24px #0000001f}.theme-retro{--bg: #080e08;--bg-elevated: #0e1a0e;--text: #a8d8a8;--text-secondary: #4a8a4a;--text-dim: #3a6a3a;--bg-card: #0e1a0e;--bg-secondary: #142014;--border: rgba(74, 138, 74, .18);--border-hover: rgba(74, 138, 74, .3);--surface: rgba(14, 26, 14, .8);--surface-hover: rgba(20, 40, 20, .8);--accent: #4ade80;--accent-soft: rgba(74, 222, 128, .12);--accent-glow: rgba(74, 222, 128, .3)}.theme-terminal{--bg: #080808;--bg-elevated: #111111;--text: #22c55e;--text-secondary: #166534;--text-dim: #0f4a22;--bg-card: #111111;--bg-secondary: #181818;--border: rgba(34, 197, 94, .12);--border-hover: rgba(34, 197, 94, .25);--surface: rgba(17, 17, 17, .9);--surface-hover: rgba(24, 24, 24, .9);--accent: #22c55e;--accent-soft: rgba(34, 197, 94, .1);--accent-glow: rgba(34, 197, 94, .3)}.theme-cozy{--bg: #16120e;--bg-elevated: #201a14;--text: #ede0d4;--text-secondary: #9a8470;--text-dim: #7a6a5a;--bg-card: #201a14;--bg-secondary: #2a221a;--border: rgba(154, 132, 112, .16);--border-hover: rgba(154, 132, 112, .28);--surface: rgba(32, 26, 20, .8);--surface-hover: rgba(42, 34, 26, .8);--accent: #f59e0b;--accent-soft: rgba(245, 158, 11, .12);--accent-glow: rgba(245, 158, 11, .3)}.theme-openopc{--bg: #0a0a0a;--bg-elevated: #161616;--bg-card: #121111;--bg-secondary: #171412;--text: #f0ede8;--text-secondary: #8a8580;--text-dim: #6f6a66;--border: rgba(217, 119, 87, .12);--border-hover: rgba(217, 119, 87, .24);--surface: rgba(22, 22, 22, .85);--surface-hover: rgba(34, 30, 28, .85);--accent: #d97757;--accent-soft: rgba(217, 119, 87, .12);--accent-glow: rgba(217, 119, 87, .25);--green: #98c379;--yellow: #e5c07b;--red: #e06c75}.theme-openopc .topbar{background:#0e0e0e;border-bottom-color:#d9775714}.theme-openopc .session-sidebar{background:#0e0e0e;border-right-color:#d9775714}.theme-openopc .session-new-btn{border-color:#d977572e}.theme-openopc .session-new-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-openopc .msg-content-user{background:linear-gradient(135deg,#d97757,#c96442);box-shadow:0 2px 8px #d9775726}.theme-openopc .msg-content-agent-card{background:#131313;border-color:#d977571a;border-left-color:#d97757}.theme-openopc .msg-row.agent:hover .msg-content-agent-card{border-color:#d9775733;border-left-color:#d97757;box-shadow:0 2px 12px #d977570f}.theme-openopc .msg-content-agent pre{background:#0c0c0c;border-color:#d9775714}.theme-openopc .msg-content-agent blockquote{background:#d9775708;border-left-color:#d9775740}.theme-openopc .msg-card-actions{border-top-color:#d9775714}.theme-openopc .agent-avatar{background:linear-gradient(135deg,#d9775726,#d977570d);border-color:#d9775726;color:var(--accent)}.theme-openopc .composer-send-btn{background:linear-gradient(135deg,#d97757,#c96442)}.theme-openopc .composer-send-btn:not(:disabled):hover{filter:brightness(1.2)}.theme-openopc .task-header-bar{background:#0e0e0e;border-bottom-color:#d9775714}.theme-openopc .ptl-live-think{background:#d977570f}.theme-openopc .ptl-live-tool-name{background:#98c3791a;color:#98c379}.theme-openopc .ptl-tool-badge{background:#98c37914;color:#98c379}.theme-openopc .ptl-dot{background:#131313;border-color:#d977571f}.theme-openopc .ptl-line{background:#d977571a}.theme-openopc .agent-working-row .ptl-block{border-color:#d9775726}.theme-openopc .code-block-header{background:#111}.theme-openopc .code-block-wrap pre{background:#0e0e0e!important}.theme-openopc .msg-content-agent code{background:#d9775714;color:#ffb38a}.theme-openopc .msg-content-agent pre code{background:transparent;color:#f0ede8}.theme-openopc .kanban-card:hover{box-shadow:0 2px 12px #d977570f}.theme-openopc .kanban-card.is-dragging{box-shadow:0 8px 24px #d977571f}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg);z-index:10}.topbar-left{display:flex;align-items:center;gap:10px}.logo-text{font-size:15px;font-weight:700;letter-spacing:-.02em}.logo-accent{color:var(--accent)}.conn-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;cursor:help;transition:background .2s}.conn-dot.ok{background:var(--green);box-shadow:0 0 6px #34d39980}.conn-dot.warn{background:var(--yellow);box-shadow:0 0 6px #fbbf2466}.conn-dot.error{background:var(--red);box-shadow:0 0 6px #f8717166}.conn-dot.off{background:var(--text-secondary)}.topbar-center{flex:0 0 auto;display:flex;align-items:center;gap:12px}.page-nav{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;flex-shrink:0}.page-nav-btn{padding:4px 14px;border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .12s}.page-nav-btn:first-child{border-right:1px solid var(--border)}.page-nav-btn.active{background:var(--accent);color:#fff}.page-nav-btn:not(.active):hover{background:var(--surface-hover);color:var(--text)}.page-nav-btn{position:relative}.nav-unread-badge{position:absolute;top:-2px;right:-2px;font-size:8px;padding:1px 4px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;line-height:1.2;min-width:14px;text-align:center}.stat-chips{display:flex;gap:6px}.stat-chip{font-size:11px;color:var(--text-secondary);padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);white-space:nowrap}.stat-chip b{color:var(--text);font-weight:600}.topbar-right{display:flex;align-items:center;gap:6px}.theme-select{font-size:11px;padding:4px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;outline:none}.theme-select:focus{border-color:var(--accent)}.icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;padding:0;transition:all .15s}.icon-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover);transform:none}.icon-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.main-grid{display:grid;grid-template-columns:1fr clamp(280px,30vw,360px);height:100%;min-height:0;overflow:hidden;transition:grid-template-columns .22s ease}.main-grid.hidden{display:none}.main-grid.sidebar-collapsed{grid-template-columns:1fr 0px}.main-grid.sidebar-collapsed .sidebar{border-left:none}.canvas-wrap{position:relative;overflow:hidden;background:#1a2533;min-width:0;min-height:0}.canvas-wrap>div{width:100%;height:100%}.canvas-wrap canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.canvas-float-btn{position:absolute;bottom:12px;left:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#141b2bf0;box-shadow:0 8px 20px #0000003d;color:var(--text);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s;z-index:5}.canvas-float-btn:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:scale(1.05)}.sidebar-collapse-btn{position:absolute;top:50%;right:0;transform:translateY(-50%);width:18px;height:56px;padding:0;border:1px solid var(--border);border-right:none;border-radius:8px 0 0 8px;background:#141b2bf0;color:var(--text-secondary);font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:6;transition:background .15s,color .15s}.sidebar-collapse-btn:hover{background:var(--surface-hover);color:var(--text)}.sidebar{display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid var(--border);background:var(--bg-elevated);overflow:hidden}.sidebar-body{overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.input-row{display:flex;gap:6px;align-items:flex-end}.input-row input,.dev-group .input-row input{flex:1;padding:9px 14px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;outline:none;transition:border-color .15s}.input-row input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.input-row input::placeholder{color:var(--text-secondary);opacity:.7}.send-btn{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.send-btn:hover{transform:scale(1.05);filter:brightness(1.1)}.send-btn:disabled{opacity:.35;cursor:not-allowed;transform:none;filter:none}.team-panel{padding:12px;display:flex;flex-direction:column;gap:12px;min-width:0;overflow-x:hidden}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}.toast-success{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#22c55e;color:#0c111b;padding:8px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;z-index:9999;animation:toast-in .3s ease-out;pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-error{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--red, #f87171);color:#fff;padding:8px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;z-index:9999;animation:toast-in .3s ease-out;pointer-events:none}.spinner-inline{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin-inline .6s linear infinite;vertical-align:middle}@keyframes spin-inline{to{transform:rotate(360deg)}}.del-confirm{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--bg-elevated);border:1px solid var(--red);border-radius:var(--radius-xs);animation:del-pop .12s ease-out;z-index:10;white-space:nowrap}.del-confirm-label{font-size:10px;color:var(--red);font-weight:500}.del-confirm-yes{padding:1px 8px;font-size:10px;border-radius:3px;border:none;background:var(--red);color:#fff;cursor:pointer;font-weight:600}.del-confirm-yes:hover{filter:brightness(1.15)}.del-confirm-no{padding:1px 6px;font-size:10px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer}.del-confirm-no:hover{background:var(--surface-hover);color:var(--text)}@keyframes del-pop{0%{opacity:0;transform:translateY(-50%) scale(.92)}to{opacity:1;transform:translateY(-50%) scale(1)}}.office-cards{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.office-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;cursor:pointer;transition:border-color .15s,background .15s}.office-card:hover{border-color:var(--accent);background:var(--accent-soft)}.office-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.office-name{font-size:12px;font-weight:600;color:var(--text)}.office-edit-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:13px;padding:0 2px;line-height:1;opacity:0;transition:opacity .15s}.office-card:hover .office-edit-btn{opacity:.7}.office-edit-btn:hover{opacity:1!important;color:var(--accent)}.office-name-input{font-size:12px;font-weight:600;background:var(--bg-elevated);color:var(--text);border:1px solid var(--accent);border-radius:3px;padding:1px 4px;width:120px;outline:none}.office-capacity{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono, monospace)}.office-agents{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.office-agent-chip{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--accent-soft);color:var(--text-primary);cursor:pointer;border:1px solid var(--border);transition:background .1s}.office-agent-chip:hover{background:var(--accent);color:#fff}.assign-dropdown{font-size:10px;padding:2px 16px 2px 4px;border-radius:4px;appearance:none;-webkit-appearance:none;background:var(--bg-elevated);color:var(--text);color-scheme:inherit;border:1px solid var(--border);cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:8px 5px}.agent-list{display:flex;flex-direction:column;gap:4px}.agent-row{position:relative;display:flex;align-items:stretch;border-radius:var(--radius-sm);border:1px solid var(--border);overflow:visible;transition:border-color .15s}.agent-row:hover{border-color:var(--border-hover)}.agent-row.selected{border-color:var(--accent);background:var(--accent-soft)}.agent-row-main{flex:1;display:flex;align-items:center;gap:8px;padding:8px 10px;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left;border-radius:0}.agent-row-main:hover{background:var(--surface-hover);transform:none}.agent-info{display:flex;flex-direction:column;gap:1px;min-width:0}.agent-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-spec{font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-del{flex-shrink:0;width:30px;display:flex;align-items:center;justify-content:center;border:none;border-left:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:0;border-radius:0;transition:all .12s}.agent-del:hover{background:#f8717126;color:var(--red);transform:none}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-secondary)}.dot.active,.dot.working{background:var(--green);box-shadow:0 0 4px #34d39966}.dot.idle{background:var(--text-secondary)}.dot.waiting{background:var(--yellow)}.dot.delegating{background:var(--accent)}.dot.reflecting{background:#c084fc}.dot.spawned{background:var(--green)}.empty-state{font-size:12px;color:var(--text-secondary);text-align:center;padding:16px 12px;line-height:1.5}.agent-detail{padding:10px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent-soft);display:flex;flex-direction:column;gap:6px}.agent-detail-name{font-size:13px;font-weight:700;color:var(--accent)}.agent-detail-row{display:flex;justify-content:space-between;gap:8px;font-size:11px}.detail-label{color:var(--text-secondary);flex-shrink:0}.detail-value{text-align:right;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-select{flex:1;text-align:right;appearance:none;-webkit-appearance:none;background:var(--bg-elevated);color:var(--text);color-scheme:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 20px 4px 8px;font-size:12px;cursor:pointer;min-width:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px 6px}.agent-row-simple{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;text-align:left;font-size:12px;transition:all .12s}.agent-row-simple:hover{border-color:var(--border-hover);background:var(--surface-hover);transform:none}.agent-row-simple.selected{border-color:var(--accent);background:var(--accent-soft)}.sub-badge{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent)}.inline-btn{font-size:10px;padding:1px 6px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;margin-left:auto}.inline-btn:hover{background:var(--surface-hover);color:var(--text);transform:none}.dev-overlay{position:fixed;top:52px;right:8px;width:400px;max-height:calc(100vh - 60px);overflow-y:auto;z-index:100;padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 16px 48px #0006,0 0 0 1px var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dev-header{display:flex;justify-content:space-between;align-items:center}.dev-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.dev-group{display:flex;flex-direction:column;gap:8px}.dev-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.inline-select{font-size:10px;padding:2px 6px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);margin-left:auto;outline:none}.dev-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dev-row select{padding:5px 8px;font-size:11px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none}.pill-btn{padding:5px 12px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s}.pill-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover);transform:none}.pill-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.evo-pipeline{display:flex;align-items:center;gap:0;padding:6px 0}.evo-phase-group{display:flex;align-items:center;flex-shrink:0}.evo-connector{width:16px;height:2px;background:var(--border)}.evo-node{display:flex;flex-direction:column;align-items:center;gap:5px}.evo-dot{width:14px;height:14px;border-radius:50%;border:2px dashed var(--border);background:transparent;transition:all .2s}.evo-node.active .evo-dot{border-style:solid;border-color:var(--accent);background:var(--accent);box-shadow:0 0 8px var(--accent-glow);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 4px var(--accent-glow)}50%{box-shadow:0 0 14px var(--accent-glow)}}.evo-label{font-size:9px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.evo-node.active .evo-label{color:var(--text);font-weight:600}.event-log{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.log-row{display:grid;grid-template-columns:52px 80px 70px minmax(0,1fr);gap:6px;padding:4px 6px;border-radius:var(--radius-xs);background:var(--surface);font-size:10px;overflow:hidden;font-variant-numeric:tabular-nums}.log-time{color:var(--text-secondary)}.log-type{color:var(--accent);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-agent{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-data{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:SF Mono,Consolas,monospace}.list{display:flex;flex-direction:column;gap:4px}.list-row{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:4px 8px;border-radius:var(--radius-xs);background:var(--surface)}.list-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:SF Mono,Consolas,Courier New,monospace}.muted{color:var(--text-secondary)}@media(max-width:1024px){.main-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,1.2fr) minmax(0,1fr);transition:grid-template-rows .22s ease}.main-grid.sidebar-collapsed{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 0}.main-grid.sidebar-collapsed .sidebar{border-top:none}.sidebar{border-left:none;border-top:1px solid var(--border);max-height:48vh;min-height:0}.sidebar-collapse-btn{top:auto;bottom:0;right:50%;transform:translate(50%);width:56px;height:18px;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0}.sidebar-collapse-btn .collapse-glyph{display:inline-block;transform:rotate(90deg)}.stat-chips{display:none}}@media(max-width:760px){.topbar{padding:0 10px}.dev-overlay{width:calc(100vw - 16px);right:8px;left:8px}}@media(max-width:480px){.main-grid{grid-template-rows:minmax(0,1fr) minmax(0,auto)}.sidebar{max-height:45vh}}.org-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.editor-page{overflow:hidden;display:flex;flex-direction:column}.collision-editor{display:flex;flex-direction:column;height:100%;background:var(--bg);color:var(--text)}.ce-toolbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:44px}.ce-toolbar-group{display:flex;align-items:center;gap:6px}.ce-title{font-weight:700;font-size:14px;letter-spacing:.02em;white-space:nowrap}.ce-office-select{font-size:12px;padding:2px 6px;border-radius:4px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);cursor:pointer;outline:none}.ce-mode-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.ce-mode-btn:hover{background:var(--surface-hover);color:var(--text)}.ce-mode-btn.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.ce-mode-btn.active.wall{border-color:var(--red);background:#f8717126}.ce-mode-btn.active.floor{border-color:var(--green);background:#34d39926}.ce-mode-btn.active.seat{border-color:var(--yellow);background:#fbbf2426}.ce-mode-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.ce-mode-dot.wall{background:var(--red)}.ce-mode-dot.floor{background:var(--green)}.ce-mode-dot.seat{background:var(--yellow)}.ce-btn{padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.ce-btn:hover{background:var(--surface-hover);color:var(--text)}.ce-btn.active{border-color:var(--accent);color:var(--accent)}.ce-btn.apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.ce-btn.apply:hover{filter:brightness(1.1)}.ce-btn.apply.success{background:var(--green);border-color:var(--green)}.ce-btn.upload{background:linear-gradient(135deg,var(--accent-soft),var(--surface));border-color:var(--accent);color:var(--accent);font-weight:600}.ce-btn.upload:hover{filter:brightness(1.1)}.ce-btn.danger{color:var(--red)}.ce-btn.danger:hover{background:#f8717126;border-color:var(--red)}.ce-zoom-label{font-size:11px;color:var(--text-secondary);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.ce-stats{font-size:11px;color:var(--text-secondary);gap:10px;margin-left:auto}.ce-body{flex:1;display:flex;overflow:hidden}.ce-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px;background:#1a1a2e}.ce-canvas-wrap canvas{box-shadow:0 4px 24px #00000080;border:1px solid var(--border);border-radius:4px}.ce-export-panel{width:380px;min-width:320px;border-left:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;overflow:hidden}.ce-export-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.ce-export-textarea{flex:1;padding:12px;background:var(--bg);color:var(--text);border:none;font-family:JetBrains Mono,Fira Code,Menlo,monospace;font-size:11px;line-height:1.5;resize:none;outline:none} diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-DoyFIcGP.js b/opc/plugins/office_ui/frontend_dist/assets/index-DoyFIcGP.js new file mode 100644 index 0000000..d0e2702 --- /dev/null +++ b/opc/plugins/office_ui/frontend_dist/assets/index-DoyFIcGP.js @@ -0,0 +1,155 @@ +import{g as Zo,r as R3}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var Wp={exports:{}},pc={};var lk;function A3(){if(lk)return pc;lk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,i,o){var a=null;if(o!==void 0&&(a=""+o),i.key!==void 0&&(a=""+i.key),"key"in i){o={};for(var u in i)u!=="key"&&(o[u]=i[u])}else o=i;return i=o.ref,{$$typeof:e,type:r,key:a,ref:i!==void 0?i:null,props:o}}return pc.Fragment=t,pc.jsx=n,pc.jsxs=n,pc}var ck;function M3(){return ck||(ck=1,Wp.exports=A3()),Wp.exports}var c=M3(),Yp={exports:{}},_t={};var uk;function D3(){if(uk)return _t;uk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=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"),p=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),g=Symbol.iterator;function y(G){return G===null||typeof G!="object"?null:(G=g&&G[g]||G["@@iterator"],typeof G=="function"?G:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,S={};function _(G,J,P){this.props=G,this.context=J,this.refs=S,this.updater=P||v}_.prototype.isReactComponent={},_.prototype.setState=function(G,J){if(typeof G!="object"&&typeof G!="function"&&G!=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,G,J,"setState")},_.prototype.forceUpdate=function(G){this.updater.enqueueForceUpdate(this,G,"forceUpdate")};function k(){}k.prototype=_.prototype;function C(G,J,P){this.props=G,this.context=J,this.refs=S,this.updater=P||v}var N=C.prototype=new k;N.constructor=C,w(N,_.prototype),N.isPureReactComponent=!0;var O=Array.isArray;function I(){}var D={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function L(G,J,P){var X=P.ref;return{$$typeof:e,type:G,key:J,ref:X!==void 0?X:null,props:P}}function A(G,J){return L(G.type,J,G.props)}function M(G){return typeof G=="object"&&G!==null&&G.$$typeof===e}function $(G){var J={"=":"=0",":":"=2"};return"$"+G.replace(/[=:]/g,function(P){return J[P]})}var W=/\/+/g;function B(G,J){return typeof G=="object"&&G!==null&&G.key!=null?$(""+G.key):J.toString(36)}function U(G){switch(G.status){case"fulfilled":return G.value;case"rejected":throw G.reason;default:switch(typeof G.status=="string"?G.then(I,I):(G.status="pending",G.then(function(J){G.status==="pending"&&(G.status="fulfilled",G.value=J)},function(J){G.status==="pending"&&(G.status="rejected",G.reason=J)})),G.status){case"fulfilled":return G.value;case"rejected":throw G.reason}}throw G}function H(G,J,P,X,ee){var te=typeof G;(te==="undefined"||te==="boolean")&&(G=null);var re=!1;if(G===null)re=!0;else switch(te){case"bigint":case"string":case"number":re=!0;break;case"object":switch(G.$$typeof){case e:case t:re=!0;break;case p:return re=G._init,H(re(G._payload),J,P,X,ee)}}if(re)return ee=ee(G),re=X===""?"."+B(G,0):X,O(ee)?(P="",re!=null&&(P=re.replace(W,"$&/")+"/"),H(ee,J,P,"",function(se){return se})):ee!=null&&(M(ee)&&(ee=A(ee,P+(ee.key==null||G&&G.key===ee.key?"":(""+ee.key).replace(W,"$&/")+"/")+re)),J.push(ee)),1;re=0;var oe=X===""?".":X+":";if(O(G))for(var de=0;de>>1,q=H[Z];if(0>>1;Zi(P,Y))Xi(ee,P)?(H[Z]=ee,H[X]=Y,Z=X):(H[Z]=P,H[J]=Y,Z=J);else if(Xi(ee,Y))H[Z]=ee,H[X]=Y,Z=X;else break e}}return V}function i(H,V){var Y=H.sortIndex-V.sortIndex;return Y!==0?Y:H.id-V.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=[],p=1,h=null,g=3,y=!1,v=!1,w=!1,S=!1,_=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function N(H){for(var V=n(m);V!==null;){if(V.callback===null)r(m);else if(V.startTime<=H)r(m),V.sortIndex=V.expirationTime,t(d,V);else break;V=n(m)}}function O(H){if(w=!1,N(H),!v)if(n(d)!==null)v=!0,I||(I=!0,$());else{var V=n(m);V!==null&&U(O,V.startTime-H)}}var I=!1,D=-1,T=5,L=-1;function A(){return S?!0:!(e.unstable_now()-LH&&A());){var Z=h.callback;if(typeof Z=="function"){h.callback=null,g=h.priorityLevel;var q=Z(h.expirationTime<=H);if(H=e.unstable_now(),typeof q=="function"){h.callback=q,N(H),V=!0;break t}h===n(d)&&r(d),N(H)}else r(d);h=n(d)}if(h!==null)V=!0;else{var G=n(m);G!==null&&U(O,G.startTime-H),V=!1}}break e}finally{h=null,g=Y,y=!1}V=void 0}}finally{V?$():I=!1}}}var $;if(typeof C=="function")$=function(){C(M)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,B=W.port2;W.port1.onmessage=M,$=function(){B.postMessage(null)}}else $=function(){_(M,0)};function U(H,V){D=_(function(){H(e.unstable_now())},V)}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(H){H.callback=null},e.unstable_forceFrameRate=function(H){0>H||125Z?(H.sortIndex=Y,t(m,H),n(d)===null&&H===n(m)&&(w?(k(D),D=-1):w=!0,U(O,Y-Z))):(H.sortIndex=q,t(d,H),v||y||(v=!0,I||(I=!0,$()))),H},e.unstable_shouldYield=A,e.unstable_wrapCallback=function(H){var V=g;return function(){var Y=g;g=V;try{return H.apply(this,arguments)}finally{g=Y}}}})(Zp)),Zp}var mk;function L3(){return mk||(mk=1,Kp.exports=O3()),Kp.exports}var Qp={exports:{}},vr={};var hk;function z3(){if(hk)return vr;hk=1;var e=bl();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(),Qp.exports=z3(),Qp.exports}var gk;function P3(){if(gk)return gc;gk=1;var e=L3(),t=bl(),n=jj();function r(s){var l="https://react.dev/errors/"+s;if(1q||(s.current=Z[q],Z[q]=null,q--)}function P(s,l){q++,Z[q]=s.current,s.current=l}var X=G(null),ee=G(null),te=G(null),re=G(null);function oe(s,l){switch(P(te,l),P(ee,s),P(X,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?R_(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=R_(l),s=A_(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}J(X),P(X,s)}function de(){J(X),J(ee),J(te)}function se(s){s.memoizedState!==null&&P(re,s);var l=X.current,f=A_(l,s.type);l!==f&&(P(ee,s),P(X,f))}function je(s){ee.current===s&&(J(X),J(ee)),re.current===s&&(J(re),dc._currentValue=Y)}var we,Ce;function Be(s){if(we===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);we=l&&l[1]||"",Ce=-1)":-1b||ie[x]!==pe[b]){var _e=` +`+ie[x].replace(" at new "," at ");return s.displayName&&_e.includes("")&&(_e=_e.replace("",s.displayName)),_e}while(1<=x&&0<=b);break}}}finally{Ge=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?Be(f):""}function yt(s,l){switch(s.tag){case 26:case 27:case 5:return Be(s.type);case 16:return Be("Lazy");case 13:return s.child!==l&&l!==null?Be("Suspense Fallback"):Be("Suspense");case 19:return Be("SuspenseList");case 0:case 15:return Ye(s.type,!1);case 11:return Ye(s.type.render,!1);case 1:return Ye(s.type,!0);case 31:return Be("Activity");default:return""}}function Vt(s){try{var l="",f=null;do l+=yt(s,f),f=s,s=s.return;while(s);return l}catch(x){return` +Error generating stack: `+x.message+` +`+x.stack}}var bt=Object.prototype.hasOwnProperty,vt=e.unstable_scheduleCallback,me=e.unstable_cancelCallback,Oe=e.unstable_shouldYield,rt=e.unstable_requestPaint,Qe=e.unstable_now,Je=e.unstable_getCurrentPriorityLevel,fe=e.unstable_ImmediatePriority,be=e.unstable_UserBlockingPriority,Me=e.unstable_NormalPriority,Fe=e.unstable_LowPriority,$e=e.unstable_IdlePriority,Ut=e.log,rn=e.unstable_setDisableYieldValue,ke=null,Te=null;function Pe(s){if(typeof Ut=="function"&&rn(s),Te&&typeof Te.setStrictMode=="function")try{Te.setStrictMode(ke,s)}catch{}}var Ve=Math.clz32?Math.clz32:Mn,qe=Math.log,et=Math.LN2;function Mn(s){return s>>>=0,s===0?32:31-(qe(s)/et|0)|0}var Tn=256,Dn=262144,yn=4194304;function Wt(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 Zt(s,l,f){var x=s.pendingLanes;if(x===0)return 0;var b=0,j=s.suspendedLanes,F=s.pingedLanes;s=s.warmLanes;var K=x&134217727;return K!==0?(x=K&~j,x!==0?b=Wt(x):(F&=K,F!==0?b=Wt(F):f||(f=K&~s,f!==0&&(b=Wt(f))))):(K=x&~j,K!==0?b=Wt(K):F!==0?b=Wt(F):f||(f=x&~s,f!==0&&(b=Wt(f)))),b===0?0:l!==0&&l!==b&&(l&j)===0&&(j=b&-b,f=l&-l,j>=f||j===32&&(f&4194048)!==0)?l:b}function Et(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function wt(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 tt(){var s=yn;return yn<<=1,(yn&62914560)===0&&(yn=4194304),s}function it(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function sn(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function Qt(s,l,f,x,b,j){var F=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 K=s.entanglements,ie=s.expirationTimes,pe=s.hiddenUpdates;for(f=F&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var gr=/[\n"\\]/g;function Cn(s){return s.replace(gr,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function Hn(s,l,f,x,b,j,F,K){s.name="",F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?s.type=F:s.removeAttribute("type"),l!=null?F==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+ue(l)):s.value!==""+ue(l)&&(s.value=""+ue(l)):F!=="submit"&&F!=="reset"||s.removeAttribute("value"),l!=null?hn(s,F,ue(l)):f!=null?hn(s,F,ue(f)):x!=null&&s.removeAttribute("value"),b==null&&j!=null&&(s.defaultChecked=!!j),b!=null&&(s.checked=b&&typeof b!="function"&&typeof b!="symbol"),K!=null&&typeof K!="function"&&typeof K!="symbol"&&typeof K!="boolean"?s.name=""+ue(K):s.removeAttribute("name")}function Cr(s,l,f,x,b,j,F,K){if(j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(s.type=j),l!=null||f!=null){if(!(j!=="submit"&&j!=="reset"||l!=null)){pt(s);return}f=f!=null?""+ue(f):"",l=l!=null?""+ue(l):f,K||l===s.value||(s.value=l),s.defaultValue=l}x=x??b,x=typeof x!="function"&&typeof x!="symbol"&&!!x,s.checked=K?s.checked:!!x,s.defaultChecked=!!x,F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"&&(s.name=F),pt(s)}function hn(s,l,f){l==="number"&&An(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function Rr(s,l,f,x){if(s=s.options,l){l={};for(var b=0;b"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tl=!1;if(oi)try{var Un={};Object.defineProperty(Un,"passive",{get:function(){Tl=!0}}),window.addEventListener("test",Un,Un),window.removeEventListener("test",Un,Un)}catch{Tl=!1}var Di=null,na=null,ra=null;function Du(){if(ra)return ra;var s,l=na,f=l.length,x,b="value"in Di?Di.value:Di.textContent,j=b.length;for(s=0;s=Al),Pv=" ",Bv=!1;function $v(s,l){switch(s){case"keyup":return JR.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hv(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var sa=!1;function tA(s,l){switch(s){case"compositionend":return Hv(l);case"keypress":return l.which!==32?null:(Bv=!0,Pv);case"textInput":return s=l.data,s===Pv&&Bv?null:s;default:return null}}function nA(s,l){if(sa)return s==="compositionend"||!Jm&&$v(s,l)?(s=Du(),ra=na=Di=null,sa=!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=x}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=Xv(f)}}function Zv(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?Zv(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function Qv(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=An(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=An(s.document)}return l}function nh(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 uA=oi&&"documentMode"in document&&11>=document.documentMode,oa=null,rh=null,Ll=null,ih=!1;function Jv(s,l,f){var x=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;ih||oa==null||oa!==An(x)||(x=oa,"selectionStart"in x&&nh(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),Ll&&Ol(Ll,x)||(Ll=x,x=wd(rh,"onSelect"),0>=F,b-=F,Li=1<<32-Ve(l)+b|f<Ct?(Lt=nt,nt=null):Lt=nt.sibling;var Kt=xe(ce,nt,he[Ct],Ee);if(Kt===null){nt===null&&(nt=Lt);break}s&&nt&&Kt.alternate===null&&l(ce,nt),ae=j(Kt,ae,Ct),Xt===null?lt=Kt:Xt.sibling=Kt,Xt=Kt,nt=Lt}if(Ct===he.length)return f(ce,nt),Pt&&ns(ce,Ct),lt;if(nt===null){for(;CtCt?(Lt=nt,nt=null):Lt=nt.sibling;var eo=xe(ce,nt,Kt.value,Ee);if(eo===null){nt===null&&(nt=Lt);break}s&&nt&&eo.alternate===null&&l(ce,nt),ae=j(eo,ae,Ct),Xt===null?lt=eo:Xt.sibling=eo,Xt=eo,nt=Lt}if(Kt.done)return f(ce,nt),Pt&&ns(ce,Ct),lt;if(nt===null){for(;!Kt.done;Ct++,Kt=he.next())Kt=Ie(ce,Kt.value,Ee),Kt!==null&&(ae=j(Kt,ae,Ct),Xt===null?lt=Kt:Xt.sibling=Kt,Xt=Kt);return Pt&&ns(ce,Ct),lt}for(nt=x(nt);!Kt.done;Ct++,Kt=he.next())Kt=ye(nt,ce,Ct,Kt.value,Ee),Kt!==null&&(s&&Kt.alternate!==null&&nt.delete(Kt.key===null?Ct:Kt.key),ae=j(Kt,ae,Ct),Xt===null?lt=Kt:Xt.sibling=Kt,Xt=Kt);return s&&nt.forEach(function(T3){return l(ce,T3)}),Pt&&ns(ce,Ct),lt}function fn(ce,ae,he,Ee){if(typeof he=="object"&&he!==null&&he.type===w&&he.key===null&&(he=he.props.children),typeof he=="object"&&he!==null){switch(he.$$typeof){case y:e:{for(var lt=he.key;ae!==null;){if(ae.key===lt){if(lt=he.type,lt===w){if(ae.tag===7){f(ce,ae.sibling),Ee=b(ae,he.props.children),Ee.return=ce,ce=Ee;break e}}else if(ae.elementType===lt||typeof lt=="object"&<!==null&<.$$typeof===T&&Co(lt)===ae.type){f(ce,ae.sibling),Ee=b(ae,he.props),Fl(Ee,he),Ee.return=ce,ce=Ee;break e}f(ce,ae);break}else l(ce,ae);ae=ae.sibling}he.type===w?(Ee=bo(he.props.children,ce.mode,Ee,he.key),Ee.return=ce,ce=Ee):(Ee=Hu(he.type,he.key,he.props,null,ce.mode,Ee),Fl(Ee,he),Ee.return=ce,ce=Ee)}return F(ce);case v:e:{for(lt=he.key;ae!==null;){if(ae.key===lt)if(ae.tag===4&&ae.stateNode.containerInfo===he.containerInfo&&ae.stateNode.implementation===he.implementation){f(ce,ae.sibling),Ee=b(ae,he.children||[]),Ee.return=ce,ce=Ee;break e}else{f(ce,ae);break}else l(ce,ae);ae=ae.sibling}Ee=dh(he,ce.mode,Ee),Ee.return=ce,ce=Ee}return F(ce);case T:return he=Co(he),fn(ce,ae,he,Ee)}if(U(he))return Ze(ce,ae,he,Ee);if($(he)){if(lt=$(he),typeof lt!="function")throw Error(r(150));return he=lt.call(he),dt(ce,ae,he,Ee)}if(typeof he.then=="function")return fn(ce,ae,Yu(he),Ee);if(he.$$typeof===C)return fn(ce,ae,Uu(ce,he),Ee);Xu(ce,he)}return typeof he=="string"&&he!==""||typeof he=="number"||typeof he=="bigint"?(he=""+he,ae!==null&&ae.tag===6?(f(ce,ae.sibling),Ee=b(ae,he),Ee.return=ce,ce=Ee):(f(ce,ae),Ee=uh(he,ce.mode,Ee),Ee.return=ce,ce=Ee),F(ce)):f(ce,ae)}return function(ce,ae,he,Ee){try{Hl=0;var lt=fn(ce,ae,he,Ee);return xa=null,lt}catch(nt){if(nt===ga||nt===qu)throw nt;var Xt=Fr(29,nt,null,ce.mode);return Xt.lanes=Ee,Xt.return=ce,Xt}}}var Eo=kb(!0),Sb=kb(!1),zs=!1;function Sh(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function wh(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 Ps(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Bs(s,l,f){var x=s.updateQueue;if(x===null)return null;if(x=x.shared,(en&2)!==0){var b=x.pending;return b===null?l.next=l:(l.next=b.next,b.next=l),x.pending=l,l=$u(s),ob(s,null,f),l}return Bu(s,x,l,f),$u(s)}function Vl(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var x=l.lanes;x&=s.pendingLanes,f|=x,l.lanes=f,Bt(s,f)}}function Ch(s,l){var f=s.updateQueue,x=s.alternate;if(x!==null&&(x=x.updateQueue,f===x)){var b=null,j=null;if(f=f.firstBaseUpdate,f!==null){do{var F={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};j===null?b=j=F:j=j.next=F,f=f.next}while(f!==null);j===null?b=j=l:j=j.next=l}else b=j=l;f={baseState:x.baseState,firstBaseUpdate:b,lastBaseUpdate:j,shared:x.shared,callbacks:x.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var jh=!1;function Ul(){if(jh){var s=pa;if(s!==null)throw s}}function Gl(s,l,f,x){jh=!1;var b=s.updateQueue;zs=!1;var j=b.firstBaseUpdate,F=b.lastBaseUpdate,K=b.shared.pending;if(K!==null){b.shared.pending=null;var ie=K,pe=ie.next;ie.next=null,F===null?j=pe:F.next=pe,F=ie;var _e=s.alternate;_e!==null&&(_e=_e.updateQueue,K=_e.lastBaseUpdate,K!==F&&(K===null?_e.firstBaseUpdate=pe:K.next=pe,_e.lastBaseUpdate=ie))}if(j!==null){var Ie=b.baseState;F=0,_e=pe=ie=null,K=j;do{var xe=K.lane&-536870913,ye=xe!==K.lane;if(ye?(Ot&xe)===xe:(x&xe)===xe){xe!==0&&xe===ha&&(jh=!0),_e!==null&&(_e=_e.next={lane:0,tag:K.tag,payload:K.payload,callback:null,next:null});e:{var Ze=s,dt=K;xe=l;var fn=f;switch(dt.tag){case 1:if(Ze=dt.payload,typeof Ze=="function"){Ie=Ze.call(fn,Ie,xe);break e}Ie=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=dt.payload,xe=typeof Ze=="function"?Ze.call(fn,Ie,xe):Ze,xe==null)break e;Ie=h({},Ie,xe);break e;case 2:zs=!0}}xe=K.callback,xe!==null&&(s.flags|=64,ye&&(s.flags|=8192),ye=b.callbacks,ye===null?b.callbacks=[xe]:ye.push(xe))}else ye={lane:xe,tag:K.tag,payload:K.payload,callback:K.callback,next:null},_e===null?(pe=_e=ye,ie=Ie):_e=_e.next=ye,F|=xe;if(K=K.next,K===null){if(K=b.shared.pending,K===null)break;ye=K,K=ye.next,ye.next=null,b.lastBaseUpdate=ye,b.shared.pending=null}}while(!0);_e===null&&(ie=Ie),b.baseState=ie,b.firstBaseUpdate=pe,b.lastBaseUpdate=_e,j===null&&(b.shared.lanes=0),Us|=F,s.lanes=F,s.memoizedState=Ie}}function wb(s,l){if(typeof s!="function")throw Error(r(191,s));s.call(l)}function Cb(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sj?j:8;var F=H.T,K={};H.T=K,Gh(s,!1,l,f);try{var ie=b(),pe=H.S;if(pe!==null&&pe(K,ie),ie!==null&&typeof ie=="object"&&typeof ie.then=="function"){var _e=vA(ie,x);Yl(s,l,_e,Wr(s))}else Yl(s,l,x,Wr(s))}catch(Ie){Yl(s,l,{then:function(){},status:"rejected",reason:Ie},Wr())}finally{V.p=j,F!==null&&K.types!==null&&(F.types=K.types),H.T=F}}function CA(){}function Vh(s,l,f,x){if(s.tag!==5)throw Error(r(476));var b=r1(s).queue;n1(s,b,l,Y,f===null?CA:function(){return i1(s),f(x)})}function r1(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:Y},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function i1(s){var l=r1(s);l.next===null&&(l=s.alternate.memoizedState),Yl(s,l.next.queue,{},Wr())}function Uh(){return ur(dc)}function s1(){return Vn().memoizedState}function o1(){return Vn().memoizedState}function jA(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=Wr();s=Ps(f);var x=Bs(l,s,f);x!==null&&(zr(x,l,f),Vl(x,l,f)),l={cache:vh()},s.payload=l;return}l=l.return}}function EA(s,l,f){var x=Wr();f={lane:x,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},sd(s)?l1(l,f):(f=lh(s,l,f,x),f!==null&&(zr(f,s,x),c1(f,l,x)))}function a1(s,l,f){var x=Wr();Yl(s,l,f,x)}function Yl(s,l,f,x){var b={lane:x,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(sd(s))l1(l,b);else{var j=s.alternate;if(s.lanes===0&&(j===null||j.lanes===0)&&(j=l.lastRenderedReducer,j!==null))try{var F=l.lastRenderedState,K=j(F,f);if(b.hasEagerState=!0,b.eagerState=K,Hr(K,F))return Bu(s,l,b,0),pn===null&&Pu(),!1}catch{}if(f=lh(s,l,b,x),f!==null)return zr(f,s,x),c1(f,l,x),!0}return!1}function Gh(s,l,f,x){if(x={lane:2,revertLane:Sp(),gesture:null,action:x,hasEagerState:!1,eagerState:null,next:null},sd(s)){if(l)throw Error(r(479))}else l=lh(s,f,x,2),l!==null&&zr(l,s,2)}function sd(s){var l=s.alternate;return s===kt||l!==null&&l===kt}function l1(s,l){va=Qu=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function c1(s,l,f){if((f&4194048)!==0){var x=l.lanes;x&=s.pendingLanes,f|=x,l.lanes=f,Bt(s,f)}}var Xl={readContext:ur,use:td,useCallback:Ln,useContext:Ln,useEffect:Ln,useImperativeHandle:Ln,useLayoutEffect:Ln,useInsertionEffect:Ln,useMemo:Ln,useReducer:Ln,useRef:Ln,useState:Ln,useDebugValue:Ln,useDeferredValue:Ln,useTransition:Ln,useSyncExternalStore:Ln,useId:Ln,useHostTransitionStatus:Ln,useFormState:Ln,useActionState:Ln,useOptimistic:Ln,useMemoCache:Ln,useCacheRefresh:Ln};Xl.useEffectEvent=Ln;var u1={readContext:ur,use:td,useCallback:function(s,l){return jr().memoizedState=[s,l===void 0?null:l],s},useContext:ur,useEffect:Wb,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,rd(4194308,4,Zb.bind(null,l,s),f)},useLayoutEffect:function(s,l){return rd(4194308,4,s,l)},useInsertionEffect:function(s,l){rd(4,2,s,l)},useMemo:function(s,l){var f=jr();l=l===void 0?null:l;var x=s();if(No){Pe(!0);try{s()}finally{Pe(!1)}}return f.memoizedState=[x,l],x},useReducer:function(s,l,f){var x=jr();if(f!==void 0){var b=f(l);if(No){Pe(!0);try{f(l)}finally{Pe(!1)}}}else b=l;return x.memoizedState=x.baseState=b,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:b},x.queue=s,s=s.dispatch=EA.bind(null,kt,s),[x.memoizedState,s]},useRef:function(s){var l=jr();return s={current:s},l.memoizedState=s},useState:function(s){s=Ph(s);var l=s.queue,f=a1.bind(null,kt,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:Hh,useDeferredValue:function(s,l){var f=jr();return Fh(f,s,l)},useTransition:function(){var s=Ph(!1);return s=n1.bind(null,kt,s.queue,!0,!1),jr().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var x=kt,b=jr();if(Pt){if(f===void 0)throw Error(r(407));f=f()}else{if(f=l(),pn===null)throw Error(r(349));(Ot&127)!==0||Rb(x,l,f)}b.memoizedState=f;var j={value:f,getSnapshot:l};return b.queue=j,Wb(Mb.bind(null,x,j,s),[s]),x.flags|=2048,_a(9,{destroy:void 0},Ab.bind(null,x,j,f,l),null),f},useId:function(){var s=jr(),l=pn.identifierPrefix;if(Pt){var f=zi,x=Li;f=(x&~(1<<32-Ve(x)-1)).toString(32)+f,l="_"+l+"R_"+f,f=Ju++,0<\/script>",j=j.removeChild(j.firstChild);break;case"select":j=typeof x.is=="string"?F.createElement("select",{is:x.is}):F.createElement("select"),x.multiple?j.multiple=!0:x.size&&(j.size=x.size);break;default:j=typeof x.is=="string"?F.createElement(b,{is:x.is}):F.createElement(b)}}j[He]=l,j[Tt]=x;e:for(F=l.child;F!==null;){if(F.tag===5||F.tag===6)j.appendChild(F.stateNode);else if(F.tag!==4&&F.tag!==27&&F.child!==null){F.child.return=F,F=F.child;continue}if(F===l)break e;for(;F.sibling===null;){if(F.return===null||F.return===l)break e;F=F.return}F.sibling.return=F.return,F=F.sibling}l.stateNode=j;e:switch(fr(j,b,x),b){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}x&&ls(l)}}return _n(l),sp(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==x&&ls(l);else{if(typeof x!="string"&&l.stateNode===null)throw Error(r(166));if(s=te.current,fa(l)){if(s=l.stateNode,f=l.memoizedProps,x=null,b=cr,b!==null)switch(b.tag){case 27:case 5:x=b.memoizedProps}s[He]=l,s=!!(s.nodeValue===f||x!==null&&x.suppressHydrationWarning===!0||I_(s.nodeValue,f)),s||Os(l,!0)}else s=Cd(s).createTextNode(x),s[He]=l,l.stateNode=s}return _n(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(x=fa(l),f!==null){if(s===null){if(!x)throw Error(r(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(r(557));s[He]=l}else _o(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;_n(l),s=!1}else f=ph(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?(Ur(l),l):(Ur(l),null);if((l.flags&128)!==0)throw Error(r(558))}return _n(l),null;case 13:if(x=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(b=fa(l),x!==null&&x.dehydrated!==null){if(s===null){if(!b)throw Error(r(318));if(b=l.memoizedState,b=b!==null?b.dehydrated:null,!b)throw Error(r(317));b[He]=l}else _o(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;_n(l),b=!1}else b=ph(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=b),b=!0;if(!b)return l.flags&256?(Ur(l),l):(Ur(l),null)}return Ur(l),(l.flags&128)!==0?(l.lanes=f,l):(f=x!==null,s=s!==null&&s.memoizedState!==null,f&&(x=l.child,b=null,x.alternate!==null&&x.alternate.memoizedState!==null&&x.alternate.memoizedState.cachePool!==null&&(b=x.alternate.memoizedState.cachePool.pool),j=null,x.memoizedState!==null&&x.memoizedState.cachePool!==null&&(j=x.memoizedState.cachePool.pool),j!==b&&(x.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),ud(l,l.updateQueue),_n(l),null);case 4:return de(),s===null&&Ep(l.stateNode.containerInfo),_n(l),null;case 10:return is(l.type),_n(l),null;case 19:if(J(Fn),x=l.memoizedState,x===null)return _n(l),null;if(b=(l.flags&128)!==0,j=x.rendering,j===null)if(b)Zl(x,!1);else{if(zn!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(j=Zu(s),j!==null){for(l.flags|=128,Zl(x,!1),s=j.updateQueue,l.updateQueue=s,ud(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)ab(f,s),f=f.sibling;return P(Fn,Fn.current&1|2),Pt&&ns(l,x.treeForkCount),l.child}s=s.sibling}x.tail!==null&&Qe()>pd&&(l.flags|=128,b=!0,Zl(x,!1),l.lanes=4194304)}else{if(!b)if(s=Zu(j),s!==null){if(l.flags|=128,b=!0,s=s.updateQueue,l.updateQueue=s,ud(l,s),Zl(x,!0),x.tail===null&&x.tailMode==="hidden"&&!j.alternate&&!Pt)return _n(l),null}else 2*Qe()-x.renderingStartTime>pd&&f!==536870912&&(l.flags|=128,b=!0,Zl(x,!1),l.lanes=4194304);x.isBackwards?(j.sibling=l.child,l.child=j):(s=x.last,s!==null?s.sibling=j:l.child=j,x.last=j)}return x.tail!==null?(s=x.tail,x.rendering=s,x.tail=s.sibling,x.renderingStartTime=Qe(),s.sibling=null,f=Fn.current,P(Fn,b?f&1|2:f&1),Pt&&ns(l,x.treeForkCount),s):(_n(l),null);case 22:case 23:return Ur(l),Nh(),x=l.memoizedState!==null,s!==null?s.memoizedState!==null!==x&&(l.flags|=8192):x&&(l.flags|=8192),x?(f&536870912)!==0&&(l.flags&128)===0&&(_n(l),l.subtreeFlags&6&&(l.flags|=8192)):_n(l),f=l.updateQueue,f!==null&&ud(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),x=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(x=l.memoizedState.cachePool.pool),x!==f&&(l.flags|=2048),s!==null&&J(wo),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),is(Gn),_n(l),null;case 25:return null;case 30:return null}throw Error(r(156,l.tag))}function AA(s,l){switch(mh(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return is(Gn),de(),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return je(l),null;case 31:if(l.memoizedState!==null){if(Ur(l),l.alternate===null)throw Error(r(340));_o()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if(Ur(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(r(340));_o()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return J(Fn),null;case 4:return de(),null;case 10:return is(l.type),null;case 22:case 23:return Ur(l),Nh(),s!==null&&J(wo),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return is(Gn),null;case 25:return null;default:return null}}function D1(s,l){switch(mh(l),l.tag){case 3:is(Gn),de();break;case 26:case 27:case 5:je(l);break;case 4:de();break;case 31:l.memoizedState!==null&&Ur(l);break;case 13:Ur(l);break;case 19:J(Fn);break;case 10:is(l.type);break;case 22:case 23:Ur(l),Nh(),s!==null&&J(wo);break;case 24:is(Gn)}}function Ql(s,l){try{var f=l.updateQueue,x=f!==null?f.lastEffect:null;if(x!==null){var b=x.next;f=b;do{if((f.tag&s)===s){x=void 0;var j=f.create,F=f.inst;x=j(),F.destroy=x}f=f.next}while(f!==b)}}catch(K){ln(l,l.return,K)}}function Fs(s,l,f){try{var x=l.updateQueue,b=x!==null?x.lastEffect:null;if(b!==null){var j=b.next;x=j;do{if((x.tag&s)===s){var F=x.inst,K=F.destroy;if(K!==void 0){F.destroy=void 0,b=l;var ie=f,pe=K;try{pe()}catch(_e){ln(b,ie,_e)}}}x=x.next}while(x!==j)}}catch(_e){ln(l,l.return,_e)}}function O1(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{Cb(l,f)}catch(x){ln(s,s.return,x)}}}function L1(s,l,f){f.props=Io(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(x){ln(s,l,x)}}function Jl(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var x=s.stateNode;break;case 30:x=s.stateNode;break;default:x=s.stateNode}typeof f=="function"?s.refCleanup=f(x):f.current=x}}catch(b){ln(s,l,b)}}function Pi(s,l){var f=s.ref,x=s.refCleanup;if(f!==null)if(typeof x=="function")try{x()}catch(b){ln(s,l,b)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f=="function")try{f(null)}catch(b){ln(s,l,b)}else f.current=null}function z1(s){var l=s.type,f=s.memoizedProps,x=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&x.focus();break e;case"img":f.src?x.src=f.src:f.srcSet&&(x.srcset=f.srcSet)}}catch(b){ln(s,s.return,b)}}function op(s,l,f){try{var x=s.stateNode;e3(x,s.type,f,l),x[Tt]=l}catch(b){ln(s,s.return,b)}}function P1(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&Xs(s.type)||s.tag===4}function ap(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||P1(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&&Xs(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 lp(s,l,f){var x=s.tag;if(x===5||x===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=ii));else if(x!==4&&(x===27&&Xs(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(lp(s,l,f),s=s.sibling;s!==null;)lp(s,l,f),s=s.sibling}function dd(s,l,f){var x=s.tag;if(x===5||x===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(x!==4&&(x===27&&Xs(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 B1(s){var l=s.stateNode,f=s.memoizedProps;try{for(var x=s.type,b=l.attributes;b.length;)l.removeAttributeNode(b[0]);fr(l,x,f),l[He]=s,l[Tt]=f}catch(j){ln(s,s.return,j)}}var cs=!1,Yn=!1,cp=!1,$1=typeof WeakSet=="function"?WeakSet:Set,rr=null;function MA(s,l){if(s=s.containerInfo,Tp=Ad,s=Qv(s),nh(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var x=f.getSelection&&f.getSelection();if(x&&x.rangeCount!==0){f=x.anchorNode;var b=x.anchorOffset,j=x.focusNode;x=x.focusOffset;try{f.nodeType,j.nodeType}catch{f=null;break e}var F=0,K=-1,ie=-1,pe=0,_e=0,Ie=s,xe=null;t:for(;;){for(var ye;Ie!==f||b!==0&&Ie.nodeType!==3||(K=F+b),Ie!==j||x!==0&&Ie.nodeType!==3||(ie=F+x),Ie.nodeType===3&&(F+=Ie.nodeValue.length),(ye=Ie.firstChild)!==null;)xe=Ie,Ie=ye;for(;;){if(Ie===s)break t;if(xe===f&&++pe===b&&(K=F),xe===j&&++_e===x&&(ie=F),(ye=Ie.nextSibling)!==null)break;Ie=xe,xe=Ie.parentNode}Ie=ye}f=K===-1||ie===-1?null:{start:K,end:ie}}else f=null}f=f||{start:0,end:0}}else f=null;for(Rp={focusedElem:s,selectionRange:f},Ad=!1,rr=l;rr!==null;)if(l=rr,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,rr=s;else for(;rr!==null;){switch(l=rr,j=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"))),fr(j,x,f),j[He]=s,zt(j),x=j;break e;case"link":var F=q_("link","href",b).get(x+(f.href||""));if(F){for(var K=0;Kfn&&(F=fn,fn=dt,dt=F);var ce=Kv(K,dt),ae=Kv(K,fn);if(ce&&ae&&(ye.rangeCount!==1||ye.anchorNode!==ce.node||ye.anchorOffset!==ce.offset||ye.focusNode!==ae.node||ye.focusOffset!==ae.offset)){var he=Ie.createRange();he.setStart(ce.node,ce.offset),ye.removeAllRanges(),dt>fn?(ye.addRange(he),ye.extend(ae.node,ae.offset)):(he.setEnd(ae.node,ae.offset),ye.addRange(he))}}}}for(Ie=[],ye=K;ye=ye.parentNode;)ye.nodeType===1&&Ie.push({element:ye,left:ye.scrollLeft,top:ye.scrollTop});for(typeof K.focus=="function"&&K.focus(),K=0;Kf?32:f,H.T=null,f=gp,gp=null;var j=qs,F=hs;if(er=0,ja=qs=null,hs=0,(en&6)!==0)throw Error(r(331));var K=en;if(en|=4,Z1(j.current),Y1(j,j.current,F,f),en=K,sc(0,!1),Te&&typeof Te.onPostCommitFiberRoot=="function")try{Te.onPostCommitFiberRoot(ke,j)}catch{}return!0}finally{V.p=b,H.T=x,p_(s,l)}}function x_(s,l,f){l=li(f,l),l=Xh(s.stateNode,l,2),s=Bs(s,l,2),s!==null&&(sn(s,2),Bi(s))}function ln(s,l,f){if(s.tag===3)x_(s,s,f);else for(;l!==null;){if(l.tag===3){x_(l,s,f);break}else if(l.tag===1){var x=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(Gs===null||!Gs.has(x))){s=li(f,s),f=y1(2),x=Bs(l,f,2),x!==null&&(v1(f,x,l,s),sn(x,2),Bi(x));break}}l=l.return}}function bp(s,l,f){var x=s.pingCache;if(x===null){x=s.pingCache=new LA;var b=new Set;x.set(l,b)}else b=x.get(l),b===void 0&&(b=new Set,x.set(l,b));b.has(f)||(fp=!0,b.add(f),s=HA.bind(null,s,l,f),l.then(s,s))}function HA(s,l,f){var x=s.pingCache;x!==null&&x.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,pn===s&&(Ot&f)===f&&(zn===4||zn===3&&(Ot&62914560)===Ot&&300>Qe()-hd?(en&2)===0&&Ea(s,0):mp|=f,Ca===Ot&&(Ca=0)),Bi(s)}function y_(s,l){l===0&&(l=tt()),s=vo(s,l),s!==null&&(sn(s,l),Bi(s))}function FA(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),y_(s,f)}function VA(s,l){var f=0;switch(s.tag){case 31:case 13:var x=s.stateNode,b=s.memoizedState;b!==null&&(f=b.retryLane);break;case 19:x=s.stateNode;break;case 22:x=s.stateNode._retryCache;break;default:throw Error(r(314))}x!==null&&x.delete(l),y_(s,f)}function UA(s,l){return vt(s,l)}var _d=null,Ia=null,_p=!1,kd=!1,kp=!1,Ys=0;function Bi(s){s!==Ia&&s.next===null&&(Ia===null?_d=Ia=s:Ia=Ia.next=s),kd=!0,_p||(_p=!0,qA())}function sc(s,l){if(!kp&&kd){kp=!0;do for(var f=!1,x=_d;x!==null;){if(s!==0){var b=x.pendingLanes;if(b===0)var j=0;else{var F=x.suspendedLanes,K=x.pingedLanes;j=(1<<31-Ve(42|s)+1)-1,j&=b&~(F&~K),j=j&201326741?j&201326741|1:j?j|2:0}j!==0&&(f=!0,k_(x,j))}else j=Ot,j=Zt(x,x===pn?j:0,x.cancelPendingCommit!==null||x.timeoutHandle!==-1),(j&3)===0||Et(x,j)||(f=!0,k_(x,j));x=x.next}while(f);kp=!1}}function GA(){v_()}function v_(){kd=_p=!1;var s=0;Ys!==0&&n3()&&(s=Ys);for(var l=Qe(),f=null,x=_d;x!==null;){var b=x.next,j=b_(x,l);j===0?(x.next=null,f===null?_d=b:f.next=b,b===null&&(Ia=f)):(f=x,(s!==0||(j&3)!==0)&&(kd=!0)),x=b}er!==0&&er!==5||sc(s),Ys!==0&&(Ys=0)}function b_(s,l){for(var f=s.suspendedLanes,x=s.pingedLanes,b=s.expirationTimes,j=s.pendingLanes&-62914561;0K)break;var _e=ie.transferSize,Ie=ie.initiatorType;_e&&T_(Ie)&&(ie=ie.responseEnd,F+=_e*(ie"u"?null:document;function F_(s,l,f){var x=Ta;if(x&&typeof l=="string"&&l){var b=Cn(l);b='link[rel="'+s+'"][href="'+b+'"]',typeof f=="string"&&(b+='[crossorigin="'+f+'"]'),H_.has(b)||(H_.add(b),s={rel:s,crossOrigin:f,href:l},x.querySelector(b)===null&&(l=x.createElement("link"),fr(l,"link",s),zt(l),x.head.appendChild(l)))}}function d3(s){ps.D(s),F_("dns-prefetch",s,null)}function f3(s,l){ps.C(s,l),F_("preconnect",s,l)}function m3(s,l,f){ps.L(s,l,f);var x=Ta;if(x&&s&&l){var b='link[rel="preload"][as="'+Cn(l)+'"]';l==="image"&&f&&f.imageSrcSet?(b+='[imagesrcset="'+Cn(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(b+='[imagesizes="'+Cn(f.imageSizes)+'"]')):b+='[href="'+Cn(s)+'"]';var j=b;switch(l){case"style":j=Ra(s);break;case"script":j=Aa(s)}hi.has(j)||(s=h({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),hi.set(j,s),x.querySelector(b)!==null||l==="style"&&x.querySelector(cc(j))||l==="script"&&x.querySelector(uc(j))||(l=x.createElement("link"),fr(l,"link",s),zt(l),x.head.appendChild(l)))}}function h3(s,l){ps.m(s,l);var f=Ta;if(f&&s){var x=l&&typeof l.as=="string"?l.as:"script",b='link[rel="modulepreload"][as="'+Cn(x)+'"][href="'+Cn(s)+'"]',j=b;switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":j=Aa(s)}if(!hi.has(j)&&(s=h({rel:"modulepreload",href:s},l),hi.set(j,s),f.querySelector(b)===null)){switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(uc(j)))return}x=f.createElement("link"),fr(x,"link",s),zt(x),f.head.appendChild(x)}}}function p3(s,l,f){ps.S(s,l,f);var x=Ta;if(x&&s){var b=mn(x).hoistableStyles,j=Ra(s);l=l||"default";var F=b.get(j);if(!F){var K={loading:0,preload:null};if(F=x.querySelector(cc(j)))K.loading=5;else{s=h({rel:"stylesheet",href:s,"data-precedence":l},f),(f=hi.get(j))&&Pp(s,f);var ie=F=x.createElement("link");zt(ie),fr(ie,"link",s),ie._p=new Promise(function(pe,_e){ie.onload=pe,ie.onerror=_e}),ie.addEventListener("load",function(){K.loading|=1}),ie.addEventListener("error",function(){K.loading|=2}),K.loading|=4,Ed(F,l,x)}F={type:"stylesheet",instance:F,count:1,state:K},b.set(j,F)}}}function g3(s,l){ps.X(s,l);var f=Ta;if(f&&s){var x=mn(f).hoistableScripts,b=Aa(s),j=x.get(b);j||(j=f.querySelector(uc(b)),j||(s=h({src:s,async:!0},l),(l=hi.get(b))&&Bp(s,l),j=f.createElement("script"),zt(j),fr(j,"link",s),f.head.appendChild(j)),j={type:"script",instance:j,count:1,state:null},x.set(b,j))}}function x3(s,l){ps.M(s,l);var f=Ta;if(f&&s){var x=mn(f).hoistableScripts,b=Aa(s),j=x.get(b);j||(j=f.querySelector(uc(b)),j||(s=h({src:s,async:!0,type:"module"},l),(l=hi.get(b))&&Bp(s,l),j=f.createElement("script"),zt(j),fr(j,"link",s),f.head.appendChild(j)),j={type:"script",instance:j,count:1,state:null},x.set(b,j))}}function V_(s,l,f,x){var b=(b=te.current)?jd(b):null;if(!b)throw Error(r(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=Ra(f.href),f=mn(b).hoistableStyles,x=f.get(l),x||(x={type:"style",instance:null,count:0,state:null},f.set(l,x)),x):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=Ra(f.href);var j=mn(b).hoistableStyles,F=j.get(s);if(F||(b=b.ownerDocument||b,F={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},j.set(s,F),(j=b.querySelector(cc(s)))&&!j._p&&(F.instance=j,F.state.loading=5),hi.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},hi.set(s,f),j||y3(b,s,f,F.state))),l&&x===null)throw Error(r(528,""));return F}if(l&&x!==null)throw Error(r(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Aa(f),f=mn(b).hoistableScripts,x=f.get(l),x||(x={type:"script",instance:null,count:0,state:null},f.set(l,x)),x):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,s))}}function Ra(s){return'href="'+Cn(s)+'"'}function cc(s){return'link[rel="stylesheet"]['+s+"]"}function U_(s){return h({},s,{"data-precedence":s.precedence,precedence:null})}function y3(s,l,f,x){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?x.loading=1:(l=s.createElement("link"),x.preload=l,l.addEventListener("load",function(){return x.loading|=1}),l.addEventListener("error",function(){return x.loading|=2}),fr(l,"link",f),zt(l),s.head.appendChild(l))}function Aa(s){return'[src="'+Cn(s)+'"]'}function uc(s){return"script[async]"+s}function G_(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var x=s.querySelector('style[data-href~="'+Cn(f.href)+'"]');if(x)return l.instance=x,zt(x),x;var b=h({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return x=(s.ownerDocument||s).createElement("style"),zt(x),fr(x,"style",b),Ed(x,f.precedence,s),l.instance=x;case"stylesheet":b=Ra(f.href);var j=s.querySelector(cc(b));if(j)return l.state.loading|=4,l.instance=j,zt(j),j;x=U_(f),(b=hi.get(b))&&Pp(x,b),j=(s.ownerDocument||s).createElement("link"),zt(j);var F=j;return F._p=new Promise(function(K,ie){F.onload=K,F.onerror=ie}),fr(j,"link",x),l.state.loading|=4,Ed(j,f.precedence,s),l.instance=j;case"script":return j=Aa(f.src),(b=s.querySelector(uc(j)))?(l.instance=b,zt(b),b):(x=f,(b=hi.get(j))&&(x=h({},f),Bp(x,b)),s=s.ownerDocument||s,b=s.createElement("script"),zt(b),fr(b,"link",x),s.head.appendChild(b),l.instance=b);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(x=l.instance,l.state.loading|=4,Ed(x,f.precedence,s));return l.instance}function Ed(s,l,f){for(var x=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),b=x.length?x[x.length-1]:null,j=b,F=0;F title"):null)}function v3(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 Y_(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function b3(s,l,f,x){if(f.type==="stylesheet"&&(typeof x.media!="string"||matchMedia(x.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var b=Ra(x.href),j=l.querySelector(cc(b));if(j){l=j._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Id.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=j,zt(j);return}j=l.ownerDocument||l,x=U_(x),(b=hi.get(b))&&Pp(x,b),j=j.createElement("link"),zt(j);var F=j;F._p=new Promise(function(K,ie){F.onload=K,F.onerror=ie}),fr(j,"link",x),f.instance=j}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Id.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var $p=0;function _3(s,l){return s.stylesheets&&s.count===0&&Rd(s,s.stylesheets),0$p?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(x),clearTimeout(b)}}:null}function Id(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Rd(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Td=null;function Rd(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Td=new Map,l.forEach(k3,s),Td=null,Id.call(s))}function k3(s,l){if(!(l.state.loading&4)){var f=Td.get(s);if(f)var x=f.get(null);else{f=new Map,Td.set(s,f);for(var b=s.querySelectorAll("link[data-precedence],style[data-precedence]"),j=0;j"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Xp.exports=P3(),Xp.exports}var $3=B3();const H3=2e3,F3=3e4,V3=20,U3=100,G3=3e4,q3=1e4,W3=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","session_update_config","session_delete","session_detail","session_stop","session_resume","session_complete","session_update_title","secretary_send","project_index","recovery_action","comms_state","comms_read_message"]);class Y3{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}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.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws?.close(),this.ws=null}send(t){if(!this.ensureProjectScope(t))return;const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN){this.pendingQueue.length{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},q3))},G3)}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>=V3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(H3*Math.pow(2,this.reconnectAttempt),F3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var X3=R3();const Xr=Zo(X3),R=32,Pn=20,Zr=25,x0=2,yk=3,K3=Pn*yk+x0*(yk-1),Z3=Zr,Jp=K3,xc=Z3,zc=R*8,Wa=R*4,Ka=R*20,Ej=1.8,Q3=Ej,J3=Ej,eM=30,tM=8,nM=-2,rM=.22,iM=5,sM=23;function oM(){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 r=n.indexOf("?");if(r>=0&&(t=e(n.slice(r+1)),t))return t;const i=n.replace(/^#/,"");return i.includes("=")&&(t=e(i),t)?t:null}function Pc(e=new Date){if(typeof window<"u")try{const n=oM();if(n==="day")return!0;if(n==="night")return!1;const r=window.localStorage?.getItem("opc_outdoor_override");if(r==="day")return!0;if(r==="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>=iM&&t<=sM}const vk=11064556,bk=3228986,aM=200,lM=100,cM=60,mf=2,hf=20,Nj=3,Ij=6,Da=2.5,uM=8,dM=15,_k=5,kk=10,fM=5,Sk=3,wk=2;function mM(e,t,n){const r=t||e.clientWidth||window.innerWidth-380,i=n||e.clientHeight||window.innerHeight-48,o=Pc()?"#a8d4ec":"#31453a";return{type:Xr.CANVAS,parent:e,width:r,height:i,pixelArt:!0,backgroundColor:o,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Xr.Scale.RESIZE,autoCenter:Xr.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const hM=16,pM=32,Ck=6;class gM extends Xr.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 r=0;r0)return t}}catch{}return Rj()}function fm(e){localStorage.setItem(Tj,JSON.stringify(e))}function xM(e,t){const n=Bn(),r=n.find(i=>i.id===e);r&&(r.name=t,fm(n))}function eg(e,t){const n=Bn();for(const i of n)i.assignedAgents=i.assignedAgents.filter(o=>o!==t);const r=n.find(i=>i.id===e);r&&r.assignedAgents.push(t),fm(n)}function yM(e){const t=Bn();for(const n of t)n.assignedAgents=n.assignedAgents.filter(r=>r!==e);fm(t)}function vM(e){return Bn().find(t=>t.assignedAgents.includes(e))}function bM(e,t,n){const r=Bn(),i=r.find(o=>o.id===e);i&&(i.mapStr=t,i.seats=n,fm(r))}function Aj(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+Pn:Pn,n=[];for(let r=0;rt.map(n=>n===0?".":"#").join(""))}function br(e,t,n,r,i=t+r){return{x:Math.round(e*R),y:Math.round(t*R),w:Math.round(n*R),h:Math.round(r*R),depthY:Math.round(i*R)}}const _M=[br(8,4,4.3,3.35,7.15),br(2.3,8.65,5.35,1.95,10.55),br(11.1,8.55,3.1,1.7,10.45),br(14.15,8.55,4.95,2,10.95),br(2.1,11.45,3.05,1.8,12.95),br(5.25,11.45,3.05,1.8,12.95),br(8.45,11.45,3.05,1.8,12.95),br(2.1,14.55,3.05,1.85,16.1),br(5.25,14.55,3.05,1.85,16.1),br(8.45,14.55,3.05,1.85,16.1),br(14,12.15,4.85,3,15.3),br(1,19.55,3.05,1.15,20.7),br(4.45,20.45,3.35,1.35,21.8),br(14.1,20.5,3.15,1.85,22.3),br(8.05,23.1,4.2,1,24.1),br(17,23.1,2.1,1,24.1)];class Ef{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 r=n.offsetCol*R;for(const i of _M){const o=t.add.image(r,0,"office-bg");o.setOrigin(0,0),o.setCrop(i.x,i.y,i.w,i.h),o.setDepth(i.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,r,i,o,a="#f5efe3",u="10px"){const d=t.add.text(n,r,i,{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,r,i,o=1){const a=t.add.image(n,r,"office-tileset-32",i);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const r=n+R*10.1,i=R*4.1,o=r+i+R*.15,a=o+R*1.1;return{gateCenterX:t/2,roadY:r,roadHeight:i,waterTopY:o,dockY:a,bottomY:n+Ka}}paintStylizedParkingCar(t,n,r,i,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=(y,v,w,S,_,k=1)=>{t.fillStyle(_,k);const C=i?-y-w:y;t.fillRect(Math.round(n+C),Math.round(r+v),w,S)};t.fillStyle(988175,.28),t.fillEllipse(n,r+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,p=-30,h=7,g=9;for(const y of[m,p])d(-22,y,h,g,u.tire),d(15,y,h,g,u.tire),d(-22,y,1,g,u.tireOuter),d(15+h-1,y,1,g,u.tireOuter);for(const y of[m,p])d(-18,y+1,4,g-2,u.bodyDark),d(14,y+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,r,i,o,a){const u=t.add.graphics();u.setDepth(-320);const d=-zc,m=-Wa,p=n+zc*2,h=r+Wa+Ka,g=d+p,y=r+Ka,v=m+R*6.2,w=r+R*.35,S=r+R*4.25,_=r+R*5.9,{gateCenterX:k,roadY:C,roadHeight:N,waterTopY:O,dockY:I}=this.getOutdoorMetrics(n,r),D=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(D.skyTop,1),u.fillRect(d,m,p,R*8.2),u.fillStyle(D.skyBand,1),u.fillRect(d,m+R*6.15,p,R*2.05),o){u.fillStyle(16775400,.45);for(let me=0;me<5;me++){const Oe=d+p*(.12+me*.19)+me*17%40,rt=m+R*(1.4+me%3*.35);u.fillEllipse(Oe,rt,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(D.towerFar,1);for(let me=d-R;meR*1.9&&u.fillRect(me+Je-8,Me+4,3,3));u.fillStyle(D.facadeColor,D.facadeAlpha),u.fillRect(me+Je*.5,be+R*.4,2,fe-R*.8),u.fillStyle(D.towerNear,1)}u.fillStyle(D.bridgeColor,D.bridgeAlpha);for(let me=d+R*6;me(me.offsetCol+2.95)*R),A=R*.9,M=n-R*1.8,$=6,W=R*1.7,B=r+R*.08,U=R*2.05,H=B+U,V=R*9.4,Y=k-V/2,Z=H-2,q=R*3.1,G=Z+q,J=R*2.3;u.fillStyle(12428667,1),u.fillRect(k-R*4.25,G,R*8.5,C-G),u.fillStyle(14141089,.95);for(let me=G+R*.35;meX&&u.fillRect(X,B,Oe-X,$),u.fillStyle(8415310,1),u.fillRect(Oe-4,B,4,R*.62),u.fillRect(Oe+W,B,4,R*.62),u.fillStyle(11045217,1),u.fillRect(Oe,B,W,4),u.fillStyle(15920612,1),X=Oe+W}Xk-R*5.4&&me=0&&this.decor.splice(me,1),this.outdoorParking.destroy(),this.outdoorParking=null}const Ce=t.add.graphics();Ce.setDepth(-300);const Be=4080460,Ge=15262424,Ye=[{x:d+R*2.2,count:5},{x:g-R*11.4,count:5}];Ce.lineStyle(0,0,0),Ce.fillStyle(Be,1);for(const me of Ye)Ce.fillRect(me.x,_,R*12.8,R*3.8);Ce.lineStyle(1,Ge,.95);for(const me of Ye)for(let Oe=0;Oek-R;for(let rt=0;rt=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,i,o,r,n,{skipLabels:!0})}buildBoundaryDecor(t,n,r){const i=t.add.graphics();i.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+Pn)*R,u=Zr*R,d=Pn*R,m=R*2,p=R*20;this.buildOutdoorBackdrop(t,a,u,n,r),i.fillStyle(2498844,1),i.fillRect(-R,0,a+R*2,u),i.fillStyle(3221794,1),i.fillRect(0,0,a,u),i.fillStyle(6048831,1),i.fillRect(0,0,a,8),i.fillRect(0,u-8,a,8),i.fillRect(0,0,8,u),i.fillRect(a-8,0,8,u),i.fillStyle(2367001,1),i.fillRect(8,8,a-16,3),i.fillRect(8,u-11,a-16,3),i.fillStyle(1709844,1),i.fillRect(0,0,a,m),i.fillStyle(4931637,1),i.fillRect(0,m-5,a,5),i.fillStyle(4208173,1),i.fillRect(0,m,a,u-m),i.fillStyle(4865588,1),i.fillRect(0,R*8,a,R*4),i.fillStyle(3813416,1),i.fillRect(0,p,a,u-p),i.lineStyle(1,5917503,.32);for(let h=0;h<=a;h+=R)i.beginPath(),i.moveTo(h,m),i.lineTo(h,u),i.strokePath();for(let h=m;h<=u;h+=R)i.beginPath(),i.moveTo(0,h),i.lineTo(a,h),i.strokePath();for(let h=R*3;hM.id===h.id);i.fillStyle(5785659,1),i.fillRect(g-10,0,d+20,u),i.fillStyle(2301208,1),i.fillRect(g-4,0,d+8,u),i.lineStyle(2,8087640,.9),i.strokeRect(g-10,0,d+20,u),i.lineStyle(2,10982014,.34),i.strokeRect(g-4,0,d+8,u),i.fillStyle(1578259,1),i.fillRect(g-4,0,d+8,R),i.fillStyle(7166796,1),i.fillRect(g+R*5.5,R*.55,R*9,5),i.fillStyle(9074018,1),i.fillRect(g-10,0,8,8),i.fillRect(g+d+2,0,8,8),i.fillRect(g-10,u-8,8,8),i.fillRect(g+d+2,u-8,8,8),i.fillStyle(3221536,1),i.fillRect(g-4,p,d+8,6);const v=g+R*.7,w=g+R*14.65,S=R*1.05,_=R*4.45,k=R*6.4,C=S+k+R*.35,N=R*.55,O=y%2===0?6115909:5069382,I=y%2===0?4609113:5984070,D=y%2===0?5205640:7297908,T=y%2===0?5666919:9073231,L=y%2===0?7045045:10119803,A=y%2===0?6196089:10979160;i.fillStyle(2827295,1),i.fillRect(g+R*.58,C,d-R*1.16,R*.44),i.fillStyle(7692879,1),i.fillRect(g+R*.92,C+2,d-R*1.84,2),i.fillRect(g+R*4.3,C-R*.2,4,R*.84),i.fillRect(g+d-R*4.3,C-R*.2,4,R*.84),o.fillStyle(1906966,1),o.fillRect(v,S,_,k),o.fillRect(w,S,_,k),o.fillStyle(3090722,1),o.fillRect(v+4,S+4,_-8,k-8),o.fillRect(w+4,S+4,_-8,k-8),o.fillStyle(O,1),o.fillRect(v+4,S+4,_-8,R*.7),o.fillStyle(I,1),o.fillRect(w+4,S+4,_-8,R*.7),o.fillStyle(D,.95),o.fillRect(v+4,S+R*1.15,_-8,k-R*1.45),o.fillStyle(T,.95),o.fillRect(w+4,S+R*1.15,_-8,k-R*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,S+10,_-20,2),o.fillRect(w+10,S+10,_-20,2),o.lineStyle(1,6181444,.28);for(let M=v+12;M","#2d241c","#e8d5b6","8px"),this.decor.push(i,o)}buildMap(t,n=Pc()){this.clearSceneDecor();const r=Bn(),i=((r[r.length-1]?.offsetCol??0)+Pn)*R,o=Zr*R,a=this.getOutdoorMetrics(i,o);this.buildBoundaryDecor(t,r,n);for(const m of r){const p=(m.offsetCol+Pn/2)*R,h=t.add.image(m.offsetCol*R,0,"office-bg");h.setOrigin(0,0),h.setDepth(-100),this.bgSprites.push(h),this.addForegroundOccluders(t,m);const g=t.add.text(p,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=Mj(r),d=Ef.buildWallBodies(t,u);return console.log("[OfficeMapBuilder] Composite map ready —",r.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 r=this.nameLabels.find(i=>i.getData("officeId")===t);r&&r.setText(n)}static buildWallBodies(t,n){const r=n.length,i=r>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const p=d-u,h=t.add.rectangle(u*R+p*R/2,a*R+R/2,p*R,R);h.setVisible(!1),o.add(h),u=-1}}}return o}static buildWallBodiesForRegion(t,n,r,i){const o=n.length,a=o>0?n[0].length:0;for(let u=0;u=0){const h=m-d,g=t.add.rectangle((i+d)*R+h*R/2,u*R+R/2,h*R,R);g.setVisible(!1),r.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"},Oa={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function vy(e,t){return e+Math.random()*(t-e)}function kM(e,t){return Math.floor(vy(e,t+1))}class SM extends Xr.GameObjects.Container{constructor(t,n,r,i,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=Oa.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=r,this.palette=i%6,this.wanderTimer=vy(.5,2.5),this.wanderLimit=kM(Nj,Ij);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,nM,eM,tM,1382432,rM),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(Q3,J3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const p=Math.min(12,R-4),h=Math.min(6,R/2);this.body.setSize(p,h),this.body.setOffset(-p/2,-h),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,r=n===Oa.LEFT;this.sprite.setFlipX(r);const i=r?"right":n;switch(this.agentState){case ot.WALK:this.sprite.play(`${t}_walk_${i}`,!0);break;case ot.CELEBRATE:this.sprite.play(`${t}_celebrate_${i}`,!0);break;case ot.TYPE:case ot.PRESENT:case ot.PRACTICE:this.sprite.play(`${t}_type_${i}`,!0);break;case ot.THINK:case ot.REFLECT:this.sprite.play(`${t}_read_${i}`,!0);break;case ot.COFFEE:case ot.CHAT:this.sprite.play(`${t}_coffee_${i}`,!0);break;case ot.SLEEP:case ot.IDLE:default:this.sprite.play(`${t}_idle_${i}`,!0);break}}async walkTo(t,n,r){if(!this.pathfinder||!this.sprite?.anims)return!1;const i=this.getTilePos(),o=await this.pathfinder.findPath(i,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=r??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 aM;case"normal":return lM;default:return cM}}showBubble(t,n=fM){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 r=this.scene.add.graphics(),i=n.width+8,o=n.height+4;r.fillStyle(16777215,.95),r.fillRoundedRect(-i/2,-o,i,o,4),r.lineStyle(1,6710886,.5),r.strokeRoundedRect(-i/2,-o,i,o,4),t.add([r,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=vy(mf,hf)),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],r=n.x*R+R/2,i=n.y*R+R/2,o=r-this.x,a=i-this.y,u=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(u<=m+.5){this.x=r,this.y=i,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?Oa.RIGHT:Oa.LEFT):this.setDirection(a>0?Oa.DOWN:Oa.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,Ek;function wM(){return Ek||(Ek=1,ng=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),ng}var rg,Nk;function CM(){return Nk||(Nk=1,rg=function(e,t,n,r,i){this.parent=e,this.x=t,this.y=n,this.costSoFar=r,this.simpleDistanceToTarget=i,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),rg}var pf={exports:{}},jM=pf.exports,Ik;function EM(){return Ik||(Ik=1,(function(e,t){(function(){var n,r,i,o,a,u,d,m,p,h,g,y,v,w,S;i=Math.floor,h=Math.min,r=function(_,k){return _k?1:0},p=function(_,k,C,N,O){var I;if(C==null&&(C=0),O==null&&(O=r),C<0)throw new Error("lo must be non-negative");for(N==null&&(N=_.length);CA;0<=A?L++:L--)T.push(L);return T}).apply(this).reverse(),D=[],N=0,O=I.length;NM;0<=M?++T:--T)$.push(a(_,C));return $},w=function(_,k,C,N){var O,I,D;for(N==null&&(N=r),O=_[C];C>k;){if(D=C-1>>1,I=_[D],N(O,I)<0){_[C]=I,C=D;continue}break}return _[C]=O},S=function(_,k,C){var N,O,I,D,T;for(C==null&&(C=r),O=_.length,T=k,I=_[k],N=2*k+1;Nh[0].length-1||W>h.length-1||B>h[0].length-1||U>h.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if($===B&&W===U){V([]);return}for(var Y=h[U][B],Z=!1,q=0;q"u"){k.shift();continue}if(W.openList.size()===0){W.callback(null),delete _[$],k.shift();continue}var B=W.openList.pop();if(W.endX===B.x&&W.endY===B.y){var U=[];U.push({x:B.x,y:B.y});for(var H=B.parent;H!=null;)U.push({x:H.x,y:H.y}),H=H.parent;U.reverse();var V=U;W.callback(V),delete _[$],k.shift();continue}B.list=i,B.y>0&&I(W,B,0,-1,u*L(B.x,B.y-1)),B.x0&&I(W,B,-1,0,u*L(B.x-1,B.y)),O&&(B.x>0&&B.y>0&&(w||D(h,N,B.x,B.y-1,B)&&D(h,N,B.x-1,B.y,B))&&I(W,B,-1,-1,d*L(B.x-1,B.y-1)),B.x0&&(w||D(h,N,B.x,B.y-1,B)&&D(h,N,B.x+1,B.y,B))&&I(W,B,1,-1,d*L(B.x+1,B.y-1)),B.x>0&&B.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new TM.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(r=>{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){r([]);return}if(this.grid[n.y]?.[n.x]===1){const i=this.findNearestWalkable(n.x,n.y);if(!i){r([]);return}n=i}if(this.grid[t.y]?.[t.x]===1){const i=this.findNearestWalkable(t.x,t.y);if(!i){r([]);return}t=i}this.easystar.findPath(t.x,t.y,n.x,n.y,i=>{r(i??[])}),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=i&&e=o&&tAM(`${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 r={};for(const[i,o]of e.seats){const a=DM(i,o),u=`${e.id}-${a}`;if(!n[u])continue;r[u]=(r[u]??0)+1;const d=r[u],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",p=MM(i,o,a);n[u].seats.push(RM(`${e.id}-${m}-${d}`,i+t,o,p))}return n}function Oj(e){const t=e??Bn(),n={};for(const r of t)Object.assign(n,OM(r));return n}let uo=Oj();function LM(e){uo=Oj(e)}function Lj(e){const t=uo[`${e}-workspace`]?.seats??[],n=uo[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function Mk(){return Object.values(uo).flatMap(e=>e.seats)}function zM(e){const t=uo[e];if(!t)return null;const{x:n,y:r,w:i,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=Bn().find(g=>g.id===a);if(!d)return{x:n+1,y:r+1};const m=Aj(d.mapStr),p=d.offsetCol,h=[];for(let g=r;g=0&&v({x:n.tileX,y:n.tileY})):[]}function Oo(e,t){return e+Math.random()*(t-e)}function PM(e,t){return Math.floor(Oo(e,t+1))}function $i(e,t){return e.length>t?e.slice(0,t)+"...":e}function Ok(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 BM{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},r=t.agent_id||"openopc-main";if(r==="user")return;const i=r.startsWith("subagent-"),o=i?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=i?`Sub ${r.slice(-4)}`:void 0,u=this.scene.ensureAgent(r,a,i,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,r,o);break;case"subagent_done":this.onSubagentDone(u,r);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,r,n);break;case"delegation_done":this.onDelegationDone(u,n);break;case"agent_spawned":this.onAgentSpawned(u,r,n);break;case"agent_removed":this.onAgentRemoved(u,r);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,r,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(u,r,n);break;case"mycelium_spore":this.onMyceliumSpore(u,r,n);break;case"mycelium_decompose":this.onMyceliumDecompose(u,r,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(u,n);break;case"mycelium_germinate":this.onMyceliumGerminate(u,r,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(r,n);break;case"hyphal_weaken":this.onHyphalWeaken(r,n);break}}onToolStart(t,n){const r=typeof n.tool_name=="string"?n.tool_name:"tool",i=Ok(r);t.urgency="urgent",t.currentTool=r,t.isActive=!0,t.showBubble(`${i}...`),this.sendToSeat(t)}onToolDone(t,n){const r=typeof n.tool_name=="string"?n.tool_name:t.currentTool,i=Ok(r);t.currentTool=null,t.setAgentState(ot.CELEBRATE),t.stateTimer=Da,t.isActive=!1,t.showBubble(`${i} 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=Oo(uM,dM))}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=Da,t.showBubble("Insight!")}onSkillSynthesized(t,n){const r=$i(String(n.skill_name??"new"),20);t.setAgentState(ot.PRESENT),t.showBubble(`New Skill: ${r}`)}onSubagentSpawn(t,n,r){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 r=typeof n.content_preview=="string"?n.content_preview:"";r&&(t.taskSummary=r);const i=r?$i(r,30):"New task";t.showBubble(i),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const r=typeof n.content_preview=="string"?n.content_preview:"";r&&(t.taskSummary=r);const i=r?$i(r,30):"Reply sent";t.showBubble(`Reply: ${i}`)}onPracticeStart(t,n){t.urgency="normal";const r=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${$i(r,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=Da,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const r=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${r})`)}onTaskDelegated(t,n,r){t.urgency="normal",t.stateTimer=Oo(_k,kk);const i=typeof r.target=="string"?r.target:"?";t.setAgentState(ot.CHAT),t.showBubble(`Delegating to ${i}...`);const o=this.scene.getAgent(i);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const r=typeof n.target=="string"?n.target:"";if(t.setAgentState(ot.IDLE),t.showBubble("Delegation complete"),r){const i=this.scene.getAgent(r);i&&(i.parentAgentId=null)}}onAgentSpawned(t,n,r){const i=typeof r.role_name=="string"?r.role_name:n;t.displayName=i,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${i} 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=Oo(_k,kk),this.moveToZone(t,"meetingRoom",ot.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Da,t.setAgentState(ot.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const r=$i(String(n.skill_name??"skill"),20);t.setAgentState(ot.CELEBRATE),t.stateTimer=Da,t.showBubble(`Published: ${r}`)}onSkillAdopted(t,n){const r=$i(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${r}`)}onMyceliumTransport(t,n,r){const i=typeof r.source=="string"?r.source:n,o=typeof r.target=="string"?r.target:null,a=typeof r.domain=="string"?$i(r.domain,15):"?",u=this.scene.ensureAgent(i);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,r){const i=Array.isArray(r.corroborating_agents)?r.corroborating_agents:[],o=$i(String(r.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...i])),u=`${t.officeId}-meetingRoom`,d=uo[u]?.seats??[];for(let m=0;m{h.setDirection(y.facing),h.setAgentState(ot.CHAT)}),h.showBubble(p===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,r){const i=$i(String(r.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(ot.PRESENT),t.showBubble(`Breakthrough! ${i}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,r){const i=$i(String(r.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(ot.REFLECT),t.showBubble(`Learning: ${i}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const r=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${r}]...`,2)}onMyceliumGerminate(t,n,r){const i=typeof r.target_agent=="string"?r.target_agent:n,o=this.scene.ensureAgent(i);o.myceliumEffect=null,o.setAgentState(ot.CELEBRATE),o.stateTimer=Da,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=PM(Nj,Ij),n.wanderTimer=Oo(mf,hf))):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=Oo(mf,hf);continue}const r=this.scene.getWalkableTilesForOffice(n.officeId);if(r.length>0){n.urgency="relaxed";const i=r[Math.floor(Math.random()*r.length)];n.walkTo(i.x,i.y),n.wanderCount++}n.wanderTimer=Oo(mf,hf)}}}}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=Sk+Math.random()*wk)}).then(r=>{r||(t.setAgentState(ot.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=Sk+Math.random()*wk))})}moveToZone(t,n,r){const i=`${t.officeId}-${n}`,o=uo[i];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 p=m.getTilePos();u.add(`${p.x},${p.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const p=m.currentPath;if(p?.length){const h=p[p.length-1];u.add(`${h.x},${h.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),r?t.setAgentState(r):t.setAgentState(ot.IDLE)}),!0}const a=zM(i);return a?(t.walkTo(a.x,a.y,()=>{r?t.setAgentState(r):t.setAgentState(ot.IDLE)}),!0):!1}moveToDoorway(t){const n=Dk(t.officeId);if(n.length===0)return!1;const r=n[Math.floor(Math.random()*n.length)];return t.walkTo(r.x,r.y),!0}placeAtDoorway(t){const n=Dk(t.officeId);if(n.length>0){const r=n[Math.floor(Math.random()*n.length)];t.setPosition(r.x*R+R/2,r.y*R+R/2)}}}class $M extends Xr.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=Pc();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?vk:bk),this.mapBuilder=new Ef,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new Ak(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=Mk().map(d=>({...d})),this.behavior=new BM(this);const n=Jp*R,r=xc*R,i=-zc,o=-Wa,a=n+zc*2,u=r+Wa+Ka;this.physics.world.setBounds(i,o,a,u),this.cameras.main.setBounds(i,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,p=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 h=this.cameras.main;h.stopFollow(),h.scrollX-=m/h.zoom,h.scrollY-=p/h.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,p,h)=>{const g=this.cameras.main,y=this.input.activePointer,v=g.getWorldPoint(y.x,y.y),w=this.getMinCameraZoom(g),S=Xr.Math.Clamp(g.zoom-h*.0015,w,3);g.setZoom(S);const _=g.getWorldPoint(y.x,y.y);g.scrollX+=v.x-_.x,g.scrollY+=v.y-_.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 p=this.cameras.main.getWorldPoint(d.x,d.y);let h=null,g=1/0;for(const y of this.agents.values()){const v=Xr.Math.Distance.Between(p.x,p.y,y.x,y.y);v<24&&vthis.add.circle(Y,5,2.1,14284031,.95));U.add(H),U.setDepth(-250),U.setAlpha(0),U.setRotation(-.04),U.setScale(o),this.tweens.add({targets:[h,g,y],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const V=()=>{U.setPosition(u,a),U.setAlpha(0),U.setRotation(-.04),h.setAlpha(.55),g.setAlpha(.42),y.setAlpha(.24),this.tweens.add({targets:U,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{h.setAlpha(.22),g.setAlpha(.14),y.setAlpha(.08),this.tweens.add({targets:U,x:d+4,y:a+R*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{h.setAlpha(.48),g.setAlpha(.32),y.setAlpha(.18),this.tweens.add({targets:U,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,V)}})})}})};V()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=Bn();for(const n of t){const r=[];for(const i of this.walkableTiles)i.x>=n.offsetCol&&i.xm.id===t);if(!r)return;const i=(r.offsetCol+Pn/2)*R,o=xc/2*R,a=this.cameras.main,u=this.getMinCameraZoom(a),d=Xr.Math.Clamp(Math.min(this.scale.width/((Pn+4)*R),this.scale.height/((xc-4)*R)),u,Math.max(1.5,u));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.easeOut"}),a.pan(i,o,380,"Cubic.easeOut")}resolveOfficeForAgent(t){const n=vM(t);if(n)return n.id;const r=Bn();let i=null,o=-1;for(const u of r){const d=Lj(u.id),m=u.assignedAgents.length,p=d.length-m;p>o&&(i=u,o=p)}const a=i?.id??r[0]?.id??"office-0";return eg(a,t),a}addAgent(t,n,r=!1,i=null,o,a,u){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,p=o?(eg(o,t),o):this.resolveOfficeForAgent(t),h=u?this.seats.find(C=>C.id===u&&!C.assigned)??this.findFreeSeatInOffice(p):this.findFreeSeatInOffice(p),v=(Bn().find(C=>C.id===p)?.offsetCol??0)+5,w=20;let S=v,_=w;h&&(S=h.tileX,_=h.tileY,h.assigned=!0,h.assignedTo=t);const k=new SM(this,t,d,m,S,_);return k.officeId=p,k.setPathfinder(this.pathfinder),k.seatId=h?.id??null,k.isSubagent=r,k.parentAgentId=i,h&&(k.setAgentState(ot.TYPE),k.setDirection(h.facing),k.seatTimer=10),this.agents.set(t,k),k}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const r=this.seats.find(i=>i.id===n.seatId);r&&(r.assigned=!1,r.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:r}=require("../map/OfficeStore");r(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,r=!1,i=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,r,i,o,a,u)}findFreeSeatInOffice(t){const n=this.seats.filter(r=>r.id.startsWith(`${t}-desk-`)).find(r=>!r.assigned);return n||(this.seats.filter(r=>r.id.startsWith(`${t}-leader-`)).find(r=>!r.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const r=this.agents.get(t);if(!r)return;if(r.seatId){const m=this.seats.find(p=>p.id===r.seatId);m&&(m.assigned=!1,m.assignedTo=null)}r.stopMovement(),eg(n,t),r.officeId=n;const i=this.findFreeSeatInOffice(n),u=(Bn().find(m=>m.id===n)?.offsetCol??0)+5,d=20;i?(i.assigned=!0,i.assignedTo=t,r.seatId=i.id,r.setPosition(i.tileX*R+R/2,i.tileY*R+R/2),r.setAgentState(ot.TYPE),r.setDirection(i.facing),r.seatTimer=10):(r.seatId=null,r.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 r=this.agents.get(t);if(!r)return;if(r.seatId){const o=this.seats.find(a=>a.id===r.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const i=this.seats.find(o=>o.id===n);!i||i.assigned&&i.assignedTo!==t||(i.assigned=!0,i.assignedTo=t,r.seatId=n,r.stopMovement(),r.setPosition(i.tileX*R+R/2,i.tileY*R+R/2),r.setAgentState(ot.TYPE),r.setDirection(i.facing),r.seatTimer=10)}rebuildOfficeCollision(t,n,r){bM(t,n,r),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const i=Bn(),o=Mj(i),a=Ef.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new Ak(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),LM(i),this.seats=Mk().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){xM(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(Pc())}syncOutdoorLighting(){this.applyOutdoorLighting(Pc())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?vk:bk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=Jp*R,n=xc*R;return{worldW:t+zc*2,worldH:n+Wa+Ka}}getMinCameraZoom(t){const{worldW:n,worldH:r}=this.getWorldSize();return Math.max(t.width/n,t.height/r)}}function HM({bridge:e}){const t=E.useRef(null),n=E.useRef(null),r=E.useRef(null);return E.useEffect(()=>{if(!t.current||!n.current)return;const i=t.current,o=n.current,a=(d,m)=>{console.log("[PhaserGame] Creating Phaser game",d,"×",m);const p=mM(o,d,m);p.scene=[gM,$M];const h=new Xr.Game(p);h.registry.set("bridge",e),r.current=h};if(typeof ResizeObserver>"u")return a(i.clientWidth||window.innerWidth-380,i.clientHeight||window.innerHeight-48),()=>{r.current?.destroy(!0),r.current=null};const u=new ResizeObserver(d=>{const m=d[d.length-1].contentRect,p=Math.floor(m.width),h=Math.floor(m.height);if(!(p<1||h<1))if(!r.current)a(p,h);else{const g=r.current.scale;g.getParentBounds(),g.refresh()}});return u.observe(i),()=>{u.disconnect(),r.current?.destroy(!0),r.current=null}},[e]),c.jsx("div",{ref:t,style:{width:"100%",height:"100%"},children:c.jsx("div",{ref:n,style:{width:"100%",height:"100%"}})})}class FM extends Xr.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 r=this.scene.getAgent(t);r&&(r.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const r=this.scene.getAgent(t);r&&(n?r.showBubble(n):r.clearBubble())}ensureAgent(t,n,r,i,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,r,i,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return Bn()}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,r){this.scene&&this.scene.rebuildOfficeCollision(t,n,r)}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 r of t){const i=this.scene.getAgent(r);i&&(i.showBubble(n.slice(0,30)),setTimeout(()=>i.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const r=this.scene.getAgent(n);r&&this.scene.behavior.moveToZone(r,"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 r=t.timeline??[];for(const o of r)this.scene.behavior.applyEvent(o);const i=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",i.length,"agents:",i.map(([o])=>o));for(const[o,a]of i){const u=a,d=u.name||u.role_name||o,m=u.office_id,p=u.appearance?.palette,h=u.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,p,h),y=u.runtime_status||u.status;y==="tool_active"?(g.currentTool=u.current_tool??null,g.isActive=!0,g.setAgentState(ot.TYPE)):y==="reflecting"&&(g.currentTool=u.current_tool??"Reflect",g.isActive=!1,g.setAgentState(ot.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${p}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}r.length===0&&i.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 VM="assets/office-bg.png";function UM({bridge:e}){const t=E.useRef(null),n=E.useRef(null),r=E.useRef(!1),[i,o]=E.useState(()=>Bn()),[a,u]=E.useState(()=>Bn()[0]?.id??"office-0"),d=i.find(te=>te.id===a)??i[0],[m,p]=E.useState(()=>tg(d?.mapStr??Bc,Pn,Zr)),[h,g]=E.useState(()=>[...d?.seats??$c]),[y,v]=E.useState("wall"),[w,S]=E.useState(!1),[_,k]=E.useState(!1),[C,N]=E.useState(!1),[O,I]=E.useState(1),[D,T]=E.useState(!0),L=Pn,A=Zr,M=te=>{const re=Bn();o(re),u(te);const oe=re.find(de=>de.id===te);oe&&(p(tg(oe.mapStr,Pn,Zr)),g([...oe.seats])),N(!1)};E.useEffect(()=>{const te=new Image;te.crossOrigin="anonymous",te.onload=()=>{n.current=te,S(!0)},te.onerror=()=>{n.current=null,S(!0)},te.src=VM},[]);const $=E.useCallback(()=>{const te=t.current;if(!te)return;const re=te.getContext("2d");if(!re)return;const oe=L*R,de=A*R;te.width=oe,te.height=de,re.clearRect(0,0,oe,de),n.current?re.drawImage(n.current,0,0,oe,de):(re.fillStyle="#3d3d3d",re.fillRect(0,0,oe,de));for(let se=0;se{$()},[$]);const W=te=>{const re=t.current;if(!re)return null;const oe=re.getBoundingClientRect(),de=re.width/oe.width,se=re.height/oe.height,je=Math.floor((te.clientX-oe.left)*de/R),we=Math.floor((te.clientY-oe.top)*se/R);return je<0||je>=L||we<0||we>=A?null:{c:je,r:we}},B=E.useCallback((te,re)=>{if(N(!1),y==="seat")g(oe=>{const de=oe.findIndex(([se,je])=>se===te&&je===re);return de>=0?oe.filter((se,je)=>je!==de):[...oe,[te,re]]}),p(oe=>{if(oe[re]?.[te]===1){const de=oe.map(se=>[...se]);return de[re][te]=0,de}return oe});else{const oe=y==="wall"?1:0;p(de=>{if(de[re]?.[te]===oe)return de;const se=de.map(je=>[...je]);return se[re][te]=oe,se}),y==="wall"&&g(de=>de.filter(([se,je])=>!(se===te&&je===re)))}},[y]),U=te=>{if(te.button!==0)return;r.current=!0;const re=W(te);re&&B(re.c,re.r)},H=te=>{if(!r.current||y==="seat")return;const re=W(te);re&&B(re.c,re.r)},V=()=>{r.current=!1},Y=()=>{const te=jk(m);e.rebuildOfficeCollision(a,te,h),N(!0),o(Bn()),setTimeout(()=>N(!1),2e3)},Z=()=>k(te=>!te),q=()=>{p(tg(Bc,Pn,Zr)),g([...$c]),N(!1)},G=(()=>{const re=jk(m).map((de,se)=>` '${de}', // ${se}`).join(` +`),oe=h.map(([de,se])=>` [${de}, ${se}],`).join(` +`);return`const MAP_STR: string[] = [ +${re} +] + +const SEATS: [number, number][] = [ +${oe} +]`})(),J=()=>I(te=>Math.min(te+.25,3)),P=()=>I(te=>Math.max(te-.25,.5)),X=m.flat().filter(te=>te===1).length,ee=m.flat().filter(te=>te===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:te=>M(te.target.value),children:i.map(te=>c.jsx("option",{value:te.id,children:te.name},te.id))})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsxs("button",{className:`ce-mode-btn ${y==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[c.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),c.jsxs("button",{className:`ce-mode-btn ${y==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[c.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),c.jsxs("button",{className:`ce-mode-btn ${y==="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:P,children:"-"}),c.jsxs("span",{className:"ce-zoom-label",children:[Math.round(O*100),"%"]}),c.jsx("button",{className:"ce-btn",onClick:J,children:"+"}),c.jsx("button",{className:`ce-btn${D?" active":""}`,onClick:()=>T(te=>!te),children:"Grid"})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsx("button",{className:`ce-btn apply${C?" success":""}`,onClick:Y,children:C?"Applied":"Apply"}),c.jsx("button",{className:`ce-btn${_?" active":""}`,onClick:Z,children:"Export"}),c.jsx("button",{className:"ce-btn danger",onClick:q,children:"Reset"})]}),c.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[c.jsxs("span",{children:["Walls: ",X]}),c.jsxs("span",{children:["Floor: ",ee]}),c.jsxs("span",{children:["Seats: ",h.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:L*R*O,height:A*R*O,imageRendering:"pixelated",cursor:y==="seat"?"crosshair":"cell"},onMouseDown:U,onMouseMove:H,onMouseUp:V,onMouseLeave:V})}),_&&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(G),children:"Copy"})]}),c.jsx("textarea",{className:"ce-export-textarea",value:G,readOnly:!0,rows:20})]})]})]})}let GM=0;function tr(e,t,n={}){return{event_id:`test-${++GM}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function En(e){return new Promise(t=>setTimeout(t,e))}async function qM(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 M of[...n.agents.keys()])n.removeAgent(M);await En(100);const r=Bn();t.push({name:"offices-loaded",pass:r.length>=3,detail:`${r.length} offices loaded: ${r.map(M=>M.name).join(", ")}`});const i=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const M of i)e.pushEvent(tr("agent_active",M));await En(300);const o=new Set;let a=!1;for(const M of i){const $=n.getAgent(M);$&&$.seatId&&(o.has($.seatId)&&(a=!0),o.add($.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===i.length,detail:`Assigned ${o.size} unique seats to ${i.length} agents. IDs: [${[...o].join(", ")}]`});const u=i.every(M=>n.getAgent(M)?.officeId!=null);t.push({name:"agents-have-officeId",pass:u,detail:i.map(M=>`${M}=${n.getAgent(M)?.officeId}`).join(", ")}),e.pushEvent(tr("tool_start","agent-A",{tool_name:"shell"})),await En(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(tr("tool_done","agent-A",{tool_name:"shell"})),await En(100),t.push({name:"tool_done-celebrate",pass:d.agentState==="celebrate",detail:`state=${d.agentState}`});for(let M=0;M<20&&d.agentState==="celebrate";M++)await En(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(tr("waiting","agent-B")),await En(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(tr("reflect_start","agent-C")),await En(200);const p=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:p.currentTool==="Reflect"&&(p.agentState==="walk"||p.agentState==="reflect"),detail:`currentTool=${p.currentTool}, state=${p.agentState}`}),e.pushEvent(tr("reflect_done","agent-C")),await En(100),t.push({name:"reflect_done-celebrate",pass:p.agentState==="celebrate",detail:`state=${p.agentState}`});const h=["agent-A","agent-B","agent-C","agent-D"];for(const M of h)e.pushEvent(tr("collab_started",M));await En(4e3);const g=new Map;let y=!1;for(const M of h){const $=n.getAgent(M);if(!$)continue;const W=$.getTilePos(),B=`${W.x},${W.y}`;g.has(B)&&(y=!0),g.set(B,M)}t.push({name:"collab-no-overlap",pass:!y,detail:`${h.length} agents, ${g.size} unique positions`});for(const M of h)e.pushEvent(tr("collab_ended",M));await En(100);const v=h.every(M=>n.getAgent(M)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:h.map(M=>`${M}=${n.getAgent(M)?.agentState}`).join(", ")}),await En(3e3),e.pushEvent(tr("practice_start","agent-E",{target_domain:"TypeScript"})),await En(200);const w=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:w.currentTool==="Practice"&&(w.agentState==="walk"||w.agentState==="practice"),detail:`currentTool=${w.currentTool}, state=${w.agentState}`}),e.pushEvent(tr("practice_done","agent-E")),await En(100),t.push({name:"practice_done-celebrate",pass:w.agentState==="celebrate",detail:`state=${w.agentState}`}),await En(3e3),e.pushEvent(tr("task_delegated","agent-A",{target:"agent-B"})),await En(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(tr("delegation_done","agent-A",{target:"agent-B"})),await En(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(tr("message_in","agent-F",{content_preview:"Hello test"})),await En(200),t.push({name:"message_in-active",pass:S.isActive===!0,detail:`isActive=${S.isActive}, state=${S.agentState}`}),e.pushEvent(tr("message_out","agent-F",{content_preview:"Reply test"})),await En(100),t.push({name:"message_out-bubble",pass:S.bubbleText?.includes("Reply")===!0,detail:`bubble="${S.bubbleText}"`}),e.pushEvent(tr("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await En(200);const _=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:_!=null&&_.isSubagent===!0,detail:`created=${!!_}, isSubagent=${_?.isSubagent}`}),e.pushEvent(tr("subagent_done","subagent-test-1")),await En(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(tr("task_routed","agent-E",{method:"auto"})),await En(200),t.push({name:"task_routed-active",pass:w.isActive===!0,detail:`isActive=${w.isActive}, state=${w.agentState}`}),e.pushEvent(tr("agent_removed","agent-F")),await En(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(tr("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await En(4e3);const k=new Map;let C=!1;for(const M of["agent-A","agent-B","agent-C"]){const $=n.getAgent(M);if(!$)continue;const W=$.getTilePos(),B=`${W.x},${W.y}`;k.has(B)&&(C=!0),k.set(B,M)}t.push({name:"crystal-no-overlap",pass:!C,detail:`3 agents, ${k.size} unique positions`});const N=new Map;let O=!1;for(const M of n.agents.values())M.seatId&&(N.has(M.seatId)&&(O=!0),N.set(M.seatId,M.agentId));t.push({name:"desk-seat-no-conflict",pass:!O,detail:`${N.size} desk seats assigned, conflict=${O}`});const I=n.getAgent("agent-D");if(I){const M=I.officeId,$=r.find(B=>B.id!==M)??r[1];e.assignAgentToOffice("agent-D",$.id),await En(300);const W=I.officeId;t.push({name:"reassign-office",pass:W===$.id&&W!==M,detail:`${M} → ${W} (expected ${$.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const D=new Map;let T=!1;for(const M of n.agents.values())M.seatId&&(D.has(M.seatId)&&(T=!0),D.set(M.seatId,M.agentId));t.push({name:"cross-office-seat-unique",pass:!T,detail:`${D.size} seats, conflict=${T}`});const L=t.filter(M=>M.pass).length,A=t.filter(M=>!M.pass).length;console.log(""),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold"),console.log(`%c[EventTest] Results: ${L} passed, ${A} failed, ${t.length} total`,`color: ${A>0?"#f87171":"#34d399"}; font-weight: bold`),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold");for(const M of t){const $=M.pass?"✅":"❌",W=M.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${$} ${M.name}: ${M.detail}`,W)}return t}function WM(e){window.__runEventTests=()=>qM(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const YM={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 XM(e){return e?YM[e]??"todo":"todo"}function KM(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function ZM(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 QM(e,t){return t.type==="SET"?t.columns:e}function JM(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(r=>r.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(r=>r.id===t.id?{...r,...t.partial,updatedAt:n}:r);case"DELETE":return e.filter(r=>r.id!==t.id);case"MOVE":return e.map(r=>r.id===t.id?{...r,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:r);case"ASSIGN":return e.map(r=>r.id===t.taskId?{...r,assigneeIds:t.agentIds,updatedAt:n}:r);case"REMOVE_ASSIGNEE":return e.map(r=>r.assigneeIds.includes(t.agentId)?{...r,assigneeIds:r.assigneeIds.filter(i=>i!==t.agentId),updatedAt:n}:r);default:return e}}function e4(){const[e,t]=E.useReducer(ZM,[]),[n,r]=E.useReducer(QM,[]),[i,o]=E.useReducer(JM,[]),[a,u]=E.useState(null),[d,m]=E.useState("default"),p=E.useMemo(()=>e.find(D=>D.id===a)??null,[e,a]),h=E.useMemo(()=>n.filter(D=>D.boardId===a).sort((D,T)=>D.sortOrder-T.sortOrder),[n,a]),g=E.useMemo(()=>{const D=i.filter(L=>L.boardId===a),T={};for(const L of h)T[L.id]=[];for(const L of D){const A=L.phase?XM(L.phase):L.columnId;T[A]&&T[A].push(L)}for(const L of Object.keys(T))T[L].sort((A,M)=>A.sortOrder-M.sortOrder);return T},[i,a,h]),y=E.useCallback(D=>{const T=e.find($=>$.id===D.boardId),L=T?.nextTaskNum??1,A=T?.prefix??"T",M={id:D.taskId??`task-${KM()}`,displayId:D.displayId??`${A}-${String(L).padStart(3,"0")}`,boardId:D.boardId,columnId:D.columnId,title:D.title,description:D.description,priority:D.priority??null,assigneeIds:D.assigneeIds??[],tags:D.tags??[],sortOrder:L,createdAt:Date.now(),updatedAt:Date.now()};return o({type:"ADD",task:M}),M},[e]),v=E.useCallback((D,T)=>o({type:"UPDATE",id:D,partial:T}),[]),w=E.useCallback(D=>o({type:"DELETE",id:D}),[]),S=E.useCallback((D,T,L)=>o({type:"MOVE",id:D,columnId:T,sortOrder:L}),[]),_=E.useCallback((D,T)=>o({type:"ASSIGN",taskId:D,agentIds:T}),[]),k=E.useCallback(()=>{const D=new Set(n.filter(T=>T.isTerminal).map(T=>T.id));return i.filter(T=>!D.has(T.columnId)).length},[i,n]),C=E.useCallback(D=>{o({type:"REMOVE_ASSIGNEE",agentId:D})},[]),N=E.useCallback((D,T,L,A,M)=>{const $=D||"default",W=$!==d,B=!W&&!!M?.preserveTasksWhenIncomingEmpty&&A.length===0;m($),t({type:"SET",boards:T}),r({type:"SET",columns:L}),o({type:"SET",tasks:B?i:A}),u(U=>!W&&U&&T.some(H=>H.id===U)?U:null)},[d,i]),O=E.useCallback(D=>{u(D)},[]),I=E.useCallback((D,T)=>{t({type:"UPDATE_NAME",boardId:D,name:T})},[]);return E.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:i,activeBoardId:a,activeBoard:p,activeBoardColumns:h,tasksByColumn:g,setActiveBoard:O,createTask:y,updateTask:v,deleteTask:w,moveTask:S,assignTask:_,dispatchTask:o,getOpenTaskCount:k,removeAssignee:C,initFromBackend:N,updateBoardName:I}),[d,e,n,i,a,p,h,g,O,y,v,w,S,_,o,k,C,N,I])}const Lk={done:"✓",failed:"✗",pending:"○",blocked:"■",cancelled:"—",running:"▶"},zk={done:"var(--green, #27ae60)",failed:"var(--red, #e74c3c)",pending:"var(--text-secondary, #888)",blocked:"var(--yellow, #f39c12)",cancelled:"var(--text-dim, #555)",running:"var(--accent, #3498db)"};function t4({data:e,onResume:t,onCancel:n}){const[r,i]=E.useState(new Set);if(!e.interrupted.length&&!e.active_recoveries.length)return null;const o=e.interrupted.filter(a=>!r.has(a.parent_task_id));return!o.length&&!e.active_recoveries.length?null:c.jsx("div",{className:"wfr-panel",children:o.map(a=>{const u=e.active_recoveries.includes(a.parent_task_id),d=a.work_items.filter(p=>p.status==="done").length,m=a.work_items.filter(p=>p.interrupted||p.status==="failed").length;return c.jsxs("div",{className:"wfr-card",children:[c.jsxs("div",{className:"wfr-header",children:[c.jsx("span",{className:"wfr-icon",children:"⚠"}),c.jsxs("div",{className:"wfr-header-text",children:[c.jsxs("span",{className:"wfr-title",children:["Interrupted: ",a.title]}),c.jsxs("span",{className:"wfr-subtitle",children:[d,"/",a.work_items.length," work items done, ",m," interrupted",a.profile&&c.jsxs(c.Fragment,{children:[" · ",a.profile]})]})]})]}),c.jsx("div",{className:"wfr-work-items",children:a.work_items.map(p=>c.jsxs("div",{className:`wfr-work-item wfr-work-item--${p.status}`,children:[c.jsx("span",{className:"wfr-work-item-icon",style:{color:zk[p.status]||zk.pending},children:Lk[p.status]||Lk.pending}),c.jsx("span",{className:"wfr-work-item-title",children:p.title}),p.interrupted&&c.jsx("span",{className:"wfr-work-item-badge",children:"interrupted"})]},p.work_item_projection_id))}),c.jsx("div",{className:"wfr-actions",children:u?c.jsxs("span",{className:"wfr-recovering",children:[c.jsx("span",{className:"spinner-inline"})," Recovering..."]}):c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"wfr-btn wfr-btn--resume",onClick:()=>t(a.parent_task_id),children:"Resume"}),c.jsx("button",{className:"wfr-btn wfr-btn--cancel",onClick:()=>n(a.parent_task_id),children:"Cancel"}),c.jsx("button",{className:"wfr-btn wfr-btn--dismiss",onClick:()=>i(p=>new Set(p).add(a.parent_task_id)),children:"Dismiss"})]})})]},a.parent_task_id)})})}var mm=jj();const n4=Zo(mm);function La(e,t,n){let r=n.initialDeps??[],i,o=!0;function a(){var u,d,m;let p;n.key&&((u=n.debug)!=null&&u.call(n))&&(p=Date.now());const h=e();if(!(h.length!==r.length||h.some((v,w)=>r[w]!==v)))return i;r=h;let y;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(y=Date.now()),i=t(...h),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-p)*100)/100,w=Math.round((Date.now()-y)*100)/100,S=w/16,_=(k,C)=>{for(k=String(k);k.length{r=u},a}function Pk(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const r4=(e,t)=>Math.abs(e-t)<1.01,i4=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Bk=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},s4=e=>e,o4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let i=t;i<=n;i++)r.push(i);return r},a4=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const i=a=>{const{width:u,height:d}=a;t({width:Math.round(u),height:Math.round(d)})};if(i(Bk(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(a=>{const u=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){i({width:m.inlineSize,height:m.blockSize});return}}i(Bk(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(u):u()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},$k={passive:!0},Hk=typeof window>"u"?!0:"onscrollend"in window,l4=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let i=0;const o=e.options.useScrollendEvent&&Hk?()=>{}:i4(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),a=p=>()=>{const{horizontal:h,isRtl:g}=e.options;i=h?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(i,p)},u=a(!0),d=a(!1);n.addEventListener("scroll",u,$k);const m=e.options.useScrollendEvent&&Hk;return m&&n.addEventListener("scrollend",d,$k),()=>{n.removeEventListener("scroll",u),m&&n.removeEventListener("scrollend",d)}},c4=(e,t,n)=>{if(t?.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},u4=(e,{adjustments:t=0,behavior:n},r)=>{var i,o;const a=e+t;(o=(i=r.scrollElement)==null?void 0:i.scrollTo)==null||o.call(i,{[r.options.horizontal?"left":"top"]:a,behavior:n})};class d4{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,r,i;return((i=(r=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:r.now)==null?void 0:i.call(r))??Date.now()},this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(i=>{i.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 i;(i=r())==null||i.disconnect(),n=null},observe:i=>{var o;return(o=r())==null?void 0:o.observe(i,{box:"border-box"})},unobserve:i=>{var o;return(o=r())==null?void 0:o.unobserve(i)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,i])=>{typeof i>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:s4,rangeExtractor:o4,onChange:()=>{},measureElement:c4,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 r,i;(i=(r=this.options).onChange)==null||i.call(r,this,n)},this.maybeNotify=La(()=>(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 r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,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(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,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,r)=>{const i=new Map,o=new Map;for(let a=r-1;a>=0;a--){const u=n[a];if(i.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=La(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,r,i,o,a,u)=>(this.prevLanes!==void 0&&this.prevLanes!==u&&(this.lanesChangedFlag=!0),this.prevLanes=u,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:i,getItemKey:o,enabled:a,lanes:u}),{key:!1}),this.getMeasurements=La(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:i,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 p=this.measurementsCache.slice(0,m),h=new Array(u).fill(void 0);for(let g=0;g1){w=v;const N=h[w],O=N!==void 0?p[N]:void 0;S=O?O.end+this.options.gap:r+i}else{const N=this.options.lanes===1?p[g-1]:this.getFurthestMeasurement(p,g);S=N?N.end+this.options.gap:r+i,w=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,w)}const _=d.get(y),k=typeof _=="number"?_:this.options.estimateSize(g),C=S+k;p[g]={index:g,start:S,size:k,end:C,key:y,lane:w},h[w]=g}return this.measurementsCache=p,p},{key:!1,debug:()=>this.options.debug}),this.calculateRange=La(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,i,o)=>this.range=n.length>0&&r>0?f4({measurements:n,outerSize:r,scrollOffset:i,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=La(()=>{let n=null,r=null;const i=this.calculateRange();return i&&(n=i.startIndex,r=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,i,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:r,count:i}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,i=n.getAttribute(r);return i?parseInt(i,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var r;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const i=this.scrollState.index??((r=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:r.index);if(i!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,i-o),u=Math.min(this.options.count-1,i+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 r=this.indexFromElement(n),i=this.options.getItemKey(r),o=this.elementsCache.get(i);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(i,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,r)=>{var i;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,u=r-a;u!==0&&(((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,u,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const i=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Pk(r[zj(0,r.length-1,i=>Pk(r[i]).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,r,i=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();r==="auto"&&(r=n>=a+o?"end":"start"),r==="center"?n+=(i-o)/2:r==="end"&&(n-=o);const u=this.getMaxScrollOffset();return Math.max(Math.min(u,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const i=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(r==="auto")if(a.end>=o+i-this.options.scrollPaddingEnd)r="end";else if(a.start<=o+this.options.scrollPaddingStart)r="start";else return[o,r];if(r==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),r];const u=r==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(u,r,a.size),r]},this.scrollToOffset=(n,{align:r="start",behavior:i="auto"}={})=>{const o=this.getOffsetForAlignment(n,r),a=this.now();this.scrollState={index:null,align:r,behavior:i,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:r="auto",behavior:i="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,r);if(!o)return;const[a,u]=o,d=this.now();this.scrollState={index:n,align:u,behavior:i,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:r="auto"}={})=>{const i=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:r,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let i;if(r.length===0)i=this.options.paddingStart;else if(this.options.lanes===1)i=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=r.length-1;for(;a>=0&&o.some(u=>u===null);){const u=r[a];o[u.lane]===null&&(o[u.lane]=u.end),a--}i=Math.max(...o.filter(u=>u!==null))}return Math.max(i-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:i})=>{this.options.scrollToFn(n,{behavior:i,adjustments:r},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 r=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,i=r?r[0]:this.scrollState.lastTargetOffset,o=1,a=i!==this.scrollState.lastTargetOffset;if(!a&&r4(i,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=i,this.scrollState.behavior="auto",this._scrollToOffset(i,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const zj=(e,t,n,r)=>{for(;e<=t;){const i=(e+t)/2|0,o=n(i);if(or)t=i-1;else return i}return e>0?e-1:0};function f4({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const i=e.length-1,o=d=>e[d].start;if(e.length<=r)return{startIndex:0,endIndex:i};let a=zj(0,i,o,n),u=a;if(r===1)for(;u1){const d=Array(r).fill(0);for(;up=0&&m.some(p=>p>=n);){const p=e[a];m[p.lane]=p.start,a--}a=Math.max(0,a-a%r),u=Math.min(i,u+(r-1-u%r))}return{startIndex:a,endIndex:u}}const Fk=typeof document<"u"?E.useLayoutEffect:E.useEffect;function m4({useFlushSync:e=!0,...t}){const n=E.useReducer(()=>({}),{})[1],r={...t,onChange:(o,a)=>{var u;e&&a?mm.flushSync(n):n(),(u=t.onChange)==null||u.call(t,o,a)}},[i]=E.useState(()=>new d4(r));return i.setOptions(r),Fk(()=>i._didMount(),[]),Fk(()=>i._willUpdate()),i}function Pj(e){return m4({observeElementRect:a4,observeElementOffset:l4,scrollToFn:u4,...e})}function h4(){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 hm(){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 Bj(){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 p4(){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 pm(){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 _l(){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 g4(){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 _s({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 y4(){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 y0(){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 v4(){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 b4(){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 $j(){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 Zc(){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 Po(){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 Hj(){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 _4(){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 Vk(){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 gm(){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 k4(){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 S4(){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 yc(){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 Nf(){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 il(){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 xm(){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 Uk({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 w4({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 C4({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 j4({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 Ua=new Set(["done","failed","cancelled"]),E4=new Set(["company","org","custom"]),N4=new Set(["idle","done","failed","cancelled"]);function ym(e){return Ua.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 Wi(e){return ym(e)!=="idle"}function I4(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return E4.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function T4(e,t){if(!I4(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(N4.has(n)){const r=e?.runtimeControlState;return r==="suspending"||r==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function og(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function Gk(e){return Math.max(0,Math.min(Math.round(e),100))}function Fj(e){const t=og(e?.contextTokens),n=og(e?.contextWindow),r=og(e?.contextRemainingPct),i=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 r=="number"?Gk(r):void 0;if(typeof i=="number"&&typeof o=="number"){const u=Math.min(i,o),d=Gk(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 i=="number"?{usedTokens:i}:{}}const R4=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,A4=/(\d{1,3})%\s*used/i,M4=/(\d{1,3})%\s*remaining/i;function D4(e){return e.replace(/\s+/g," ").trim()}function O4(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function by(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 L4(e){if(by(e)<=0)return"";const t=D4(O4(e.content)).slice(0,2e3);return t?`result:${t}`:""}function Bd(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 qk(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function sl(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 r=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(r.length===0)return;const i=r.map(o=>o.aggregatedStatus);if(i.some(o=>o==="active"))return"running";if(i.some(o=>o==="waiting")||i.some(o=>o==="pending"))return"pending";if(i.every(o=>o==="failed"))return"failed";if(i.every(o=>o==="done")||i.some(o=>o==="done"))return"done"}function z4(e){const t={};for(const n of e??[]){const r=`${n.summary??""} ${n.detail??""}`.trim();if(!r)continue;const i=R4.exec(r);if(i){const u=Bd(i[1]),d=Bd(i[2]);typeof u=="number"&&(t.contextTokens=u),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=M4.exec(r);if(o){t.contextRemainingPct=qk(Bd(o[1]));continue}const a=A4.exec(r);if(a){const u=qk(Bd(a[1]));typeof u=="number"&&(t.contextRemainingPct=100-u)}}return t}function If(e){const t=z4(e.progressLog),n=e.contextTokens??t.contextTokens,r=e.contextWindow??t.contextWindow,i=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&r===e.contextWindow&&i===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:r,contextRemainingPct:i}}function Vj(e){const t=new Set,n=[];for(const r of e)t.has(r.taskId)||(t.add(r.taskId),n.push(r));return n}function P4(e){return!!(String(e?.workItemRoleId??"").trim()||String(e?.workItemRoleName??"").trim())}function gf(e,t){if(!e||e.mode==="child")return[];const n=new Set;e.sessionId&&n.add(e.sessionId),n.add(e.taskId);const r=String(e.originTaskId??e.taskId??"").trim(),i=new Map;for(const u of e.workItemLog??[]){const d=u.executionTurnId||u.runtimeTaskId;d&&!i.has(d)&&i.set(d,i.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=i.has(u.taskId),p=!!r&&String(u.originTaskId??"").trim()===r;return!d&&!m&&!p?!1:(o.add(u.taskId),!0)}).sort((u,d)=>{const m=i.get(u.taskId),p=i.get(d.taskId);return m!=null&&p!=null&&m!==p?m-p:m!=null&&p==null?-1:m==null&&p!=null?1:d.updatedAt-u.updatedAt})}function Wk(e,t){const n=gf(e,t);return!e||e.mode==="child"||!P4(e)?n:Vj([e,...n])}function Tf(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const r=new Set;return t.filter(i=>i.taskId===e.taskId||r.has(i.taskId)||String(i.sessionId??"").trim()!==n?!1:(r.add(i.taskId),!0)).sort((i,o)=>o.updatedAt-i.updatedAt)}function B4(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function Yk(e){const t=Wi(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,r=Math.max(0,e.messageCount??0)*1e4,i=(e.progressLog?.length??0)*100;return n+t+r+i+e.updatedAt}function Xk(e){const t=Fj(e),n=Wi(e)?1e11:0,r=String(e.draftAssistantText??"").trim()?1e10:0,i=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+r+i+o+a+u}function Rf(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=If(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const r=t.map(If),i=r.filter(h=>h.status!=="cancelled"),o=i.length>0?i:r,a=Vj([n,...o]),u=B4(e),d=[...a].sort((h,g)=>Yk(g)-Yk(h))[0]??n,m=u?n:d,p=[...a].sort((h,g)=>Xk(g)-Xk(h))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:p,projectedFromChild:!u&&m.taskId!==e.taskId}}function Kk(e,t,n){if(!e)return null;const r=If(e),i=t??r,o=sl(i)??sl(r),a=Af(n.length>0?n:[r]);return{...r,status:o??(i.status||r.status),assigneeIds:i.assigneeIds.length>0?i.assigneeIds:r.assigneeIds,agentStatus:i.agentStatus??r.agentStatus,currentTool:i.currentTool??r.currentTool,displayTool:i.displayTool??i.currentTool??r.displayTool??r.currentTool,toolElapsedMs:i.toolElapsedMs??r.toolElapsedMs,lastToolSummary:i.lastToolSummary??r.lastToolSummary,contextTokens:i.contextTokens??r.contextTokens,contextWindow:i.contextWindow??r.contextWindow,contextRemainingPct:i.contextRemainingPct??r.contextRemainingPct,inputTokens:i.inputTokens??r.inputTokens,outputTokens:i.outputTokens??r.outputTokens,totalTokens:i.totalTokens??r.totalTokens,turnCostUsd:i.turnCostUsd??r.turnCostUsd,sessionCostUsd:i.sessionCostUsd??r.sessionCostUsd,pendingPermissionCount:i.pendingPermissionCount??r.pendingPermissionCount,drainMode:i.drainMode??r.drainMode,workItemProjectionId:i.workItemProjectionId??r.workItemProjectionId,workItemTurnType:i.workItemTurnType??r.workItemTurnType,companyProfile:r.companyProfile??i.companyProfile,workItemRoleId:r.workItemRoleId??i.workItemRoleId,workItemRoleName:r.workItemRoleName??i.workItemRoleName,workItemGate:r.workItemGate??i.workItemGate,employeeAssignment:r.employeeAssignment??i.employeeAssignment,selectedExecutionAgent:i.selectedExecutionAgent??r.selectedExecutionAgent,draftAssistantText:i.draftAssistantText??r.draftAssistantText,draftUpdatedAt:i.draftUpdatedAt??r.draftUpdatedAt,draftIteration:i.draftIteration??r.draftIteration,draftTurnId:i.draftTurnId??r.draftTurnId,runtimeControlState:i.runtimeControlState??r.runtimeControlState,canStop:i.canStop??r.canStop,canResume:i.canResume??r.canResume,resumeParentTaskId:i.resumeParentTaskId??r.resumeParentTaskId,resumeParentSessionId:i.resumeParentSessionId??r.resumeParentSessionId,pendingRuntimeCheckpointId:i.pendingRuntimeCheckpointId??r.pendingRuntimeCheckpointId,stopIntentId:i.stopIntentId??r.stopIntentId,updatedAt:Math.max(r.updatedAt,i.updatedAt),messageCount:Math.max(r.messageCount??0,i.messageCount??0,a),isCompanyRuntime:!!(r.isCompanyRuntime||i.isCompanyRuntime),workItemLog:(r.workItemLog?.length??0)>0?r.workItemLog:i.workItemLog,roleWorkItems:r.roleWorkItems??i.roleWorkItems,executorRoleWorkItems:r.executorRoleWorkItems??i.executorRoleWorkItems,activeSubagents:r.activeSubagents??i.activeSubagents,permissionRequests:r.permissionRequests??i.permissionRequests}}function $4(e,t,n){if(!e)return null;const r=If(e),i=t??r,o=sl(i)??sl(r),a=Af(n.length>0?n:[r]);return{...r,status:o??(i.status||r.status),agentStatus:i.agentStatus??r.agentStatus,currentTool:i.currentTool??r.currentTool,displayTool:i.displayTool??i.currentTool??r.displayTool??r.currentTool,toolElapsedMs:i.toolElapsedMs??r.toolElapsedMs,lastToolSummary:i.lastToolSummary??r.lastToolSummary,contextTokens:i.contextTokens??r.contextTokens,contextWindow:i.contextWindow??r.contextWindow,contextRemainingPct:i.contextRemainingPct??r.contextRemainingPct,inputTokens:i.inputTokens??r.inputTokens,outputTokens:i.outputTokens??r.outputTokens,totalTokens:i.totalTokens??r.totalTokens,turnCostUsd:i.turnCostUsd??r.turnCostUsd,sessionCostUsd:i.sessionCostUsd??r.sessionCostUsd,pendingPermissionCount:i.pendingPermissionCount??r.pendingPermissionCount,drainMode:i.drainMode??r.drainMode,selectedExecutionAgent:i.selectedExecutionAgent??r.selectedExecutionAgent,runtimeControlState:i.runtimeControlState??r.runtimeControlState,canStop:i.canStop??r.canStop,canResume:i.canResume??r.canResume,resumeParentTaskId:i.resumeParentTaskId??r.resumeParentTaskId,resumeParentSessionId:i.resumeParentSessionId??r.resumeParentSessionId,pendingRuntimeCheckpointId:i.pendingRuntimeCheckpointId??r.pendingRuntimeCheckpointId,stopIntentId:i.stopIntentId??r.stopIntentId,updatedAt:Math.max(r.updatedAt,i.updatedAt),messageCount:Math.max(r.messageCount??0,i.messageCount??0,a)}}function Zk(e){const t=new Set,n=new Map,r=[];for(const i of e)for(const o of i){const a=o.metadata??{},u=typeof a.ui_message_id=="string"?a.ui_message_id.trim():"",d=L4(o);if(d){const p=n.get(d);if(p!==void 0){by(o)>by(r[p])&&(r[p]=o);continue}n.set(d,r.length)}const m=d||u||`${o.sender}:${o.replyToId??""}:${o.timestamp}:${o.content.trim()}`;t.has(m)||(t.add(m),r.push(o))}return r.sort((i,o)=>i.timestamp===o.timestamp?i.id.localeCompare(o.id):i.timestamp-o.timestamp)}function Qk(e){const t=new Set,n=[];for(const r of e)for(const i of r.progressLog??[]){const o=`${i.timestamp}:${i.type}:${i.summary}:${i.detail??""}`;t.has(o)||(t.add(o),n.push(i))}return n.sort((r,i)=>r.timestamp-i.timestamp)}function Af(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const H4={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function F4(e){const t=sl(e)??e.status,n=ym({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":H4[t]??"status-pending"}function V4(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 U4(e){const t=new Date,n=new Date(e),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=new Date(r.getTime()-864e5);return n>=r?"Today":n>=i?"Yesterday":"Earlier"}function G4(e){const t=new Map,n=[];for(const r of e)if(r.mode==="child"&&r.parentSessionId){const i=t.get(r.parentSessionId)??[];i.push(r),t.set(r.parentSessionId,i)}else n.push(r);return n.map(r=>({session:r,children:Array.from(new Map([...r.sessionId?t.get(r.sessionId)??[]:[],...t.get(r.taskId)??[]].map(i=>[i.taskId,i])).values())}))}function $d({session:e,isActive:t,isChild:n,isLast:r,unreadCount:i,onSelect:o,onDelete:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(!1),h=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,g=sl(e)??e.status;return E.useEffect(()=>{if(!m)return;const y=setTimeout(()=>p(!1),3e3);return()=>clearTimeout(y)},[m]),c.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[n&&c.jsx("span",{className:`session-tree-line${r?" last":""}`}),c.jsx("span",{className:`session-dot ${F4(e)}`}),c.jsxs("div",{className:"session-item-content",children:[c.jsxs("span",{className:"session-item-title",children:[n&&h&&c.jsx("span",{className:"session-agent-tag",children:h}),!n&&e.isCompanyRuntime&&c.jsx("span",{className:"session-runtime-badge",title:"Company runtime",children:c.jsx(gm,{})}),e.title]}),c.jsxs("span",{className:"session-item-meta",children:[g," · ",V4(e.updatedAt)]})]}),!!i&&i>0&&c.jsx("span",{className:"session-unread-badge",children:i>99?"99+":i}),u&&!n&&!m&&c.jsx("button",{className:"session-delete-btn",onClick:y=>{y.stopPropagation(),p(!0)},title:"Delete",children:c.jsx(v4,{})}),m&&c.jsxs("span",{className:"session-confirm-delete",onClick:y=>y.stopPropagation(),children:[c.jsx("button",{className:"session-confirm-yes",onClick:()=>{p(!1),a()},children:"Delete"}),c.jsx("button",{className:"session-confirm-no",onClick:()=>p(!1),children:"Cancel"})]})]})}function q4({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:r,unreadCounts:i,onSelect:o,onCreateSession:a,onDeleteSession:u,onSelectSecretary:d}){const[m,p]=E.useState(""),[h,g]=E.useState(new Set),y=e.some(T=>T.isCompanyRuntime||T.mode==="child"||T.execMode==="company"||T.execMode==="org"||T.execMode==="custom"),v=E.useCallback(T=>{g(L=>{const A=new Set(L);return A.has(T)?A.delete(T):A.add(T),A})},[]),w=E.useMemo(()=>{if(!m.trim())return e;const T=m.toLowerCase();return e.filter(L=>L.title.toLowerCase().includes(T))},[e,m]),S=E.useMemo(()=>G4(w),[w]),_=E.useMemo(()=>{const T={Today:[],Yesterday:[],Earlier:[]};for(const L of S){const A=U4(L.session.createdAt);T[A]?.push(L)}return T},[S]),k=E.useMemo(()=>{const T=[];for(const L of["Today","Yesterday","Earlier"]){const A=_[L];if(!(!A||A.length===0)){T.push({kind:"group",group:L});for(const M of A){T.push({kind:"primary",node:M});const $=M.children.length>0,W=h.has(M.session.taskId);$&&W?T.push({kind:"child-count",node:M}):$&&M.children.forEach((B,U)=>{T.push({kind:"child",parentTaskId:M.session.taskId,child:B,childIndex:U,childCount:M.children.length})})}}}return T},[h,_]),C=k.length>120,N=E.useRef(null),O=Pj({count:k.length,getScrollElement:()=>N.current,estimateSize:T=>{const L=k[T];return L?.kind==="group"?26:L?.kind==="child-count"?30:54},overscan:8}),I=E.useCallback(T=>{const L=T.children.length>0,A=h.has(T.session.taskId);return c.jsx("div",{className:"session-tree-node",children:c.jsxs("div",{className:"session-tree-primary",children:[L&&c.jsx("button",{className:`session-expand-btn${A?" collapsed":""}`,onClick:M=>{M.stopPropagation(),v(T.session.taskId)},"aria-label":A?"Expand":"Collapse"}),c.jsx($d,{session:T.session,isActive:T.session.taskId===t,unreadCount:i?.[T.session.channelId],onSelect:()=>o(T.session.taskId),onDelete:()=>u(T.session.taskId)})]})})},[t,h,u,o,v,i]),D=E.useCallback(T=>T.kind==="group"?c.jsx("div",{className:"session-group-label",children:y?`${T.group} Runtime Sessions`:T.group}):T.kind==="primary"?I(T.node):T.kind==="child-count"?c.jsxs("button",{className:"session-child-count",onClick:()=>v(T.node.session.taskId),children:[T.node.children.length," sub-task",T.node.children.length>1?"s":""]}):c.jsx("div",{className:"session-children",children:c.jsx($d,{session:T.child,isActive:T.child.taskId===t,isChild:!0,isLast:T.childIndex===T.childCount-1,unreadCount:i?.[T.child.channelId],onSelect:()=>o(T.child.taskId),onDelete:()=>u(T.child.taskId)})}),[t,y,u,o,I,v,i]);return c.jsxs("div",{className:"session-sidebar",children:[c.jsxs("button",{className:"session-new-btn",onClick:a,children:[c.jsx(y4,{}),c.jsx("span",{children:"New Chat"})]}),d&&c.jsxs("button",{className:`session-nav-btn${n===r?" active":""}`,onClick:d,children:[c.jsx(Zc,{}),c.jsx("span",{children:"Secretary"}),!!(r&&i?.[r])&&i[r]>0&&c.jsx("span",{className:"session-unread-badge",children:i[r]>99?"99+":i[r]})]}),c.jsxs("div",{className:"session-search-wrap",children:[c.jsx(y0,{}),c.jsx("input",{className:"session-search",placeholder:"Search...",value:m,onChange:T=>p(T.target.value)})]}),c.jsxs("div",{ref:N,className:`session-list${C?" session-list-virtualized":""}`,children:[C?c.jsx("div",{style:{height:O.getTotalSize(),width:"100%",position:"relative"},children:O.getVirtualItems().map(T=>c.jsx("div",{"data-index":T.index,ref:O.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${T.start}px)`},children:D(k[T.index])},T.key))}):["Today","Yesterday","Earlier"].map(T=>{const L=_[T];return!L||L.length===0?null:c.jsxs("div",{className:"session-group",children:[c.jsx("div",{className:"session-group-label",children:y?`${T} Runtime Sessions`:T}),L.map(A=>{const M=A.children.length>0,$=h.has(A.session.taskId);return c.jsxs("div",{className:"session-tree-node",children:[c.jsxs("div",{className:"session-tree-primary",children:[M&&c.jsx("button",{className:`session-expand-btn${$?" collapsed":""}`,onClick:W=>{W.stopPropagation(),v(A.session.taskId)},"aria-label":$?"Expand":"Collapse"}),c.jsx($d,{session:A.session,isActive:A.session.taskId===t,unreadCount:i?.[A.session.channelId],onSelect:()=>o(A.session.taskId),onDelete:()=>u(A.session.taskId)})]}),M&&!$&&c.jsx("div",{className:"session-children",children:A.children.map((W,B)=>c.jsx($d,{session:W,isActive:W.taskId===t,isChild:!0,isLast:B===A.children.length-1,unreadCount:i?.[W.channelId],onSelect:()=>o(W.taskId),onDelete:()=>u(W.taskId)},W.taskId))}),M&&$&&c.jsxs("button",{className:"session-child-count",onClick:()=>v(A.session.taskId),children:[A.children.length," sub-task",A.children.length>1?"s":""]})]},A.session.taskId)})]},T)}),w.length===0&&c.jsx("div",{className:"session-empty",children:"No sessions yet"})]}),c.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==r?" active":""}`,onClick:()=>o(null),children:[c.jsx($j,{}),c.jsx("span",{children:"Activity"})]})]})}const W4=new Set(["company_work_item_gate","company_delivery_feedback","company_staffing_selection","company_recruitment_confirmation","company_reorg_pending","human_escalation","task_user_input"]),Y4=new Set(["responded","resolved","timeout","timed_out","expired","stale","superseded","ignored","cancelled","canceled","invalid"]);function X4(e){return W4.has(String(e??"").trim())}function Qc(e){return!(!X4(e?.checkpoint_type)||e?.self_evolution_completed||String(e?.kind??"").trim()==="company_self_evolution_result")}function K4(e){const t=String(e?.checkpoint_status??"").trim().toLowerCase();return Y4.has(t)?!0:!!String(e?.checkpoint_response_message_id??"").trim()}function v0(e){const t=String(e?.checkpoint_id??"").trim();if(!t)return;const n=String(e?.checkpoint_type??"").trim(),r=String(e?.escalation_id??"").trim();return{response_to_checkpoint_id:t,response_to_checkpoint_type:n||void 0,response_to_escalation_id:r||void 0}}function Uj(e){const t=String(e?.response_to_checkpoint_type??"").trim();if(!(t==="company_delivery_feedback"||t==="human_escalation"))return e}function b0(e){const t=new Set,n=new Set,r=new Set;let i;const o=new Map,a=new Map,u=new Set;for(let d=0;dd,w=g==="human_escalation"&&!!y&&(a.get(y)??-1)>d;if(K4(p)||v||w){n.add(m.id);continue}t.add(m.id),i=v0(p)??i}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:r,latestPendingReplyMetadata:i}}function Nr(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 Z4=typeof Symbol=="function"&&Symbol.observable||"@@observable",Jk=Z4,eS=()=>Math.random().toString(36).substring(7).split("").join("."),Q4={INIT:`@@redux/INIT${eS()}`,REPLACE:`@@redux/REPLACE${eS()}`},tS=Q4;function J4(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 Gj(e,t,n){if(typeof e!="function")throw new Error(Nr(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Nr(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Nr(1));return n(Gj)(e,t)}let r=e,i=t,o=new Map,a=o,u=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((S,_)=>{a.set(_,S)}))}function p(){if(d)throw new Error(Nr(3));return i}function h(S){if(typeof S!="function")throw new Error(Nr(4));if(d)throw new Error(Nr(5));let _=!0;m();const k=u++;return a.set(k,S),function(){if(_){if(d)throw new Error(Nr(6));_=!1,m(),a.delete(k),o=null}}}function g(S){if(!J4(S))throw new Error(Nr(7));if(typeof S.type>"u")throw new Error(Nr(8));if(typeof S.type!="string")throw new Error(Nr(17));if(d)throw new Error(Nr(9));try{d=!0,i=r(i,S)}finally{d=!1}return(o=a).forEach(k=>{k()}),S}function y(S){if(typeof S!="function")throw new Error(Nr(10));r=S,g({type:tS.REPLACE})}function v(){const S=h;return{subscribe(_){if(typeof _!="object"||_===null)throw new Error(Nr(11));function k(){const N=_;N.next&&N.next(p())}return k(),{unsubscribe:S(k)}},[Jk](){return this}}}return g({type:tS.INIT}),{dispatch:g,subscribe:h,getState:p,replaceReducer:y,[Jk]:v}}function nS(e,t){return function(...n){return t(e.apply(this,n))}}function rS(e,t){if(typeof e=="function")return nS(e,t);if(typeof e!="object"||e===null)throw new Error(Nr(16));const n={};for(const r in e){const i=e[r];typeof i=="function"&&(n[r]=nS(i,t))}return n}function qj(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function e5(...e){return t=>(n,r)=>{const i=t(n,r);let o=()=>{throw new Error(Nr(15))};const a={getState:i.getState,dispatch:(d,...m)=>o(d,...m)},u=e.map(d=>d(a));return o=qj(...u)(i.dispatch),{...i,dispatch:o}}}var ag={exports:{}},lg={};var iS;function t5(){if(iS)return lg;iS=1;var e=bl();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,r=e.useSyncExternalStore,i=e.useRef,o=e.useEffect,a=e.useMemo,u=e.useDebugValue;return lg.useSyncExternalStoreWithSelector=function(d,m,p,h,g){var y=i(null);if(y.current===null){var v={hasValue:!1,value:null};y.current=v}else v=y.current;y=a(function(){function S(O){if(!_){if(_=!0,k=O,O=h(O),g!==void 0&&v.hasValue){var I=v.value;if(g(I,O))return C=I}return C=O}if(I=C,n(k,O))return I;var D=h(O);return g!==void 0&&g(I,D)?(k=O,I):(k=O,C=D)}var _=!1,k,C,N=p===void 0?null:p;return[function(){return S(m())},N===null?void 0:function(){return S(N())}]},[m,p,h,g]);var w=r(d,y[0],y[1]);return o(function(){v.hasValue=!0,v.value=w},[w]),u(w),w},lg}var sS;function n5(){return sS||(sS=1,ag.exports=t5()),ag.exports}n5();var r5=E.version.startsWith("19"),i5=Symbol.for(r5?"react.transitional.element":"react.element"),s5=Symbol.for("react.portal"),o5=Symbol.for("react.fragment"),a5=Symbol.for("react.strict_mode"),l5=Symbol.for("react.profiler"),c5=Symbol.for("react.consumer"),u5=Symbol.for("react.context"),Wj=Symbol.for("react.forward_ref"),d5=Symbol.for("react.suspense"),f5=Symbol.for("react.suspense_list"),_0=Symbol.for("react.memo"),m5=Symbol.for("react.lazy"),h5=Wj,p5=_0;function g5(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case i5:switch(e=e.type,e){case o5:case l5:case a5:case d5:case f5:return e;default:switch(e=e&&e.$$typeof,e){case u5:case Wj:case m5:case _0:return e;case c5:return e;default:return t}}case s5:return t}}}function x5(e){return g5(e)===_0}function y5(e,t,n,r,{areStatesEqual:i,areOwnPropsEqual:o,areStatePropsEqual:a}){let u=!1,d,m,p,h,g;function y(k,C){return d=k,m=C,p=e(d,m),h=t(r,m),g=n(p,h,m),u=!0,g}function v(){return p=e(d,m),t.dependsOnOwnProps&&(h=t(r,m)),g=n(p,h,m),g}function w(){return e.dependsOnOwnProps&&(p=e(d,m)),t.dependsOnOwnProps&&(h=t(r,m)),g=n(p,h,m),g}function S(){const k=e(d,m),C=!a(k,p);return p=k,C&&(g=n(p,h,m)),g}function _(k,C){const N=!o(C,m),O=!i(k,d,C,m);return d=k,m=C,N&&O?v():N?w():O?S():g}return function(C,N){return u?_(C,N):y(C,N)}}function v5(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:r,...i}){const o=t(e,i),a=n(e,i),u=r(e,i);return y5(o,a,u,e,i)}function b5(e,t){const n={};for(const r in e){const i=e[r];typeof i=="function"&&(n[r]=(...o)=>t(i(...o)))}return n}function _y(e){return function(n){const r=e(n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function oS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function Yj(e,t){return function(r,{displayName:i}){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=oS(e);let m=o(u,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=oS(m),m=o(u,d)),m},o}}function k0(e,t){return(n,r)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function _5(e){return e&&typeof e=="object"?_y(t=>b5(e,t)):e?typeof e=="function"?Yj(e):k0(e,"mapDispatchToProps"):_y(t=>({dispatch:t}))}function k5(e){return e?typeof e=="function"?Yj(e):k0(e,"mapStateToProps"):_y(()=>({}))}function S5(e,t,n){return{...n,...e,...t}}function w5(e){return function(n,{displayName:r,areMergedPropsEqual:i}){let o=!1,a;return function(d,m,p){const h=e(d,m,p);return o?i(h,a)||(a=h):(o=!0,a=h),a}}}function C5(e){return e?typeof e=="function"?w5(e):k0(e,"mergeProps"):()=>S5}function j5(e){e()}function E5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){j5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var aS={notify(){},get:()=>[]};function Xj(e,t){let n,r=aS,i=0,o=!1;function a(w){p();const S=r.subscribe(w);let _=!1;return()=>{_||(_=!0,S(),h())}}function u(){r.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function p(){i++,n||(n=t?t.addNestedSub(d):e.subscribe(d),r=E5())}function h(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=aS)}function g(){o||(o=!0,p())}function y(){o&&(o=!1,h())}const v={addNestedSub:a,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:y,getListeners:()=>r};return v}var N5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",I5=N5(),T5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",R5=T5(),A5=()=>I5||R5?E.useLayoutEffect:E.useEffect,Mf=A5();function lS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function cg(e,t){if(lS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i=0;ie(...t),n)}function q5(e,t,n,r,i,o){e.current=r,n.current=!1,i.current&&(i.current=null,o())}function W5(e,t,n,r,i,o,a,u,d,m,p){if(!e)return()=>{};let h=!1,g=null;const y=()=>{if(h||!u.current)return;const w=t.getState();let S,_;try{S=r(w,i.current)}catch(k){_=k,g=k}_||(g=null),S===o.current?a.current||m():(o.current=S,d.current=S,a.current=!0,p())};return n.onStateChange=y,n.trySubscribe(),y(),()=>{if(h=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function Y5(e,t){return e===t}function X5(e,t,n,{pure:r,areStatesEqual:i=Y5,areOwnPropsEqual:o=cg,areStatePropsEqual:a=cg,areMergedPropsEqual:u=cg,forwardRef:d=!1,context:m=Zj}={}){const p=m,h=k5(e),g=_5(t),y=C5(n),v=!!e;return S=>{const _=S.displayName||S.name||"Component",k=`Connect(${_})`,C={shouldHandleStateChanges:v,displayName:k,wrappedComponentName:_,WrappedComponent:S,initMapStateToProps:h,initMapDispatchToProps:g,initMergeProps:y,areStatesEqual:i,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:u};function N(D){const[T,L,A]=E.useMemo(()=>{const{reactReduxForwardedRef:we,...Ce}=D;return[D.context,we,Ce]},[D]),M=E.useMemo(()=>{let we=p;return T?.Consumer,we},[T,p]),$=E.useContext(M),W=!!D.store&&!!D.store.getState&&!!D.store.dispatch,B=!!$&&!!$.store,U=W?D.store:$.store,H=B?$.getServerState:U.getState,V=E.useMemo(()=>v5(U.dispatch,C),[U]),[Y,Z]=E.useMemo(()=>{if(!v)return U5;const we=Xj(U,W?void 0:$.subscription),Ce=we.notifyNestedSubs.bind(we);return[we,Ce]},[U,W,$]),q=E.useMemo(()=>W?$:{...$,subscription:Y},[W,$,Y]),G=E.useRef(void 0),J=E.useRef(A),P=E.useRef(void 0),X=E.useRef(!1),ee=E.useRef(!1),te=E.useRef(void 0);Mf(()=>(ee.current=!0,()=>{ee.current=!1}),[]);const re=E.useMemo(()=>()=>P.current&&A===J.current?P.current:V(U.getState(),A),[U,A]),oe=E.useMemo(()=>Ce=>Y?W5(v,U,Y,V,J,G,X,ee,P,Z,Ce):()=>{},[Y]);G5(q5,[J,G,X,A,P,Z]);let de;try{de=E.useSyncExternalStore(oe,re,H?()=>V(H(),A):re)}catch(we){throw te.current&&(we.message+=` +The error may be correlated with this previous error: +${te.current.stack} + +`),we}Mf(()=>{te.current=void 0,P.current=void 0,G.current=de});const se=E.useMemo(()=>E.createElement(S,{...de,ref:L}),[L,S,de]);return E.useMemo(()=>v?E.createElement(M.Provider,{value:q},se):se,[M,se,q])}const I=E.memo(N);if(I.WrappedComponent=S,I.displayName=N.displayName=k,d){const T=E.forwardRef(function(A,M){return E.createElement(I,{...A,reactReduxForwardedRef:M})});return T.displayName=k,T.WrappedComponent=S,ky(T,S)}return ky(I,S)}}var Qj=X5;function K5(e){const{children:t,context:n,serverState:r,store:i}=e,o=E.useMemo(()=>{const d=Xj(i);return{store:i,subscription:d,getServerState:r?()=>r:void 0}},[i,r]),a=E.useMemo(()=>i.getState(),[i]);Mf(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==i.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const u=n||Zj;return E.createElement(u.Provider,{value:o},t)}var Z5=K5,Q5="Invariant failed";function J5(e,t){throw new Error(Q5)}var Ei=function(t){var n=t.top,r=t.right,i=t.bottom,o=t.left,a=r-o,u=i-n,d={top:n,right:r,bottom:i,left:o,width:a,height:u,x:o,y:n,center:{x:(r+o)/2,y:(i+n)/2}};return d},S0=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},fS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},eD=function(t,n){return{top:t.top+n.y,left:t.left+n.x,bottom:t.bottom+n.y,right:t.right+n.x}},ug={top:0,right:0,bottom:0,left:0},w0=function(t){var n=t.borderBox,r=t.margin,i=r===void 0?ug:r,o=t.border,a=o===void 0?ug:o,u=t.padding,d=u===void 0?ug:u,m=Ei(S0(n,i)),p=Ei(fS(n,a)),h=Ei(fS(p,d));return{marginBox:m,borderBox:Ei(n),paddingBox:p,contentBox:h,margin:i,border:a,padding:d}},pi=function(t){var n=t.slice(0,-2),r=t.slice(-2);if(r!=="px")return 0;var i=Number(n);return isNaN(i)&&J5(),i},tD=function(){return{x:window.pageXOffset,y:window.pageYOffset}},Df=function(t,n){var r=t.borderBox,i=t.border,o=t.margin,a=t.padding,u=eD(r,n);return w0({borderBox:u,border:i,margin:o,padding:a})},Of=function(t,n){return n===void 0&&(n=tD()),Df(t,n)},Jj=function(t,n){var r={top:pi(n.marginTop),right:pi(n.marginRight),bottom:pi(n.marginBottom),left:pi(n.marginLeft)},i={top:pi(n.paddingTop),right:pi(n.paddingRight),bottom:pi(n.paddingBottom),left:pi(n.paddingLeft)},o={top:pi(n.borderTopWidth),right:pi(n.borderRightWidth),bottom:pi(n.borderBottomWidth),left:pi(n.borderLeftWidth)};return w0({borderBox:t,margin:r,padding:i,border:o})},eE=function(t){var n=t.getBoundingClientRect(),r=window.getComputedStyle(t);return Jj(n,r)},Jc=function(t){var n=[],r=null,i=function(){for(var a=arguments.length,u=new Array(a),d=0;d{const o=nD(n,i.options);return e.addEventListener(i.eventName,i.fn,o),function(){e.removeEventListener(i.eventName,i.fn,o)}});return function(){r.forEach(o=>{o()})}}const rD="Invariant failed";class zf extends Error{}zf.prototype.toString=function(){return this.message};function Le(e,t){throw new zf(rD)}let iD=class extends St.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=ao,this.onWindowError=n=>{const r=this.getCallbacks();r.isDragging()&&r.tryAbort(),n.error instanceof zf&&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=vi(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof zf){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const sD=` + 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 +`,Pf=e=>e+1,oD=e=>` + You have lifted an item in position ${Pf(e.source.index)} +`,nE=(e,t)=>{const n=e.droppableId===t.droppableId,r=Pf(e.index),i=Pf(t.index);return n?` + You have moved the item from position ${r} + to position ${i} + `:` + You have moved the item from position ${r} + in list ${e.droppableId} + to list ${t.droppableId} + in position ${i} + `},rE=(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} + `,aD=e=>{const t=e.destination;if(t)return nE(e.source,t);const n=e.combine;return n?rE(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},mS=e=>` + The item has returned to its starting position + of ${Pf(e.index)} +`,lD=e=>{if(e.reason==="CANCEL")return` + Movement cancelled. + ${mS(e.source)} + `;const t=e.destination,n=e.combine;return t?` + You have dropped the item. + ${nE(e.source,t)} + `:n?` + You have dropped the item. + ${rE(e.draggableId,e.source,n)} + `:` + The item has been dropped while not over a drop area. + ${mS(e.source)} + `},xf={dragHandleUsageInstructions:sD,onDragStart:oD,onDragUpdate:aD,onDragEnd:lD};function cD(e,t){return!!(e===t||Number.isNaN(e)&&Number.isNaN(t))}function iE(e,t){if(e.length!==t.length)return!1;for(let n=0;n({inputs:t,result:e()}))[0],r=E.useRef(!0),i=E.useRef(n),a=r.current||!!(t&&i.current.inputs&&iE(t,i.current.inputs))?i.current:{inputs:t,result:e()};return E.useEffect(()=>{r.current=!1,i.current=a},[a]),a.result}function st(e,t){return $t(()=>e,t)}const or={x:0,y:0},mr=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),Qr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),lo=(e,t)=>e.x===t.x&&e.y===t.y,kl=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),Fo=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},eu=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),hS=(e,t)=>Math.min(...t.map(n=>eu(e,n))),sE=e=>t=>({x:e(t.x),y:e(t.y)});var uD=(e,t)=>{const n=Ei({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}),pS=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}],dD={top:0,right:0,bottom:0,left:0},fD=(e,t)=>t?vu(e,t.scroll.diff.displacement):e,mD=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,hD=(e,t)=>t&&t.shouldClipSubject?uD(t.pageMarginBox,e):Ei(e);var ol=({page:e,withPlaceholder:t,axis:n,frame:r})=>{const i=fD(e.marginBox,r),o=mD(i,n,t),a=hD(o,r);return{page:e,withPlaceholder:t,active:a}},C0=(e,t)=>{e.frame||Le();const n=e.frame,r=Qr(t,n.scroll.initial),i=kl(r),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:i},max:n.scroll.max}},a=ol({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function sr(e,t=iE){let n=null;function r(...i){if(n&&n.lastThis===this&&t(i,n.lastArgs))return n.lastResult;const o=e.apply(this,i);return n={lastResult:o,lastArgs:i,lastThis:this},o}return r.clear=function(){n=null},r}const oE=sr(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),aE=sr(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),vm=sr(e=>Object.values(e)),pD=sr(e=>Object.values(e));var Sl=sr((e,t)=>pD(t).filter(r=>e===r.descriptor.droppableId).sort((r,i)=>r.descriptor.index-i.descriptor.index));function j0(e){return e.at&&e.at.type==="REORDER"?e.at.destination:null}function bm(e){return e.at&&e.at.type==="COMBINE"?e.at.combine:null}var _m=sr((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),gD=({isMovingForward:e,draggable:t,destination:n,insideDestination:r,previousImpact:i})=>{if(!n.isCombineEnabled||!j0(i))return null;function a(y){const v={type:"COMBINE",combine:{draggableId:y,droppableId:n.descriptor.id}};return{...i,at:v}}const u=i.displaced.all,d=u.length?u[0]:null;if(e)return d?a(d):null;const m=_m(t,r);if(!d){if(!m.length)return null;const y=m[m.length-1];return a(y.descriptor.id)}const p=m.findIndex(y=>y.descriptor.id===d);p===-1&&Le();const h=p-1;if(h<0)return null;const g=m[h];return a(g.descriptor.id)},wl=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const lE={point:or,value:0},tu={invisible:{},visible:{},all:[]},xD={displaced:tu,displacedBy:lE,at:null};var bi=(e,t)=>n=>e<=n&&n<=t,cE=e=>{const t=bi(e.top,e.bottom),n=bi(e.left,e.right);return r=>{if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;const o=t(r.top)||t(r.bottom),a=n(r.left)||n(r.right);if(o&&a)return!0;const d=r.tope.bottom,m=r.lefte.right;return d&&m?!0:d&&a||m&&o}},yD=e=>{const t=bi(e.top,e.bottom),n=bi(e.left,e.right);return r=>t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right)};const E0={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},uE={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"};var vD=e=>t=>{const n=bi(t.top,t.bottom),r=bi(t.left,t.right);return i=>e===E0?n(i.top)&&n(i.bottom):r(i.left)&&r(i.right)};const bD=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:or;return vu(e,n)},_D=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,kD=(e,t,n)=>n(t)(e),N0=({target:e,destination:t,viewport:n,withDroppableDisplacement:r,isVisibleThroughFrameFn:i})=>{const o=r?bD(e,t):e;return _D(o,t,i)&&kD(o,n,i)},SD=e=>N0({...e,isVisibleThroughFrameFn:cE}),dE=e=>N0({...e,isVisibleThroughFrameFn:yD}),wD=e=>N0({...e,isVisibleThroughFrameFn:vD(e.destination.axis)}),CD=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:r,visible:i}=t;if(r[e])return!1;const o=i[e];return o?o.shouldAnimate:!0};function jD(e,t){const n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return Ei(S0(n,r))}function nu({afterDragging:e,destination:t,displacedBy:n,viewport:r,forceShouldAnimate:i,last:o}){return e.reduce(function(u,d){const m=jD(d,n),p=d.descriptor.id;if(u.all.push(p),!SD({target:m,destination:t,viewport:r,withDroppableDisplacement:!0}))return u.invisible[d.descriptor.id]=!0,u;const g=CD(p,o,i),y={draggableId:p,shouldAnimate:g};return u.visible[p]=y,u},{all:[],visible:{},invisible:{}})}function ED(e,t){if(!e.length)return 0;const n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}function gS({insideDestination:e,inHomeList:t,displacedBy:n,destination:r}){const i=ED(e,{inHomeList:t});return{displaced:tu,displacedBy:n,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:i}}}}function Bf({draggable:e,insideDestination:t,destination:n,viewport:r,displacedBy:i,last:o,index:a,forceShouldAnimate:u}){const d=wl(e,n);if(a==null)return gS({insideDestination:t,inHomeList:d,displacedBy:i,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return gS({insideDestination:t,inHomeList:d,displacedBy:i,destination:n});const p=_m(e,t),h=t.indexOf(m),g=p.slice(h);return{displaced:nu({afterDragging:g,destination:n,displacedBy:i,last:o,viewport:r.frame,forceShouldAnimate:u}),displacedBy:i,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function fo(e,t){return!!t.effected[e]}var ND=({isMovingForward:e,destination:t,draggables:n,combine:r,afterCritical:i})=>{if(!t.isCombineEnabled)return null;const o=r.draggableId,u=n[o].descriptor.index;return fo(o,i)?e?u:u-1:e?u+1:u},ID=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:r})=>{if(!n.length)return null;const i=r.index,o=e?i+1:i-1,a=n[0].descriptor.index,u=n[n.length-1].descriptor.index,d=t?u:u+1;return od?null:o},TD=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:r,destination:i,insideDestination:o,previousImpact:a,viewport:u,afterCritical:d})=>{const m=a.at;if(m||Le(),m.type==="REORDER"){const h=ID({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return h==null?null:Bf({draggable:n,insideDestination:o,destination:i,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:h})}const p=ND({isMovingForward:e,destination:i,displaced:a.displaced,draggables:r,combine:m.combine,afterCritical:d});return p==null?null:Bf({draggable:n,insideDestination:o,destination:i,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:p})},RD=({displaced:e,afterCritical:t,combineWith:n,displacedBy:r})=>{const i=!!(e.visible[n]||e.invisible[n]);return fo(n,t)?i?or:kl(r.point):i?r.point:or},AD=({afterCritical:e,impact:t,draggables:n})=>{const r=bm(t);r||Le();const i=r.draggableId,o=n[i].page.borderBox.center,a=RD({displaced:t.displaced,afterCritical:e,combineWith:i,displacedBy:t.displacedBy});return mr(o,a)};const fE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,MD=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,I0=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,xS=({axis:e,moveRelativeTo:t,isMoving:n})=>Fo(e.line,t.marginBox[e.end]+fE(e,n),I0(e,t.marginBox,n)),yS=({axis:e,moveRelativeTo:t,isMoving:n})=>Fo(e.line,t.marginBox[e.start]-MD(e,n),I0(e,t.marginBox,n)),DD=({axis:e,moveInto:t,isMoving:n})=>Fo(e.line,t.contentBox[e.start]+fE(e,n),I0(e,t.contentBox,n));var OD=({impact:e,draggable:t,draggables:n,droppable:r,afterCritical:i})=>{const o=Sl(r.descriptor.id,n),a=t.page,u=r.axis;if(!o.length)return DD({axis:u,moveInto:r.page,isMoving:a});const{displaced:d,displacedBy:m}=e,p=d.all[0];if(p){const g=n[p];if(fo(p,i))return yS({axis:u,moveRelativeTo:g.page,isMoving:a});const y=Df(g.page,m.point);return yS({axis:u,moveRelativeTo:y,isMoving:a})}const h=o[o.length-1];if(h.descriptor.id===t.descriptor.id)return a.borderBox.center;if(fo(h.descriptor.id,i)){const g=Df(h.page,kl(i.displacedBy.point));return xS({axis:u,moveRelativeTo:g,isMoving:a})}return xS({axis:u,moveRelativeTo:h.page,isMoving:a})},Sy=(e,t)=>{const n=e.frame;return n?mr(t,n.scroll.diff.displacement):t};const LD=({impact:e,draggable:t,droppable:n,draggables:r,afterCritical:i})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?OD({impact:e,draggable:t,draggables:r,droppable:n,afterCritical:i}):AD({impact:e,draggables:r,afterCritical:i})};var km=e=>{const t=LD(e),n=e.droppable;return n?Sy(n,t):t},mE=(e,t)=>{const n=Qr(t,e.scroll.initial),r=kl(n);return{frame:Ei({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:r}}}};function vS(e,t){return e.map(n=>t[n])}function zD(e,t){for(let n=0;n{const o=mE(t,mr(t.scroll.current,i)),a=n.frame?C0(n,mr(n.frame.scroll.current,i)):n,u=e.displaced,d=nu({afterDragging:vS(u.all,r),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:u,forceShouldAnimate:!1}),m=nu({afterDragging:vS(u.all,r),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:u,forceShouldAnimate:!1}),p={},h={},g=[u,d,m];return u.all.forEach(v=>{const w=zD(v,g);if(w){h[v]=w;return}p[v]=!0}),{...e,displaced:{all:u.all,invisible:p,visible:h}}},BD=(e,t)=>mr(e.scroll.diff.displacement,t),T0=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const r=BD(n,e),i=Qr(r,t.page.borderBox.center);return mr(t.client.borderBox.center,i)},hE=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:r,withDroppableDisplacement:i,onlyOnMainAxis:o=!1})=>{const a=Qr(n,e.page.borderBox.center),d={target:vu(e.page.borderBox,a),destination:t,withDroppableDisplacement:i,viewport:r};return o?wD(d):dE(d)},$D=({isMovingForward:e,draggable:t,destination:n,draggables:r,previousImpact:i,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:u,afterCritical:d})=>{if(!n.isEnabled)return null;const m=Sl(n.descriptor.id,r),p=wl(t,n),h=gD({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:i})||TD({isMovingForward:e,isInHomeList:p,draggable:t,draggables:r,destination:n,insideDestination:m,previousImpact:i,viewport:o,afterCritical:d});if(!h)return null;const g=km({impact:h,draggable:t,droppable:n,draggables:r,afterCritical:d});if(hE({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:T0({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:h,scrollJumpRequest:null};const v=Qr(g,a),w=PD({impact:h,viewport:o,destination:n,draggables:r,maxScrollChange:v});return{clientSelection:u,impact:w,scrollJumpRequest:v}};const Er=e=>{const t=e.subject.active;return t||Le(),t};var HD=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:r,viewport:i})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,u=bi(o[a.start],o[a.end]),d=vm(r).filter(p=>p!==n).filter(p=>p.isEnabled).filter(p=>!!p.subject.active).filter(p=>cE(i.frame)(Er(p))).filter(p=>{const h=Er(p);return e?o[a.crossAxisEnd]{const h=Er(p),g=bi(h[a.start],h[a.end]);return u(h[a.start])||u(h[a.end])||g(o[a.start])||g(o[a.end])}).sort((p,h)=>{const g=Er(p)[a.crossAxisStart],y=Er(h)[a.crossAxisStart];return e?g-y:y-g}).filter((p,h,g)=>Er(p)[a.crossAxisStart]===Er(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(p=>bi(Er(p)[a.start],Er(p)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((p,h)=>Er(p)[a.start]-Er(h)[a.start])[0]:d.sort((p,h)=>{const g=hS(t,pS(Er(p))),y=hS(t,pS(Er(h)));return g!==y?g-y:Er(p)[a.start]-Er(h)[a.start]})[0]};const bS=(e,t)=>{const n=e.page.borderBox.center;return fo(e.descriptor.id,t)?Qr(n,t.displacedBy.point):n},FD=(e,t)=>{const n=e.page.borderBox;return fo(e.descriptor.id,t)?vu(n,kl(t.displacedBy.point)):n};var VD=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:r,afterCritical:i})=>r.filter(a=>dE({target:FD(a,i),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,u)=>{const d=eu(e,Sy(n,bS(a,i))),m=eu(e,Sy(n,bS(u,i)));return d{const r=e.axis;if(e.descriptor.mode==="virtual")return Fo(r.line,t[r.line]);const i=e.subject.page.contentBox[r.size],d=Sl(e.descriptor.id,n).reduce((m,p)=>m+p.client.marginBox[r.size],0)+t[r.line]-i;return d<=0?null:Fo(r.line,d)},pE=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),gE=(e,t,n)=>{const r=e.frame;wl(t,e)&&Le(),e.subject.withPlaceholder&&Le();const i=bu(e.axis,t.displaceBy).point,o=UD(e,i,n),a={placeholderSize:i,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r){const p=ol({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:p}}const u=o?mr(r.scroll.max,o):r.scroll.max,d=pE(r,u),m=ol({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},GD=e=>{const t=e.subject.withPlaceholder;t||Le();const n=e.frame;if(!n){const a=ol({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const r=t.oldFrameMaxScroll;r||Le();const i=pE(n,r),o=ol({page:e.subject.page,axis:e.axis,frame:i,withPlaceholder:null});return{...e,subject:o,frame:i}};var qD=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:r,draggables:i,destination:o,viewport:a,afterCritical:u})=>{if(!t){if(n.length)return null;const h={displaced:tu,displacedBy:lE,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=km({impact:h,draggable:r,droppable:o,draggables:i,afterCritical:u}),y=wl(r,o)?o:gE(o,r,i);return hE({draggable:r,destination:y,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?h:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const h=t.descriptor.index;return t.descriptor.id===r.descriptor.id||d?h:h+1})(),p=bu(o.axis,r.displaceBy);return Bf({draggable:r,insideDestination:n,destination:o,viewport:a,displacedBy:p,last:tu,index:m})},WD=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:r,draggables:i,droppables:o,viewport:a,afterCritical:u})=>{const d=HD({isMovingForward:e,pageBorderBoxCenter:t,source:r,droppables:o,viewport:a});if(!d)return null;const m=Sl(d.descriptor.id,i),p=VD({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:u}),h=qD({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:i,moveRelativeTo:p,insideDestination:m,viewport:a,afterCritical:u});if(!h)return null;const g=km({impact:h,draggable:n,droppable:d,draggables:i,afterCritical:u});return{clientSelection:T0({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:h,scrollJumpRequest:null}},Jr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const YD=(e,t)=>{const n=Jr(e);return n?t[n]:null};var XD=({state:e,type:t})=>{const n=YD(e.impact,e.dimensions.droppables),r=!!n,i=e.dimensions.droppables[e.critical.droppable.id],o=n||i,a=o.axis.direction,u=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(u&&!r)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],p=e.current.page.borderBoxCenter,{draggables:h,droppables:g}=e.dimensions;return u?$D({isMovingForward:d,previousPageBorderBoxCenter:p,draggable:m,destination:o,draggables:h,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):WD({isMovingForward:d,previousPageBorderBoxCenter:p,draggable:m,isOver:o,draggables:h,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function Lo(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function xE(e){const t=bi(e.top,e.bottom),n=bi(e.left,e.right);return function(i){return t(i.y)&&n(i.x)}}function KD(e,t){return e.leftt.left&&e.topt.top}function ZD({pageBorderBox:e,draggable:t,candidates:n}){const r=t.page.borderBox.center,i=n.map(o=>{const a=o.axis,u=Fo(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:eu(r,u)}}).sort((o,a)=>a.distance-o.distance);return i[0]?i[0].id:null}function QD({pageBorderBox:e,draggable:t,droppables:n}){const r=vm(n).filter(i=>{if(!i.isEnabled)return!1;const o=i.subject.active;if(!o||!KD(e,o))return!1;if(xE(o)(e.center))return!0;const a=i.axis,u=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],p=bi(o[a.crossAxisStart],o[a.crossAxisEnd]),h=p(d),g=p(m);return!h&&!g?!0:h?du});return r.length?r.length===1?r[0].descriptor.id:ZD({pageBorderBox:e,draggable:t,candidates:r}):null}const yE=(e,t)=>Ei(vu(e,t));var JD=(e,t)=>{const n=e.frame;return n?yE(t,n.scroll.diff.value):t};function vE({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function eO({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var tO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:r,last:i,viewport:o,afterCritical:a})=>{const u=n.axis,d=bu(n.axis,t.displaceBy),m=d.value,p=e[u.start],h=e[u.end],y=_m(t,r).find(w=>{const S=w.descriptor.id,_=w.page.borderBox.center[u.line],k=fo(S,a),C=vE({displaced:i,id:S});return k?C?h<=_:p<_-m:C?h<=_+m:p<_})||null,v=eO({draggable:t,closest:y,inHomeList:wl(t,n)});return Bf({draggable:t,insideDestination:r,destination:n,viewport:o,last:i,displacedBy:d,index:v})};const nO=4;var rO=({draggable:e,pageBorderBoxWithDroppableScroll:t,previousImpact:n,destination:r,insideDestination:i,afterCritical:o})=>{if(!r.isCombineEnabled)return null;const a=r.axis,u=bu(r.axis,e.displaceBy),d=u.value,m=t[a.start],p=t[a.end],g=_m(e,i).find(v=>{const w=v.descriptor.id,S=v.page.borderBox,k=S[a.size]/nO,C=fo(w,o),N=vE({displaced:n.displaced,id:w});return C?N?p>S[a.start]+k&&pS[a.start]-d+k&&mS[a.start]+d+k&&pS[a.start]+k&&m{const u=yE(t.page.borderBox,e),d=QD({pageBorderBox:u,draggable:t,droppables:r});if(!d)return xD;const m=r[d],p=Sl(m.descriptor.id,n),h=JD(m,u);return rO({pageBorderBoxWithDroppableScroll:h,draggable:t,previousImpact:i,destination:m,insideDestination:p,afterCritical:a})||tO({pageBorderBoxWithDroppableScroll:h,draggable:t,destination:m,insideDestination:p,last:i.displaced,viewport:o,afterCritical:a})},R0=(e,t)=>({...e,[t.descriptor.id]:t});const iO=({previousImpact:e,impact:t,droppables:n})=>{const r=Jr(e),i=Jr(t);if(!r||r===i)return n;const o=n[r];if(!o.subject.withPlaceholder)return n;const a=GD(o);return R0(n,a)};var sO=({draggable:e,draggables:t,droppables:n,previousImpact:r,impact:i})=>{const o=iO({previousImpact:r,impact:i,droppables:n}),a=Jr(i);if(!a)return o;const u=n[a];if(wl(e,u)||u.subject.withPlaceholder)return o;const d=gE(u,e,t);return R0(o,d)},Hc=({state:e,clientSelection:t,dimensions:n,viewport:r,impact:i,scrollJumpRequest:o})=>{const a=r||e.viewport,u=n||e.dimensions,d=t||e.current.client.selection,m=Qr(d,e.initial.client.selection),p={offset:m,selection:d,borderBoxCenter:mr(e.initial.client.borderBoxCenter,m)},h={selection:mr(p.selection,a.scroll.current),borderBoxCenter:mr(p.borderBoxCenter,a.scroll.current),offset:mr(p.offset,a.scroll.diff.value)},g={client:p,page:h};if(e.phase==="COLLECTING")return{...e,dimensions:u,viewport:a,current:g};const y=u.draggables[e.critical.draggable.id],v=i||bE({pageOffset:h.offset,draggable:y,draggables:u.draggables,droppables:u.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),w=sO({draggable:y,impact:v,previousImpact:e.impact,draggables:u.draggables,droppables:u.droppables});return{...e,current:g,dimensions:{draggables:u.draggables,droppables:w},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function oO(e,t){return e.map(n=>t[n])}var _E=({impact:e,viewport:t,draggables:n,destination:r,forceShouldAnimate:i})=>{const o=e.displaced,a=oO(o.all,n),u=nu({afterDragging:a,destination:r,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:i,last:o});return{...e,displaced:u}},kE=({impact:e,draggable:t,droppable:n,draggables:r,viewport:i,afterCritical:o})=>{const a=km({impact:e,draggable:t,draggables:r,droppable:n,afterCritical:o});return T0({pageBorderBoxCenter:a,draggable:t,viewport:i})},SE=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&Le();const r=e.impact,i=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:u}=o,d=a[e.critical.draggable.id],m=Jr(r);m||Le();const p=u[m],h=_E({impact:r,viewport:i,destination:p,draggables:a}),g=kE({impact:h,draggable:d,droppable:p,draggables:a,viewport:i,afterCritical:e.afterCritical});return Hc({impact:h,clientSelection:g,state:e,dimensions:o,viewport:i})},aO=e=>({index:e.index,droppableId:e.droppableId}),wE=({draggable:e,home:t,draggables:n,viewport:r})=>{const i=bu(t.axis,e.displaceBy),o=Sl(t.descriptor.id,n),a=o.indexOf(e);a===-1&&Le();const u=o.slice(a+1),d=u.reduce((g,y)=>(g[y.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:i,effected:d};return{impact:{displaced:nu({afterDragging:u,destination:t,displacedBy:i,last:null,viewport:r.frame,forceShouldAnimate:!1}),displacedBy:i,at:{type:"REORDER",destination:aO(e.descriptor)}},afterCritical:m}},lO=(e,t)=>({draggables:e.draggables,droppables:R0(e.droppables,t)}),cO=({draggable:e,offset:t,initialWindowScroll:n})=>{const r=Df(e.client,t),i=Of(r,n);return{...e,placeholder:{...e.placeholder,client:r},client:r,page:i}},uO=e=>{const t=e.frame;return t||Le(),t},dO=({additions:e,updatedDroppables:t,viewport:n})=>{const r=n.scroll.diff.value;return e.map(i=>{const o=i.descriptor.droppableId,a=t[o],d=uO(a).scroll.diff.value,m=mr(r,d);return cO({draggable:i,offset:m,initialWindowScroll:n.scroll.initial})})},fO=({state:e,published:t})=>{const n=t.modified.map(_=>{const k=e.dimensions.droppables[_.droppableId];return C0(k,_.scroll)}),r={...e.dimensions.droppables,...oE(n)},i=aE(dO({additions:t.additions,updatedDroppables:r,viewport:e.viewport})),o={...e.dimensions.draggables,...i};t.removals.forEach(_=>{delete o[_]});const a={droppables:r,draggables:o},u=Jr(e.impact),d=u?a.droppables[u]:null,m=a.draggables[e.critical.draggable.id],p=a.droppables[e.critical.droppable.id],{impact:h,afterCritical:g}=wE({draggable:m,home:p,draggables:o,viewport:e.viewport}),y=d&&d.isCombineEnabled?e.impact:h,v=bE({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:y,viewport:e.viewport,afterCritical:g}),w={...e,phase:"DRAGGING",impact:v,onLiftImpact:h,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?w:{...w,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const wy=e=>e.movementMode==="SNAP",dg=(e,t,n)=>{const r=lO(e.dimensions,t);return!wy(e)||n?Hc({state:e,dimensions:r}):SE({state:e,dimensions:r})};function fg(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const _S={phase:"IDLE",completed:null,shouldFlush:!1};var mO=(e=_S,t)=>{if(t.type==="FLUSH")return{..._S,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&Le();const{critical:n,clientSelection:r,viewport:i,dimensions:o,movementMode:a}=t.payload,u=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:r,borderBoxCenter:u.client.borderBox.center,offset:or},p={client:m,page:{selection:mr(m.selection,i.scroll.initial),borderBoxCenter:mr(m.selection,i.scroll.initial),offset:mr(m.selection,i.scroll.diff.value)}},h=vm(o.droppables).every(w=>!w.isFixedOnPage),{impact:g,afterCritical:y}=wE({draggable:u,home:d,draggables:o.draggables,viewport:i});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:p,current:p,isWindowScrollAllowed:h,impact:g,afterCritical:y,onLiftImpact:g,viewport:i,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&Le(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||Le(),fO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{client:n}=t.payload;return lo(n,e.current.client.selection)?e:Hc({state:e,clientSelection:n,impact:wy(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return fg(e);Lo(e)||Le();const{id:n,newScroll:r}=t.payload,i=e.dimensions.droppables[n];if(!i)return e;const o=C0(i,r);return dg(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{id:n,isEnabled:r}=t.payload,i=e.dimensions.droppables[n];i||Le(),i.isEnabled===r&&Le();const o={...i,isEnabled:r};return dg(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{id:n,isCombineEnabled:r}=t.payload,i=e.dimensions.droppables[n];i||Le(),i.isCombineEnabled===r&&Le();const o={...i,isCombineEnabled:r};return dg(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;Lo(e)||Le(),e.isWindowScrollAllowed||Le();const n=t.payload.newScroll;if(lo(e.viewport.scroll.current,n))return fg(e);const r=mE(e.viewport,n);return wy(e)?SE({state:e,viewport:r}):Hc({state:e,viewport:r})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!Lo(e))return e;const n=t.payload.maxScroll;if(lo(n,e.viewport.scroll.max))return e;const r={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:r}}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"&&Le();const n=XD({state:e,type:t.type});return n?Hc({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"&&Le(),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:n}}if(t.type==="DROP_ANIMATE"){const{completed:n,dropDuration:r,newHomeClientOffset:i}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||Le(),{phase:"DROP_ANIMATING",completed:n,dropDuration:r,newHomeClientOffset:i,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function nn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const hO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),pO=e=>({type:"LIFT",payload:e}),gO=e=>({type:"INITIAL_PUBLISH",payload:e}),xO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),yO=()=>({type:"COLLECTION_STARTING",payload:null}),vO=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),bO=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),_O=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),CE=e=>({type:"MOVE",payload:e}),kO=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),SO=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),wO=()=>({type:"MOVE_UP",payload:null}),CO=()=>({type:"MOVE_DOWN",payload:null}),jO=()=>({type:"MOVE_RIGHT",payload:null}),EO=()=>({type:"MOVE_LEFT",payload:null}),A0=()=>({type:"FLUSH",payload:null}),NO=e=>({type:"DROP_ANIMATE",payload:e}),M0=e=>({type:"DROP_COMPLETE",payload:e}),jE=e=>({type:"DROP",payload:e}),IO=e=>({type:"DROP_PENDING",payload:e}),EE=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var TO=e=>({getState:t,dispatch:n})=>r=>i=>{if(!nn(i,"LIFT")){r(i);return}const{id:o,clientSelection:a,movementMode:u}=i.payload,d=t();d.phase==="DROP_ANIMATING"&&n(M0({completed:d.completed})),t().phase!=="IDLE"&&Le(),n(A0()),n(hO({draggableId:o,movementMode:u}));const p={draggableId:o,scrollOptions:{shouldPublishImmediately:u==="SNAP"}},{critical:h,dimensions:g,viewport:y}=e.startPublishing(p);n(gO({critical:h,dimensions:g,clientSelection:a,movementMode:u,viewport:y}))},RO=e=>()=>t=>n=>{nn(n,"INITIAL_PUBLISH")&&e.dragging(),nn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(nn(n,"FLUSH")||nn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const D0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},ru={opacity:{drop:0,combining:.7},scale:{drop:.75}},NE={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Ao=`${NE.outOfTheWay}s ${D0.outOfTheWay}`,Fc={fluid:`opacity ${Ao}`,snap:`transform ${Ao}, opacity ${Ao}`,drop:e=>{const t=`${e}s ${D0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Ao}`,placeholder:`height ${Ao}, width ${Ao}, margin ${Ao}`},kS=e=>lo(e,or)?void 0:`translate(${e.x}px, ${e.y}px)`,Cy={moveTo:kS,drop:(e,t)=>{const n=kS(e);if(n)return t?`${n} scale(${ru.scale.drop})`:n}},{minDropTime:jy,maxDropTime:IE}=NE,AO=IE-jy,SS=1500,MO=.6;var DO=({current:e,destination:t,reason:n})=>{const r=eu(e,t);if(r<=0)return jy;if(r>=SS)return IE;const i=r/SS,o=jy+AO*i,a=n==="CANCEL"?o*MO:o;return Number(a.toFixed(2))},OO=({impact:e,draggable:t,dimensions:n,viewport:r,afterCritical:i})=>{const{draggables:o,droppables:a}=n,u=Jr(e),d=u?a[u]:null,m=a[t.descriptor.droppableId],p=kE({impact:e,draggable:t,draggables:o,afterCritical:i,droppable:d||m,viewport:r});return Qr(p,t.client.borderBox.center)},LO=({draggables:e,reason:t,lastImpact:n,home:r,viewport:i,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:_E({draggables:e,impact:o,destination:r,viewport:i,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:tu},didDropInsideDroppable:!0};const zO=({getState:e,dispatch:t})=>n=>r=>{if(!nn(r,"DROP")){n(r);return}const i=e(),o=r.payload.reason;if(i.phase==="COLLECTING"){t(IO({reason:o}));return}if(i.phase==="IDLE")return;i.phase==="DROP_PENDING"&&i.isWaiting&&Le(),i.phase==="DRAGGING"||i.phase==="DROP_PENDING"||Le();const u=i.critical,d=i.dimensions,m=d.draggables[i.critical.draggable.id],{impact:p,didDropInsideDroppable:h}=LO({reason:o,lastImpact:i.impact,afterCritical:i.afterCritical,onLiftImpact:i.onLiftImpact,home:i.dimensions.droppables[i.critical.droppable.id],viewport:i.viewport,draggables:i.dimensions.draggables}),g=h?j0(p):null,y=h?bm(p):null,v={index:u.draggable.index,droppableId:u.droppable.id},w={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:i.movementMode,destination:g,combine:y},S=OO({impact:p,draggable:m,dimensions:d,viewport:i.viewport,afterCritical:i.afterCritical}),_={critical:i.critical,afterCritical:i.afterCritical,result:w,impact:p};if(!(!lo(i.current.client.offset,S)||!!w.combine)){t(M0({completed:_}));return}const C=DO({current:i.current.client.offset,destination:S,reason:o});t(NO({newHomeClientOffset:S,dropDuration:C,completed:_}))};var TE=()=>({x:window.pageXOffset,y:window.pageYOffset});function PO(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function BO({onWindowScroll:e}){function t(){e(TE())}const n=Jc(t),r=PO(n);let i=ao;function o(){return i!==ao}function a(){o()&&Le(),i=vi(window,[r])}function u(){o()||Le(),n.cancel(),i(),i=ao}return{start:a,stop:u,isActive:o}}const $O=e=>nn(e,"DROP_COMPLETE")||nn(e,"DROP_ANIMATE")||nn(e,"FLUSH"),HO=e=>{const t=BO({onWindowScroll:n=>{e.dispatch(kO({newScroll:n}))}});return n=>r=>{!t.isActive()&&nn(r,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&$O(r)&&t.stop(),n(r)}};var FO=e=>{let t=!1,n=!1;const r=setTimeout(()=>{n=!0}),i=o=>{t||n||(t=!0,e(o),clearTimeout(r))};return i.wasCalled=()=>t,i},VO=()=>{const e=[],t=i=>{const o=e.findIndex(u=>u.timerId===i);o===-1&&Le();const[a]=e.splice(o,1);a.callback()};return{add:i=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:i};e.push(a)},flush:()=>{if(!e.length)return;const i=[...e];e.length=0,i.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const UO=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,GO=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,qO=(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,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r},vc=(e,t)=>{t()},Hd=(e,t)=>({draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t});function mg(e,t,n,r){if(!e){n(r(t));return}const i=FO(n);e(t,{announce:i}),i.wasCalled()||n(r(t))}var WO=(e,t)=>{const n=VO();let r=null;const i=(h,g)=>{r&&Le(),vc("onBeforeCapture",()=>{const y=e().onBeforeCapture;y&&y({draggableId:h,mode:g})})},o=(h,g)=>{r&&Le(),vc("onBeforeDragStart",()=>{const y=e().onBeforeDragStart;y&&y(Hd(h,g))})},a=(h,g)=>{r&&Le();const y=Hd(h,g);r={mode:g,lastCritical:h,lastLocation:y.source,lastCombine:null},n.add(()=>{vc("onDragStart",()=>mg(e().onDragStart,y,t,xf.onDragStart))})},u=(h,g)=>{const y=j0(g),v=bm(g);r||Le();const w=!qO(h,r.lastCritical);w&&(r.lastCritical=h);const S=!UO(r.lastLocation,y);S&&(r.lastLocation=y);const _=!GO(r.lastCombine,v);if(_&&(r.lastCombine=v),!w&&!S&&!_)return;const k={...Hd(h,r.mode),combine:v,destination:y};n.add(()=>{vc("onDragUpdate",()=>mg(e().onDragUpdate,k,t,xf.onDragUpdate))})},d=()=>{r||Le(),n.flush()},m=h=>{r||Le(),r=null,vc("onDragEnd",()=>mg(e().onDragEnd,h,t,xf.onDragEnd))};return{beforeCapture:i,beforeStart:o,start:a,update:u,flush:d,drop:m,abort:()=>{if(!r)return;const h={...Hd(r.lastCritical,r.mode),combine:null,destination:null,reason:"CANCEL"};m(h)}}},YO=(e,t)=>{const n=WO(e,t);return r=>i=>o=>{if(nn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(nn(o,"INITIAL_PUBLISH")){const u=o.payload.critical;n.beforeStart(u,o.payload.movementMode),i(o),n.start(u,o.payload.movementMode);return}if(nn(o,"DROP_COMPLETE")){const u=o.payload.completed.result;n.flush(),i(o),n.drop(u);return}if(i(o),nn(o,"FLUSH")){n.abort();return}const a=r.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const XO=e=>t=>n=>{if(!nn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const r=e.getState();r.phase!=="DROP_ANIMATING"&&Le(),e.dispatch(M0({completed:r.completed}))},KO=e=>{let t=null,n=null;function r(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return i=>o=>{if((nn(o,"FLUSH")||nn(o,"DROP_COMPLETE")||nn(o,"DROP_ANIMATION_FINISHED"))&&r(),i(o),!nn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(EE())}};n=requestAnimationFrame(()=>{n=null,t=vi(window,[a])})}};var ZO=e=>()=>t=>n=>{(nn(n,"DROP_COMPLETE")||nn(n,"FLUSH")||nn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},QO=e=>{let t=!1;return()=>n=>r=>{if(nn(r,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),e.tryRestoreFocusRecorded();return}if(n(r),!!t){if(nn(r,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(nn(r,"DROP_COMPLETE")){t=!1;const i=r.payload.completed.result;i.combine&&e.tryShiftRecord(i.draggableId,i.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const JO=e=>nn(e,"DROP_COMPLETE")||nn(e,"DROP_ANIMATE")||nn(e,"FLUSH");var eL=e=>t=>n=>r=>{if(JO(r)){e.stop(),n(r);return}if(nn(r,"INITIAL_PUBLISH")){n(r);const i=t.getState();i.phase!=="DRAGGING"&&Le(),e.start(i);return}n(r),e.scroll(t.getState())};const tL=e=>t=>n=>{if(t(n),!nn(n,"PUBLISH_WHILE_DRAGGING"))return;const r=e.getState();r.phase==="DROP_PENDING"&&(r.isWaiting||e.dispatch(jE({reason:r.reason})))},nL=qj;var rL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:r,announce:i,autoScroller:o})=>Gj(mO,nL(e5(RO(n),ZO(e),TO(e),zO,XO,KO,tL,eL(o),HO,QO(t),YO(r,i))));const hg=()=>({additions:{},removals:{},modified:{}});function iL({registry:e,callbacks:t}){let n=hg(),r=null;const i=()=>{r||(t.collectionStarting(),r=requestAnimationFrame(()=>{r=null;const{additions:d,removals:m,modified:p}=n,h=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(or)).sort((v,w)=>v.descriptor.index-w.descriptor.index),g=Object.keys(p).map(v=>{const S=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:S}}),y={additions:h,removals:Object.keys(m),modified:g};n=hg(),t.publish(y)}))};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],i()},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],i()},stop:()=>{r&&(cancelAnimationFrame(r),r=null,n=hg())}}}var RE=({scrollHeight:e,scrollWidth:t,height:n,width:r})=>{const i=Qr({x:t,y:e},{x:r,y:n});return{x:Math.max(0,i.x),y:Math.max(0,i.y)}},AE=()=>{const e=document.documentElement;return e||Le(),e},ME=()=>{const e=AE();return RE({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},sL=()=>{const e=TE(),t=ME(),n=e.y,r=e.x,i=AE(),o=i.clientWidth,a=i.clientHeight,u=r+o,d=n+a;return{frame:Ei({top:n,left:r,right:u,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:or,displacement:or}}}},oL=({critical:e,scrollOptions:t,registry:n})=>{const r=sL(),i=r.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(p=>p.callbacks.getDimensionAndWatchScroll(i,t)),u=n.draggable.getAllByType(e.draggable.type).map(p=>p.getDimension(i));return{dimensions:{draggables:aE(u),droppables:oE(a)},critical:e,viewport:r}};function wS(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var aL=(e,t)=>{let n=null;const r=iL({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),i=(g,y)=>{e.droppable.exists(g)||Le(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:y})},o=(g,y)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:y}))},a=(g,y)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableScroll({id:g,newScroll:y}))},u=(g,y)=>{n&&e.droppable.getById(g).callbacks.scroll(y)},d=()=>{if(!n)return;r.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(y=>y.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||Le();const y=n.critical.draggable;g.type==="ADDITION"&&wS(e,y,g.value)&&r.add(g.value),g.type==="REMOVAL"&&wS(e,y,g.value)&&r.remove(g.value)};return{updateDroppableIsEnabled:i,updateDroppableIsCombineEnabled:o,scrollDroppable:u,updateDroppableScroll:a,startPublishing:g=>{n&&Le();const y=e.draggable.getById(g.draggableId),v=e.droppable.getById(y.descriptor.droppableId),w={draggable:y.descriptor,droppable:v.descriptor},S=e.subscribe(m);return n={critical:w,unsubscribe:S},oL({critical:w,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},DE=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",lL=e=>{window.scrollBy(e.x,e.y)};const cL=sr(e=>vm(e).filter(t=>!(!t.isEnabled||!t.frame))),uL=(e,t)=>cL(t).find(r=>(r.frame||Le(),xE(r.frame.pageMarginBox)(e)))||null;var dL=({center:e,destination:t,droppables:n})=>{if(t){const i=n[t];return i.frame?i:null}return uL(e,n)};const iu={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var fL=(e,t,n=()=>iu)=>{const r=n(),i=e[t.size]*r.startFromPercentage,o=e[t.size]*r.maxScrollAtPercentage;return{startScrollingFrom:i,maxScrollValueAt:o}},OE=({startOfRange:e,endOfRange:t,current:n})=>{const r=t-e;return r===0?0:(n-e)/r},O0=1,mL=(e,t,n=()=>iu)=>{const r=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return r.maxPixelScroll;if(e===t.startScrollingFrom)return O0;const o=1-OE({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=r.maxPixelScroll*r.ease(o);return Math.ceil(a)},hL=(e,t,n)=>{const r=n(),i=r.durationDampening.accelerateAt,o=r.durationDampening.stopDampeningAt,a=t,u=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=mL(e,t,i);return o===0?0:r?Math.max(hL(o,n,i),O0):o},jS=({container:e,distanceToEdges:t,dragStartTime:n,axis:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=fL(e,r,o);return t[r.end]{const r=t.height>e.height,i=t.width>e.width;return!i&&!r?n:i&&r?null:{x:i?0:n.x,y:r?0:n.y}};const gL=sE(e=>e===0?0:e);var LE=({dragStartTime:e,container:t,subject:n,center:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a={top:r.y-t.top,right:t.right-r.x,bottom:t.bottom-r.y,left:r.x-t.left},u=jS({container:t,distanceToEdges:a,dragStartTime:e,axis:E0,shouldUseTimeDampening:i,getAutoScrollerOptions:o}),d=jS({container:t,distanceToEdges:a,dragStartTime:e,axis:uE,shouldUseTimeDampening:i,getAutoScrollerOptions:o}),m=gL({x:d,y:u});if(lo(m,or))return null;const p=pL({container:t,subject:n,proposedScroll:m});return p?lo(p,or)?null:p:null};const xL=sE(e=>e===0?0:e>0?1:-1),L0=(()=>{const e=(t,n)=>t<0?t:t>n?t-n:0;return({current:t,max:n,change:r})=>{const i=mr(t,r),o={x:e(i.x,n.x),y:e(i.y,n.y)};return lo(o,or)?null:o}})(),zE=({max:e,current:t,change:n})=>{const r={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},i=xL(n),o=L0({max:r,current:t,change:i});return!o||i.x!==0&&o.x===0||i.y!==0&&o.y===0},z0=(e,t)=>zE({current:e.scroll.current,max:e.scroll.max,change:t}),yL=(e,t)=>{if(!z0(e,t))return null;const n=e.scroll.max,r=e.scroll.current;return L0({current:r,max:n,change:t})},P0=(e,t)=>{const n=e.frame;return n?zE({current:n.scroll.current,max:n.scroll.max,change:t}):!1},vL=(e,t)=>{const n=e.frame;return!n||!P0(e,t)?null:L0({current:n.scroll.current,max:n.scroll.max,change:t})};var bL=({viewport:e,subject:t,center:n,dragStartTime:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=LE({dragStartTime:r,container:e.frame,subject:t,center:n,shouldUseTimeDampening:i,getAutoScrollerOptions:o});return a&&z0(e,a)?a:null},_L=({droppable:e,subject:t,center:n,dragStartTime:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const u=LE({dragStartTime:r,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:i,getAutoScrollerOptions:o});return u&&P0(e,u)?u:null},ES=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:r,scrollDroppable:i,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const h=e.viewport,g=bL({dragStartTime:t,viewport:h,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){r(g);return}}const m=dL({center:a,destination:Jr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const p=_L({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});p&&i(m.descriptor.id,p)},kL=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>iu})=>{const r=Jc(e),i=Jc(t);let o=null;const a=m=>{o||Le();const{shouldUseTimeDampening:p,dragStartTime:h}=o;ES({state:m,scrollWindow:r,scrollDroppable:i,dragStartTime:h,shouldUseTimeDampening:p,getAutoScrollerOptions:n})};return{start:m=>{o&&Le();const p=Date.now();let h=!1;const g=()=>{h=!0};ES({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:p,shouldUseTimeDampening:h},h&&a(m)},stop:()=>{o&&(r.cancel(),i.cancel(),o=null)},scroll:a}},SL=({move:e,scrollDroppable:t,scrollWindow:n})=>{const r=(u,d)=>{const m=mr(u.current.client.selection,d);e({client:m})},i=(u,d)=>{if(!P0(u,d))return d;const m=vL(u,d);if(!m)return t(u.descriptor.id,d),null;const p=Qr(d,m);return t(u.descriptor.id,p),Qr(d,p)},o=(u,d,m)=>{if(!u||!z0(d,m))return m;const p=yL(d,m);if(!p)return n(m),null;const h=Qr(m,p);return n(h),Qr(m,h)};return u=>{const d=u.scrollJumpRequest;if(!d)return;const m=Jr(u.impact);m||Le();const p=i(u.dimensions.droppables[m],d);if(!p)return;const h=u.viewport,g=o(u.isWindowScrollAllowed,h,p);g&&r(u,g)}},wL=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:r})=>{const i=kL({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:r}),o=SL({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(r().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){i.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:i.start,stop:i.stop}};const al="data-rfd",ll=(()=>{const e=`${al}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),Ey=(()=>{const e=`${al}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),CL=(()=>{const e=`${al}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),NS={contextId:`${al}-scroll-container-context-id`},jL=e=>t=>`[${t}="${e}"]`,bc=(e,t)=>e.map(n=>{const r=n.styles[t];return r?`${n.selector} { ${r} }`:""}).join(" "),EL="pointer-events: none;";var NL=e=>{const t=jL(e),n=(()=>{const u=` + cursor: -webkit-grab; + cursor: grab; + `;return{selector:t(ll.contextId),styles:{always:` + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0,0,0,0); + touch-action: manipulation; + `,resting:u,dragging:EL,dropAnimating:u}}})(),r=(()=>{const u=` + transition: ${Fc.outOfTheWay}; + `;return{selector:t(Ey.contextId),styles:{dragging:u,dropAnimating:u,userCancel:u}}})(),i={selector:t(CL.contextId),styles:{always:"overflow-anchor: none;"}},a=[r,n,i,{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:bc(a,"always"),resting:bc(a,"resting"),dragging:bc(a,"dragging"),dropAnimating:bc(a,"dropAnimating"),userCancel:bc(a,"userCancel")}};const ei=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?E.useLayoutEffect:E.useEffect,pg=()=>{const e=document.querySelector("head");return e||Le(),e},IS=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function IL(e,t){const n=$t(()=>NL(e),[e]),r=E.useRef(null),i=E.useRef(null),o=st(sr(h=>{const g=i.current;g||Le(),g.textContent=h}),[]),a=st(h=>{const g=r.current;g||Le(),g.textContent=h},[]);ei(()=>{!r.current&&!i.current||Le();const h=IS(t),g=IS(t);return r.current=h,i.current=g,h.setAttribute(`${al}-always`,e),g.setAttribute(`${al}-dynamic`,e),pg().appendChild(h),pg().appendChild(g),a(n.always),o(n.resting),()=>{const y=v=>{const w=v.current;w||Le(),pg().removeChild(w),v.current=null};y(r),y(i)}},[t,a,o,n.always,n.resting,e]);const u=st(()=>o(n.dragging),[o,n.dragging]),d=st(h=>{if(h==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=st(()=>{i.current&&o(n.resting)},[o,n.resting]);return $t(()=>({dragging:u,dropping:d,resting:m}),[u,d,m])}function PE(e,t){return Array.from(e.querySelectorAll(t))}var BE=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function Sm(e){return e instanceof BE(e).HTMLElement}function TL(e,t){const n=`[${ll.contextId}="${e}"]`,r=PE(document,n);if(!r.length)return null;const i=r.find(o=>o.getAttribute(ll.draggableId)===t);return!i||!Sm(i)?null:i}function RL(e){const t=E.useRef({}),n=E.useRef(null),r=E.useRef(null),i=E.useRef(!1),o=st(function(g,y){const v={id:g,focus:y};return t.current[g]=v,function(){const S=t.current;S[g]!==v&&delete S[g]}},[]),a=st(function(g){const y=TL(e,g);y&&y!==document.activeElement&&y.focus()},[e]),u=st(function(g,y){n.current===g&&(n.current=y)},[]),d=st(function(){r.current||i.current&&(r.current=requestAnimationFrame(()=>{r.current=null;const g=n.current;g&&a(g)}))},[a]),m=st(function(g){n.current=null;const y=document.activeElement;y&&y.getAttribute(ll.draggableId)===g&&(n.current=g)},[]);return ei(()=>(i.current=!0,function(){i.current=!1;const g=r.current;g&&cancelAnimationFrame(g)}),[]),$t(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:u}),[o,m,d,u])}function AL(){const e={draggables:{},droppables:{}},t=[];function n(h){return t.push(h),function(){const y=t.indexOf(h);y!==-1&&t.splice(y,1)}}function r(h){t.length&&t.forEach(g=>g(h))}function i(h){return e.draggables[h]||null}function o(h){const g=i(h);return g||Le(),g}const a={register:h=>{e.draggables[h.descriptor.id]=h,r({type:"ADDITION",value:h})},update:(h,g)=>{const y=e.draggables[g.descriptor.id];y&&y.uniqueId===h.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[h.descriptor.id]=h)},unregister:h=>{const g=h.descriptor.id,y=i(g);y&&h.uniqueId===y.uniqueId&&(delete e.draggables[g],e.droppables[h.descriptor.droppableId]&&r({type:"REMOVAL",value:h}))},getById:o,findById:i,exists:h=>!!i(h),getAllByType:h=>Object.values(e.draggables).filter(g=>g.descriptor.type===h)};function u(h){return e.droppables[h]||null}function d(h){const g=u(h);return g||Le(),g}const m={register:h=>{e.droppables[h.descriptor.id]=h},unregister:h=>{const g=u(h.descriptor.id);g&&h.uniqueId===g.uniqueId&&delete e.droppables[h.descriptor.id]},getById:d,findById:u,exists:h=>!!u(h),getAllByType:h=>Object.values(e.droppables).filter(g=>g.descriptor.type===h)};function p(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:p}}function ML(){const e=$t(AL,[]);return E.useEffect(()=>function(){e.clean()},[e]),e}var B0=St.createContext(null),$f=()=>{const e=document.body;return e||Le(),e};const DL={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},OL=e=>`rfd-announcement-${e}`;function LL(e){const t=$t(()=>OL(e),[e]),n=E.useRef(null);return E.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),Lf(o.style,DL),$f().appendChild(o),function(){setTimeout(function(){const d=$f();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),st(i=>{const o=n.current;if(o){o.textContent=i;return}},[])}const zL={separator:"::"};function $0(e,t=zL){const n=St.useId();return $t(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function PL({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function BL({contextId:e,text:t}){const n=$0("hidden-text",{separator:"-"}),r=$t(()=>PL({contextId:e,uniqueId:n}),[n,e]);return E.useEffect(function(){const o=document.createElement("div");return o.id=r,o.textContent=t,o.style.display="none",$f().appendChild(o),function(){const u=$f();u.contains(o)&&u.removeChild(o)}},[r,t]),r}var wm=St.createContext(null);function $E(e){const t=E.useRef(e);return E.useEffect(()=>{t.current=e}),t}function $L(){let e=null;function t(){return!!e}function n(a){return a===e}function r(a){e&&Le();const u={abandon:a};return e=u,u}function i(){e||Le(),e=null}function o(){e&&(e.abandon(),i())}return{isClaimed:t,isActive:n,claim:r,release:i,tryAbandon:o}}function su(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const HL=9,FL=13,H0=27,HE=32,VL=33,UL=34,GL=35,qL=36,WL=37,YL=38,XL=39,KL=40,ZL={[FL]:!0,[HL]:!0};var FE=e=>{ZL[e.keyCode]&&e.preventDefault()};const Cm=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(r=>`on${r}`in document)||e})(),VE=0,TS=5;function QL(e,t){return Math.abs(t.x-e.x)>=TS||Math.abs(t.y-e.y)>=TS}const RS={type:"IDLE"};function JL({cancel:e,completed:t,getPhase:n,setPhase:r}){return[{eventName:"mousemove",fn:i=>{const{button:o,clientX:a,clientY:u}=i;if(o!==VE)return;const d={x:a,y:u},m=n();if(m.type==="DRAGGING"){i.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&Le();const p=m.point;if(!QL(p,d))return;i.preventDefault();const h=m.actions.fluidLift(d);r({type:"DRAGGING",actions:h})}},{eventName:"mouseup",fn:i=>{const o=n();if(o.type!=="DRAGGING"){e();return}i.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:i=>{n().type==="DRAGGING"&&i.preventDefault(),e()}},{eventName:"keydown",fn:i=>{if(n().type==="PENDING"){e();return}if(i.keyCode===H0){i.preventDefault(),e();return}FE(i)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:i=>{const o=n();if(o.type==="IDLE"&&Le(),o.actions.shouldRespectForcePress()){e();return}i.preventDefault()}},{eventName:Cm,fn:e}]}function e6(e){const t=E.useRef(RS),n=E.useRef(ao),r=$t(()=>({eventName:"mousedown",fn:function(h){if(h.defaultPrevented||h.button!==VE||h.ctrlKey||h.metaKey||h.shiftKey||h.altKey)return;const g=e.findClosestDraggableId(h);if(!g)return;const y=e.tryGetLock(g,a,{sourceEvent:h});if(!y)return;h.preventDefault();const v={x:h.clientX,y:h.clientY};n.current(),m(y,v)}}),[e]),i=$t(()=>({eventName:"webkitmouseforcewillbegin",fn:p=>{if(p.defaultPrevented)return;const h=e.findClosestDraggableId(p);if(!h)return;const g=e.findOptionsForDraggable(h);g&&(g.shouldRespectForcePress||e.canGetLock(h)&&p.preventDefault())}}),[e]),o=st(function(){const h={passive:!1,capture:!0};n.current=vi(window,[i,r],h)},[i,r]),a=st(()=>{t.current.type!=="IDLE"&&(t.current=RS,n.current(),o())},[o]),u=st(()=>{const p=t.current;a(),p.type==="DRAGGING"&&p.actions.cancel({shouldBlockNextClick:!0}),p.type==="PENDING"&&p.actions.abort()},[a]),d=st(function(){const h={capture:!0,passive:!1},g=JL({cancel:u,completed:a,getPhase:()=>t.current,setPhase:y=>{t.current=y}});n.current=vi(window,g,h)},[u,a]),m=st(function(h,g){t.current.type!=="IDLE"&&Le(),t.current={type:"PENDING",point:g,actions:h},d()},[d]);ei(function(){return o(),function(){n.current()}},[o])}function t6(){}const n6={[UL]:!0,[VL]:!0,[qL]:!0,[GL]:!0};function r6(e,t){function n(){t(),e.cancel()}function r(){t(),e.drop()}return[{eventName:"keydown",fn:i=>{if(i.keyCode===H0){i.preventDefault(),n();return}if(i.keyCode===HE){i.preventDefault(),r();return}if(i.keyCode===KL){i.preventDefault(),e.moveDown();return}if(i.keyCode===YL){i.preventDefault(),e.moveUp();return}if(i.keyCode===XL){i.preventDefault(),e.moveRight();return}if(i.keyCode===WL){i.preventDefault(),e.moveLeft();return}if(n6[i.keyCode]){i.preventDefault();return}FE(i)}},{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:Cm,fn:n}]}function i6(e){const t=E.useRef(t6),n=$t(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==HE)return;const a=e.findClosestDraggableId(o);if(!a)return;const u=e.tryGetLock(a,p,{sourceEvent:o});if(!u)return;o.preventDefault();let d=!0;const m=u.snapLift();t.current();function p(){d||Le(),d=!1,t.current(),r()}t.current=vi(window,r6(m,p),{capture:!0,passive:!1})}}),[e]),r=st(function(){const o={passive:!1,capture:!0};t.current=vi(window,[n],o)},[n]);ei(function(){return r(),function(){t.current()}},[r])}const gg={type:"IDLE"},s6=120,o6=.15;function a6({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===H0&&n.preventDefault(),e()}},{eventName:Cm,fn:e}]}function l6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:r=>{const i=n();if(i.type!=="DRAGGING"){e();return}i.hasMoved=!0;const{clientX:o,clientY:a}=r.touches[0],u={x:o,y:a};r.preventDefault(),i.actions.move(u)}},{eventName:"touchend",fn:r=>{const i=n();if(i.type!=="DRAGGING"){e();return}r.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:r=>{if(n().type!=="DRAGGING"){e();return}r.preventDefault(),e()}},{eventName:"touchforcechange",fn:r=>{const i=n();i.type==="IDLE"&&Le();const o=r.touches[0];if(!o||!(o.force>=o6))return;const u=i.actions.shouldRespectForcePress();if(i.type==="PENDING"){u&&e();return}if(u){if(i.hasMoved){r.preventDefault();return}e();return}r.preventDefault()}},{eventName:Cm,fn:e}]}function c6(e){const t=E.useRef(gg),n=E.useRef(ao),r=st(function(){return t.current},[]),i=st(function(y){t.current=y},[]),o=$t(()=>({eventName:"touchstart",fn:function(y){if(y.defaultPrevented)return;const v=e.findClosestDraggableId(y);if(!v)return;const w=e.tryGetLock(v,u,{sourceEvent:y});if(!w)return;const S=y.touches[0],{clientX:_,clientY:k}=S,C={x:_,y:k};n.current(),h(w,C)}}),[e]),a=st(function(){const y={capture:!0,passive:!1};n.current=vi(window,[o],y)},[o]),u=st(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),i(gg),n.current(),a())},[a,i]),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 y={capture:!0,passive:!1},v={cancel:d,completed:u,getPhase:r},w=vi(window,l6(v),y),S=vi(window,a6(v),y);n.current=function(){w(),S()}},[d,r,u]),p=st(function(){const y=r();y.type!=="PENDING"&&Le();const v=y.actions.fluidLift(y.point);i({type:"DRAGGING",actions:v,hasMoved:!1})},[r,i]),h=st(function(y,v){r().type!=="IDLE"&&Le();const w=setTimeout(p,s6);i({type:"PENDING",point:v,actions:y,longPressTimerId:w}),m()},[m,r,i,p]);ei(function(){return a(),function(){n.current();const v=r();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),i(gg))}},[r,a,i]),ei(function(){return vi(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const u6=["input","button","textarea","select","option","optgroup","video","audio"];function UE(e,t){if(t==null)return!1;if(u6.includes(t.tagName.toLowerCase()))return!0;const r=t.getAttribute("contenteditable");return r==="true"||r===""?!0:t===e?!1:UE(e,t.parentElement)}function d6(e,t){const n=t.target;return Sm(n)?UE(e,n):!1}var f6=e=>Ei(e.getBoundingClientRect()).center;function m6(e){return e instanceof BE(e).Element}const h6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(r=>r in Element.prototype)||e})();function GE(e,t){return e==null?null:e[h6](t)?e:GE(e.parentElement,t)}function p6(e,t){return e.closest?e.closest(t):GE(e,t)}function g6(e){return`[${ll.contextId}="${e}"]`}function x6(e,t){const n=t.target;if(!m6(n))return null;const r=g6(e),i=p6(n,r);return!i||!Sm(i)?null:i}function y6(e,t){const n=x6(e,t);return n?n.getAttribute(ll.draggableId):null}function v6(e,t){const n=`[${Ey.contextId}="${e}"]`,i=PE(document,n).find(o=>o.getAttribute(Ey.id)===t);return!i||!Sm(i)?null:i}function b6(e){e.preventDefault()}function Fd({expected:e,phase:t,isLockActive:n,shouldWarn:r}){return!(!n()||e!==t)}function qE({lockAPI:e,store:t,registry:n,draggableId:r}){if(e.isClaimed())return!1;const i=n.draggable.findById(r);return!(!i||!i.options.isEnabled||!DE(t.getState(),r))}function _6({lockAPI:e,contextId:t,store:n,registry:r,draggableId:i,forceSensorStop:o,sourceEvent:a}){if(!qE({lockAPI:e,store:n,registry:r,draggableId:i}))return null;const d=r.draggable.getById(i),m=v6(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&d6(m,a))return null;const p=e.claim(o||ao);let h="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function y(){return e.isActive(p)}function v(O,I){Fd({expected:O,phase:h,isLockActive:y,shouldWarn:!0})&&n.dispatch(I())}const w=v.bind(null,"DRAGGING");function S(O){function I(){e.release(),h="COMPLETED"}h!=="PRE_DRAG"&&(I(),Le()),n.dispatch(pO(O.liftActionArgs)),h="DRAGGING";function D(T,L={shouldBlockNextClick:!1}){if(O.cleanup(),L.shouldBlockNextClick){const A=vi(window,[{eventName:"click",fn:b6,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(A)}I(),n.dispatch(jE({reason:T}))}return{isActive:()=>Fd({expected:"DRAGGING",phase:h,isLockActive:y,shouldWarn:!1}),shouldRespectForcePress:g,drop:T=>D("DROP",T),cancel:T=>D("CANCEL",T),...O.actions}}function _(O){const I=Jc(T=>{w(()=>CE({client:T}))});return{...S({liftActionArgs:{id:i,clientSelection:O,movementMode:"FLUID"},cleanup:()=>I.cancel(),actions:{move:I}}),move:I}}function k(){const O={moveUp:()=>w(wO),moveRight:()=>w(jO),moveDown:()=>w(CO),moveLeft:()=>w(EO)};return S({liftActionArgs:{id:i,clientSelection:f6(m),movementMode:"SNAP"},cleanup:ao,actions:O})}function C(){Fd({expected:"PRE_DRAG",phase:h,isLockActive:y,shouldWarn:!0})&&e.release()}return{isActive:()=>Fd({expected:"PRE_DRAG",phase:h,isLockActive:y,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:_,snapLift:k,abort:C}}const k6=[e6,i6,c6];function S6({contextId:e,store:t,registry:n,customSensors:r,enableDefaultSensors:i}){const o=[...i?k6:[],...r||[]],a=E.useState(()=>$L())[0],u=st(function(S,_){su(S)&&!su(_)&&a.tryAbandon()},[a]);ei(function(){let S=t.getState();return t.subscribe(()=>{const k=t.getState();u(S,k),S=k})},[a,t,u]),ei(()=>a.tryAbandon,[a.tryAbandon]);const d=st(w=>qE({lockAPI:a,registry:n,store:t,draggableId:w}),[a,n,t]),m=st((w,S,_)=>_6({lockAPI:a,registry:n,contextId:e,store:t,draggableId:w,forceSensorStop:S||null,sourceEvent:_&&_.sourceEvent?_.sourceEvent:null}),[e,a,n,t]),p=st(w=>y6(e,w),[e]),h=st(w=>{const S=n.draggable.findById(w);return S?S.options:null},[n.draggable]),g=st(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(A0()))},[a,t]),y=st(()=>a.isClaimed(),[a]),v=$t(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:p,findOptionsForDraggable:h,tryReleaseLock:g,isLockClaimed:y}),[d,m,p,h,g,y]);for(let w=0;w({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};mm.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),C6=e=>({...iu,...e.autoScrollerOptions,durationDampening:{...iu.durationDampening,...e.autoScrollerOptions}});function _c(e){return e.current||Le(),e.current}function j6(e){const{contextId:t,setCallbacks:n,sensors:r,nonce:i,dragHandleUsageInstructions:o}=e,a=E.useRef(null),u=$E(e),d=st(()=>w6(u.current),[u]),m=st(()=>C6(u.current),[u]),p=LL(t),h=BL({contextId:t,text:o}),g=IL(t,i),y=st(A=>{_c(a).dispatch(A)},[]),v=$t(()=>rS({publishWhileDragging:xO,updateDroppableScroll:vO,updateDroppableIsEnabled:bO,updateDroppableIsCombineEnabled:_O,collectionStarting:yO},y),[y]),w=ML(),S=$t(()=>aL(w,v),[w,v]),_=$t(()=>wL({scrollWindow:lL,scrollDroppable:S.scrollDroppable,getAutoScrollerOptions:m,...rS({move:CE},y)}),[S.scrollDroppable,y,m]),k=RL(t),C=$t(()=>rL({announce:p,autoScroller:_,dimensionMarshal:S,focusMarshal:k,getResponders:d,styleMarshal:g}),[p,_,S,k,d,g]);a.current=C;const N=st(()=>{const A=_c(a);A.getState().phase!=="IDLE"&&A.dispatch(A0())},[]),O=st(()=>{const A=_c(a).getState();return A.phase==="DROP_ANIMATING"?!0:A.phase==="IDLE"?!1:A.isDragging},[]),I=$t(()=>({isDragging:O,tryAbort:N}),[O,N]);n(I);const D=st(A=>DE(_c(a).getState(),A),[]),T=st(()=>Lo(_c(a).getState()),[]),L=$t(()=>({marshal:S,focus:k,contextId:t,canLift:D,isMovementAllowed:T,dragHandleUsageInstructionsId:h,registry:w}),[t,S,h,k,D,T,w]);return S6({contextId:t,store:C,registry:w,customSensors:r||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),E.useEffect(()=>N,[N]),St.createElement(wm.Provider,{value:L},St.createElement(Z5,{context:B0,store:C},e.children))}function E6(){return St.useId()}function N6(e){const t=E6(),n=e.dragHandleUsageInstructions||xf.dragHandleUsageInstructions;return St.createElement(iD,null,r=>St.createElement(j6,{nonce:e.nonce,contextId:t,setCallbacks:r,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 AS={dragging:5e3,dropAnimating:4500},I6=(e,t)=>t?Fc.drop(t.duration):e?Fc.snap:Fc.fluid,T6=(e,t)=>{if(e)return t?ru.opacity.drop:ru.opacity.combining},R6=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function A6(e){const n=e.dimension.client,{offset:r,combineWith:i,dropping:o}=e,a=!!i,u=R6(e),d=!!o,m=d?Cy.drop(r,a):Cy.moveTo(r);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:I6(u,o),transform:m,opacity:T6(a,d),zIndex:d?AS.dropAnimating:AS.dragging,pointerEvents:"none"}}function M6(e){return{transform:Cy.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function D6(e){return e.type==="DRAGGING"?A6(e):M6(e)}function O6(e,t,n=or){const r=window.getComputedStyle(t),i=t.getBoundingClientRect(),o=Jj(i,r),a=Of(o,n),u={client:o,tagName:t.tagName.toLowerCase(),display:r.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:u,displaceBy:d,client:o,page:a}}function L6(e){const t=$0("draggable"),{descriptor:n,registry:r,getDraggableRef:i,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}=e,d=$t(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}),[o,u,a]),m=st(y=>{const v=i();return v||Le(),O6(n,v,y)},[n,i]),p=$t(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),h=E.useRef(p),g=E.useRef(!0);ei(()=>(r.draggable.register(h.current),()=>r.draggable.unregister(h.current)),[r.draggable]),ei(()=>{if(g.current){g.current=!1;return}const y=h.current;h.current=p,r.draggable.update(p,y)},[p,r.draggable])}var F0=St.createContext(null);function Hf(e){const t=E.useContext(e);return t||Le(),t}function z6(e){e.preventDefault()}const P6=e=>{const t=E.useRef(null),n=st((I=null)=>{t.current=I},[]),r=st(()=>t.current,[]),{contextId:i,dragHandleUsageInstructionsId:o,registry:a}=Hf(wm),{type:u,droppableId:d}=Hf(F0),m=$t(()=>({id:e.draggableId,index:e.index,type:u,droppableId:d}),[e.draggableId,e.index,u,d]),{children:p,draggableId:h,isEnabled:g,shouldRespectForcePress:y,canDragInteractiveElements:v,isClone:w,mapped:S,dropAnimationFinished:_}=e;if(!w){const I=$t(()=>({descriptor:m,registry:a,getDraggableRef:r,canDragInteractiveElements:v,shouldRespectForcePress:y,isEnabled:g}),[m,a,r,v,y,g]);L6(I)}const k=$t(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":h,"data-rfd-drag-handle-context-id":i,draggable:!1,onDragStart:z6}:null,[i,o,h,g]),C=st(I=>{S.type==="DRAGGING"&&S.dropping&&I.propertyName==="transform"&&mm.flushSync(_)},[_,S]),N=$t(()=>{const I=D6(S),D=S.type==="DRAGGING"&&S.dropping?C:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":i,"data-rfd-draggable-id":h,style:I,onTransitionEnd:D},dragHandleProps:k}},[i,k,h,S,C,n]),O=$t(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return St.createElement(St.Fragment,null,p(N,S.snapshot,O))};var WE=(e,t)=>e===t,YE=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const B6=e=>e.combine?e.combine.draggableId:null,$6=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function H6(){const e=sr((i,o)=>({x:i,y:o})),t=sr((i,o,a=null,u=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:i,draggingOver:a,combineWith:u,combineTargetFor:null})),n=sr((i,o,a,u,d=null,m=null,p=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:i,dimension:a,forceShouldAnimate:p,snapshot:t(o,u,d,m,null)}}));return(i,o)=>{if(su(i)){if(i.critical.draggable.id!==o.draggableId)return null;const a=i.current.client.offset,u=i.dimensions.draggables[o.draggableId],d=Jr(i.impact),m=$6(i.impact),p=i.forceShouldAnimate;return n(e(a.x,a.y),i.movementMode,u,o.isClone,d,m,p)}if(i.phase==="DROP_ANIMATING"){const a=i.completed;if(a.result.draggableId!==o.draggableId)return null;const u=o.isClone,d=i.dimensions.draggables[o.draggableId],m=a.result,p=m.mode,h=YE(m),g=B6(m),v={duration:i.dropDuration,curve:D0.drop,moveTo:i.newHomeClientOffset,opacity:g?ru.opacity.drop:null,scale:g?ru.scale.drop:null};return{mapped:{type:"DRAGGING",offset:i.newHomeClientOffset,dimension:d,dropping:v,draggingOver:h,combineWith:g,mode:p,forceShouldAnimate:null,snapshot:t(p,u,h,g,v)}}}return null}}function XE(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const F6={mapped:{type:"SECONDARY",offset:or,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:XE(null)}};function V6(){const e=sr((a,u)=>({x:a,y:u})),t=sr(XE),n=sr((a,u=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:u,shouldAnimateDisplacement:d,snapshot:t(u)}})),r=a=>a?n(or,a,!0):null,i=(a,u,d,m)=>{const p=d.displaced.visible[a],h=!!(m.inVirtualList&&m.effected[a]),g=bm(d),y=g&&g.draggableId===a?u:null;if(!p){if(!h)return r(y);if(d.displaced.invisible[a])return null;const S=kl(m.displacedBy.point),_=e(S.x,S.y);return n(_,y,!0)}if(h)return r(y);const v=d.displacedBy.point,w=e(v.x,v.y);return n(w,y,p.shouldAnimate)};return(a,u)=>{if(su(a))return a.critical.draggable.id===u.draggableId?null:i(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:i(u.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const U6=()=>{const e=H6(),t=V6();return(r,i)=>e(r,i)||t(r,i)||F6},G6={dropAnimationFinished:EE},q6=Qj(U6,G6,null,{context:B0,areStatePropsEqual:WE})(P6);function KE(e){return Hf(F0).isUsingCloneFor===e.draggableId&&!e.isClone?null:St.createElement(q6,e)}function W6(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,r=!!e.shouldRespectForcePress;return St.createElement(KE,Lf({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}const ZE=e=>t=>e===t,Y6=ZE("scroll"),X6=ZE("auto"),MS=(e,t)=>t(e.overflowX)||t(e.overflowY),K6=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return MS(n,Y6)||MS(n,X6)},Z6=()=>!1,QE=e=>e==null?null:e===document.body?Z6()?e:null:e===document.documentElement?null:K6(e)?e:QE(e.parentElement);var Ny=e=>({x:e.scrollLeft,y:e.scrollTop});const JE=e=>e?window.getComputedStyle(e).position==="fixed"?!0:JE(e.parentElement):!1;var Q6=e=>{const t=QE(e),n=JE(e);return{closestScrollable:t,isFixedOnPage:n}},J6=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:r,direction:i,client:o,page:a,closest:u})=>{const d=(()=>{if(!u)return null;const{scrollSize:g,client:y}=u,v=RE({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:y.paddingBox.height,width:y.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:y,scrollSize:g,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:v,diff:{value:or,displacement:or}}}})(),m=i==="vertical"?E0:uE,p=ol({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:r,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:p}};const e8=(e,t)=>{const n=eE(e);if(!t||e!==t)return n;const r=n.paddingBox.top-t.scrollTop,i=n.paddingBox.left-t.scrollLeft,o=r+t.scrollHeight,a=i+t.scrollWidth,d=S0({top:r,right:a,bottom:o,left:i},n.border);return w0({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var t8=({ref:e,descriptor:t,env:n,windowScroll:r,direction:i,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:u})=>{const d=n.closestScrollable,m=e8(e,d),p=Of(m,r),h=(()=>{if(!d)return null;const y=eE(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:y,page:Of(y,r),scroll:Ny(d),scrollSize:v,shouldClipSubject:u}})();return J6({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:i,client:m,page:p,closest:h})};const n8={passive:!1},r8={passive:!0};var DS=e=>e.shouldPublishImmediately?n8:r8;const Vd=e=>e&&e.env.closestScrollable||null;function i8(e){const t=E.useRef(null),n=Hf(wm),r=$0("droppable"),{registry:i,marshal:o}=n,a=$E(e),u=$t(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=E.useRef(u),m=$t(()=>sr((N,O)=>{t.current||Le();const I={x:N,y:O};o.updateDroppableScroll(u.id,I)}),[u.id,o]),p=st(()=>{const N=t.current;return!N||!N.env.closestScrollable?or:Ny(N.env.closestScrollable)},[]),h=st(()=>{const N=p();m(N.x,N.y)},[p,m]),g=$t(()=>Jc(h),[h]),y=st(()=>{const N=t.current,O=Vd(N);if(N&&O||Le(),N.scrollOptions.shouldPublishImmediately){h();return}g()},[g,h]),v=st((N,O)=>{t.current&&Le();const I=a.current,D=I.getDroppableRef();D||Le();const T=Q6(D),L={ref:D,descriptor:u,env:T,scrollOptions:O};t.current=L;const A=t8({ref:D,descriptor:u,env:T,windowScroll:N,direction:I.direction,isDropDisabled:I.isDropDisabled,isCombineEnabled:I.isCombineEnabled,shouldClipSubject:!I.ignoreContainerClipping}),M=T.closestScrollable;return M&&(M.setAttribute(NS.contextId,n.contextId),M.addEventListener("scroll",y,DS(L.scrollOptions))),A},[n.contextId,u,y,a]),w=st(()=>{const N=t.current,O=Vd(N);return N&&O||Le(),Ny(O)},[]),S=st(()=>{const N=t.current;N||Le();const O=Vd(N);t.current=null,O&&(g.cancel(),O.removeAttribute(NS.contextId),O.removeEventListener("scroll",y,DS(N.scrollOptions)))},[y,g]),_=st(N=>{const O=t.current;O||Le();const I=Vd(O);I||Le(),I.scrollTop+=N.y,I.scrollLeft+=N.x},[]),k=$t(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:w,dragStopped:S,scroll:_}),[S,v,w,_]),C=$t(()=>({uniqueId:r,descriptor:u,callbacks:k}),[k,u,r]);ei(()=>(d.current=C.descriptor,i.droppable.register(C),()=>{t.current&&S(),i.droppable.unregister(C)}),[k,u,S,C,o,i.droppable]),ei(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),ei(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function xg(){}const OS={width:0,height:0,margin:dD},s8=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?OS:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},o8=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const r=s8({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:r.width,height:r.height,marginTop:r.margin.top,marginRight:r.margin.right,marginBottom:r.margin.bottom,marginLeft:r.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?Fc.placeholder:null}},a8=e=>{const t=E.useRef(null),n=st(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:r,onTransitionEnd:i,onClose:o,contextId:a}=e,[u,d]=E.useState(e.animate==="open");E.useEffect(()=>u?r!=="open"?(n(),d(!1),xg):t.current?xg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):xg,[r,u,n]);const m=st(h=>{h.propertyName==="height"&&(i(),r==="close"&&o())},[r,o,i]),p=o8({isAnimatingOpenOnMount:u,animate:e.animate,placeholder:e.placeholder});return St.createElement(e.placeholder.tagName,{style:p,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var l8=St.memo(a8);class c8 extends St.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 u8=e=>{const t=E.useContext(wm);t||Le();const{contextId:n,isMovementAllowed:r}=t,i=E.useRef(null),o=E.useRef(null),{children:a,droppableId:u,type:d,mode:m,direction:p,ignoreContainerClipping:h,isDropDisabled:g,isCombineEnabled:y,snapshot:v,useClone:w,updateViewportMaxScroll:S,getContainerForClone:_}=e,k=st(()=>i.current,[]),C=st((M=null)=>{i.current=M},[]);st(()=>o.current,[]);const N=st((M=null)=>{o.current=M},[]),O=st(()=>{r()&&S({maxScroll:ME()})},[r,S]);i8({droppableId:u,type:d,mode:m,direction:p,isDropDisabled:g,isCombineEnabled:y,ignoreContainerClipping:h,getDroppableRef:k});const I=$t(()=>St.createElement(c8,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:M,data:$,animate:W})=>St.createElement(l8,{placeholder:$,onClose:M,innerRef:N,animate:W,contextId:n,onTransitionEnd:O})),[n,O,e.placeholder,e.shouldAnimatePlaceholder,N]),D=$t(()=>({innerRef:C,placeholder:I,droppableProps:{"data-rfd-droppable-id":u,"data-rfd-droppable-context-id":n}}),[n,u,I,C]),T=w?w.dragging.draggableId:null,L=$t(()=>({droppableId:u,type:d,isUsingCloneFor:T}),[u,T,d]);function A(){if(!w)return null;const{dragging:M,render:$}=w,W=St.createElement(KE,{draggableId:M.draggableId,index:M.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(B,U)=>$(B,U,M));return n4.createPortal(W,_())}return St.createElement(F0.Provider,{value:L},a(D,v),A())};function d8(){return document.body||Le(),document.body}const LS={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:d8},eN=e=>{let t={...e},n;for(n in LS)e[n]===void 0&&(t={...t,[n]:LS[n]});return t},yg=(e,t)=>e===t.droppable.type,zS=(e,t)=>t.draggables[e.draggable.id],f8=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=sr(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),r=sr((o,a,u,d,m,p)=>{const h=m.descriptor.id;if(m.descriptor.droppableId===o){const v=p?{render:p,dragging:n(m.descriptor)}:null,w={isDraggingOver:u,draggingOverWith:u?h:null,draggingFromThisWith:h,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:w,useClone:v}}if(!a)return t;if(!d)return e;const y={isDraggingOver:u,draggingOverWith:h,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:y,useClone:null}});return(o,a)=>{const u=eN(a),d=u.droppableId,m=u.type,p=!u.isDropDisabled,h=u.renderClone;if(su(o)){const g=o.critical;if(!yg(m,g))return t;const y=zS(g,o.dimensions),v=Jr(o.impact)===d;return r(d,p,v,v,y,h)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!yg(m,g.critical))return t;const y=zS(g.critical,o.dimensions);return r(d,p,YE(g.result)===d,Jr(g.impact)===d,y,h)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!yg(m,g.critical))return t;const y=Jr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),w=g.critical.droppable.id===d;return y?v?e:t:w?e:t}return t}},m8={updateViewportMaxScroll:SO},h8=Qj(f8,m8,(e,t,n)=>({...eN(n),...e,...t}),{context:B0,areStatePropsEqual:WE})(u8),Ff={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:"▽"}},Vf={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function V0(e){const t=(e??"").trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function cl(e){const t=(e.workItemRoleName??"").trim();return t||V0(e.workItemRoleId)}function p8(e){return(e.employeeAssignment?.name??"").trim()}function vg(e){const t=cl(e),n=p8(e);return t&&n?`${t} · ${n}`:t||n}function Za(e){return typeof e=="string"?e.trim():""}function io(e){if(!e)return"";const t=e;return Za(t.executionTurnId)||Za(t.runtimeTaskId)||Za(t.taskId)}function jm(e){return Za(e?.workItemId)?Za(e?.executionTurnId)||Za(e?.runtimeTaskId):""}const g8={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 x8({task:e,index:t,agents:n,officeMap:r,companyMode:i,isSelected:o,onClick:a,onStart:u}){const d=e.assigneeIds.map(I=>n.find(D=>D.agent_id===I)).filter(Boolean),m=e.priority?Ff[e.priority]:null,p=r&&d.length>1&&new Set(d.map(I=>r[I.agent_id]).filter(Boolean)).size>1,h=e.agentStatus&&e.agentStatus!=="idle",g=e.dependencies?.length??0,y=e.phase,v=!h&&y&&y!=="ready"?g8[y]??null:null,w=e.employeeAssignment,S=cl(e),_=e.workItemGate,k=V0(e.managerRoleId),C=(e.blockedReason??"").trim(),N=(e.reworkFeedback??"").trim(),O=jm(e);return c.jsx(W6,{draggableId:e.id,index:t,isDragDisabled:!!i,children:(I,D)=>c.jsxs("div",{ref:I.innerRef,...I.draggableProps,...I.dragHandleProps,className:`kanban-card${D.isDragging?" is-dragging":""}${h?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:T=>{T.button===0&&!D.isDragging&&a(e)},children:[c.jsxs("div",{className:"kanban-card-top",children:[c.jsx("span",{className:"kanban-card-id",children:e.displayId}),v&&c.jsxs("span",{className:"kanban-status-badge",style:{color:v.color},children:[c.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:v.color,marginRight:3}}),v.label]}),g>0&&c.jsxs("span",{className:"kanban-dep-badge",title:`${g} upstream dep(s)`,children:[g," dep"]}),p&&c.jsx("span",{className:"kanban-cross-badge",title:"Cross-office",children:"⇄"}),u&&c.jsx("button",{className:"kanban-start-btn",title:i?"Start Work Item":"Start task",onClick:T=>{T.stopPropagation(),u(e.id)},children:"▶"})]}),c.jsx("p",{className:"kanban-card-title",children:e.title}),(S||w?.name||_?.type||e.originChannel||e.workItemProjectionId)&&c.jsxs("div",{className:"kanban-card-meta-row",children:[S&&c.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`Role: ${S}`,children:S}),w?.name&&c.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`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:`Projection: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),_?.type&&c.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${_.type}`,title:`Gate: ${_.type}${_.reviewerRole?` by ${_.reviewerRole}`:""}`,children:[_.type==="review"?"✉":_.type==="approval"?"✓":"✋",_.type]}),e.originChannel&&c.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`Origin: ${e.originChannel}`,children:["#",e.originChannel]}),k&&c.jsx("span",{className:"kanban-meta-badge",title:`Manager: ${k}`,children:k})]}),(C||N||O)&&c.jsxs("div",{className:"kanban-card-tags",children:[C&&c.jsx("span",{className:"kanban-tag",children:C}),N&&c.jsx("span",{className:"kanban-tag",children:N}),O&&c.jsx("span",{className:"kanban-tag",title:`Execution Turn: ${O}`,children:"Runtime"})]}),h&&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:Vf[e.agentStatus]??e.agentStatus})]}),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))}),(m||d.length>0)&&c.jsxs("div",{className:"kanban-card-footer",children:[c.jsx("div",{className:"kanban-card-footer-left",children:m&&c.jsx("span",{className:"kanban-priority",style:{color:m.color},title:m.label,children:m.symbol})}),c.jsxs("div",{className:"kanban-assignee-group",children:[d.slice(0,3).map(T=>c.jsx("span",{className:"kanban-assignee-badge",title:T.name,children:T.name.charAt(0).toUpperCase()},T.agent_id)),d.length>3&&c.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",d.length-3]})]})]})]})})}function y8({column:e,tasks:t,agents:n,officeMap:r,companyMode:i,selectedTaskId:o,onCardClick:a,onStartTask:u,onQuickCreate:d}){const[m,p]=E.useState(!1),[h,g]=E.useState(""),y=E.useRef(!1),v=E.useCallback(()=>{if(y.current)return;y.current=!0;const w=h.trim();w&&d&&d(w),g(""),p(!1)},[h,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:e.name}),c.jsx("span",{className:"kanban-col-count",children:t.length}),d&&c.jsx("button",{className:"kanban-col-add",title:"Add task",onClick:()=>{y.current=!1,p(!0)},children:"+"})]}),m&&c.jsx("div",{className:"kanban-quick-add",children:c.jsx("input",{className:"kanban-quick-input",value:h,onChange:w=>g(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),v()),w.key==="Escape"&&(y.current=!0,g(""),p(!1))},onBlur:v,placeholder:"Task title...",autoFocus:!0})}),c.jsx(h8,{droppableId:e.id,isDropDisabled:!!i,children:w=>c.jsxs("div",{ref:w.innerRef,...w.droppableProps,className:"kanban-col-body",children:[t.length===0&&!m&&c.jsx("div",{className:"kanban-empty",children:c.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((S,_)=>c.jsx(x8,{task:S,index:_,agents:n,officeMap:r,companyMode:i,isSelected:S.id===o,onClick:a,onStart:u},S.id)),w.placeholder]})})]})}function v8({columns:e,tasksByColumn:t,agents:n,officeMap:r,store:i,companyMode:o,selectedTaskId:a,onCardClick:u,onStartTask:d,onQuickCreate:m,onMoveTask:p}){const h=g=>{if(o||!g.destination)return;const y=g.source.droppableId,v=g.destination.droppableId;if(y!==v)return;const w=g.destination.index,S=g.draggableId,_=[...t[v]??[]].filter(C=>C.id!==S),k=(t[v]??[]).find(C=>C.id===S);k&&_.splice(w,0,k),_.forEach((C,N)=>{i.moveTask(C.id,v,N)})};return c.jsx(N6,{onDragEnd:h,children:c.jsx("div",{className:"kanban-board",children:e.map(g=>c.jsx(y8,{column:g,tasks:t[g.id]??[],agents:n,officeMap:r,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 b8({agents:e,tasks:t}){const n=E.useMemo(()=>{const i=new Map(t.map(o=>[o.id,o]));return e.map(o=>{const a=t.find(d=>d.assigneeIds.includes(o.agent_id)&&d.agentStatus&&d.agentStatus!=="idle"),u=o.current_task_id?i.get(o.current_task_id):void 0;return{agent:o,status:a?.agentStatus??o.runtime_status??"idle",currentTool:a?.currentTool??o.current_tool,taskDisplayId:a?.displayId??u?.displayId}})},[e,t]);if(e.length===0)return null;const r=n.filter(i=>i.status!=="idle").length;return c.jsxs("div",{className:"agent-status-bar",children:[c.jsx("span",{className:"agent-status-summary",children:r>0?`${r}/${e.length} active`:`${e.length} agent${e.length!==1?"s":""}`}),c.jsx("div",{className:"agent-status-chips",children:n.map(({agent:i,status:o,currentTool:a,taskDisplayId:u})=>c.jsxs("div",{className:`agent-status-chip status-${o}`,title:`${i.name}: ${o==="tool_active"&&a?a:Vf[o]}${u?` (${u})`:""}`,children:[c.jsx("span",{className:"agent-status-avatar",children:i.name.charAt(0).toUpperCase()}),c.jsx("span",{className:"agent-status-name",children:i.name}),o!=="idle"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"kanban-runtime-dot"}),c.jsx("span",{className:"agent-status-detail",children:o==="tool_active"&&a?a:Vf[o]})]}),u&&c.jsx("span",{className:"agent-status-task",children:u})]},i.agent_id))})]})}function _8({boards:e,activeBoardId:t,onSelect:n}){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}}),r.name]},r.id))})})}function hr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function vs(e){return Array.isArray(e)?e.filter(hr):[]}function ul(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function k8(e){return hr(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:ul(e.member_role_ids),seat_ids:ul(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 w8(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:ul(e.background_work_item_ids),manager_role_ids:ul(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:hr(e.latest_notification)?e.latest_notification:void 0,manager_digest:hr(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function C8(e){const t=hr(e.metadata)?e.metadata:void 0,n=hr(e.adaptive)?e.adaptive:t&&hr(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 j8(e){if(hr(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:hr(e.recovery_pointer)?e.recovery_pointer:void 0}}function E8(e){if(hr(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:vs(e.architecture_decisions),completed_work_items:vs(e.completed_work_items),open_issues:ul(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:vs(e.artifact_index),handoff_summaries:vs(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 N8(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:hr(e.current_work_item)?e.current_work_item:void 0,latest_notification:hr(e.latest_notification)?e.latest_notification:void 0,manager_digest:hr(e.manager_digest)?e.manager_digest:void 0}}function I8(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:hr(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function tN(e){const t=hr(e)?e:{},n=vs(t.runtime_teams).map(S8),r=vs(t.runtime_seats).map(w8),i=vs(t.work_items).map(C8);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:ul(t.top_level_role_ids),runtime_teams:n,runtime_seats:r,work_items:i,frontier:k8(t.frontier),project_run:j8(t.project_run),project_dossier:E8(t.project_dossier),seat_digests:vs(t.seat_digests).map(N8),revision_links:vs(t.revision_links).map(I8),project_recovery:hr(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:hr(t.runtime_policy)?t.runtime_policy:void 0}}function Em(e){const t=tN(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 T8({state:e,message:t,onRefresh:n,onReadMessage:r,pollIntervalMs:i=8e3,embedded:o=!1}){const[a,u]=E.useState(null);E.useEffect(()=>{if(!i)return;n();const h=window.setInterval(()=>n(),i);return()=>window.clearInterval(h)},[i]);const d=E.useMemo(()=>e?.roles?e.roles.reduce((h,g)=>h+g.unread_count,0):0,[e?.roles]),m=h=>{u(h),r(h)},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"}),d>0&&c.jsxs(ou,{color:"var(--accent, #3498db)",children:[d," 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(yf,{children:"No communications yet. They will appear once agents start collaborating."}):c.jsx(R8,{state:e,selectedPath:a,onSelectMessage:m}):c.jsxs(yf,{children:["Not available",e.reason?`: ${e.reason}`:""]}):c.jsx(yf,{children:"Loading communications..."}),t&&c.jsx(D8,{message:t,onClose:()=>u(null)})]})}function R8({state:e,selectedPath:t,onSelectMessage:n}){const r=(e.roles?.length??0)>0,i=(e.meetings?.length??0)>0,o=(e.recent_failures?.length??0)>0;return c.jsxs("div",{style:{padding:"4px 0"},children:[o&&c.jsx(bg,{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}`))}),r&&c.jsx(bg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>c.jsx(A8,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),i&&c.jsx(bg,{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(ou,{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))}),!r&&!i&&!o&&c.jsx(yf,{children:"No communication activity yet."})]})}function A8({role:e,selectedPath:t,onSelectMessage:n}){const[r,i]=E.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,u]=E.useState(e.unread_count>0?"unread":"history"),d=E.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,p=>p.toUpperCase());return c.jsxs("div",{style:{marginBottom:2},children:[c.jsxs("div",{onClick:()=>i(p=>!p),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:r?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[c.jsx("span",{style:{fontSize:10,width:10},children:r?"▼":"▶"}),c.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&c.jsx(ou,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&c.jsxs(ou,{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"]})]}),r&&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(_g,{active:a==="unread",onClick:()=>u("unread"),children:["Unread (",e.unread_count,")"]}),c.jsxs(_g,{active:a==="history",onClick:()=>u("history"),children:["Read (",e.recent_seen?.length??0,")"]}),c.jsxs(_g,{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(p=>c.jsx(M8,{message:p,selected:p.path===t,onClick:()=>n(p.path)},p.message_id))})]})]})}function M8({message:e,selected:t,onClick:n}){const i=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:i})," ",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 D8({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(ou,{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 bg({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 ou({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 _g({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 yf({children:e}){return c.jsx("div",{style:{padding:"20px 16px",fontSize:12,color:"var(--text-secondary, #888)",textAlign:"center"},children:e})}function za(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function Pa(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function xi(e,t="Pending"){return String(e??"").trim()||t}function kc(e,t="Team"){const n=String(e??"").trim();return n?n.replace(/[_-]+/g," ").replace(/\b\w/g,r=>r.toUpperCase()):t}function PS(e){return xi(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function O8({orgInfoData:e,recoveryStatus:t,commsState:n,onStopRun:r,embedded:i=!1}){const o=E.useMemo(()=>Em(e??null),[e]),a=o.projectRun,u=o.seatDigests,d=u.reduce((_,k)=>{const C=za(k.manager_digest);return _+Pa(C.pending_decisions).length},0),m=u.reduce((_,k)=>_+Pa(za(k.manager_digest).actionable_chat).length,0),p=u.reduce((_,k)=>_+Pa(za(k.manager_digest).protocol_backlog).length,0),h=u.reduce((_,k)=>_+Pa(za(k.manager_digest).notification_backlog).length,0),g=m+p+h,y=Array.isArray(t?.interrupted)?t.interrupted.length:0,v=[{label:"Actionable",value:m},{label:"Protocol",value:p},{label:"Notifications",value:h},{label:"Meetings",value:n?.meetings?.length??0},{label:"Failures",value:n?.recent_failures?.length??0}],w=E.useMemo(()=>{const _=new Map;for(const N of u){const O=String(N.seat_id??"").trim();O&&_.set(O,za(N.manager_digest))}const k=o.runtimeTeams.map(N=>{const O=[String(N.cell_id??"").trim(),String(N.team_id??"").trim(),String(N.team_instance_id??"").trim()].filter(Boolean),I=o.runtimeSeats.filter(L=>O.includes(String(L.team_id??"").trim())||O.includes(String(L.team_instance_id??"").trim())),D=I.reduce((L,A)=>{const M=_.get(String(A.seat_id??"").trim())??{};return L+Pa(M.pending_decisions).length},0),T=I.map(L=>xi(L.latest_notification?.subject??L.latest_notification?.summary,"")).find(Boolean);return{key:String(N.cell_id??N.team_id??N.team_instance_id??N.manager_role_id??"team"),label:kc(N.team_id??N.cell_id,"Team"),managerLabel:kc(N.manager_role_id,"Unassigned manager"),status:xi(N.status,"idle"),seatCount:I.length||N.member_role_ids.length,pendingApprovals:D,latestAlert:T,seats:I.map(L=>({key:String(L.seat_id??L.role_session_id??L.role_id),roleLabel:kc(L.role_id,"Seat"),seatLabel:xi(L.seat_id??L.role_session_id,"Seat"),status:xi(L.resident_status??L.status,"idle")}))}}),C=new Set(k.flatMap(N=>N.seats.map(O=>O.key)));for(const N of o.runtimeSeats){const O=String(N.seat_id??N.role_session_id??N.role_id).trim();if(!O||C.has(O))continue;const I=String(N.team_id??N.team_instance_id??"unassigned").trim()||"unassigned";let D=k.find(L=>L.key===I);D||(D={key:I,label:kc(I,"Unassigned Team"),managerLabel:"Unassigned manager",status:xi(N.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},k.push(D));const T=_.get(String(N.seat_id??"").trim())??{};D.pendingApprovals+=Pa(T.pending_decisions).length,D.latestAlert||(D.latestAlert=xi(N.latest_notification?.subject??N.latest_notification?.summary,"")),D.seats.push({key:O,roleLabel:kc(N.role_id,"Seat"),seatLabel:xi(N.seat_id??N.role_session_id,"Seat"),status:xi(N.resident_status??N.status,"idle")}),D.seatCount=D.seats.length}return k.sort((N,O)=>N.label.localeCompare(O.label))},[o.runtimeTeams,o.runtimeSeats,u]),S=w.map(_=>_.latestAlert).find(Boolean)||"No current alerts";return!a?.run_id&&w.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:xi(a?.run_id,"Runtime Team Status")}),r&&c.jsx("button",{className:"project-cockpit-stop-btn",onClick:r,title:"Stop this run",children:"Stop"})]}),c.jsxs("div",{className:"project-cockpit-metrics",children:[c.jsx("span",{children:xi(a?.lifecycle_status,"active")}),c.jsxs("span",{children:["Teams ",w.length]}),c.jsxs("span",{children:["Seats ",o.runtimeSeats.length]}),c.jsxs("span",{children:["Approvals ",d]}),c.jsxs("span",{children:["Unread ",g]}),c.jsxs("span",{children:["Recovery ",y>0?`${y} interrupted`:xi(za(a?.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:v.length})]}),c.jsxs("div",{className:"project-cockpit-summary",children:[v.map(_=>c.jsxs("span",{children:[_.label," ",_.value]},_.label)),c.jsx("div",{className:"project-cockpit-inline-text",children:S})]})]}),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:w.length})]}),c.jsx("div",{className:"project-cockpit-team-grid",children:w.map(_=>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:_.label}),c.jsx("span",{children:_.managerLabel})]}),c.jsx("span",{className:`project-cockpit-team-status status-${PS(_.status)}`,children:_.status})]}),c.jsxs("div",{className:"project-cockpit-team-meta",children:[c.jsxs("span",{children:["Seats ",_.seatCount]}),c.jsxs("span",{children:["Approvals ",_.pendingApprovals]}),_.latestAlert&&c.jsx("span",{children:_.latestAlert})]}),c.jsx("div",{className:"project-cockpit-seat-list",children:_.seats.length>0?_.seats.map(k=>c.jsxs("div",{className:"project-cockpit-seat-row",children:[c.jsx("span",{className:"project-cockpit-seat-role",children:k.roleLabel}),c.jsx("span",{className:"project-cockpit-seat-id",children:k.seatLabel}),c.jsx("span",{className:`project-cockpit-seat-status status-${PS(k.status)}`,children:k.status})]},k.key)):c.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},_.key))})]})]})]})}function L8(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 BS={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"}},z8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]),$S={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function P8({session:e,agents:t,onTitleChange:n,onViewOnBoard:r,onStop:i,onComplete:o,onResume:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(e.title),h=E.useRef(null);E.useEffect(()=>{u||p(e.title)},[e.title,u]);const g=E.useCallback(()=>{const G=m.trim();G&&G!==e.title?n(e.taskId,G):p(e.title),d(!1)},[m,e.title,e.taskId,n]),y=E.useCallback(()=>{p(e.title),d(!0),setTimeout(()=>h.current?.select(),0)},[e.title]),v=e.assigneeIds.map(G=>t.find(J=>J.agent_id===G)).filter(Boolean),w=String(e.execMode??"").trim().toLowerCase(),S=w==="company"||w==="org"||w==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,_=v.length>0&&!S,k=e.runtimeControlState??(e.status==="running"?"running":"idle"),C=k==="suspending",N=k==="resuming",O=k==="suspended",I=e.status==="running"&&!C&&!O&&!N,D=z8.has(e.status),T=(e.canStop??e.status==="running")&&!C&&!O&&!N,L=(e.canResume??(O||!D&&!I&&e.status!=="done"&&e.status!=="pending"))&&!C&&!N,A=BS[e.status]??BS.pending,M=C?"Stopping":O?"Suspended":N?"Resuming":A.label,$=cl(e),W=ym(e),B=Wi(e),U=e.displayTool||e.currentTool,[H,V]=E.useState(U||void 0);E.useEffect(()=>{if(!I){V(void 0);return}U&&V(U)},[I,U]);const Y=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,Z=Y,q=C?"var(--yellow)":O?"var(--text-secondary)":W==="tool_active"?"var(--green)":W==="reflecting"?"var(--yellow)":A.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:h,className:"task-title-input",value:m,onChange:G=>p(G.target.value),onBlur:g,onKeyDown:G=>{G.key==="Enter"&&g(),G.key==="Escape"&&(p(e.title),d(!1))}}):c.jsx("span",{className:"task-title",onClick:y,title:"Click to edit",children:e.title}),c.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":B?"true":"false",children:[c.jsx("span",{className:"task-status-dot",style:{background:q}}),M]}),I&&H&&c.jsxs("span",{className:"task-tool-pill",children:[c.jsx(hm,{}),c.jsx("code",{children:H}),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: ${$S[e.selectedExecutionAgent]??e.selectedExecutionAgent}`,children:[c.jsx("span",{className:"task-agent-icon",children:"⚙"}),$S[e.selectedExecutionAgent]??e.selectedExecutionAgent]})]}),c.jsxs("div",{className:"task-header-right",children:[_&&c.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(G=>c.jsx("span",{className:"task-header-avatar",title:G.name,children:G.name.charAt(0).toUpperCase()},G.agent_id))}),c.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:L8(e.createdAt)}),(T||C)&&i&&c.jsxs("button",{className:"task-stop-btn",onClick:i,title:"Stop task",disabled:!T,children:[c.jsx(Bj,{}),c.jsx("span",{children:C?"Stopping...":"Stop"})]}),L&&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(_l,{}),c.jsx("span",{children:"Done"})]}),r&&c.jsx("button",{className:"task-board-btn",onClick:r,title:"View on Board",children:c.jsx(b4,{})})]})]}),Z&&c.jsx("div",{className:"task-header-metrics",children:Y&&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 wi(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function nN(e,t=0){const n=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;return n?`${e.type}:${wi(e.turnId)}:${wi(n)}`:e.type==="thinking"?`thinking:${wi(e.turnId)||wi(e.executionMode)||wi(e.summary)||"stream"}:${t}`:e.type==="tool_call"&&e.turnId?`tool:${wi(e.turnId)}:${wi(e.summary)||"tool"}:${t}`:e.turnId&&typeof e.seq=="number"?`${e.type}:${wi(e.turnId)}:seq:${e.seq}`:[e.type,wi(e.turnId),Number.isFinite(e.timestamp)?e.timestamp:"",wi(e.summary),wi(e.detail),t].join(":")}const B8=new Set(["done","failed","cancelled"]),HS=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),Uf={thinking:{icon:c.jsx(h4,{}),color:"var(--accent)",label:"Thinking"},tool_call:{icon:c.jsx(hm,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:c.jsx(Zc,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:c.jsx(Hj,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:c.jsx(_4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:c.jsx(Vk,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:c.jsx(gm,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:c.jsx(k4,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:c.jsx(S4,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:c.jsx(yc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:c.jsx(yc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:c.jsx(yc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:c.jsx(yc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:c.jsx(Vk,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:c.jsx(Nf,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:c.jsx(yc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:c.jsx(Zc,{}),color:"var(--accent)",label:"Verification"}},kg=5;function Sc(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 vf(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return vf(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(vf):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,vf(n)])):e}function $8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(vf(JSON.parse(t)),null,2)}catch{return e}}function Vo({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:r,lastToolSummary:i,sessionStatus:o,expandedByDefault:a}){const[u,d]=E.useState(!!a),m=!!o&&B8.has(o),p=!m&&t==="reflecting",h=!m&&t==="tool_active",g=p||h,y=E.useMemo(()=>e,[e]),v=E.useMemo(()=>u||y.length<=kg?y:y.slice(-kg),[y,u]),w=y.length-v.length;return y.length===0&&!g&&!m?null:c.jsxs("div",{className:"ptl-block",children:[g&&c.jsxs("div",{className:`ptl-live ${h?"ptl-live-tool":"ptl-live-think"}`,children:[c.jsx("span",{className:"ptl-live-icon",children:h?c.jsx(hm,{}):c.jsx(Po,{})}),c.jsx("span",{className:"ptl-live-text",children:h?"Running":"Thinking"}),h&&n&&c.jsx("code",{className:"ptl-live-tool-name",children:n}),h&&typeof r=="number"&&r>0&&c.jsx("span",{className:"ptl-live-elapsed",children:r<1e3?`${r}ms`:`${(r/1e3).toFixed(1)}s`}),c.jsx("span",{className:"ptl-live-shimmer"})]}),i&&!h&&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:i})]}),w>0&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[c.jsx(_s,{}),c.jsxs("span",{children:[w," earlier step",w>1?"s":""]})]}),v.length>0&&c.jsx("div",{className:"ptl-timeline",children:v.map((S,_)=>{const k=_===v.length-1,C=Uf[S.type]||Uf.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:C.color},children:C.icon}),!k&&c.jsx("div",{className:"ptl-line"})]}),c.jsx("div",{className:"ptl-content",children:c.jsx(rN,{entry:S})})]},nN(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&&y.length>kg&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[c.jsx(_s,{down:!0}),c.jsx("span",{children:"Show less"})]})]})}const rN=St.memo(function({entry:t}){const[n,r]=E.useState(!1),i=Uf[t.type]||Uf.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&&r(a=>!a)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Sc(t.timestamp)}),o&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{down:n})})]}),n&&t.detail&&c.jsx("pre",{className:"ptl-tool-card-detail",children:$8(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&&r(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Sc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{down:n})})]}),n&&t.detail&&c.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking")return c.jsxs("div",{className:"ptl-tool-card",children:[c.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>r(a=>!a),type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Sc(t.timestamp)}),c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{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&&r(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),c.jsx("span",{className:"ptl-time",children:Sc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{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:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:Sc(t.timestamp)})]}),t.detail&&c.jsx("div",{className:"ptl-detail",children:t.detail})]})});function H8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const F8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,V8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,U8={};function FS(e,t){return(U8.jsx?V8:F8).test(e)}const G8=/[ \t\n\f\r]/g;function q8(e){return typeof e=="object"?e.type==="text"?VS(e.value):!1:VS(e)}function VS(e){return e.replace(G8,"")===""}class _u{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}_u.prototype.normal={};_u.prototype.property={};_u.prototype.space=void 0;function iN(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new _u(n,r,t)}function Iy(e){return e.toLowerCase()}class $r{constructor(t,n){this.attribute=n,this.property=t}}$r.prototype.attribute="";$r.prototype.booleanish=!1;$r.prototype.boolean=!1;$r.prototype.commaOrSpaceSeparated=!1;$r.prototype.commaSeparated=!1;$r.prototype.defined=!1;$r.prototype.mustUseProperty=!1;$r.prototype.number=!1;$r.prototype.overloadedBoolean=!1;$r.prototype.property="";$r.prototype.spaceSeparated=!1;$r.prototype.space=void 0;let W8=0;const jt=Qo(),Xn=Qo(),Ty=Qo(),De=Qo(),xn=Qo(),Qa=Qo(),Yr=Qo();function Qo(){return 2**++W8}const Ry=Object.freeze(Object.defineProperty({__proto__:null,boolean:jt,booleanish:Xn,commaOrSpaceSeparated:Yr,commaSeparated:Qa,number:De,overloadedBoolean:Ty,spaceSeparated:xn},Symbol.toStringTag,{value:"Module"})),Sg=Object.keys(Ry);class U0 extends $r{constructor(t,n,r,i){let o=-1;if(super(t,n),US(this,"space",i),typeof r=="number")for(;++o4&&n.slice(0,4)==="data"&&Q8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(GS,tz);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!GS.test(o)){let a=o.replace(Z8,ez);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}i=U0}return new i(r,t)}function ez(e){return"-"+e.toLowerCase()}function tz(e){return e.charAt(1).toUpperCase()}const nz=iN([sN,Y8,lN,cN,uN],"html"),G0=iN([sN,X8,lN,cN,uN],"svg");function rz(e){return e.join(" ").trim()}var Ba={},wg,qS;function iz(){if(qS)return wg;qS=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,u=/^\s+|\s+$/g,d=` +`,m="/",p="*",h="",g="comment",y="declaration";function v(S,_){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];_=_||{};var k=1,C=1;function N(B){var U=B.match(t);U&&(k+=U.length);var H=B.lastIndexOf(d);C=~H?B.length-H:C+B.length}function O(){var B={line:k,column:C};return function(U){return U.position=new I(B),L(),U}}function I(B){this.start=B,this.end={line:k,column:C},this.source=_.source}I.prototype.content=S;function D(B){var U=new Error(_.source+":"+k+":"+C+": "+B);if(U.reason=B,U.filename=_.source,U.line=k,U.column=C,U.source=S,!_.silent)throw U}function T(B){var U=B.exec(S);if(U){var H=U[0];return N(H),S=S.slice(H.length),U}}function L(){T(n)}function A(B){var U;for(B=B||[];U=M();)U!==!1&&B.push(U);return B}function M(){var B=O();if(!(m!=S.charAt(0)||p!=S.charAt(1))){for(var U=2;h!=S.charAt(U)&&(p!=S.charAt(U)||m!=S.charAt(U+1));)++U;if(U+=2,h===S.charAt(U-1))return D("End of comment missing");var H=S.slice(2,U-2);return C+=2,N(H),S=S.slice(U),C+=2,B({type:g,comment:H})}}function $(){var B=O(),U=T(r);if(U){if(M(),!T(i))return D("property missing ':'");var H=T(o),V=B({type:y,property:w(U[0].replace(e,h)),value:H?w(H[0].replace(e,h)):h});return T(a),V}}function W(){var B=[];A(B);for(var U;U=$();)U!==!1&&(B.push(U),A(B));return B}return L(),W()}function w(S){return S?S.replace(u,h):h}return wg=v,wg}var WS;function sz(){if(WS)return Ba;WS=1;var e=Ba&&Ba.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.default=n;const t=e(iz());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const a=(0,t.default)(r),u=typeof i=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:p}=d;u?i(m,p,d):p&&(o=o||{},o[m]=p)}),o}return Ba}var wc={},YS;function oz(){if(YS)return wc;YS=1,Object.defineProperty(wc,"__esModule",{value:!0}),wc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,p){return p.toUpperCase()},u=function(m,p){return"".concat(p,"-")},d=function(m,p){return p===void 0&&(p={}),o(m)?m:(m=m.toLowerCase(),p.reactCompat?m=m.replace(i,u):m=m.replace(r,u),m.replace(t,a))};return wc.camelCase=d,wc}var Cc,XS;function az(){if(XS)return Cc;XS=1;var e=Cc&&Cc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(sz()),n=oz();function r(i,o){var a={};return!i||typeof i!="string"||(0,t.default)(i,function(u,d){u&&d&&(a[(0,n.camelCase)(u,o)]=d)}),a}return r.default=r,Cc=r,Cc}var lz=az();const cz=Zo(lz),dN=fN("end"),q0=fN("start");function fN(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function uz(e){const t=q0(e),n=dN(e);if(t&&n)return{start:t,end:n}}function Vc(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?KS(e.position):"start"in e||"end"in e?KS(e):"line"in e||"column"in e?Ay(e):""}function Ay(e){return ZS(e&&e.line)+":"+ZS(e&&e.column)}function KS(e){return Ay(e&&e.start)+"-"+Ay(e&&e.end)}function ZS(e){return e&&typeof e=="number"?e:1}class Sr extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",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"?i=t:!o.cause&&t&&(a=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const d=r.indexOf(":");d===-1?o.ruleId=r:(o.source=r.slice(0,d),o.ruleId=r.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=i,this.line=u?u.line:void 0,this.name=Vc(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}}Sr.prototype.file="";Sr.prototype.name="";Sr.prototype.reason="";Sr.prototype.message="";Sr.prototype.stack="";Sr.prototype.column=void 0;Sr.prototype.line=void 0;Sr.prototype.ancestors=void 0;Sr.prototype.cause=void 0;Sr.prototype.fatal=void 0;Sr.prototype.place=void 0;Sr.prototype.ruleId=void 0;Sr.prototype.source=void 0;const W0={}.hasOwnProperty,dz=new Map,fz=/[A-Z]/g,mz=new Set(["table","tbody","thead","tfoot","tr"]),hz=new Set(["td","th"]),mN="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pz(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Sz(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");r=kz(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?G0:nz,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=hN(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function hN(e,t,n){if(t.type==="element")return gz(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return xz(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return vz(e,t,n);if(t.type==="mdxjsEsm")return yz(e,t);if(t.type==="root")return bz(e,t,n);if(t.type==="text")return _z(e,t)}function gz(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=G0,e.schema=i),e.ancestors.push(t);const o=gN(e,t.tagName,!1),a=wz(e,t);let u=X0(e,t);return mz.has(t.tagName)&&(u=u.filter(function(d){return typeof d=="string"?!q8(d):!0})),pN(e,a,o,t),Y0(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}function xz(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}au(e,t.position)}function yz(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);au(e,t.position)}function vz(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=G0,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:gN(e,t.name,!0),a=Cz(e,t),u=X0(e,t);return pN(e,a,o,t),Y0(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}function bz(e,t,n){const r={};return Y0(r,X0(e,t)),e.create(t,e.Fragment,r,n)}function _z(e,t){return t.value}function pN(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Y0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function kz(e,t,n){return r;function r(i,o,a,u){const m=Array.isArray(a.children)?n:t;return u?m(o,a,u):m(o,a)}}function Sz(e,t){return n;function n(r,i,o,a){const u=Array.isArray(o.children),d=q0(r);return t(i,o,a,u,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function wz(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&W0.call(t.properties,i)){const o=jz(e,i,t.properties[i]);if(o){const[a,u]=o;e.tableCellAlignToStyle&&a==="align"&&typeof u=="string"&&hz.has(t.tagName)?r=u:n[a]=u}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Cz(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.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 au(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const u=r.value.data.estree.body[0];u.type,o=e.evaluater.evaluateExpression(u.expression)}else au(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function X0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:dz;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(ti(e,e.length,0,t),e):t}const ew={}.hasOwnProperty;function yN(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 Ti(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ir=ho(/[A-Za-z]/),kr=ho(/[\dA-Za-z]/),Oz=ho(/[#-'*+\--9=?A-Z^-~]/);function Gf(e){return e!==null&&(e<32||e===127)}const My=ho(/\d/),Lz=ho(/[\dA-Fa-f]/),zz=ho(/[!-/:-@[-`{-~]/);function ut(e){return e!==null&&e<-2}function gn(e){return e!==null&&(e<0||e===32)}function Mt(e){return e===-2||e===-1||e===32}const Nm=ho(new RegExp("\\p{P}|\\p{S}","u")),Uo=ho(/\s/);function ho(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function jl(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const u=e.charCodeAt(n+1);o<56320&&u>56319&&u<57344?(a=String.fromCharCode(o,u),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ht(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Mt(d)?(e.enter(n),u(d)):t(d)}function u(d){return Mt(d)&&o++a))return;const D=t.events.length;let T=D,L,A;for(;T--;)if(t.events[T][0]==="exit"&&t.events[T][1].type==="chunkFlow"){if(L){A=t.events[T][1].end;break}L=!0}for(_(r),I=D;IC;){const O=n[N];t.containerState=O[1],O[0].exit.call(t,e)}n.length=C}function k(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Fz(e,t,n){return Ht(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function dl(e){if(e===null||gn(e)||Uo(e))return 1;if(Nm(e))return 2}function Im(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[r][1].end},g={...e[n][1].start};nw(h,-d),nw(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:h,end:{...e[r][1].end}},u={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:d>1?"strong":"emphasis",start:{...a.start},end:{...u.end}},e[r][1].end={...a.start},e[n][1].start={...u.end},m=[],e[r][1].end.offset-e[r][1].start.offset&&(m=yi(m,[["enter",e[r][1],t],["exit",e[r][1],t]])),m=yi(m,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=yi(m,Im(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),m=yi(m,[["exit",o,t],["enter",u,t],["exit",u,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,m=yi(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,ti(e,r-1,n-r+3,m),n=r+m.length-p-2;break}}for(n=-1;++n0&&Mt(I)?Ht(e,k,"linePrefix",o+1)(I):k(I)}function k(I){return I===null||ut(I)?e.check(rw,w,N)(I):(e.enter("codeFlowValue"),C(I))}function C(I){return I===null||ut(I)?(e.exit("codeFlowValue"),k(I)):(e.consume(I),C)}function N(I){return e.exit("codeFenced"),t(I)}function O(I,D,T){let L=0;return A;function A(U){return I.enter("lineEnding"),I.consume(U),I.exit("lineEnding"),M}function M(U){return I.enter("codeFencedFence"),Mt(U)?Ht(I,$,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(U):$(U)}function $(U){return U===u?(I.enter("codeFencedFenceSequence"),W(U)):T(U)}function W(U){return U===u?(L++,I.consume(U),W):L>=a?(I.exit("codeFencedFenceSequence"),Mt(U)?Ht(I,B,"whitespace")(U):B(U)):T(U)}function B(U){return U===null||ut(U)?(I.exit("codeFencedFence"),D(U)):T(U)}}}function eP(e,t,n){const r=this;return i;function i(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const jg={name:"codeIndented",tokenize:nP},tP={partial:!0,tokenize:rP};function nP(e,t,n){const r=this;return i;function i(m){return e.enter("codeIndented"),Ht(e,o,"linePrefix",5)(m)}function o(m){const p=r.events[r.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):ut(m)?e.attempt(tP,a,d)(m):(e.enter("codeFlowValue"),u(m))}function u(m){return m===null||ut(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),u)}function d(m){return e.exit("codeIndented"),t(m)}}function rP(e,t,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):ut(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):Ht(e,o,"linePrefix",5)(a)}function o(a){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?t(a):ut(a)?i(a):n(a)}}const iP={name:"codeText",previous:oP,resolve:sP,tokenize:aP};function sP(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw 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-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&jc(this.left,r),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),jc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),jc(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(r.parser.constructs.flow,n,t)(a)}}function wN(e,t,n,r,i,o,a,u,d){const m=d||Number.POSITIVE_INFINITY;let p=0;return h;function h(_){return _===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(_),e.exit(o),g):_===null||_===32||_===41||Gf(_)?n(_):(e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),w(_))}function g(_){return _===62?(e.enter(o),e.consume(_),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),y(_))}function y(_){return _===62?(e.exit("chunkString"),e.exit(u),g(_)):_===null||_===60||ut(_)?n(_):(e.consume(_),_===92?v:y)}function v(_){return _===60||_===62||_===92?(e.consume(_),y):y(_)}function w(_){return!p&&(_===null||_===41||gn(_))?(e.exit("chunkString"),e.exit(u),e.exit(a),e.exit(r),t(_)):p999||y===null||y===91||y===93&&!d||y===94&&!u&&"_hiddenFootnoteSupport"in a.parser.constructs?n(y):y===93?(e.exit(o),e.enter(i),e.consume(y),e.exit(i),e.exit(r),t):ut(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===null||y===91||y===93||ut(y)||u++>999?(e.exit("chunkString"),p(y)):(e.consume(y),d||(d=!Mt(y)),y===92?g:h)}function g(y){return y===91||y===92||y===93?(e.consume(y),u++,h):h(y)}}function jN(e,t,n,r,i,o){let a;return u;function u(g){return g===34||g===39||g===40?(e.enter(r),e.enter(i),e.consume(g),e.exit(i),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(i),e.consume(g),e.exit(i),e.exit(r),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):ut(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Ht(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(g))}function p(g){return g===a||g===null||ut(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?h:p)}function h(g){return g===a||g===92?(e.consume(g),p):p(g)}}function Uc(e,t){let n;return r;function r(i){return ut(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Mt(i)?Ht(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const pP={name:"definition",tokenize:xP},gP={partial:!0,tokenize:yP};function xP(e,t,n){const r=this;let i;return o;function o(y){return e.enter("definition"),a(y)}function a(y){return CN.call(r,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function u(y){return i=Ti(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),d):n(y)}function d(y){return gn(y)?Uc(e,m)(y):m(y)}function m(y){return wN(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function p(y){return e.attempt(gP,h,h)(y)}function h(y){return Mt(y)?Ht(e,g,"whitespace")(y):g(y)}function g(y){return y===null||ut(y)?(e.exit("definition"),r.parser.defined.push(i),t(y)):n(y)}}function yP(e,t,n){return r;function r(u){return gn(u)?Uc(e,i)(u):n(u)}function i(u){return jN(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function o(u){return Mt(u)?Ht(e,a,"whitespace")(u):a(u)}function a(u){return u===null||ut(u)?t(u):n(u)}}const vP={name:"hardBreakEscape",tokenize:bP};function bP(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return ut(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const _P={name:"headingAtx",resolve:kP,tokenize:SP};function kP(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ti(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function SP(e,t,n){let r=0;return i;function i(p){return e.enter("atxHeading"),o(p)}function o(p){return e.enter("atxHeadingSequence"),a(p)}function a(p){return p===35&&r++<6?(e.consume(p),a):p===null||gn(p)?(e.exit("atxHeadingSequence"),u(p)):n(p)}function u(p){return p===35?(e.enter("atxHeadingSequence"),d(p)):p===null||ut(p)?(e.exit("atxHeading"),t(p)):Mt(p)?Ht(e,u,"whitespace")(p):(e.enter("atxHeadingText"),m(p))}function d(p){return p===35?(e.consume(p),d):(e.exit("atxHeadingSequence"),u(p))}function m(p){return p===null||p===35||gn(p)?(e.exit("atxHeadingText"),u(p)):(e.consume(p),m)}}const wP=["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"],sw=["pre","script","style","textarea"],CP={concrete:!0,name:"htmlFlow",resolveTo:NP,tokenize:IP},jP={partial:!0,tokenize:RP},EP={partial:!0,tokenize:TP};function NP(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 IP(e,t,n){const r=this;let i,o,a,u,d;return m;function m(P){return p(P)}function p(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),h}function h(P){return P===33?(e.consume(P),g):P===47?(e.consume(P),o=!0,w):P===63?(e.consume(P),i=3,r.interrupt?t:q):Ir(P)?(e.consume(P),a=String.fromCharCode(P),S):n(P)}function g(P){return P===45?(e.consume(P),i=2,y):P===91?(e.consume(P),i=5,u=0,v):Ir(P)?(e.consume(P),i=4,r.interrupt?t:q):n(P)}function y(P){return P===45?(e.consume(P),r.interrupt?t:q):n(P)}function v(P){const X="CDATA[";return P===X.charCodeAt(u++)?(e.consume(P),u===X.length?r.interrupt?t:$:v):n(P)}function w(P){return Ir(P)?(e.consume(P),a=String.fromCharCode(P),S):n(P)}function S(P){if(P===null||P===47||P===62||gn(P)){const X=P===47,ee=a.toLowerCase();return!X&&!o&&sw.includes(ee)?(i=1,r.interrupt?t(P):$(P)):wP.includes(a.toLowerCase())?(i=6,X?(e.consume(P),_):r.interrupt?t(P):$(P)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(P):o?k(P):C(P))}return P===45||kr(P)?(e.consume(P),a+=String.fromCharCode(P),S):n(P)}function _(P){return P===62?(e.consume(P),r.interrupt?t:$):n(P)}function k(P){return Mt(P)?(e.consume(P),k):A(P)}function C(P){return P===47?(e.consume(P),A):P===58||P===95||Ir(P)?(e.consume(P),N):Mt(P)?(e.consume(P),C):A(P)}function N(P){return P===45||P===46||P===58||P===95||kr(P)?(e.consume(P),N):O(P)}function O(P){return P===61?(e.consume(P),I):Mt(P)?(e.consume(P),O):C(P)}function I(P){return P===null||P===60||P===61||P===62||P===96?n(P):P===34||P===39?(e.consume(P),d=P,D):Mt(P)?(e.consume(P),I):T(P)}function D(P){return P===d?(e.consume(P),d=null,L):P===null||ut(P)?n(P):(e.consume(P),D)}function T(P){return P===null||P===34||P===39||P===47||P===60||P===61||P===62||P===96||gn(P)?O(P):(e.consume(P),T)}function L(P){return P===47||P===62||Mt(P)?C(P):n(P)}function A(P){return P===62?(e.consume(P),M):n(P)}function M(P){return P===null||ut(P)?$(P):Mt(P)?(e.consume(P),M):n(P)}function $(P){return P===45&&i===2?(e.consume(P),H):P===60&&i===1?(e.consume(P),V):P===62&&i===4?(e.consume(P),G):P===63&&i===3?(e.consume(P),q):P===93&&i===5?(e.consume(P),Z):ut(P)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(jP,J,W)(P)):P===null||ut(P)?(e.exit("htmlFlowData"),W(P)):(e.consume(P),$)}function W(P){return e.check(EP,B,J)(P)}function B(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),U}function U(P){return P===null||ut(P)?W(P):(e.enter("htmlFlowData"),$(P))}function H(P){return P===45?(e.consume(P),q):$(P)}function V(P){return P===47?(e.consume(P),a="",Y):$(P)}function Y(P){if(P===62){const X=a.toLowerCase();return sw.includes(X)?(e.consume(P),G):$(P)}return Ir(P)&&a.length<8?(e.consume(P),a+=String.fromCharCode(P),Y):$(P)}function Z(P){return P===93?(e.consume(P),q):$(P)}function q(P){return P===62?(e.consume(P),G):P===45&&i===2?(e.consume(P),q):$(P)}function G(P){return P===null||ut(P)?(e.exit("htmlFlowData"),J(P)):(e.consume(P),G)}function J(P){return e.exit("htmlFlow"),t(P)}}function TP(e,t,n){const r=this;return i;function i(a){return ut(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function RP(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(ku,t,n)}}const AP={name:"htmlText",tokenize:MP};function MP(e,t,n){const r=this;let i,o,a;return u;function u(q){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(q),d}function d(q){return q===33?(e.consume(q),m):q===47?(e.consume(q),O):q===63?(e.consume(q),C):Ir(q)?(e.consume(q),T):n(q)}function m(q){return q===45?(e.consume(q),p):q===91?(e.consume(q),o=0,v):Ir(q)?(e.consume(q),k):n(q)}function p(q){return q===45?(e.consume(q),y):n(q)}function h(q){return q===null?n(q):q===45?(e.consume(q),g):ut(q)?(a=h,V(q)):(e.consume(q),h)}function g(q){return q===45?(e.consume(q),y):h(q)}function y(q){return q===62?H(q):q===45?g(q):h(q)}function v(q){const G="CDATA[";return q===G.charCodeAt(o++)?(e.consume(q),o===G.length?w:v):n(q)}function w(q){return q===null?n(q):q===93?(e.consume(q),S):ut(q)?(a=w,V(q)):(e.consume(q),w)}function S(q){return q===93?(e.consume(q),_):w(q)}function _(q){return q===62?H(q):q===93?(e.consume(q),_):w(q)}function k(q){return q===null||q===62?H(q):ut(q)?(a=k,V(q)):(e.consume(q),k)}function C(q){return q===null?n(q):q===63?(e.consume(q),N):ut(q)?(a=C,V(q)):(e.consume(q),C)}function N(q){return q===62?H(q):C(q)}function O(q){return Ir(q)?(e.consume(q),I):n(q)}function I(q){return q===45||kr(q)?(e.consume(q),I):D(q)}function D(q){return ut(q)?(a=D,V(q)):Mt(q)?(e.consume(q),D):H(q)}function T(q){return q===45||kr(q)?(e.consume(q),T):q===47||q===62||gn(q)?L(q):n(q)}function L(q){return q===47?(e.consume(q),H):q===58||q===95||Ir(q)?(e.consume(q),A):ut(q)?(a=L,V(q)):Mt(q)?(e.consume(q),L):H(q)}function A(q){return q===45||q===46||q===58||q===95||kr(q)?(e.consume(q),A):M(q)}function M(q){return q===61?(e.consume(q),$):ut(q)?(a=M,V(q)):Mt(q)?(e.consume(q),M):L(q)}function $(q){return q===null||q===60||q===61||q===62||q===96?n(q):q===34||q===39?(e.consume(q),i=q,W):ut(q)?(a=$,V(q)):Mt(q)?(e.consume(q),$):(e.consume(q),B)}function W(q){return q===i?(e.consume(q),i=void 0,U):q===null?n(q):ut(q)?(a=W,V(q)):(e.consume(q),W)}function B(q){return q===null||q===34||q===39||q===60||q===61||q===96?n(q):q===47||q===62||gn(q)?L(q):(e.consume(q),B)}function U(q){return q===47||q===62||gn(q)?L(q):n(q)}function H(q){return q===62?(e.consume(q),e.exit("htmlTextData"),e.exit("htmlText"),t):n(q)}function V(q){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(q),e.exit("lineEnding"),Y}function Y(q){return Mt(q)?Ht(e,Z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(q):Z(q)}function Z(q){return e.enter("htmlTextData"),a(q)}}const Q0={name:"labelEnd",resolveAll:zP,resolveTo:PP,tokenize:BP},DP={tokenize:$P},OP={tokenize:HP},LP={tokenize:FP};function zP(e){let t=-1;const n=[];for(;++t=3&&(m===null||ut(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===i?(e.consume(m),r++,d):(e.exit("thematicBreakSequence"),Mt(m)?Ht(e,u,"whitespace")(m):u(m))}}const Pr={continuation:{tokenize:QP},exit:eB,name:"list",tokenize:ZP},XP={partial:!0,tokenize:tB},KP={partial:!0,tokenize:JP};function ZP(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return u;function u(y){const v=r.containerState.type||(y===42||y===43||y===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!r.containerState.marker||y===r.containerState.marker:My(y)){if(r.containerState.type||(r.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),y===42||y===45?e.check(bf,n,m)(y):m(y);if(!r.interrupt||y===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(y)}return n(y)}function d(y){return My(y)&&++a<10?(e.consume(y),d):(!r.interrupt||a<2)&&(r.containerState.marker?y===r.containerState.marker:y===41||y===46)?(e.exit("listItemValue"),m(y)):n(y)}function m(y){return e.enter("listItemMarker"),e.consume(y),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||y,e.check(ku,r.interrupt?n:p,e.attempt(XP,g,h))}function p(y){return r.containerState.initialBlankLine=!0,o++,g(y)}function h(y){return Mt(y)?(e.enter("listItemPrefixWhitespace"),e.consume(y),e.exit("listItemPrefixWhitespace"),g):n(y)}function g(y){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(y)}}function QP(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(ku,i,o);function i(u){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ht(e,t,"listItemIndent",r.containerState.size+1)(u)}function o(u){return r.containerState.furtherBlankLines||!Mt(u)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(u)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(KP,t,a)(u))}function a(u){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ht(e,e.attempt(Pr,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u)}}function JP(e,t,n){const r=this;return Ht(e,i,"listItemIndent",r.containerState.size+1);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(o):n(o)}}function eB(e){e.exit(this.containerState.type)}function tB(e,t,n){const r=this;return Ht(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const a=r.events[r.events.length-1];return!Mt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const ow={name:"setextUnderline",resolveTo:nB,tokenize:rB};function nB(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",a,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function rB(e,t,n){const r=this;let i;return o;function o(m){let p=r.events.length,h;for(;p--;)if(r.events[p][1].type!=="lineEnding"&&r.events[p][1].type!=="linePrefix"&&r.events[p][1].type!=="content"){h=r.events[p][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||h)?(e.enter("setextHeadingLine"),i=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),u(m)}function u(m){return m===i?(e.consume(m),u):(e.exit("setextHeadingLineSequence"),Mt(m)?Ht(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||ut(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const iB={tokenize:sB};function sB(e){const t=this,n=e.attempt(ku,r,e.attempt(this.parser.constructs.flowInitial,i,Ht(e,e.attempt(this.parser.constructs.flow,i,e.attempt(uP,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const oB={resolveAll:NN()},aB=EN("string"),lB=EN("text");function EN(e){return{resolveAll:NN(e==="text"?cB:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,a,u);return a;function a(p){return m(p)?o(p):u(p)}function u(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),d}function d(p){return m(p)?(n.exit("data"),o(p)):(n.consume(p),d)}function m(p){if(p===null)return!0;const h=i[p];let g=-1;if(h)for(;++g-1){const u=a[0];typeof u=="string"?a[0]=u.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}function kB(e,t){let n=-1;const r=[];let i;for(;++n0){const Ut=Me.tokenStack[Me.tokenStack.length-1];(Ut[1]||lw).call(Me,void 0,Ut[0])}for(be.position={start:to(fe.length>0?fe[0][1].start:{line:1,column:1,offset:0}),end:to(fe.length>0?fe[fe.length-2][1].end:{line:1,column:1,offset:0})},$e=-1;++$e0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,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 LB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function PB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=jl(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let a,u=e.footnoteCounts.get(r);u===void 0?(u=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=o+1,u+=1,e.footnoteCounts.set(r,u);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(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 BB(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 $B(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function RN(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift({type:"text",value:"["});const a=i[i.length-1];return a&&a.type==="text"?a.value+=r:i.push({type:"text",value:r}),i}function HB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RN(e,t);const i={src:jl(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)}function FB(e,t){const n={src:jl(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 r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function VB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function UB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RN(e,t);const i={href:jl(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function GB(e,t){const n={href:jl(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function qB(e,t,n){const r=e.all(t),i=n?WB(n):AN(t),o={},a=[];if(typeof t.checked=="boolean"){const p=r[0];let h;p&&p.type==="element"&&p.tagName==="p"?h=p:(h={type:"element",tagName:"p",properties:{},children:[]},r.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.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 YB(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},u=q0(t.children[1]),d=dN(t.children[t.children.length-1]);u&&d&&(a.position={start:u,end:d}),i.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)}function JB(e,t,n){const r=n?n.children:void 0,o=(r?r.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),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(dw(t.slice(i),i>0,!1)),o.join("")}function dw(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===cw||o===uw;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===cw||o===uw;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function n9(e,t){const n={type:"text",value:t9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function r9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const i9={blockquote:MB,break:DB,code:OB,delete:LB,emphasis:zB,footnoteReference:PB,heading:BB,html:$B,imageReference:HB,image:FB,inlineCode:VB,linkReference:UB,link:GB,listItem:qB,list:YB,paragraph:XB,root:KB,strong:ZB,table:QB,tableCell:e9,tableRow:JB,text:n9,thematicBreak:r9,toml:Ud,yaml:Ud,definition:Ud,footnoteDefinition:Ud};function Ud(){}const MN=-1,Tm=0,Gc=1,qf=2,J0=3,ev=4,tv=5,nv=6,DN=7,ON=8,fw=typeof self=="object"?self:globalThis,s9=(e,t)=>{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,a]=t[i];switch(o){case Tm:case MN:return n(a,i);case Gc:{const u=n([],i);for(const d of a)u.push(r(d));return u}case qf:{const u=n({},i);for(const[d,m]of a)u[r(d)]=r(m);return u}case J0:return n(new Date(a),i);case ev:{const{source:u,flags:d}=a;return n(new RegExp(u,d),i)}case tv:{const u=n(new Map,i);for(const[d,m]of a)u.set(r(d),r(m));return u}case nv:{const u=n(new Set,i);for(const d of a)u.add(r(d));return u}case DN:{const{name:u,message:d}=a;return n(new fw[u](d),i)}case ON:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);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 fw[o](a),i)};return r},mw=e=>s9(new Map,e)(0),$a="",{toString:o9}={},{keys:a9}=Object,Ec=e=>{const t=typeof e;if(t!=="object"||!e)return[Tm,t];const n=o9.call(e).slice(8,-1);switch(n){case"Array":return[Gc,$a];case"Object":return[qf,$a];case"Date":return[J0,$a];case"RegExp":return[ev,$a];case"Map":return[tv,$a];case"Set":return[nv,$a];case"DataView":return[Gc,n]}return n.includes("Array")?[Gc,n]:n.includes("Error")?[DN,n]:[qf,n]},Gd=([e,t])=>e===Tm&&(t==="function"||t==="symbol"),l9=(e,t,n,r)=>{const i=(a,u)=>{const d=r.push(a)-1;return n.set(u,d),d},o=a=>{if(n.has(a))return n.get(a);let[u,d]=Ec(a);switch(u){case Tm:{let p=a;switch(d){case"bigint":u=ON,p=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);p=null;break;case"undefined":return i([MN],a)}return i([u,p],a)}case Gc:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),i([d,[...g]],a)}const p=[],h=i([u,p],a);for(const g of a)p.push(o(g));return h}case qf:{if(d)switch(d){case"BigInt":return i([d,a.toString()],a);case"Boolean":case"Number":case"String":return i([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const p=[],h=i([u,p],a);for(const g of a9(a))(e||!Gd(Ec(a[g])))&&p.push([o(g),o(a[g])]);return h}case J0:return i([u,a.toISOString()],a);case ev:{const{source:p,flags:h}=a;return i([u,{source:p,flags:h}],a)}case tv:{const p=[],h=i([u,p],a);for(const[g,y]of a)(e||!(Gd(Ec(g))||Gd(Ec(y))))&&p.push([o(g),o(y)]);return h}case nv:{const p=[],h=i([u,p],a);for(const g of a)(e||!Gd(Ec(g)))&&p.push(o(g));return h}}const{message:m}=a;return i([u,{name:d,message:m}],a)};return o},hw=(e,{json:t,lossy:n}={})=>{const r=[];return l9(!(t||n),!!t,new Map,r)(e),r},Wf=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?mw(hw(e,t)):structuredClone(e):(e,t)=>mw(hw(e,t));function c9(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 d9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||c9,r=e.options.footnoteBackLabel||u9,i=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,y);typeof k=="string"&&(k={type:"text",value:k}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(y>1?"-"+y:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(d,y),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}const S=p[p.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 p.push(...v);const _={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(p,!0)};e.patch(m,_),u.push(_)}if(u.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...Wf(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:` +`}]}}const Rm=(function(e){if(e==null)return p9;if(typeof e=="function")return Am(e);if(typeof e=="object")return Array.isArray(e)?f9(e):m9(e);if(typeof e=="string")return h9(e);throw new Error("Expected function, string, or object as test")});function f9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let y=LN,v,w,S;if((!t||o(d,m,p[p.length-1]||void 0))&&(y=v9(n(d,p)),y[0]===Oy))return y;if("children"in d&&d.children){const _=d;if(_.children&&y[0]!==y9)for(w=(r?_.children.length:-1)+a,S=p.concat(_);w>-1&&w<_.children.length;){const k=_.children[w];if(v=u(k,w,S)(),v[0]===Oy)return v;w=typeof v[1]=="number"?v[1]:w+a}}return y}}}function v9(e){return Array.isArray(e)?e:typeof e=="number"?[x9,e]:e==null?LN:[e]}function rv(e,t,n,r){let i,o,a;typeof t=="function"&&typeof n!="function"?(o=void 0,a=t,i=n):(o=t,a=n,i=r),zN(e,o,u,i);function u(d,m){const p=m[m.length-1],h=p?p.children.indexOf(d):void 0;return a(d,h,p)}}const Ly={}.hasOwnProperty,b9={};function _9(e,t){const n=t||b9,r=new Map,i=new Map,o=new Map,a={...i9,...n.handlers},u={all:m,applyData:S9,definitionById:r,footnoteById:i,footnoteCounts:o,footnoteOrder:[],handlers:a,one:d,options:n,patch:k9,wrap:C9};return rv(e,function(p){if(p.type==="definition"||p.type==="footnoteDefinition"){const h=p.type==="definition"?r:i,g=String(p.identifier).toUpperCase();h.has(g)||h.set(g,p)}}),u;function d(p,h){const g=p.type,y=u.handlers[g];if(Ly.call(u.handlers,g)&&y)return y(u,p,h);if(u.options.passThrough&&u.options.passThrough.includes(g)){if("children"in p){const{children:w,...S}=p,_=Wf(S);return _.children=u.all(p),_}return Wf(p)}return(u.options.unknownHandler||w9)(u,p,h)}function m(p){const h=[];if("children"in p){const g=p.children;let y=-1;for(;++y0&&n.push({type:"text",value:` +`}),n}function pw(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=_9(e,t),r=n.one(e,void 0),i=d9(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:` +`},i),o}function j9(e,t){return e&&"run"in e?async function(n,r){const i=gw(n,{file:r,...t});await e.run(i,r)}:function(n,r){return gw(n,{file:r,...e||t})}}function xw(e){if(e)throw e}var Ng,yw;function E9(){if(yw)return Ng;yw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=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 p=e.call(m,"constructor"),h=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!p&&!h)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,p){n&&p.name==="__proto__"?n(m,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):m[p.name]=p.newValue},u=function(m,p){if(p==="__proto__")if(e.call(m,p)){if(r)return r(m,p).value}else return;return m[p]};return Ng=function d(){var m,p,h,g,y,v,w=arguments[0],S=1,_=arguments.length,k=!1;for(typeof w=="boolean"&&(k=w,w=arguments[1]||{},S=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});S<_;++S)if(m=arguments[S],m!=null)for(p in m)h=u(w,p),g=u(m,p),w!==g&&(k&&g&&(o(g)||(y=i(g)))?(y?(y=!1,v=h&&i(h)?h:[]):v=h&&o(h)?h:{},a(w,{name:p,newValue:d(k,v,g)})):typeof g<"u"&&a(w,{name:p,newValue:g}));return w},Ng}var N9=E9();const Ig=Zo(N9);function zy(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function I9(){const e=[],t={run:n,use:r};return t;function n(...i){let o=-1;const a=i.pop();if(typeof a!="function")throw new TypeError("Expected function as last argument, not "+a);u(null,...i);function u(d,...m){const p=e[++o];let h=-1;if(d){a(d);return}for(;++ha.length;let d;u&&a.push(i);try{d=e.apply(this,a)}catch(m){const p=m;if(u&&n)throw p;return i(p)}u||(d&&d.then&&typeof d.then=="function"?d.then(o,i):d instanceof Error?i(d):o(d))}function i(a,...u){n||(n=!0,t(a,...u))}function o(a){i(null,a)}}const Hi={basename:R9,dirname:A9,extname:M9,join:D9,sep:"/"};function R9(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Su(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,u=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else a<0&&(o=!0,a=i+1),u>-1&&(e.codePointAt(i)===t.codePointAt(u--)?u<0&&(r=i):(u=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function A9(e){if(Su(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function M9(e){Su(e);let t=e.length,n=-1,r=0,i=-1,o=0,a;for(;t--;){const u=e.codePointAt(t);if(u===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),u===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function D9(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function L9(e,t){let n="",r=0,i=-1,o=0,a=-1,u,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",r=0):(n=n.slice(0,d),r=n.length-1-n.lastIndexOf("/")),i=a,o=0;continue}}else if(n.length>0){n="",r=0,i=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,a):n=e.slice(i+1,a),r=a-i-1;i=a,o=0}else u===46&&o>-1?o++:o=-1}return n}function Su(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const z9={cwd:P9};function P9(){return"/"}function Py(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function B9(e){if(typeof e=="string")e=new URL(e);else if(!Py(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 $9(e)}function $9(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[y,...v]=p;const w=r[g][1];zy(w)&&zy(y)&&(y=Ig(!0,w,y)),r[g]=[m,y,...v]}}}}const U9=new iv().freeze();function Mg(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Dg(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Og(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 bw(e){if(!zy(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function _w(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function qd(e){return G9(e)?e:new PN(e)}function G9(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function q9(e){return typeof e=="string"||W9(e)}function W9(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y9="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",kw=[],Sw={allowDangerousHtml:!0},X9=/^(https?|ircs?|mailto|xmpp)$/i,K9=[{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 Z9(e){const t=Q9(e),n=J9(e);return e$(t.runSync(t.parse(n),n),e)}function Q9(e){const t=e.rehypePlugins||kw,n=e.remarkPlugins||kw,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Sw}:Sw;return U9().use(AB).use(n).use(j9,r).use(t)}function J9(e){const t=e.children||"",n=new PN;return typeof t=="string"&&(n.value=t),n}function e$(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,u=t.unwrapDisallowed,d=t.urlTransform||t$;for(const p of K9)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+Y9+p.id,void 0);return rv(e,m),pz(e,{Fragment:c.Fragment,components:i,ignoreInvalidStyle:!0,jsx:c.jsx,jsxs:c.jsxs,passKeys:!0,passNode:!0});function m(p,h,g){if(p.type==="raw"&&g&&typeof h=="number")return a?g.children.splice(h,1):g.children[h]={type:"text",value:p.value},h;if(p.type==="element"){let y;for(y in Cg)if(Object.hasOwn(Cg,y)&&Object.hasOwn(p.properties,y)){const v=p.properties[y],w=Cg[y];(w===null||w.includes(p.tagName))&&(p.properties[y]=d(String(v||""),y,p))}}if(p.type==="element"){let y=n?!n.includes(p.tagName):o?o.includes(p.tagName):!1;if(!y&&r&&typeof h=="number"&&(y=!r(p,h,g)),y&&g&&typeof h=="number")return u&&p.children?g.children.splice(h,1,...p.children):g.children.splice(h,1),h}}}function t$(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X9.test(e.slice(0,t))?e:""}function ww(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function n$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function r$(e,t,n){const i=Rm((n||{}).ignore||[]),o=i$(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+C[0].length,_=!0),!g.global)break;C=g.exec(m.value)}return _?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=ww(e,"(");let o=ww(e,")");for(;r!==-1&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}function BN(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Uo(n)||Nm(n))&&(!t||n!==47)}$N.peek=E$;function v$(){this.buffer()}function b$(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _$(){this.buffer()}function k$(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function S$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ti(this.sliceSerialize(e)).toLowerCase(),n.label=t}function w$(e){this.exit(e)}function C$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ti(this.sliceSerialize(e)).toLowerCase(),n.label=t}function j$(e){this.exit(e)}function E$(){return"["}function $N(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),u(),a(),o+=i.move("]"),o}function N$(){return{enter:{gfmFootnoteCallString:v$,gfmFootnoteCall:b$,gfmFootnoteDefinitionLabelString:_$,gfmFootnoteDefinition:k$},exit:{gfmFootnoteCallString:S$,gfmFootnoteCall:w$,gfmFootnoteDefinitionLabelString:C$,gfmFootnoteDefinition:j$}}}function I$(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:$N},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,o,a){const u=o.createTracker(a);let d=u.move("[^");const m=o.enter("footnoteDefinition"),p=o.enter("label");return d+=u.move(o.safe(o.associationId(r),{before:d,after:"]"})),p(),d+=u.move("]:"),r.children&&r.children.length>0&&(u.shift(4),d+=u.move((t?` +`:" ")+o.indentLines(o.containerFlow(r,u.current()),t?HN:T$))),m(),d}}function T$(e,t,n){return t===0?e:HN(e,t,n)}function HN(e,t,n){return(n?"":" ")+e}const R$=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];FN.peek=L$;function A$(){return{canContainEols:["delete"],enter:{strikethrough:D$},exit:{strikethrough:O$}}}function M$(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:R$}],handlers:{delete:FN}}}function D$(e){this.enter({type:"delete",children:[]},e)}function O$(e){this.exit(e)}function FN(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let a=i.move("~~");return a+=n.containerPhrasing(e,{...i.current(),before:a,after:"~"}),a+=i.move("~~"),o(),a}function L$(){return"~"}function z$(e){return e.length}function P$(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||z$,o=[],a=[],u=[],d=[];let m=0,p=-1;for(;++pm&&(m=e[p].length);++_d[_])&&(d[_]=C)}w.push(k)}a[p]=w,u[p]=S}let h=-1;if(typeof r=="object"&&"length"in r)for(;++hd[h]&&(d[h]=k),y[h]=k),g[h]=C}a.splice(1,0,g),u.splice(1,0,y),p=-1;const v=[];for(;++p "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),H$);return i(),a}function H$(e,t,n){return">"+(n?"":" ")+e}function F$(e,t){return jw(e,t.inConstruct,!0)&&!jw(e,t.notInConstruct,!1)}function jw(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=o):o=1,i=r+t.length,r=n.indexOf(t,i);return a}function U$(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 G$(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 q$(e,t,n,r){const i=G$(n),o=e.value||"",a=i==="`"?"GraveAccent":"Tilde";if(U$(e,n)){const h=n.enter("codeIndented"),g=n.indentLines(o,W$);return h(),g}const u=n.createTracker(r),d=i.repeat(Math.max(V$(o,i)+1,3)),m=n.enter("codeFenced");let p=u.move(d);if(e.lang){const h=n.enter(`codeFencedLang${a}`);p+=u.move(n.safe(e.lang,{before:p,after:" ",encode:["`"],...u.current()})),h()}if(e.lang&&e.meta){const h=n.enter(`codeFencedMeta${a}`);p+=u.move(" "),p+=u.move(n.safe(e.meta,{before:p,after:` +`,encode:["`"],...u.current()})),h()}return p+=u.move(` +`),o&&(p+=u.move(o+` +`)),p+=u.move(d),m(),p}function W$(e,t,n){return(n?"":" ")+e}function sv(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 Y$(e,t,n,r){const i=sv(n),o=i==='"'?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const d=n.createTracker(r);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(" "+i),m+=d.move(n.safe(e.title,{before:m,after:i,...d.current()})),m+=d.move(i),u()),a(),m}function X$(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 lu(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Yf(e,t,n){const r=dl(e),i=dl(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}VN.peek=K$;function VN(e,t,n,r){const i=X$(n),o=n.enter("emphasis"),a=n.createTracker(r),u=a.move(i);let d=a.move(n.containerPhrasing(e,{after:i,before:u,...a.current()}));const m=d.charCodeAt(0),p=Yf(r.before.charCodeAt(r.before.length-1),m,i);p.inside&&(d=lu(m)+d.slice(1));const h=d.charCodeAt(d.length-1),g=Yf(r.after.charCodeAt(0),h,i);g.inside&&(d=d.slice(0,-1)+lu(h));const y=a.move(i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},u+d+y}function K$(e,t,n){return n.options.emphasis||"*"}function Z$(e,t){let n=!1;return rv(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Oy}),!!((!e.depth||e.depth<3)&&K0(e)&&(t.options.setext||n))}function Q$(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(Z$(e,n)){const p=n.enter("headingSetext"),h=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return h(),p(),g+` +`+(i===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` +`))+1))}const a="#".repeat(i),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=lu(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),u(),m}UN.peek=J$;function UN(e){return e.value||""}function J$(){return"<"}GN.peek=e7;function GN(e,t,n,r){const i=sv(n),o=i==='"'?"Quote":"Apostrophe",a=n.enter("image");let u=n.enter("label");const d=n.createTracker(r);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(" "+i),m+=d.move(n.safe(e.title,{before:m,after:i,...d.current()})),m+=d.move(i),u()),m+=d.move(")"),a(),m}function e7(){return"!"}qN.peek=t7;function qN(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(r);let d=u.move("![");const m=n.safe(e.alt,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const p=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=p,o(),i==="full"||!m||m!==h?d+=u.move(h+"]"):i==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function t7(){return"!"}WN.peek=n7;function WN(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}XN.peek=r7;function XN(e,t,n,r){const i=sv(n),o=i==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let u,d;if(YN(e,n)){const p=n.stack;n.stack=[],u=n.enter("autolink");let h=a.move("<");return h+=a.move(n.containerPhrasing(e,{before:h,after:">",...a.current()})),h+=a.move(">"),u(),n.stack=p,h}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(" "+i),m+=a.move(n.safe(e.title,{before:m,after:i,...a.current()})),m+=a.move(i),d()),m+=a.move(")"),u(),m}function r7(e,t,n){return YN(e,n)?"<":"["}KN.peek=i7;function KN(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(r);let d=u.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const p=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=p,o(),i==="full"||!m||m!==h?d+=u.move(h+"]"):i==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function i7(){return"["}function ov(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 s7(e){const t=ov(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 o7(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 ZN(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 a7(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?o7(n):ov(n);const u=e.ordered?a==="."?")":".":s7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const p=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&p&&(!p.children||!p.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),ZN(n)===a&&p){let h=-1;for(;++h-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const u=n.createTracker(r);u.move(o+" ".repeat(a-o.length)),u.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,u.current()),p);return d(),m;function p(h,g,y){return g?(y?"":" ".repeat(a))+h:(y?o:o+" ".repeat(a-o.length))+h}}function u7(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,r);return o(),i(),a}const d7=Rm(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function f7(e,t,n,r){return(e.children.some(function(a){return d7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function m7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}QN.peek=h7;function QN(e,t,n,r){const i=m7(n),o=n.enter("strong"),a=n.createTracker(r),u=a.move(i+i);let d=a.move(n.containerPhrasing(e,{after:i,before:u,...a.current()}));const m=d.charCodeAt(0),p=Yf(r.before.charCodeAt(r.before.length-1),m,i);p.inside&&(d=lu(m)+d.slice(1));const h=d.charCodeAt(d.length-1),g=Yf(r.after.charCodeAt(0),h,i);g.inside&&(d=d.slice(0,-1)+lu(h));const y=a.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},u+d+y}function h7(e,t,n){return n.options.strong||"*"}function p7(e,t,n,r){return n.safe(e.value,r)}function g7(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 x7(e,t,n){const r=(ZN(n)+(n.options.ruleSpaces?" ":"")).repeat(g7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const JN={blockquote:$$,break:Ew,code:q$,definition:Y$,emphasis:VN,hardBreak:Ew,heading:Q$,html:UN,image:GN,imageReference:qN,inlineCode:WN,link:XN,linkReference:KN,list:a7,listItem:c7,paragraph:u7,root:f7,strong:QN,text:p7,thematicBreak:x7};function y7(){return{enter:{table:v7,tableData:Nw,tableHeader:Nw,tableRow:_7},exit:{codeText:k7,table:b7,tableData:Bg,tableHeader:Bg,tableRow:Bg}}}function v7(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 b7(e){this.exit(e),this.data.inTable=void 0}function _7(e){this.enter({type:"tableRow",children:[]},e)}function Bg(e){this.exit(e)}function Nw(e){this.enter({type:"tableCell",children:[]},e)}function k7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,S7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function S7(e,t){return t==="|"?t:e}function w7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=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(y,v,w,S){return m(p(y,w,S),y.align)}function u(y,v,w,S){const _=h(y,w,S),k=m([_]);return k.slice(0,k.indexOf(` +`))}function d(y,v,w,S){const _=w.enter("tableCell"),k=w.enter("phrasing"),C=w.containerPhrasing(y,{...S,before:o,after:o});return k(),_(),C}function m(y,v){return P$(y,{align:v,alignDelimiters:r,padding:n,stringLength:i})}function p(y,v,w){const S=y.children;let _=-1;const k=[],C=v.enter("table");for(;++_0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const F7={tokenize:K7,partial:!0};function V7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W7,continuation:{tokenize:Y7},exit:X7}},text:{91:{name:"gfmFootnoteCall",tokenize:q7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:U7,resolveTo:G7}}}}function U7(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;i--;){const d=r.events[i][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=Ti(r.sliceSerialize({start:a.end,end:r.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 G7(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 r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},i.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",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...u),e}function q7(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o=0,a;return u;function u(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),d}function d(h){return h!==94?n(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(h){if(o>999||h===93&&!a||h===null||h===91||gn(h))return n(h);if(h===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return i.includes(Ti(r.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(h)}return gn(h)||(a=!0),o++,e.consume(h),h===92?p:m}function p(h){return h===91||h===92||h===93?(e.consume(h),o++,m):m(h)}}function W7(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.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",p):n(v)}function p(v){if(a>999||v===93&&!u||v===null||v===91||gn(v))return n(v);if(v===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return o=Ti(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return gn(v)||(u=!0),a++,e.consume(v),v===92?h:p}function h(v){return v===91||v===92||v===93?(e.consume(v),a++,p):p(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),i.includes(o)||i.push(o),Ht(e,y,"gfmFootnoteDefinitionWhitespace")):n(v)}function y(v){return t(v)}}function Y7(e,t,n){return e.check(ku,t,e.attempt(F7,t,n))}function X7(e){e.exit("gfmFootnoteDefinition")}function K7(e,t,n){const r=this;return Ht(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function Z7(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:o,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(a,u){let d=-1;for(;++d1?d(v):(a.consume(v),h++,y);if(h<2&&!n)return d(v);const S=a.exit("strikethroughSequenceTemporary"),_=dl(v);return S._open=!_||_===2&&!!w,S._close=!w||w===2&&!!_,u(v)}}}class Q7{constructor(){this.map=[]}add(t,n,r){J7(this,t,n,r)}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 r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function J7(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const B=r.events[M][1].type;if(B==="lineEnding"||B==="linePrefix")M--;else break}const $=M>-1?r.events[M][1].type:null,W=$==="tableHead"||$==="tableRow"?I:d;return W===I&&r.parser.lazy[r.now().line]?n(A):W(A)}function d(A){return e.enter("tableHead"),e.enter("tableRow"),m(A)}function m(A){return A===124||(a=!0,o+=1),p(A)}function p(A){return A===null?n(A):ut(A)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),y):n(A):Mt(A)?Ht(e,p,"whitespace")(A):(o+=1,a&&(a=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),a=!0,p):(e.enter("data"),h(A)))}function h(A){return A===null||A===124||gn(A)?(e.exit("data"),p(A)):(e.consume(A),A===92?g:h)}function g(A){return A===92||A===124?(e.consume(A),h):h(A)}function y(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),a=!1,Mt(A)?Ht(e,v,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):v(A))}function v(A){return A===45||A===58?S(A):A===124?(a=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),w):O(A)}function w(A){return Mt(A)?Ht(e,S,"whitespace")(A):S(A)}function S(A){return A===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),_):A===45?(o+=1,_(A)):A===null||ut(A)?N(A):O(A)}function _(A){return A===45?(e.enter("tableDelimiterFiller"),k(A)):O(A)}function k(A){return A===45?(e.consume(A),k):A===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),C):(e.exit("tableDelimiterFiller"),C(A))}function C(A){return Mt(A)?Ht(e,N,"whitespace")(A):N(A)}function N(A){return A===124?v(A):A===null||ut(A)?!a||i!==o?O(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):O(A)}function O(A){return n(A)}function I(A){return e.enter("tableRow"),D(A)}function D(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),D):A===null||ut(A)?(e.exit("tableRow"),t(A)):Mt(A)?Ht(e,D,"whitespace")(A):(e.enter("data"),T(A))}function T(A){return A===null||A===124||gn(A)?(e.exit("data"),D(A)):(e.consume(A),A===92?L:T)}function L(A){return A===92||A===124?(e.consume(A),T):T(A)}}function rH(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],a=[0,0,0,0],u=!1,d=0,m,p,h;const g=new Q7;for(;++nn[2]+1){const v=n[2]+1,w=n[3]-n[2]-1;e.add(v,w,[])}}e.add(n[3]+1,0,[["exit",h,t]])}return i!==void 0&&(o.end=Object.assign({},Ga(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Tw(e,t,n,r,i){const o=[],a=Ga(t.events,n);i&&(i.end=Object.assign({},a),o.push(["exit",i,t])),r.end=Object.assign({},a),o.push(["exit",r,t]),e.add(n+1,0,o)}function Ga(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const iH={name:"tasklistCheck",tokenize:oH};function sH(){return{text:{91:iH}}}function oH(e,t,n){const r=this;return i;function i(d){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return gn(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 ut(d)?t(d):Mt(d)?e.check({tokenize:aH},t,n)(d):n(d)}}function aH(e,t,n){return Ht(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function lH(e){return yN([M7(),V7(),Z7(e),tH(),sH()])}const cH={};function uH(e){const t=this,n=e||cH,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(lH(n)),o.push(I7()),a.push(T7(n))}const dH=30,$g=10;function fH({className:e,children:t}){const[n,r]=E.useState(!1),[i,o]=E.useState(!1),a=String(t).replace(/\n$/,""),u=e?.replace("language-","")||"",d=a.split(` +`),m=d.length>dH,p=m?d.length-$g*2:0,h=E.useCallback(()=>{navigator.clipboard.writeText(a),r(!0),setTimeout(()=>r(!1),1500)},[a]);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:[u||"code",m?` (${d.length} lines)`:""]}),c.jsx("button",{className:"code-block-copy",onClick:h,children:n?c.jsxs(c.Fragment,{children:[c.jsx(_l,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(pm,{})," ",c.jsx("span",{children:"Copy"})]})})]}),c.jsx("pre",{children:c.jsx("code",{className:e,children:m&&!i?c.jsxs(c.Fragment,{children:[d.slice(0,$g).join(` +`)+` +`,c.jsxs("span",{className:"code-block-omitted",onClick:()=>o(!0),children:["... +",p," lines (click to expand)"]}),` +`+d.slice(-$g).join(` +`)]}):a})}),m&&i&&c.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>o(!1),children:["Collapse (",d.length," lines)"]})]})}const mH={code({className:e,children:t,...n}){return e?.startsWith("language-")?c.jsx(fH,{className:e,children:t}):c.jsx("code",{className:e,...n,children:t})}},hH=3e3,pH=60,Hg=800;function Rw(e){if(e.length>hH)return!0;let t=0;for(let n=0;n=pH)return!0;return!1}function gH(e){const t=e.lastIndexOf(` +`,Hg);return e.slice(0,t>Hg/2?t:Hg)}const ir=St.memo(function({content:t,className:n="msg-content-agent",collapseMode:r="auto"}){const i=r!=="never"&&Rw(t),[o,a]=E.useState(i);E.useEffect(()=>{a(r!=="never"&&Rw(t))},[r,t]);const u=o?gH(t):t,d=t.split(` +`).length,m=t.length;return c.jsxs("div",{className:n,children:[c.jsx(Z9,{remarkPlugins:[uH],components:mH,children:u}),i&&o&&c.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>a(!1),children:["Show more (",d," lines, ",(m/1e3).toFixed(1),"k chars)"]}),i&&!o&&c.jsx("button",{className:"msg-collapse-toggle",onClick:()=>a(!0),children:"Show less"})]})}),Aw={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},cu="codex",Fg="native",xH=["codex","native","claude_code","cursor","opencode"],yH=["native","codex","claude_code","cursor","opencode"];function lI(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 cI(e){const t=lI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function vH(e,t,n){const r=String(e.role_id??"").trim(),i=String(e.role_label??"").trim(),o=`${r} ${i} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),u=t.map(m=>{const p=String(m.employee_id??"").trim(),h=String(m.employee_name??p).trim()||p,g=String(m.role_id??"").trim(),y=String(m.category??"").trim(),v=[g,y].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:h,subtitle:v,category:y,searchText:`${p} ${h} ${g} ${y} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||g===r?0:2}}).filter(m=>m.id).sort((m,p)=>m.rank-p.rank||m.name.localeCompare(p.name)),d=n.map(m=>{const p=String(m.template_id??"").trim(),h=String(m.template_name??p).trim()||p,g=String(m.category??"").trim(),y=[g,p].filter(Boolean).join(" · ")||p,v=`${p} ${h} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),w=o.split(/[^a-z0-9]+/).filter(S=>S.length>=3).reduce((S,_)=>S+(v.includes(_)?1:0),0);return{kind:"template",id:p,name:h,subtitle:y,category:g,searchText:v,rank:w}}).filter(m=>m.id).sort((m,p)=>p.rank-m.rank||m.name.localeCompare(p.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 bH(e,t){const n=cI(t);return e.find(r=>`${r.kind}:${r.id}`===n)??e[0]}function _H(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(r=>e.searchText.includes(r))}function kH(e){return e.map(t=>{const n=String(t.role_id??"").trim(),r=String(t.existing_employee?.employee_id??"").trim(),i=String(t.candidate?.template_id??"").trim(),o=r?{kind:"employee",id:r}:i?{kind:"template",id:i}:{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??cu,selected_agent:t.selected_agent??t.default_agent??cu,default_source:"recruitment"}}).filter(t=>t.role_id)}function SH(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 Mw(e,t){const n={},r=e.staffing_selections??{};for(const i of t){const o=String(i.role_id??"").trim();o&&(n[o]=lI(r[o]??i.default_selection))}return n}function Dw(e,t){const n=e.recruitment_role_agents??{},r={};for(const i of t){const o=String(i.role_id??"").trim();o&&(r[o]=n[o]??i.selected_agent??i.default_agent??cu)}return r}function wH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const uI=St.memo(function({meta:t,onReply:n,responded:r}){const i=t.proposals??[],o=E.useMemo(()=>{const L={};for(const A of i){const M=String(A.role_id??"").trim();M&&(L[M]=A)}return L},[i]),a=E.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:kH(i),[t.staffing_roles,i]),u=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],p=E.useMemo(()=>{const L={};for(const A of a){const M=String(A.role_id??"").trim();M&&(L[M]=vH(A,u,d))}return L},[u,a,d]),[h,g]=E.useState({}),[y,v]=E.useState(""),[w,S]=E.useState(()=>Mw(t,a)),[_,k]=E.useState(()=>Dw(t,a)),[C,N]=E.useState(t.recruitment_agent??Fg),O=r;E.useEffect(()=>{!O||!wH(t)||(S(Mw(t,a)),k(Dw(t,a)),N(t.recruitment_agent??Fg))},[O,t,a]),E.useEffect(()=>{N(t.recruitment_agent??Fg)},[t.recruitment_agent]);const I=E.useCallback(L=>{const A=String(t.checkpoint_id??"").trim();if(!A)throw new Error("Recruitment checkpoint reply requires checkpoint_id metadata.");const M=String(t.checkpoint_type??"").trim();return{response_to_checkpoint_id:A,response_to_checkpoint_type:M||"company_recruitment_confirmation",checkpoint_reply_kind:L,staffing_selections:w,recruitment_agent:C,recruitment_role_agents:a.reduce(($,W)=>{const B=String(W.role_id??"").trim();return B&&($[B]=_[B]??W.selected_agent??W.default_agent??cu),$},{})}},[t.checkpoint_id,t.checkpoint_type,C,_,a,w]),D=E.useCallback(()=>{O||n("approve",I("approve"))},[I,O,n]),T=E.useCallback(()=>{O||!y.trim()||(n(y.trim(),I("feedback")),v(""))},[I,O,y,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"}),O&&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:C,onChange:L=>N(L.target.value),disabled:O,children:yH.map(L=>c.jsx("option",{value:L,children:Aw[L]},L))})]}),m.length>0&&c.jsx("div",{className:"ckpt-recruitment-reasons",children:m.map(L=>c.jsxs("div",{className:"ckpt-recruitment-reason",children:[c.jsxs("div",{className:"ckpt-proposal-header",children:[c.jsx("span",{className:"ckpt-role-name",children:L.role_id}),L.role_label&&L.role_label!==L.role_id&&c.jsx("span",{className:"ckpt-field-tag",children:L.role_label}),L.selection_label&&c.jsx("span",{className:"ckpt-badge ckpt-badge-template",children:L.selection_label})]}),L.rationale&&c.jsx("div",{className:"ckpt-rationale",children:L.rationale})]},L.role_id))}),c.jsx("div",{className:"ckpt-staffing-grid",children:a.map(L=>{const A=String(L.role_id??"").trim(),M=p[A]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],$=bH(M,w[A]),W=o[A],B=h[A]??"",U=M.filter(H=>_H(H,B)).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-${$.kind}`,children:$.kind})]}),L.role_label&&L.role_label!==A&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:L.role_label})}),c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:SH(W,$)}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:$.category}),c.jsx("span",{className:"ckpt-domain-tag",children:$.subtitle})]})]}),c.jsx("input",{className:"ckpt-staffing-search",value:B,onChange:H=>g(V=>({...V,[A]:H.target.value})),placeholder:"Search employees or templates...",disabled:O}),c.jsx("div",{className:"ckpt-staffing-options",children:U.map(H=>{const V=`${H.kind}:${H.id}`===cI(w[A]);return c.jsxs("button",{className:`ckpt-staffing-option${V?" active":""}`,onClick:()=>S(Y=>({...Y,[A]:{kind:H.kind,id:H.id}})),disabled:O,title:H.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:H.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:H.name})]},`${H.kind}:${H.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${A}`,children:"Execution Agent"}),c.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${A}`,className:"ckpt-agent-select",value:_[A]??L.selected_agent??L.default_agent??cu,onChange:H=>k(V=>({...V,[A]:H.target.value})),disabled:O,children:xH.map(H=>c.jsx("option",{value:H,children:Aw[H]},H))})]})]},A)})}),!O&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:D,children:"Approve"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:y,onChange:L=>v(L.target.value),rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:T,disabled:!y.trim(),children:"Send Feedback"})]})]})}),Ow={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},$y="codex",Vg="native",CH=["codex","native","claude_code","cursor","opencode"],jH=["native","codex","claude_code","cursor","opencode"];function dI(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 fI(e){const t=dI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function EH(e,t,n){const r=String(e.role_id??"").trim(),i=String(e.role_label??"").trim(),o=`${r} ${i} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(p=>String(p??"").trim()).filter(Boolean)),u=p=>{const h=`${p.template_id??""} ${p.template_name??""} ${p.category??""} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),g=String(p.category??"").toLowerCase();let y=0;for(const v of o.split(/[^a-z0-9]+/).filter(w=>w.length>=3))(h.includes(v)||g&&v.includes(g))&&(y+=1);return(h.includes(r.replace(/_/g,"-"))||h.includes(r.replace(/_/g," ")))&&(y+=2),y},d=t.map(p=>{const h=String(p.employee_id??"").trim(),g=String(p.employee_name??h).trim()||h,y=String(p.role_id??"").trim(),v=String(p.category??"").trim(),w=[y,v].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:g,subtitle:w,category:v,searchText:`${h} ${g} ${y} ${v} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||y===r?0:2}}).filter(p=>p.id).sort((p,h)=>p.rank-h.rank||p.name.localeCompare(h.name)),m=n.map(p=>{const h=String(p.template_id??"").trim(),g=String(p.template_name??h).trim()||h,y=String(p.category??"").trim(),v=[y,h].filter(Boolean).join(" · ")||h;return{kind:"template",id:h,name:g,subtitle:v,category:y,searchText:`${h} ${g} ${y} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),rank:u(p)}}).filter(p=>p.id).sort((p,h)=>h.rank-p.rank||p.name.localeCompare(h.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 NH(e,t){const n=fI(t);return e.find(r=>`${r.kind}:${r.id}`===n)??e[0]}function IH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(r=>e.searchText.includes(r))}function Lw(e,t){const n={},r=e.staffing_selections??{};for(const i of t){const o=String(i.role_id??"").trim();o&&(n[o]=dI(r[o]??i.default_selection))}return n}function zw(e,t){const n=e.recruitment_role_agents??{},r={};for(const i of t){const o=String(i.role_id??"").trim();o&&(r[o]=n[o]??i.selected_agent??i.default_agent??$y)}return r}function TH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const mI=St.memo(function({meta:t,onReply:n,responded:r}){const i=E.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],u=E.useMemo(()=>{const O={};for(const I of i){const D=String(I.role_id??"").trim();D&&(O[D]=EH(I,o,a))}return O},[o,i,a]),[d,m]=E.useState({}),[p,h]=E.useState(()=>Lw(t,i)),[g,y]=E.useState(()=>zw(t,i)),[v,w]=E.useState(t.recruitment_agent??Vg),S=r,_=t.recommended_action==="auto_recruit"&&a.length>0;E.useEffect(()=>{!S||!TH(t)||(h(Lw(t,i)),y(zw(t,i)),w(t.recruitment_agent??Vg))},[S,t,i]),E.useEffect(()=>{w(t.recruitment_agent??Vg)},[t.recruitment_agent]);const k=E.useCallback(O=>{const I=String(t.checkpoint_id??"").trim();if(!I)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:I,response_to_checkpoint_type:"company_staffing_selection",staffing_action:O,staffing_selections:p,recruitment_agent:v,recruitment_role_agents:i.reduce((D,T)=>{const L=String(T.role_id??"").trim();return L&&(D[L]=g[L]??T.selected_agent??T.default_agent??$y),D},{})}},[t.checkpoint_id,v,g,i,p]),C=E.useCallback(()=>{S||n("approve",k("manual_approve"))},[k,S,n]),N=E.useCallback(()=>{S||n("auto recruit",k("auto_recruit"))},[k,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"}),_&&!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:O=>w(O.target.value),disabled:S,children:jH.map(O=>c.jsx("option",{value:O,children:Ow[O]},O))})]}),c.jsx("div",{className:"ckpt-staffing-grid",children:i.map(O=>{const I=String(O.role_id??"").trim(),D=u[I]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],T=NH(D,p[I]),L=d[I]??"",A=D.filter(M=>IH(M,L)).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:I}),c.jsx("span",{className:`ckpt-badge ckpt-badge-${T.kind}`,children:T.kind})]}),O.role_label&&O.role_label!==I&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:O.role_label})}),c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:T.name}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:T.category}),c.jsx("span",{className:"ckpt-domain-tag",children:T.subtitle})]})]}),c.jsx("input",{className:"ckpt-staffing-search",value:L,onChange:M=>m($=>({...$,[I]:M.target.value})),placeholder:"Search employees or templates...",disabled:S}),c.jsx("div",{className:"ckpt-staffing-options",children:A.map(M=>{const $=`${M.kind}:${M.id}`===fI(p[I]);return c.jsxs("button",{className:`ckpt-staffing-option${$?" active":""}`,onClick:()=>h(W=>({...W,[I]:{kind:M.kind,id:M.id}})),disabled:S,title:M.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:M.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:M.name})]},`${M.kind}:${M.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${I}`,children:"Execution Agent"}),c.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${I}`,className:"ckpt-agent-select",value:g[I]??O.selected_agent??O.default_agent??$y,onChange:M=>y($=>({...$,[I]:M.target.value})),disabled:S,children:CH.map(M=>c.jsx("option",{value:M,children:Ow[M]},M))})]})]},I)})}),!S&&c.jsx("div",{className:"ckpt-actions",children:_?c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Auto Recruit"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:C,children:"Approve Selections"})]}):c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:C,children:"Approve Selections"}),a.length>0&&c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Auto Recruit"})]})})]})}),RH={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},Pw={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},hI=St.memo(function({meta:t,onReply:n,responded:r}){const i=r,o=E.useCallback(()=>{i||n("approve")},[i,n]),a=E.useCallback(()=>{i||n("deny")},[i,n]),u=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",p=t.risk_level||"medium",h=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"}),i&&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:RH[m]||m}),c.jsxs("span",{className:"ckpt-badge",style:{color:Pw[p]||"var(--text-secondary)",borderColor:Pw[p]||"var(--border)"},children:["Risk: ",p.charAt(0).toUpperCase()+p.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,y)=>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})]},y))]}),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,y)=>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})]},y))]}),Object.keys(h).length>0&&c.jsxs("div",{className:"ckpt-impact",children:[h.affected_tasks!=null&&c.jsxs("span",{children:["Tasks affected: ",h.affected_tasks]}),h.affected_roles!=null&&c.jsxs("span",{children:["Roles affected: ",h.affected_roles]}),h.migration_count!=null&&c.jsxs("span",{children:["Migrations: ",h.migration_count]})]}),!i&&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 AH(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function MH(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"resolved":return"Resolved";default:return"Responded"}}const Xf=St.memo(function({meta:t,onReply:n,responded:r}){const i=r,o=String(t.checkpoint_status??"").trim().toLowerCase(),a=MH(o),u=String(t.prompt??t.summary??""),d=E.useMemo(()=>u.split(` +`).map(k=>k.trim()).filter(Boolean),[u]),m=AH(u).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",p=d.slice(1).join(` +`).trim(),h=String(t.summary??"").trim(),g=(t.options??[]).filter(k=>!!k?.id),y=E.useMemo(()=>(t.active_subagents??[]).filter(k=>!!k&&typeof k=="object"),[t.active_subagents]),v=E.useMemo(()=>(t.permission_requests??[]).filter(k=>!!k&&typeof k=="object"),[t.permission_requests]),w=String(t.worktree_path??"").trim(),S=y.length>0||v.length>0||!!w,_=E.useCallback(k=>{i||n(k.label||k.id)},[i,n]);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:m}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.escalation_type??"decision_needed").replace(/_/g," ")}),i&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:a})]}),h&&h!==m&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ir,{content:h,className:"ckpt-markdown"})]}),p&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),c.jsx(ir,{content:p,className:"ckpt-markdown"})]}),S&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[w&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:w})]}),y.length>0&&c.jsxs("div",{children:["Active subagents: ",y.length]}),v.length>0&&c.jsxs("div",{children:["Pending permission records: ",v.length]})]})]}),!i&&g.length>0&&c.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:g.map(k=>c.jsx("button",{className:`ckpt-btn ${k.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}`,onClick:()=>_(k),children:k.label||k.id},k.id))}),!i&&t.default_action&&c.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",c.jsx("code",{children:t.default_action})]})]})});function DH(e){return e.split(` +`).map(t=>t.trim()).find(Boolean)??e}function OH(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 pI=St.memo(function({meta:t,onReply:n,responded:r}){const i=r,[o,a]=E.useState(""),[u,d]=E.useState(null),m=String(t.checkpoint_status??"").trim().toLowerCase(),p=OH(m),h=String(t.prompt??t.summary??"").trim(),y=`${String(t.work_item_projection_title??DH(h)??"Human Review").trim()||"Human Review"} (for self-evolution)`,v=String(t.summary??"").trim(),w=E.useMemo(()=>(t.active_subagents??[]).filter(T=>!!T&&typeof T=="object"),[t.active_subagents]),S=E.useMemo(()=>(t.permission_requests??[]).filter(T=>!!T&&typeof T=="object"),[t.permission_requests]),_=String(t.worktree_path??"").trim(),k=w.length>0||S.length>0||!!_,C=i||u!==null,N=E.useCallback((T,L="")=>{const A=String(t.checkpoint_id??"").trim();if(!A)throw new Error("Delivery self-evolution reply requires checkpoint_id metadata.");const M={response_to_checkpoint_id:A,response_to_checkpoint_type:"company_delivery_feedback",checkpoint_reply_kind:T};return(T==="approve"||T==="feedback")&&(M.self_evolution_trigger=!0,M.human_feedback_text=L),M},[t.checkpoint_id]),O=E.useCallback(()=>{if(C)return;const T=N("approve");d("approve"),n("I fully agree with this delivery.",T)},[C,N,n]),I=E.useCallback(()=>{const T=o.trim();if(C||!T)return;const L=N("feedback",T);d("feedback"),n(T,L),a("")},[C,N,o,n]),D=E.useCallback(()=>{if(C)return;const T=N("ignore");d("ignore"),n("Ignore this self-evolution review.",T)},[C,N,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:y}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),i&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:p})]}),v&&v!==y&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ir,{content:v,className:"ckpt-markdown"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),c.jsx(ir,{content:h,className:"ckpt-markdown"})]}),k&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[_&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:_})]}),w.length>0&&c.jsxs("div",{children:["Active subagents: ",w.length]}),S.length>0&&c.jsxs("div",{children:["Pending permission records: ",S.length]})]})]}),!i&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:O,disabled:C,children:"Fully Agree"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:D,disabled:C,children:"Ignore"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:o,onChange:T=>a(T.target.value),disabled:C,rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:I,disabled:C||!o.trim(),children:"Send Feedback"})]})]})}),Yd="__other__",LH=["A","B","C"];function Fi(e){return String(e??"").trim()}function zH(e,t){const n=Fi(e.question),r=Fi(e.header);if(!n&&!r)return null;const i=(e.options??[]).slice(0,3).map((o,a)=>({id:Fi(o.id)||String.fromCharCode(97+a),label:Fi(o.label),description:Fi(o.description)})).filter(o=>o.label);return{id:Fi(e.id)||`question_${t+1}`,header:r,question:n||r,options:i,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const gI=St.memo(function({meta:t,onReply:n,responded:r}){const[i,o]=E.useState(""),[a,u]=E.useState({}),d=r,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",p=String(t.summary??"").trim(),h=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),y=String(t.resume_hint??"").trim(),v=E.useMemo(()=>(t.questions??[]).map(V=>String(V).trim()).filter(Boolean),[t.questions]),w=E.useMemo(()=>(t.input_questions??[]).map((V,Y)=>zH(V,Y)).filter(V=>V!==null),[t.input_questions]),S=w.some(V=>(V.options??[]).length>0),_=E.useMemo(()=>(t.required_fields??[]).map(V=>String(V).trim()).filter(Boolean),[t.required_fields]),k=E.useMemo(()=>(t.active_subagents??[]).filter(V=>!!V&&typeof V=="object"),[t.active_subagents]),C=E.useMemo(()=>(t.permission_requests??[]).filter(V=>!!V&&typeof V=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),O=String(t.requesting_role_id??"").trim(),I=String(t.requesting_task_id??"").trim(),D=String(t.requesting_work_item_id??"").trim(),T=String(t.seat_id??"").trim(),A=!!O||!!I||!!D||!!T||k.length>0||C.length>0||!!N,M=E.useCallback((V,Y)=>{u(Z=>({...Z,[V]:{freeformText:Z[V]?.freeformText??"",selectedOptionId:Y}}))},[]),$=E.useCallback((V,Y)=>{u(Z=>({...Z,[V]:{selectedOptionId:Z[V]?.selectedOptionId,freeformText:Y}}))},[]),W=E.useCallback(V=>{if(V.required===!1)return!0;const Y=a[V.id],Z=Y?.selectedOptionId;return!!(Z&&Z!==Yd||V.allow_freeform!==!1&&Fi(Y?.freeformText))},[a]),B=S&&w.every(W),U=E.useCallback(()=>{const V=i.trim();d||!V||n(V)},[d,n,i]),H=E.useCallback(()=>{if(d||!B)return;const V={},Y=[];w.forEach(Z=>{const q=a[Z.id]??{freeformText:""},G=(Z.options??[]).find(te=>te.id===q.selectedOptionId),J=Fi(q.freeformText),X=[G?.label??"",J].filter(Boolean).join("; ");V[Z.id]={question_id:Z.id,question:Z.question,...G?{selected_option_id:G.id,selected_label:G.label}:{},...J?{freeform_text:J}:{},answer_text:X};const ee=Fi(Z.header)||Fi(Z.question)||Z.id;Y.push(`- ${ee}: ${X||"(no answer)"}`)}),n(Y.join(` +`),{user_input_answers:V})},[a,B,w,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"})]}),p&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(ir,{content:p,className:"ckpt-markdown"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),c.jsx(ir,{content:h,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:w.map(V=>{const Y=a[V.id]??{freeformText:""},Z=V.options??[],q=V.allow_freeform!==!1,G=q&&(Z.length===0||Y.selectedOptionId===Yd);return c.jsxs("div",{className:"ckpt-choice-question",children:[V.header&&c.jsx("div",{className:"ckpt-question-header",children:V.header}),c.jsx(ir,{content:V.question,className:"ckpt-markdown"}),Z.length>0&&c.jsxs("div",{className:"ckpt-choice-grid",children:[Z.map((J,P)=>{const X=Y.selectedOptionId===J.id;return c.jsxs("button",{className:`ckpt-choice-option${X?" is-selected":""}`,onClick:()=>M(V.id,J.id),children:[c.jsx("span",{className:"ckpt-choice-letter",children:LH[P]??"?"}),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)}),q&&c.jsxs("button",{className:`ckpt-choice-option${Y.selectedOptionId===Yd?" is-selected":""}`,onClick:()=>M(V.id,Yd),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"})]})]})]}),G&&c.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:Y.freeformText,onChange:J=>$(V.id,J.target.value),rows:3})]},V.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(V=>c.jsx("li",{children:V},V))})]}),_.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:_.map(V=>c.jsx("span",{className:"ckpt-field-tag",children:V},V))})]}),g&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Context"}),c.jsx(ir,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),y&&c.jsx("div",{className:"ckpt-escalation-hint",children:y}),A&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[O&&c.jsxs("div",{children:["Requester: ",c.jsx("code",{children:O})]}),D&&c.jsxs("div",{children:["Work item: ",c.jsx("code",{children:D})]}),I&&c.jsxs("div",{children:["Task: ",c.jsx("code",{children:I})]}),T&&c.jsxs("div",{children:["Seat: ",c.jsx("code",{children:T})]}),N&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:N})]}),k.length>0&&c.jsxs("div",{children:["Active subagents: ",k.length]}),C.length>0&&c.jsxs("div",{children:["Pending permission records: ",C.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:i,onChange:V=>o(V.target.value),rows:3}),c.jsx("div",{className:"ckpt-feedback-btns",children:c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:S?H:U,disabled:S?!B:!i.trim(),children:"Send Reply"})})]})]})}),Hy={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function Ug(e,t){if(t&&t in Hy)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 Xd(e){return Hy[e]??Hy.todo}const Bw={active:0,waiting:1,failed:2,done:3,pending:4};function PH(e){if(e.length===0)return"pending";let t=e[0],n=Bw[t]??99;for(const r of e){const i=Bw[r]??99;i12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function Ja(e){return typeof e=="string"?e.trim():""}function Gg(...e){for(const t of e){const n=Ja(t);if(n)return n}return""}function $H(e){const t=Ja(e);return t?BH[t]??V0(t):""}function HH(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 FH={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function VH(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function UH(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 GH(e){const t=Ja(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 Fy({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:r,isCompanyRuntime:i=!1,onWorkItemClick:o}){const a=E.useMemo(()=>{const v=new Map;for(const w of r??[]){v.set(w.taskId,w);const S=io(w);S&&v.set(S,w)}return v},[r]),u=E.useMemo(()=>{const v=new Map,w=[];for(const S of e){const _=io(S),k=S.workItemProjectionId??_??"";if(!k)continue;if(!v.has(k)){w.push(k);const N=S.workItemProjectionTitle??k,O=S.roleName||($w(N)?"Agent":N);v.set(k,{projectionId:k,title:O,roleName:S.roleName,status:"pending",executionTurnId:_})}const C=v.get(k);switch(S.roleName?(C.roleName=S.roleName,C.title=S.roleName):S.workItemProjectionTitle&&!$w(S.workItemProjectionTitle)&&(C.title=S.workItemProjectionTitle),_&&(C.executionTurnId=_),S.type){case"work_item_started":C.status="active";break;case"gate_approved":C.status="done";break;case"gate_rejected":C.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":C.status="waiting";break;case"work_item_failed":case"deadlock":C.status="failed";break}}for(const S of v.values()){if(!S.executionTurnId)continue;const _=a.get(S.executionTurnId);if(!_)continue;const k=vg(_);k&&(S.title=k),_.workItemRoleName&&(S.roleName=_.workItemRoleName),_.status==="done"?S.status="done":_.status==="failed"&&(S.status="failed")}return w.map(S=>v.get(S))},[e,a]),d=E.useMemo(()=>{const v=new Map;for(const w of e){const S=io(w);S&&!v.has(S)&&v.set(S,v.size)}return v},[e]),m=n??t,p=E.useMemo(()=>{if(!m)return[];const v=[];for(const w of Object.values(m)){if(!w||!Array.isArray(w.workItems)||w.workItems.length===0)continue;const _=[...w.workItems].sort((I,D)=>I.createdAt-D.createdAt).map(I=>{const D=VH(I.kanbanColumn),T=UH(I.phase);return{executionTurnId:I.executionTurnId??"",title:Ja(I.title)||Ja(I.executorRoleName)||Ja(I.executorRoleId)||"Work item",status:T,statusLabel:Xd(D),columnId:D,updatedAt:I.updatedAt,workItemId:I.workItemId,progressLog:I.progressLog,activitySections:I.activitySections??[],isReviewTarget:I.isReviewTarget}}),k=FH[w.aggregatedStatus]??"pending",C=Ug(k),N=_[_.length-1],O=[..._].reverse().find(I=>!!I.executionTurnId)?.executionTurnId??"";v.push({roleKey:w.roleKey,executionTurnId:N.executionTurnId||O,title:w.roleName||w.roleId,status:k,statusLabel:Xd(C),roleName:w.roleName,updatedAt:_.reduce((I,D)=>Math.max(I,D.updatedAt),0),turns:_,runtimeStatus:w.runtimeStatus})}return v.sort((w,S)=>{const _=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,k=S.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return _-k}),v},[m]),h=E.useMemo(()=>{const v=[...r??[]];if(v.length===0)return[];const w=new Map,S=[];for(const k of v){const C=Gg(k.workItemRoleId,k.assigneeIds[0],k.taskId);w.has(C)||(w.set(C,[]),S.push(C)),w.get(C).push(k)}S.sort((k,C)=>{const N=w.get(k)??[],O=w.get(C)??[],I=Math.min(...N.map(A=>d.get(io(A)||A.taskId)??Number.POSITIVE_INFINITY)),D=Math.min(...O.map(A=>d.get(io(A)||A.taskId)??Number.POSITIVE_INFINITY));if(I!==D)return I-D;const T=Math.min(...N.map(A=>A.updatedAt)),L=Math.min(...O.map(A=>A.updatedAt));return T-L});const _=[];for(const k of S){const C=w.get(k)??[];if(C.length===0)continue;const N=C.slice().sort((A,M)=>A.updatedAt-M.updatedAt).map(A=>{const M=GH(A),$=io(A),W=Ug(M,String(A.columnId??"").trim()||void 0);return{executionTurnId:$||A.taskId,title:Gg(vg(A),A.title,A.workItemRoleName,A.workItemRoleId,"Turn"),status:M,statusLabel:Xd(W),columnId:W,updatedAt:A.updatedAt}}),O=N[N.length-1],I=PH(N.map(A=>A.status)),D=Ug(I),T=C[0],L=Gg(T.workItemRoleName,T.workItemRoleId,T.assigneeIds[0],vg(T),T.title,"Agent");_.push({roleKey:k,executionTurnId:O.executionTurnId,title:L,status:I,statusLabel:Xd(D),executionAgent:$H(T.selectedExecutionAgent??T.preferredAgent),roleName:T.workItemRoleName,updatedAt:Math.max(...C.map(A=>A.updatedAt)),turns:N})}return _},[r,d]),g=E.useMemo(()=>p.length>0?p:i?[]:h,[i,p,h]),y=E.useMemo(()=>g.length>0?g.map(v=>({projectionId:v.roleKey,title:v.title,roleName:v.roleName,status:v.status,executionTurnId:v.executionTurnId})):i?[]:u,[i,g,u]);return i&&g.length===0||e.length===0&&y.length===0&&g.length===0?null:c.jsxs("div",{className:"wi-progress-card",children:[c.jsxs("div",{className:"wi-progress-header",children:[c.jsx(gm,{}),c.jsx("span",{children:"Execution Progress"})]}),y.length>0&&c.jsx("div",{className:"wi-progress-pipeline",children:y.map((v,w)=>c.jsxs("div",{className:"wi-projection-group",children:[c.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${v.status}`,onClick:()=>o?.(v.executionTurnId||""),title:`Open Runtime Session${v.roleName?`: ${v.title} (${v.roleName})`:`: ${v.title}`}`,children:[c.jsx("span",{className:"wi-projection-label",children:v.title}),HH(v.status)]}),wu.mime_type?.startsWith("image/")),r=e.filter(u=>u.mime_type?.startsWith("video/")),i=e.filter(u=>!u.mime_type?.startsWith("image/")&&!u.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=r.length===1?"":(r.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)})}),r.length>0&&c.jsx("div",{className:`msg-attachment-grid${a}`,children:r.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)})}),i.length>0&&c.jsx("div",{className:"msg-attachment-files",children:i.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 Hw=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],Fw=new Map;function lv(e){const t=Fw.get(e);if(t)return t;let n=0;for(let i=0;id.toUpperCase());let a="●",u="active";return i.includes("gate passed")||i.includes("approved")||i.includes("completed")?(a="✓",u="passed"):i.includes("rejected")||i.includes("reworking")?(a="↻",u="rejected"):i.includes("failed")||i.includes("timed out")?(a="✗",u="failed"):i.includes("awaiting")&&(a="⏳",u="waiting"),{projectionId:n,workItemName:o,action:r,icon:a,statusClass:u}}const XH={session:{icon:c.jsx(g4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:c.jsx($j,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:c.jsx(Zc,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},KH=5*6e4,Vw=200,qg=200,ZH=96,QH=1,JH=700;function Uw(e){return e.scrollHeight-e.scrollTop-e.clientHeight"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 nF(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function rF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function qc(e){return e.replace(/\s+/g," ").trim()}function iF(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function sF(e){const t=String(e.metadata?.transcript_kind??e.metadata?.kind??"").trim();return!!(["runtime_v2_assistant","runtime_v2_company_assistant","top_level_reply","company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result"].includes(t)||String(e.metadata?.kind??"").trim()==="worker_notification")}function Gw(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 oF(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const u=Gw(t);return u?{obj:u}:null}const n=t.indexOf("{"),r=t.lastIndexOf("}");if(n<=0||r<=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=Gw(t.slice(n,r+1));return a?{obj:a,title:o||void 0}:null}function el(e){return typeof e=="string"?e.trim():""}function qw(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const r of e){const i=typeof r=="string"?r.trim():r&&typeof r=="object"&&"summary"in r?el(r.summary):"";if(i&&n.push(i),n.length>=t)break}return n}function aF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const r=n,i=el(r.path),o=el(r.name)||i.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:i,status:el(r.status)||void 0})}return t}function lF(e){if(!Array.isArray(e))return;const t=e.filter(r=>r&&typeof r=="object").length;return t?`${e.filter(r=>r.met===!0).length}/${t} acceptance checks met`:void 0}function xI(e){const t=oF(e);if(!t)return null;const{obj:n,title:r}=t,i=el(n.summary),o=el(n.review_verdict),a=aF(n.deliverables),u=qw(n.risks),d=qw(n.next_actions),m=lF(n.acceptance_status);return!i&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:r,summary:i,verdict:o||void 0,deliverables:a,risks:u,nextActions:d,acceptanceSummary:m}}const cF=St.memo(function({entry:t,showDate:n,dateStr:r,compact:i=!1}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-row agent msg-row-inline-progress${i?" compact":""}`,children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body msg-inline-progress-body",children:c.jsx("div",{className:"msg-inline-progress-shell",children:c.jsx(rN,{entry:t})})})]})]})}),uF=St.memo(function({msg:t,showDate:n,dateStr:r}){const i=YH(t.content);return i?c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`work-item-divider work-item-divider-${i.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:i.icon}),i.workItemName,c.jsx("span",{className:"work-item-divider-action",children:i.action})]}),c.jsx("div",{className:"work-item-divider-line"})]})]}):null}),dF=St.memo(function({msg:t,showDate:n,dateStr:r}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsx("div",{className:"msg-system",children:c.jsx("span",{children:t.content})})]})}),fF=St.memo(function({msg:t,showDate:n,dateStr:r}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),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(Zc,{})}),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(ir,{content:t.content})]})})]})]})}),mF=St.memo(function({text:t,timestamp:n,iteration:r,showDate:i,dateStr:o}){return c.jsxs("div",{children:[i&&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(Po,{})}),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:Yi(n),children:Ss(n)})]}),c.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[r?c.jsxs("div",{className:"msg-draft-label",children:["Turn ",r]}):null,c.jsx(ir,{content:t,collapseMode:"never"})]})]})]})]})}),hF=St.memo(function({msg:t,showDate:n,dateStr:r,isGrouped:i,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:r})}),c.jsx("div",{className:`msg-row user${i?" grouped":""}`,children:c.jsxs("div",{className:"msg-body msg-body-user",children:[c.jsx("div",{className:"msg-content-user",children:d?c.jsx(ir,{content:t.content,className:"msg-content-user-markdown"}):t.content}),c.jsx(qH,{refs:t.metadata?.attachment_refs,onImageClick:u}),c.jsxs("div",{className:"msg-meta-user",children:[c.jsx("span",{className:"msg-time",title:Yi(t.timestamp),children:Ss(t.timestamp)}),c.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?c.jsx(_l,{}):c.jsx(pm,{})})]})]})})]})});function yI(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=([^|]+?)(?:\||$)/),p=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:p,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 r=t.match(/^\[External inbox\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External inbox",summary:qc(r[1]),tone:"info"};const i=t.match(/^\[External status\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External status",summary:i[1].split(/\(|;/)[0].trim()||i[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",p=o[2].trim(),h=p.toLowerCase(),g=h.includes("completed")||h.includes("done")?"success":h.includes("blocked")||h.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:p,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,p=>p.toUpperCase()),m=qc(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:qc(u[1]).slice(0,180),tone:"info"}:null}function pF(e,t){const{isCompanyRuntime:n,detailMode:r}=t;if(!n||r==="full"||Qc(e.metadata))return null;const i=yI(e.content);if(!i)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=i.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:i}}function gF(e,t={}){const{isCompanyRuntime:n=!1,detailMode:r="summary"}=t,i=[];let o=[],a=0;const u=new Set,d=new Set,m=()=>{if(o.length===0)return;const p=o[0].msg,h=o[o.length-1].msg;i.push({kind:"ops-bundle",id:`ops:${p.id}:${o.length}:${h.id}`,timestamp:p.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((p,h)=>{const g=h*2+1,y=pF(p,{isCompanyRuntime:n,detailMode:r});if(y){o.length===0&&(a=g),o.push(y);return}const v=r==="summary"?xI(p.content):null;if(v){const w=[p.sender,Math.round(p.timestamp/1e3),v.kind,qc(v.summary||v.acceptanceSummary||"").slice(0,500),v.verdict??"",v.deliverables.map(S=>`${S.name}:${S.path}`).join("|").slice(0,800)].join("");if(u.has(w))return;u.add(w)}if(r==="summary"){const w=qc(iF(p.content)).slice(0,1200);if(w){const S=sF(p)?["result",w].join(""):[p.sender,Math.round(p.timestamp/1e3),w].join("");if(d.has(S))return;d.add(S)}}m(),i.push({kind:"message",id:p.id,timestamp:p.timestamp,msg:p,sortOrder:g})}),m(),i}const xF=St.memo(function({msg:t,showDate:n,dateStr:r,classification:i}){const[o,a]=E.useState(!1),u=t.content.trim()!==`[${i.label}] ${i.summary}`.trim()&&t.content.trim().length>i.summary.length+4;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-ops-row msg-ops-tone-${i.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:i.label}),i.summary&&c.jsx("span",{className:"msg-ops-summary",title:i.summary,children:i.summary}),c.jsx("span",{className:"msg-ops-time",title:Yi(t.timestamp),children:Ss(t.timestamp)}),u&&c.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:c.jsx(_s,{down:o})})]}),u&&o&&c.jsx("div",{className:"msg-ops-details",children:c.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),yF=St.memo(function({events:t,showDate:n,dateStr:r}){const[i,o]=E.useState(!1);if(t.length===0)return null;const a=t[0].msg,u=t[t.length-1].msg,d=t.reduce((h,g)=>{const y=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return h[y]=(h[y]??0)+1,h},{}),m=Object.entries(d).map(([h,g])=>`${g} ${h}`).join(" · "),p=`${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:r})}),c.jsxs("button",{type:"button",className:`msg-ops-bundle${i?" expanded":""}`,onClick:()=>o(h=>!h),title:`${Yi(a.timestamp)} - ${Yi(u.timestamp)}`,children:[c.jsx("span",{className:"msg-ops-bundle-dot"}),c.jsx("span",{className:"msg-ops-bundle-title",children:p}),c.jsx("span",{className:"msg-ops-bundle-summary",children:m}),c.jsx("span",{className:"msg-ops-bundle-time",children:Ss(a.timestamp)}),c.jsx("span",{className:"msg-ops-bundle-chevron",children:c.jsx(_s,{down:i})})]}),i&&c.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:h,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:Yi(h.timestamp),children:Ss(h.timestamp)})]},h.id))})]})});function vF(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const bF=St.memo(function({msg:t,payload:n,showDate:r,dateStr:i,isCopied:o,onCopy:a}){const u=lv(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=vF(n),p=n.summary||n.acceptanceSummary||m;return c.jsxs("div",{children:[r&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),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:Yi(t.timestamp),children:Ss(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(ir,{content:p,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((h,g)=>c.jsxs("div",{className:"msg-project-update-artifact",children:[c.jsx("span",{className:"msg-project-update-artifact-name",children:h.name}),h.status&&c.jsx("span",{className:"msg-project-update-artifact-status",children:h.status}),h.path&&c.jsx("code",{className:"msg-project-update-artifact-path",children:h.path})]},`${h.path||h.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((h,g)=>c.jsx("li",{children:h},`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((h,g)=>c.jsx("li",{children:h},`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(_l,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(pm,{})," ",c.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),_F=St.memo(function({msg:t,showDate:n,dateStr:r,isGrouped:i,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:u,onCopy:d,onSend:m}){const p=!!t.senderDeleted,h=p?"[Deleted]":t.senderName,g=lv(t.sender==="system"?t.senderName||"OPC":t.sender),y=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,v=String(t.metadata?.checkpoint_type??"").trim(),w=v0(t.metadata),S=Qc(t.metadata)&&!u;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-row agent${i?" grouped":""}${p?" deleted-sender":""}`,children:[i?c.jsx("div",{className:"msg-avatar-spacer"}):c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:g},children:h.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[!i&&c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:g},children:h}),c.jsx("span",{className:"msg-time",title:Yi(t.timestamp),children:Ss(t.timestamp)})]}),t.replyToId&&c.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),S?c.jsxs(c.Fragment,{children:[v==="company_recruitment_confirmation"&&c.jsx(uI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k),responded:a}),v==="company_staffing_selection"&&c.jsx(mI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k),responded:a}),v==="company_work_item_gate"&&c.jsx(Xf,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="company_delivery_feedback"&&c.jsx(pI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k??w),responded:a}),v==="company_reorg_pending"&&c.jsx(hI,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="human_escalation"&&c.jsx(Xf,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="task_user_input"&&c.jsx(gI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,{...w,...k}),responded:a})]}):c.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:g},children:[c.jsx(ir,{content:t.content}),c.jsxs("div",{className:"msg-card-actions",children:[c.jsx("button",{className:"msg-action-btn",onClick:()=>d(t.id,t.content),title:"Copy message",children:o?c.jsxs(c.Fragment,{children:[c.jsx(_l,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(pm,{})," ",c.jsx("span",{children:"Copy"})]})}),i&&c.jsx("span",{className:"msg-time msg-time-inline",title:Yi(t.timestamp),children:Ss(t.timestamp)})]})]})]})]})]})}),qa=St.memo(function({messages:t,channelName:n,viewKind:r="session",detailMode:i="summary",agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,progressLog:m,draftAssistantText:p,draftUpdatedAt:h,draftIteration:g,draftTurnId:y,isCompanyRuntime:v,workItemLog:w,childSessions:S,roleWorkItems:_,executorRoleWorkItems:k,onSend:C,onWorkItemClick:N,onWorkItemOpenSession:O,onMarkRead:I,hasOlderHistory:D=!1,totalMessageCount:T,onLoadOlderHistory:L,loadingOlderHistory:A=!1,autoScroll:M=!0,initialScrollToBottom:$=!0,showWorkItemRuntimeCard:W=!0,showRuntimeProgress:B=!0,renderUserMarkdown:U=!1}){const H=E.useRef(null),[V,Y]=E.useState(null),[Z,q]=E.useState(null),[G,J]=E.useState(Vw),P=E.useRef(o),X=E.useRef(M),ee=E.useRef($),te=E.useRef(!1),re=E.useRef(null),oe=E.useRef(!1),de=E.useRef(null),se=E.useRef(0),je=E.useRef(0),we=E.useRef(null),Ce=E.useRef(null),Be=E.useRef(null),Ge=E.useRef(!1),Ye=E.useRef(!1);E.useEffect(()=>{const ve=H.current;if(!ve)return;se.current=ve.scrollTop;const Re=()=>{te.current=!0,re.current&&clearTimeout(re.current),re.current=setTimeout(()=>{te.current=!1},1500)},Xe=He=>{Re(),He.deltaY<0&&ve.scrollTop>0?X.current=!1:Uw(ve)&&(X.current=M)};return ve.addEventListener("wheel",Xe,{passive:!0}),ve.addEventListener("pointerdown",Re),ve.addEventListener("touchstart",Re,{passive:!0}),()=>{ve.removeEventListener("wheel",Xe),ve.removeEventListener("pointerdown",Re),ve.removeEventListener("touchstart",Re),re.current&&clearTimeout(re.current)}},[M]),E.useEffect(()=>()=>{de.current&&clearTimeout(de.current)},[]);const yt=E.useCallback(()=>{const ve=H.current;if(!ve)return;const Re=se.current,Xe=ve.scrollTop;se.current=Xe;const He=Uw(ve);if(oe.current){He&&I?.();return}if(eF({previousScrollTop:Re,nextScrollTop:Xe,atBottom:He,userScrolling:te.current,programmaticScroll:!1})){X.current=!1;return}if(te.current){X.current=He,He&&I?.();return}He&&(X.current=M,I?.())},[M,I]),bt=(w?.length??0)+(S?.length??0),vt=E.useMemo(()=>{const ve=t.filter(Re=>nF(Re,i));return v?ve.filter(Re=>!(Re.metadata?.type==="system"&&Re.content.startsWith("[Company:")||!B&&Re.content.startsWith("[Company:"))):ve},[i,v,t,B]),me=r==="session"&&!!C,Oe=E.useMemo(()=>b0(vt),[vt]),rt=E.useMemo(()=>me?vt.filter(ve=>Oe.pendingMessageIds.has(ve.id)):[],[Oe.pendingMessageIds,vt,me]),Qe=E.useMemo(()=>me?vt.filter(ve=>!Oe.pendingMessageIds.has(ve.id)):vt,[Oe.pendingMessageIds,vt,me]),Je=E.useMemo(()=>{const ve=new Set;for(const Re of m??[]){if(Re.type!=="thinking")continue;const Xe=String(Re.turnId??"").trim();Xe&&ve.add(Xe)}return ve},[m]),fe=E.useMemo(()=>{const ve=[];for(const Re of Qe){const Xe=String(Re.metadata?.runtime_thinking??"").trim();if(!Xe)continue;const He=String(Re.metadata?.canonical_turn_id??Re.metadata?.turn_id??"").trim();He&&Je.has(He)||ve.push({type:"thinking",summary:"Thinking",detail:Xe,timestamp:Math.max(0,Re.timestamp-1),turnId:He||void 0,itemId:He?`${He}:thinking`:`thinking:${Re.id}`,streamId:He?`${He}:thinking`:`thinking:${Re.id}`,executionMode:String(Re.metadata?.execution_mode??"").trim()||void 0})}return ve},[Je,Qe]),be=E.useMemo(()=>B?[...(m??[]).filter(ve=>HS.has(ve.type)),...fe].sort((ve,Re)=>ve.timestamp-Re.timestamp):[],[m,B,fe]),Me=E.useMemo(()=>B?(m??[]).filter(ve=>!HS.has(ve.type)):[],[m,B]),Fe=E.useMemo(()=>B?i==="full"?m??[]:be:[],[i,be,m,B]),$e=E.useMemo(()=>Me,[Me]),Ut=E.useMemo(()=>{const ve=String(p??"").trim();return ve?{kind:"draft",id:`draft-${y??g??"active"}`,timestamp:h??Date.now(),text:ve,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}:null},[p,g,y,h]),rn=!!o&&o!=="idle",ke=$e.length>0,Te=B&&i!=="full"&&(rn||ke),Pe=E.useMemo(()=>{const ve=[...gF(Qe,{isCompanyRuntime:v,detailMode:i}),...Fe.map((Re,Xe)=>({kind:"progress",id:`progress-${nN(Re,Xe)}`,timestamp:Re.timestamp,entry:Re,sortOrder:Xe*2}))];return Ut&&ve.push(Ut),ve.sort((Re,Xe)=>Re.timestamp-Xe.timestamp||Re.sortOrder-Xe.sortOrder)},[i,Ut,v,Qe,Fe]),Ve=Math.max(0,Pe.length-G),qe=E.useMemo(()=>Ve>0?Pe.slice(-G):Pe,[Ve,Pe,G]);E.useEffect(()=>{J(Vw)},[n,r]),E.useEffect(()=>{X.current=M,ee.current=$},[n,r,M,$]);const et=E.useMemo(()=>{let ve="";return qe.map((Re,Xe)=>{const He=new Date(Re.timestamp).toLocaleDateString(),Tt=He!==ve;Tt&&(ve=He);const ft=Xe>0?qe[Xe-1]:null,$n=Re.kind==="message"&&ft?.kind==="message"&&!Tt&&ft.msg.sender===Re.msg.sender&&ft.msg.senderName===Re.msg.senderName&&Re.msg.metadata?.type!=="system"&&ft.msg.metadata?.type!=="system"&&!Re.msg.metadata?.is_work_item_event&&!ft.msg.metadata?.is_work_item_event&&Re.msg.timestamp-ft.msg.timestamp{tF(Re).then(Xe=>{Xe&&(Y(ve),setTimeout(()=>Y(null),1500))})},[]),Tn=E.useCallback(async()=>{if(Ve>0){J(ve=>Math.min(Pe.length,ve+qg));return}!D||A||!L||(await L(vt[0]),J(ve=>ve+qg))},[vt,D,Ve,A,L,Pe.length]),Dn=XH[r],yn=!!(i!=="full"&&W&&v&&bt>0),Wt=rt.length>0,Zt=E.useMemo(()=>{const ve=[];(Ve>0||D)&&ve.push({kind:"history-hint"});for(let Re=0;ReH.current,estimateSize:ve=>{const Re=Zt[ve];if(Re.kind==="end-anchor")return 1;if(Re.kind==="history-hint")return 48;if(Re.kind==="work-item-runtime-card")return 120;if(Re.kind==="progress-block")return 80;if(Re.kind==="pending-section")return 200;const Xe=et[Re.idx];if(Xe?.item.kind==="message"){const He=Xe.item.msg.content.length;return He<100?72:He<500?120:He<2e3?200:300}return Xe?.item.kind==="draft"?Xe.item.text.length<400?120:200:Xe?.item.kind==="ops-bundle"?Xe.item.events.length>8?92:48:80},overscan:15,getItemKey:ve=>{const Re=Zt[ve];return Re.kind==="timeline"?et[Re.idx]?.item.id??`tl-${Re.idx}`:Re.kind}}),wt=E.useRef(Et);wt.current=Et;const tt=E.useRef(Zt.length);tt.current=Zt.length;const it=E.useCallback(()=>{oe.current=!0,de.current&&clearTimeout(de.current),de.current=setTimeout(()=>{oe.current=!1},JH)},[]),sn=E.useCallback(()=>{Ce.current!==null&&(window.cancelAnimationFrame(Ce.current),Ce.current=null),Be.current!==null&&(window.cancelAnimationFrame(Be.current),Be.current=null),Ge.current=!1,Ye.current=!1},[]),Qt=E.useCallback(()=>{const ve=tt.current;it(),ve>0&&wt.current.scrollToIndex(ve-1,{align:"end"});const Re=H.current;Re&&(Re.scrollTop=Math.max(0,Re.scrollHeight-Re.clientHeight),se.current=Re.scrollTop)},[it]),mt=E.useCallback((ve=!1,Re=!1)=>{Ge.current||=ve,Ye.current||=Re,!(Ce.current!==null||Be.current!==null)&&(Ce.current=window.requestAnimationFrame(()=>{if(Ce.current=null,!Ye.current&&(!X.current||te.current)){Ge.current=!1,Ye.current=!1;return}Qt(),Be.current=window.requestAnimationFrame(()=>{Be.current=null;const Xe=Ge.current,He=Ye.current;Ge.current=!1,Ye.current=!1,!(!He&&(!X.current||te.current))&&(Qt(),Xe&&I?.())})}))},[I,Qt]);E.useEffect(()=>sn,[sn]),E.useEffect(()=>{if(!M||typeof ResizeObserver>"u")return;const ve=we.current;if(!ve)return;const Re=new ResizeObserver(()=>{ee.current||!X.current||mt(!1)});return Re.observe(ve),()=>Re.disconnect()},[M,mt,Zt.length]);const Bt=Qe.length,On=E.useMemo(()=>{const ve=Pe[Pe.length-1],Re=ve?.kind==="message"?`message:${ve.id}:${ve.msg.content.length}:${ve.timestamp}`:ve?.kind==="draft"?`draft:${ve.id}:${ve.text.length}:${ve.timestamp}`:ve?.kind==="progress"?`progress:${ve.id}:${ve.entry.summary.length}:${ve.entry.detail?.length??0}:${ve.timestamp}`:ve?.kind==="ops-bundle"?`ops:${ve.id}:${ve.events.length}:${ve.timestamp}`:"empty",Xe=$e[$e.length-1],He=Xe?`${Xe.type}:${Xe.summary.length}:${Xe.detail?.length??0}:${Xe.timestamp}`:"none";return[Zt.length,Bt,Re,$e.length,He,rt.length,bt,Te?`${o??""}:${a??""}`:""].join("|")},[o,$e,a,Bt,rt.length,Te,Pe,Zt.length,bt]);E.useLayoutEffect(()=>{const ve=Pe.length>0||rt.length>0||bt>0||Te;!ee.current||!ve||(ee.current=!1,je.current=Bt,mt(M,!0))},[Pe.length>0,Te]),E.useEffect(()=>{!M||ee.current||X.current&&(Bt<=je.current||(je.current=Bt,mt(!0)))},[Bt,M,mt]),E.useEffect(()=>{const ve=P.current==="idle"&&!!o&&o!=="idle";P.current=o,!(!M||ee.current||!X.current||!ve)&&mt(!0)},[o,M,mt]),E.useEffect(()=>{!M||ee.current||!X.current||Ut&&mt(!0)},[M,Ut,mt]),E.useLayoutEffect(()=>{!M||ee.current||!X.current||mt(!1)},[M,mt,On]);const vn=E.useCallback(ve=>{if(ve.kind==="history-hint")return c.jsxs("div",{className:"msg-history-hint",children:[c.jsx("button",{className:"msg-history-load-btn",onClick:()=>{Tn()},disabled:A,children:A?"Loading older messages...":Ve>0?`Load ${Math.min(qg,Ve)} older messages`:"Load older messages"}),c.jsxs("span",{className:"msg-history-meta",children:["Showing latest ",qe.length," of ",T??Pe.length]})]});if(ve.kind==="work-item-runtime-card")return c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Fy,{workItemLog:w??[],roleWorkItems:_,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]});if(ve.kind==="progress-block")return c.jsxs("div",{className:"msg-row agent agent-working-row",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Vo,{entries:$e,agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,expandedByDefault:!0})})]});if(ve.kind==="pending-section")return c.jsxs("div",{className:"msg-pending-section",children:[c.jsx("div",{className:"msg-pending-header",children:"Pending Actions"}),c.jsx("div",{className:"msg-pending-stack",children:rt.map(We=>{const ar=We.senderDeleted?"[Deleted]":We.senderName,lr=lv(We.sender==="system"?We.senderName||"OPC":We.sender),mn=We.channelId.startsWith("session:")?We.channelId.slice(8):We.metadata?.taskId??We.metadata?.task_id,zt=String(We.metadata?.checkpoint_type??"").trim(),Qn=v0(We.metadata);return c.jsxs("div",{className:`msg-row agent msg-row-pending${We.senderDeleted?" deleted-sender":""}`,children:[c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:lr},children:ar.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:`msg-sender${We.senderDeleted?" deleted":""}`,style:{color:lr},children:ar}),c.jsx("span",{className:"msg-time",title:Yi(We.timestamp),children:Ss(We.timestamp)})]}),zt==="company_recruitment_confirmation"&&c.jsx(uI,{meta:We.metadata,onReply:(wn,ht)=>C?.(wn,mn,ht),responded:!1}),zt==="company_staffing_selection"&&c.jsx(mI,{meta:We.metadata,onReply:(wn,ht)=>C?.(wn,mn,ht),responded:!1}),zt==="company_work_item_gate"&&c.jsx(Xf,{meta:We.metadata,onReply:wn=>C?.(wn,mn,Qn),responded:!1}),zt==="company_delivery_feedback"&&c.jsx(pI,{meta:We.metadata,onReply:(wn,ht)=>C?.(wn,mn,ht??Qn),responded:!1}),zt==="company_reorg_pending"&&c.jsx(hI,{meta:We.metadata,onReply:wn=>C?.(wn,mn,Qn),responded:!1}),zt==="human_escalation"&&c.jsx(Xf,{meta:We.metadata,onReply:wn=>C?.(wn,mn,Qn),responded:!1}),zt==="task_user_input"&&c.jsx(gI,{meta:We.metadata,onReply:(wn,ht)=>C?.(wn,mn,{...Qn,...ht}),responded:!1})]})]},`pending-${We.id}`)})})]});if(ve.kind==="end-anchor")return c.jsx("div",{className:"msg-end-anchor"});const{item:Re,showDate:Xe,dateStr:He,isGrouped:Tt}=et[ve.idx];if(Re.kind==="progress")return c.jsx(cF,{entry:Re.entry,showDate:Xe,dateStr:He,compact:i!=="full"});if(Re.kind==="draft")return c.jsx(mF,{text:Re.text,timestamp:Re.timestamp,iteration:Re.iteration,showDate:Xe,dateStr:He});if(Re.kind==="ops-bundle")return c.jsx(yF,{events:Re.events,showDate:Xe,dateStr:He});const{msg:ft}=Re,$n=ft.metadata?.type==="system",Ae=rF(ft),Dt=!!ft.metadata?.is_work_item_event||ft.content.startsWith("[Company:"),kn=Qc(ft.metadata),nr=ft.sender==="user",Sn=!nr&&!kn?xI(ft.content):null;if(Dt&&!kn)return c.jsx(uF,{msg:ft,showDate:Xe,dateStr:He});if(Sn)return c.jsx(bF,{msg:ft,payload:Sn,showDate:Xe,dateStr:He,isCopied:V===ft.id,onCopy:Mn});if(Ae&&!kn)return c.jsx(fF,{msg:ft,showDate:Xe,dateStr:He});if($n&&!kn)return c.jsx(dF,{msg:ft,showDate:Xe,dateStr:He});if(nr)return c.jsx(hF,{msg:ft,showDate:Xe,dateStr:He,isGrouped:Tt,isCopied:V===ft.id,onCopy:Mn,onImageClick:q,renderUserMarkdown:U});if(ft.sender==="system"&&(String(ft.metadata?.checkpoint_type??"").trim(),!Qc(ft.metadata))){const We=yI(ft.content);if(We)return c.jsx(xF,{msg:ft,showDate:Xe,dateStr:He,isGrouped:Tt,classification:We})}return c.jsx(_F,{msg:ft,showDate:Xe,dateStr:He,isGrouped:Tt,isCopied:V===ft.id,isCheckpointResponded:Oe.respondedMessageIds.has(ft.id),suppressCheckpointPanel:Oe.duplicateMessageIds.has(ft.id),onCopy:Mn,onSend:C})},[et,V,Mn,U,Oe,C,Tn,A,Ve,qe.length,T,Pe.length,w,_,k,S,t,N,O,$e,o,a,u,d,rt,Te,i]);if(Pe.length===0&&rt.length===0)return c.jsxs("div",{className:"msg-list",ref:H,onScroll:yt,children:[c.jsxs("div",{className:"msg-welcome",children:[c.jsx("div",{className:"msg-welcome-icon",children:Dn.icon}),c.jsx("div",{className:"msg-welcome-title",children:n||Dn.title}),c.jsx("div",{className:"msg-welcome-hint",children:Dn.hint})]}),yn&&c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Fy,{workItemLog:w??[],roleWorkItems:_,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]}),Te&&c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Vo,{entries:$e,agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,expandedByDefault:!0})})]}),c.jsx("div",{className:"msg-end-anchor"})]});const Rn=Et.getVirtualItems();return c.jsxs("div",{className:"msg-list",ref:H,onScroll:yt,children:[c.jsx("div",{ref:we,style:{height:Et.getTotalSize(),width:"100%",position:"relative"},children:c.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Rn[0]?.start??0}px)`},children:Rn.map(ve=>c.jsx("div",{"data-index":ve.index,ref:Et.measureElement,children:vn(Zt[ve.index])},ve.key))})}),Z&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>q(null),children:c.jsx("img",{className:"lightbox-img",src:Z,alt:"Preview"})})]})}),kF=10*1024*1024,SF=20*1024*1024,wF="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",Kd={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function CF(e,t){return new Promise((n,r)=>{const i=new FileReader;i.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},i.onload=()=>{const o=i.result;t?.(100),n(o.split(",")[1]||"")},i.onerror=r,i.readAsDataURL(e)})}function Ww(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function vI(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 jF(e,t){const n=vI(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 EF({progress:e,state:t,error:n}){const i=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=i*(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:i,strokeDashoffset:a})]}),c.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?c.jsx(_l,{}):o})]})}function NF({usedPct:e,usedTokens:t,windowTokens:n}){const i=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=i*(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:i,strokeDashoffset:a})]}),c.jsx("span",{className:"composer-context-ring-label",children:o})]})}function Wg(e){return e.organization_name?.trim()||e.name}function Yg({disabled:e,placeholder:t,channelId:n,execMode:r,companyProfile:i,taskPreferredAgent:o="native",agentStatus:a,currentTool:u,displayTool:d,activeAgentCount:m,runtimeControlState:p,canStop:h,autoFocus:g=!0,contextTokens:y,contextWindow:v,contextRemainingPct:w,savedOrgs:S,activeSavedOrg:_,selectedOrgId:k,lockedMode:C=!1,onSend:N,onModeChange:O,onTaskAgentChange:I,onSavedOrgsRefresh:D,onSavedOrgLoad:T,onStop:L,onContinueInNewChat:A}){const[M,$]=E.useState(""),[W,B]=E.useState(!1),[U,H]=E.useState([]),[V,Y]=E.useState(null),Z=E.useRef(null),q=E.useRef(null),G=p==="suspending",J=p==="running"||p==="suspending"||p==="resuming",P=p==="suspended",X=p!=null,ee=J||!X&&a!=null&&a!=="idle",te=(h??!0)&&!G&&!P,re=E.useMemo(()=>Fj({contextTokens:y,contextWindow:v,contextRemainingPct:w}),[w,y,v]);E.useEffect(()=>{const ke=Z.current;ke&&(ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,200)}px`)},[M]),E.useEffect(()=>{$(""),H(ke=>(ke.forEach(Te=>{Te.preview_url&&URL.revokeObjectURL(Te.preview_url)}),[])),!e&&g&&setTimeout(()=>Z.current?.focus(),50)},[n,e,g]);const oe=E.useCallback((ke,Te)=>{H(Pe=>Pe.map(Ve=>Ve.id===ke?Te(Ve):Ve))},[]),de=E.useCallback(async(ke,Te)=>{try{const Pe=await CF(Te,Ve=>{oe(ke,qe=>({...qe,progress_percent:Ve,transfer_state:"reading"}))});oe(ke,Ve=>({...Ve,base64_data:Pe,progress_percent:100,transfer_state:"ready"}))}catch{oe(ke,Pe=>({...Pe,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[oe]),se=E.useCallback(ke=>{const Te=Array.from(ke);let Pe=U.reduce((qe,et)=>qe+et.size_bytes,0);const Ve=Te.map(qe=>{let et;return qe.size>kF?et=`Too large (${Ww(qe.size)})`:Pe+qe.size>SF?et="Total size exceeds 20MB":Pe+=qe.size,{id:crypto.randomUUID(),file:qe,filename:qe.name||"upload",mime_type:qe.type||"application/octet-stream",size_bytes:qe.size,preview_url:qe.type.startsWith("image/")?URL.createObjectURL(qe):"",progress_percent:0,transfer_state:et?"error":"reading",error:et}});H(qe=>[...qe,...Ve]),Ve.filter(qe=>!qe.error).forEach(qe=>{de(qe.id,qe.file)})},[U,de]),je=E.useCallback(ke=>{H(Te=>{const Pe=Te.find(Ve=>Ve.id===ke);return Pe?.preview_url&&URL.revokeObjectURL(Pe.preview_url),Te.filter(Ve=>Ve.id!==ke)})},[]),we=E.useCallback(()=>{if(e||ee)return;const ke=M.trim(),Te=U.filter(qe=>!qe.error&&qe.transfer_state==="reading"),Pe=U.filter(qe=>!qe.error&&!!qe.base64_data);if(Te.length>0||!ke&&Pe.length===0)return;const Ve=Pe.map(qe=>({filename:qe.filename,data:qe.base64_data,mime_type:qe.mime_type}));N(ke||"Sent with attachments",Ve.length?Ve:void 0),$(""),U.forEach(qe=>{qe.preview_url&&URL.revokeObjectURL(qe.preview_url)}),H([])},[e,ee,M,U,N]),Ce=E.useCallback(ke=>{const Te=ke.clipboardData?.files;Te&&Te.length>0&&(ke.preventDefault(),se(Te))},[se]),Be=String(i??"").trim().toLowerCase(),Ge=r==="company"?"company":r==="org"||r==="custom"||Be==="custom"?"org":"task",Ye=E.useMemo(()=>(S??[]).filter(ke=>!!ke.name&&ke.name!=="corporate"),[S]),yt=_?Ye.find(ke=>ke.name===_):void 0,Vt=k?Ye.find(ke=>ke.name===k):void 0,bt=yt?Wg(yt):_||"",vt=Vt?Wg(Vt):k||bt,me=Vt?.name||k||yt?.name||"",Oe=Ge==="task"?"task":"company",rt=Ge==="org"?me?`org:${me}`:"":"corporate",Qe=Ge==="org"?vt?`Company / ${vt}`:"Company / Saved org":"Company / Corporate",Je=Oe==="task"?"Task":Qe,fe=!!r&&!!O,be=Ge==="task"&&!!I,Me=E.useMemo(()=>{const ke=Ge==="task"?"task":Ge==="org"?`org:${me||"selected"}`:"company:corporate",Te=me||yt?.name||"",Pe=vt||bt||Te,Ve=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:c.jsx(w4,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:c.jsx(C4,{})}];return Te&&Ve.push({key:`org:${Te}`,mode:"org",profile:"custom",orgId:Te,label:`Company / ${Pe}`,description:"A saved company architecture collaborates",icon:c.jsx(j4,{})}),Ve.filter(qe=>qe.key!==ke)},[bt,yt?.name,Ge,vt,me]),Fe=U.filter(ke=>!ke.error&&ke.transfer_state==="reading").length,$e=U.filter(ke=>!ke.error&&ke.transfer_state==="ready").length,Ut=d||u,rn=ee?G?"Stopping...":m&&m>1?`${m} agents working`:Ut?`Running ${Ut}`:a==="reflecting"?"Thinking...":"Working...":null;return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:`msg-composer${W?" focused":""}${ee?" working":""}`,children:[ee&&rn&&c.jsxs("div",{className:"composer-status",children:[c.jsx("div",{className:"composer-status-indicator"}),c.jsx("span",{className:"composer-status-text",children:rn}),c.jsxs("button",{className:"composer-stop-btn",onClick:L,title:"Stop",disabled:!te||!L,children:[c.jsx(Bj,{}),c.jsx("span",{children:G?"Stopping...":"Stop"})]})]}),U.length>0&&c.jsx("div",{className:"composer-attachments",children:U.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:()=>Y(ke.preview_url)}):c.jsx("span",{className:`attachment-file-icon tone-${jF(ke.mime_type,ke.filename)}`,children:vI(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}%`:`${Ww(ke.size_bytes)} - Ready`})]}),c.jsx(EF,{progress:ke.progress_percent,state:ke.transfer_state,error:ke.error}),c.jsx("button",{className:"attachment-chip-remove",onClick:()=>je(ke.id),title:"Remove",children:c.jsx(xm,{})})]},ke.id))}),c.jsxs("div",{className:"composer-input-area",children:[c.jsx("textarea",{ref:Z,value:M,onChange:ke=>$(ke.target.value),onFocus:()=>B(!0),onBlur:()=>B(!1),onPaste:Ce,onKeyDown:ke=>{ke.key==="Enter"&&!ke.shiftKey&&(ke.preventDefault(),we())},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:wF,style:{display:"none"},onChange:ke=>{ke.target.files&&se(ke.target.files),ke.target.value=""}}),(fe||r)&&c.jsxs("div",{className:"composer-config-group","data-locked":C?"true":void 0,children:[fe&&!C?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:Oe,onChange:ke=>{if(ke.target.value==="task"){O?.("task");return}O?.("company","corporate")},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Execution mode",children:[c.jsx("option",{value:"task",children:"Task"}),c.jsx("option",{value:"company",children:"Company"})]})})]}):fe&&C?c.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${Je}.${A?" 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(Uk,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:Je}),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:Je}),"."]}),A&&Me.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:Me.map(ke=>c.jsxs("button",{type:"button",className:"composer-mode-chip-popover-action",onClick:()=>A(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(Hj,{})})]},ke.key))})]})]})]}):c.jsx("span",{className:"composer-mode","data-kind":"mode",children:Je}),Oe==="company"&&fe&&!C&&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:rt,onChange:ke=>{const Te=ke.target.value;if(Te==="corporate"){O?.("company","corporate");return}if(Te.startsWith("org:")){const Pe=Te.slice(4);Pe&&O?.("org","custom",Pe)}},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Company architecture",children:[c.jsx("option",{value:"corporate",children:"Corporate"}),!rt&&c.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),rt&&rt!=="corporate"&&!Ye.some(ke=>`org:${ke.name}`===rt)&&c.jsx("option",{value:rt,children:vt||me}),Ye.length===0?c.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):Ye.map(ke=>c.jsx("option",{value:`org:${ke.name}`,children:Wg(ke)},ke.name))]})})]})]}),Ge==="task"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),be&&!C?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(Kd).map(([ke,Te])=>c.jsx("option",{value:ke,children:Te},ke))})})]}):be&&C?c.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${Kd[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(Uk,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:Kd[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:Kd[o]})]})]}),c.jsx("span",{className:"composer-hint",children:Fe>0?`Preparing ${Fe} attachment${Fe>1?"s":""}`:$e>0?`${$e} attachment${$e>1?"s":""} ready`:"Shift+Enter for new line"}),typeof re.usedPct=="number"&&c.jsx(NF,{usedPct:re.usedPct,usedTokens:re.usedTokens,windowTokens:re.windowTokens}),c.jsx("button",{className:"composer-send-btn",onClick:we,disabled:e||Fe>0||!M.trim()&&$e===0||ee,children:c.jsx(p4,{})})]})]})]}),V&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>Y(null),children:c.jsx("img",{className:"lightbox-img",src:V,alt:"Preview"})})]})}function cv(e){return ym(e)}function Yw(e){const t=cv(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 uv(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 IF(e){return e.length===0?"—":uv(e[e.length-1].timestamp)}function TF(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=cv(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 r=n[n.length-1];return r.type==="work_item_started"?`Work item: ${r.summary}`:r.type==="tool_call"?r.summary:r.detail?r.detail.replace(/\s+/g," ").trim():r.summary}return"Idle"}function Xw(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function Kw(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const RF={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},Xg={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"}},Vy={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},Zw={active:0,waiting:1,pending:2,done:3,failed:4};function AF(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=Vy[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function MF(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,r)=>Math.max(n,r.updatedAt),0);return t?uv(t):"—"}function DF(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function OF({sections:e,fallbackEntries:t,sessionStatus:n}){const r=(e??[]).filter(i=>(i.entries?.length??0)>0||!!i.runtimeTaskId);return r.length>0?c.jsx("div",{className:"wf-role-turn-activity-sections",children:r.map((i,o)=>{const a=i.entries??[],u=`${i.runtimeTaskId||i.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:i.title}),i.roleName&&c.jsx("span",{className:"wf-role-turn-activity-section-role",children:i.roleName}),a.length>0&&c.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?c.jsx(Vo,{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(Vo,{entries:t,sessionStatus:n,expandedByDefault:!0})}function LF({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[r,i]=E.useState(null),[o,a]=E.useState(null),[u,d]=E.useState("all"),[m,p]=E.useState(""),[h,g]=E.useState(!1),y=E.useMemo(()=>Object.values(e),[e]),v=E.useMemo(()=>{let k=y.slice();if(u==="active"?k=k.filter(C=>C.aggregatedStatus==="active"):u==="idle"?k=k.filter(C=>C.aggregatedStatus==="done"||C.aggregatedStatus==="failed"):u==="pending"&&(k=k.filter(C=>C.aggregatedStatus==="pending"||C.aggregatedStatus==="waiting")),m.trim()){const C=m.toLowerCase();k=k.filter(N=>N.roleName.toLowerCase().includes(C)||N.roleId.toLowerCase().includes(C)||N.workItems.some(O=>O.title.toLowerCase().includes(C)))}return k.sort((C,N)=>{const O=Zw[C.aggregatedStatus]??99,I=Zw[N.aggregatedStatus]??99;return O!==I?O-I:C.roleName.localeCompare(N.roleName)}),k},[y,u,m]);E.useEffect(()=>{r&&!y.some(k=>k.roleKey===r)&&(i(null),a(null))},[y,r]);const w=y.filter(k=>k.aggregatedStatus==="active").length,S=r?e[r]??null:null,_=S&&o?S.workItems.find(k=>k.workItemId===o)??null:null;return y.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:w>0?`${w}/${y.length} active`:`${y.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${h?" active":""}`,onClick:()=>g(k=>!k),title:"Search agents",children:c.jsx(y0,{})})]})]}),h&&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=>p(k.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[v.map(k=>{const C=r===k.roleKey,N=k.aggregatedStatus==="active",O=k.runtimeStatus==="reflecting"||k.runtimeStatus==="tool_active",I=k.aggregatedStatus==="done"||k.aggregatedStatus==="failed";return c.jsxs("button",{className:`awp-row${C?" awp-row-selected":""}${N?" awp-row-active":""}${I?` awp-row-terminal awp-terminal-${k.aggregatedStatus}`:""}`,onClick:()=>{i(D=>D===k.roleKey?null:k.roleKey),a(null)},title:`${k.roleName} — ${Vy[k.aggregatedStatus]}`,children:[c.jsx("span",{className:`awp-dot${O?" 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:AF(k)}),c.jsx("span",{className:"awp-row-time",children:MF(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:Vy[S.aggregatedStatus]})]})]}),c.jsx("div",{className:"awp-detail-actions",children:c.jsx("button",{className:"awp-detail-close",onClick:()=>{i(null),a(null)},title:"Close detail",children:c.jsx(xm,{})})})]}),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(il,{}),c.jsx("span",{children:"Work items"})]}),c.jsx("ul",{className:"wf-role-turns",children:S.workItems.map(k=>{const C=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${C?" wf-role-turn-expanded":""}`,children:[c.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(O=>O===k.workItemId?null:k.workItemId),children:[c.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:k.kanbanColumn.replace("-"," ").replace(/^./,O=>O.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:uv(k.updatedAt)}),c.jsx("span",{className:"wf-role-turn-chevron",children:c.jsx(_s,{down:C})})]}),C&&c.jsxs("div",{className:"wf-role-turn-activity",children:[c.jsx(OF,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:DF(k)}),k.executionTurnId&&c.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:O=>{O.stopPropagation(),k.executionTurnId&&(n??t)?.(k.executionTurnId)},children:"Open runtime session"})]})]},k.workItemId)})})]}),_===null&&S.workItems.length===0&&c.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function zF({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:r}){const[i,o]=E.useState(null),[a,u]=E.useState("all"),[d,m]=E.useState(""),[p,h]=E.useState(!1);E.useEffect(()=>{i&&!e.some(_=>_.taskId===i)&&o(null)},[e,i]);const g=E.useMemo(()=>{let _=[...e];if(a==="active"?_=_.filter(Wi):a==="idle"?_=_.filter(k=>Ua.has(k.status)||cv(k)==="idle"&&k.status!=="pending"):a==="pending"&&(_=_.filter(k=>k.status==="pending")),d.trim()){const k=d.toLowerCase();_=_.filter(C=>(C.assigneeIds[0]??C.title).toLowerCase().includes(k)||C.title.toLowerCase().includes(k))}return _.sort((k,C)=>Yw(k)-Yw(C)),_},[e,a,d]),y=e.filter(Wi).length,v=E.useMemo(()=>i?e.find(_=>_.taskId===i)??null:null,[e,i]),w=E.useMemo(()=>{if(!v)return;const _=v.assigneeIds[0];return _?t.find(k=>k.agent_id===_):void 0},[v,t]),S=E.useCallback(_=>{o(k=>k===_?(n?.(_),k):_)},[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:y>0?`${y}/${e.length} active`:`${e.length}`})]}),c.jsxs("div",{className:"awp-controls",children:[c.jsxs("select",{className:"awp-filter",value:a,onChange:_=>u(_.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:()=>h(_=>!_),title:"Search agents",children:c.jsx(y0,{})})]})]}),p&&c.jsx("div",{className:"awp-search-bar",children:c.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:_=>m(_.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[g.map(_=>{const k=Wi(_),C=Ua.has(_.status),N=i===_.taskId,O=_.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,L=>L.toUpperCase())??_.title,I=_.workItemProjectionId?.replace(/_/g," ")??"",D=Xw(_.status),T=Kw(_.status);return c.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${k?" awp-row-active":""}${C?` awp-row-terminal ${T}`:""}`,onClick:()=>S(_.taskId),onDoubleClick:()=>n?.(_.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[D?c.jsx("span",{className:`awp-terminal-icon ${T}`,children:D}):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:O}),I&&c.jsx("span",{className:"awp-row-projection",children:I})]}),c.jsx("span",{className:"awp-row-activity",children:TF(_)}),c.jsx("span",{className:"awp-row-time",children:IF(_.progressLog)})]},_.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${Ua.has(v.status)?` ${Kw(v.status)}`:""}`,children:(w?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),c.jsxs("div",{className:"awp-detail-meta",children:[c.jsx("span",{className:"awp-detail-name",children:w?.name??v.assigneeIds[0]??v.title}),cl(v)&&c.jsx("span",{className:"awp-detail-role",children:cl(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: ",RF[v.selectedExecutionAgent]??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"})]})}),r&&c.jsx("button",{className:"awp-detail-expand",onClick:()=>r(v.taskId),title:"Open execution panel",children:c.jsx(il,{})}),c.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:c.jsx(xm,{})})]})]}),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(Nf,{}),c.jsx("span",{children:"Handoff"})]}),c.jsx("div",{className:"msg-content-agent-card",children:c.jsx(ir,{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(il,{}),c.jsx("span",{children:"Activity"})]}),c.jsx(Vo,{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&&!Ua.has(v.status)&&c.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),Ua.has(v.status)&&Xg[v.status]&&c.jsxs("div",{className:`awp-result-banner ${Xg[v.status].cls}`,children:[c.jsx("span",{className:"awp-result-icon",children:Xw(v.status)}),c.jsx("span",{children:Xg[v.status].text})]})]})]})]})}function PF({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:r,onOpenChildDetail:i,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?c.jsx(LF,{roleWorkItems:t,onOpenChildDetail:i,onOpenExecutionPanel:o}):n?null:c.jsx(zF,{sessions:e,agents:r,onOpenChildDetail:i,onOpenExecutionPanel:o})}function bI(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function Kg(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function Qw(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,bI(n)]:[t,String(n)]):[]}function BF({task:e,linkedSession:t,linkedSessionMessages:n,agents:r,onBack:i,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const u=E.useMemo(()=>e.assigneeIds.map(I=>r.find(D=>D.agent_id===I)).filter(Boolean),[r,e.assigneeIds]),d=e.priority?Ff[e.priority]:null,m=e.residentAssignment??{},p=e.memberSessionState??{},h=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),y=Kg(e.deliverables),v=Kg(e.acceptanceCriteria),w=Kg(e.dependencies),S=Qw({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}),_=Qw({status:p.status,current_turn_mode:p.current_turn_mode,manager_role_id:p.manager_role_id,actionable_inbox_count:p.actionable_inbox_count,protocol_backlog_count:p.protocol_backlog_count,notification_backlog_count:p.notification_backlog_count}),k=String(e.employeeAssignment?.promptContext??"").trim(),C=String(e.employeeAssignment?.deltaContext??"").trim(),N=jm(e),O=!!(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:i,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:Vf[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:O?"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(ir,{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})]}),y.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:y.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})]}),w.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:w.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||_.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,D])=>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:D})]},I))}),_.length>0&&c.jsx("div",{className:"ctx-task-kv-grid",children:_.map(([I,D])=>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:D})]},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(ir,{content:k})})]}),C&&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:C})]}),Object.keys(h).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:bI(h)})]}),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,D)=>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}-${D}`))})]}),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(qa,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary"})}):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 $F(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 HF(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 FF(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function VF(e){return new Set(e.filter(Wi).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function Jw(e,t){const n=FF(e);return n!==void 0?n||void 0:VF(t)||void 0}function UF(e){const t=Uy(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function _I(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function GF(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function qF(e){const t=String(e.execMode??"").trim().toLowerCase(),n=_I(e.execMode),r=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:r==="custom"||!!e.orgId}function Zg(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const r=String(e.status??"").trim().toLowerCase();return!!(r&&r!=="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 Uy(e,t){const r=String(e.execMode??"").trim().toLowerCase().length>0,i=_I(e.execMode);return qF(e)?"org":!r&&i==="task"&&GF(e)?"company":e.execMode??t??"task"}function eC(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function Nc(e,t){const n=!!t?.childDetail;return e?n?"full":e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const WF=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function tC(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!WF.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function YF({task:e,agents:t,roleLabel:n}){const[r,i]=E.useState(!1),o=e.priority,a=o&&e.priority in Ff?Ff[o]:null,u=e.assigneeIds.map(h=>t.find(g=>g.agent_id===h)?.name??h).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,p=({label:h,value:g})=>c.jsxs("div",{className:"ctx-info-fact",children:[c.jsx("span",{className:"ctx-info-fact-label",children:h}),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(h=>c.jsx("span",{className:"ctx-info-chip",children:h},h))})]})]}),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(p,{label:"Assignees",value:c.jsx("div",{className:"ctx-info-chips",children:u.map(h=>c.jsx("span",{className:"ctx-info-chip",children:h},h))})}),n&&c.jsx(p,{label:"Role",value:n}),m&&c.jsx(p,{label:"Employee",value:m}),e.selectedExecutionAgent&&c.jsx(p,{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(p,{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${r?" expanded":""}`,type:"button",onClick:()=>i(h=>!h),"aria-expanded":r,children:[c.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:c.jsx("path",{d:r?"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"})]}),r&&c.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&c.jsx(p,{label:"Projection",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),c.jsx(p,{label:"Task ID",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),c.jsx(p,{label:"Channel",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&c.jsx(p,{label:"Session",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function XF({panelState:e,width:t,onResizeMouseDown:n,isResizing:r,activeView:i,activeSession:o,activeTask:a,linkedTaskSession:u,linkedTaskSessionMessages:d,childDetailSession:m,messages:p,childDetailMessages:h,allSessions:g,openSessions:y,openSessionMessages:v,openSessionChildren:w,agents:S,childSessions:_,execMode:k,taskPreferredAgent:C,savedOrgsList:N,activeSavedOrg:O,onSavedOrgsList:I,onSavedOrgLoad:D,canShowAgentsTab:T=!1,channelId:L,channelName:A,secretaryChannelId:M,unreadCounts:$,multiSessionView:W=!1,panelTab:B,onPanelTabChange:U,commsState:H,commsMessage:V,onCommsRefresh:Y,onCommsReadMessage:Z,orgInfoData:q,recoveryStatus:G,canShowTeamTab:J=!1,onTeamStopRun:P,onTitleChange:X,onSessionConfigChange:ee,onSessionTaskAgentChange:te,onContinueInNewChat:re,onStop:oe,onComplete:de,onResume:se,onResumeTask:je,onStopTask:we,onCompleteTask:Ce,onLocateOnBoard:Be,onBackToParent:Ge,onCloseTaskDetail:Ye,onOpenChildDetail:yt,onOpenExecutionPanel:Vt,onSelectSessionTab:bt,onCloseSessionTab:vt,onToggleMultiSessionView:me,onCollapse:Oe,onExpand:rt,onMaximize:Qe,onComposerSend:Je,onMessageSend:fe,onSessionSend:be,onWorkItemClick:Me,onWorkItemOpenSession:Fe,onMarkRead:$e,onSessionMarkRead:Ut,onLoadSessionHistory:rn,isSessionHistoryLoading:ke}){const Te=i.kind==="secretary",Pe=i.kind==="activity",Ve=i.kind==="child-detail",qe=i.kind==="task-detail",et=!!(o&&(o.isCompanyRuntime||_.length>0)),Mn=i.kind==="session"&&o,Tn=Te?!0:!!o,Dn=!Ve&&y.length>0,yn=y.length>1,Wt=!!(W&&i.kind==="session"&&o&&yn&&B==="chat"),Zt=E.useRef(null),Et=E.useMemo(()=>{const Ae=Tf(o,g);return Rf(o,[...Ae,..._])},[o,_,g]),wt=Et.displaySession??o,tt=Nc(wt),it=E.useMemo(()=>Kk(o,Et.runtimeSession,Et.timelineSessions),[o,Et.runtimeSession,Et.timelineSessions]),sn=E.useMemo(()=>$4(o,Et.runtimeSession,Et.timelineSessions),[o,Et.runtimeSession,Et.timelineSessions]),Qt=E.useMemo(()=>Qk(Et.timelineSessions),[Et.timelineSessions]),mt=E.useMemo(()=>it?.workItemLog??o?.workItemLog??[],[it?.workItemLog,o?.workItemLog]),Bt=E.useMemo(()=>Wk(it??o,g),[it,o,g]),On=E.useMemo(()=>it?.roleWorkItems??o?.roleWorkItems,[it?.roleWorkItems,o?.roleWorkItems]),vn=E.useMemo(()=>it?.executorRoleWorkItems??o?.executorRoleWorkItems,[it?.executorRoleWorkItems,o?.executorRoleWorkItems]),Rn=!!(On&&Object.keys(On).length>0||vn&&Object.keys(vn).length>0),ve=Bt.length>0?Bt:_,Re=E.useMemo(()=>Af(Et.timelineSessions),[Et.timelineSessions]),Xe=E.useMemo(()=>Et.timelineSessions.some(Ae=>ke?.(Ae.taskId)??!1),[Et.timelineSessions,ke]),He=E.useCallback(Ae=>{if(Ae){const Dt=Et.timelineSessions.find(kn=>kn.channelId===Ae.channelId);if(Dt)return Dt}return wt??o},[Et.timelineSessions,wt,o]),Tt=E.useMemo(()=>{if(!m)return;const Ae=m.assigneeIds[0];return Ae?S.find(Dt=>Dt.agent_id===Ae):void 0},[m,S]),ft=u??(()=>{const Ae=jm(a);return Ae?g.find(Dt=>Dt.taskId===Ae||Dt.runtimeTaskId===Ae||Dt.executionTurnId===Ae)??null:null})();E.useEffect(()=>{!Ve||!m||Zt.current?.scrollTo({top:0,behavior:"auto"})},[Ve,m?.taskId]);const $n=o;return e==="collapsed"?c.jsx("div",{className:"ctx-collapse-strip",onClick:()=>rt(),title:"Open panel",children:"◀"}):c.jsxs(c.Fragment,{children:[c.jsx("div",{className:`ctx-resize-handle${r?" active":""}`,onMouseDown:n}),c.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:qe&&a?c.jsx(BF,{task:a,linkedSession:ft,linkedSessionMessages:d,agents:S,onBack:Ye??Oe,onOpenLinkedSession:bt,onOpenExecutionPanel:Vt}):Ve&&m?c.jsxs("div",{className:"ctx-child-detail",ref:Zt,children:[c.jsxs("div",{className:"ctx-child-topbar",children:[c.jsx("button",{className:"ctx-back-btn",onClick:Ge,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&we&&c.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>we(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..."}),tC(m)&&je&&c.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>je(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),c.jsxs("div",{className:"ctx-child-header",children:[Tt&&c.jsx("div",{className:"ctx-child-avatar",children:Tt.name.charAt(0).toUpperCase()}),c.jsxs("div",{className:"ctx-child-meta",children:[c.jsx("span",{className:"ctx-child-name",children:Tt?.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(Nf,{}),c.jsx("span",{children:"Received From"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(ir,{content:m.handoffContext})})]}),c.jsxs("div",{className:"ctx-child-transcript",children:[c.jsxs("div",{className:"ctx-child-transcript-header",children:[c.jsx(il,{}),c.jsx("span",{children:"Transcript"})]}),c.jsx(qa,{messages:h,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:$e,hasOlderHistory:!Wi(m)&&m.messageCount>h.length,totalMessageCount:m.messageCount,onLoadOlderHistory:Ae=>rn?.(m.taskId,Ae,"full"),loadingOlderHistory:ke?.(m.taskId)??!1,autoScroll:!1,initialScrollToBottom:!0,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(hm,{}),c.jsx("span",{children:"Artifacts"})]}),c.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Ae,Dt)=>c.jsx("li",{children:Ae},Dt))})]}),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(Nf,{}),c.jsx("span",{children:"Passed To"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(ir,{content:m.handoffTo})})]})]}):c.jsxs(c.Fragment,{children:[Dn&&c.jsxs("div",{className:"ctx-session-strip",children:[c.jsx("div",{className:"ctx-session-strip-scroll",children:y.map(Ae=>{const Dt=$?.[Ae.channelId]??0,kn=o?.taskId===Ae.taskId;return c.jsxs("div",{className:`ctx-session-chip${kn?" active":""}`,children:[c.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>bt?.(Ae.taskId),title:Ae.title,children:[c.jsx("span",{className:`ctx-session-chip-status status-${Ae.status}`}),c.jsx("span",{className:"ctx-session-chip-title",children:Ae.title}),Dt>0&&c.jsx("span",{className:"ctx-session-chip-unread",children:Dt>99?"99+":Dt})]}),c.jsx("button",{className:"ctx-session-chip-close",onClick:()=>vt?.(Ae.taskId),title:"Close tab",children:"×"})]},Ae.taskId)})}),yn&&c.jsx("button",{className:`ctx-session-view-btn${W?" active":""}`,onClick:me,children:W?"Single View":"Multi View"})]}),c.jsxs("div",{className:"ctx-header",children:[Wt?c.jsx("span",{className:"ctx-header-title",children:et?"Open Runtime Sessions":"Open Sessions"}):Mn?c.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[c.jsx("button",{role:"tab","aria-selected":B==="chat",className:`ctx-tab${B==="chat"?" active":""}`,onClick:()=>U("chat"),children:"Chat"}),T&&c.jsx("button",{role:"tab","aria-selected":B==="agents",className:`ctx-tab${B==="agents"?" active":""}`,onClick:()=>U("agents"),children:"Agents"}),c.jsx("button",{role:"tab","aria-selected":B==="info",className:`ctx-tab${B==="info"?" active":""}`,onClick:()=>U("info"),children:"Info"}),Y&&c.jsx("button",{role:"tab","aria-selected":B==="comms",className:`ctx-tab${B==="comms"?" active":""}`,onClick:()=>U("comms"),children:"Comms"}),J&&c.jsx("button",{role:"tab","aria-selected":B==="team",className:`ctx-tab${B==="team"?" active":""}`,onClick:()=>U("team"),children:"Team"})]}):Te?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:rt,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:Oe,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&&!Te&&!Pe&&c.jsxs("div",{className:"ctx-empty",children:[c.jsx("span",{className:"ctx-empty-icon",children:"📋"}),c.jsx("span",{children:et?"Select a Work Item to see details":"Select a task to see details"})]}),Wt&&c.jsx("div",{className:"ctx-multi-grid",children:y.map(Ae=>{const Dt=v[Ae.taskId]??[],kn=w[Ae.taskId]??[],nr=Tf(Ae,g),Sn=Rf(Ae,[...nr,...kn]),We=Kk(Ae,Sn.runtimeSession,Sn.timelineSessions),ar=Wk(We??Ae,g),lr=We?.roleWorkItems??Ae.roleWorkItems,mn=Jw(lr,kn)??0,zt=Ae.assigneeIds.map(cn=>S.find(on=>on.agent_id===cn)?.name??cn).filter(Boolean),Qn=HF(We??Ae,mn),wn=!!(Ae.isCompanyRuntime||kn.length>0),ht=Sn.displaySession??Ae,Tr=Qk(Sn.timelineSessions),wr=Af(Sn.timelineSessions),Jn=Zg(We??ht,Math.max(wr,Dt.length)),ct=Sn.timelineSessions.some(cn=>ke?.(cn.taskId)??!1);return c.jsxs("section",{className:`ctx-multi-card${o?.taskId===Ae.taskId?" focused":""}`,children:[c.jsxs("div",{className:"ctx-multi-card-header",children:[c.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>bt?.(Ae.taskId),title:"Focus session",children:[c.jsx("span",{className:`ctx-multi-card-status status-${Ae.status}`}),c.jsx("span",{className:"ctx-multi-card-title",children:Ae.title})]}),c.jsxs("div",{className:"ctx-multi-card-actions",children:[((We??Ae).canStop??(We??Ae).status==="running")&&(We??Ae).runtimeControlState!=="suspending"&&we&&c.jsx("button",{onClick:()=>we(Sn.runtimeSession?.taskId??Ae.taskId),children:"Stop"}),(We??Ae).runtimeControlState==="suspending"&&c.jsx("button",{disabled:!0,children:"Stopping..."}),tC(We??Ae)&&je&&c.jsx("button",{onClick:()=>je(Ae.taskId),children:"Continue"}),(We??Ae).status!=="done"&&(We??Ae).status!=="cancelled"&&Ce&&c.jsx("button",{onClick:()=>Ce(Ae.taskId),children:"Done"}),c.jsx("button",{onClick:()=>bt?.(Ae.taskId),children:"Focus"}),c.jsx("button",{onClick:()=>vt?.(Ae.taskId),title:"Close tab",children:"×"})]})]}),c.jsxs("div",{className:"ctx-multi-card-meta",children:[c.jsx("span",{children:UF(Ae)}),c.jsx("span",{children:Ae.status}),Qn&&c.jsx("span",{children:Qn}),zt.length>0&&c.jsx("span",{children:zt.join(", ")}),c.jsx("span",{children:$F(Ae.updatedAt)})]}),c.jsx("div",{className:"ctx-multi-card-body",children:c.jsx(qa,{messages:Dt,channelName:ht?.title??Ae.title,viewKind:"session",detailMode:Nc(ht),agentStatus:We?.agentStatus??ht?.agentStatus,currentTool:We?.currentTool??ht?.currentTool,toolElapsedMs:We?.toolElapsedMs??ht?.toolElapsedMs,lastToolSummary:We?.lastToolSummary??ht?.lastToolSummary,progressLog:Tr,draftAssistantText:We?.draftAssistantText??ht?.draftAssistantText,draftUpdatedAt:We?.draftUpdatedAt??ht?.draftUpdatedAt,draftIteration:We?.draftIteration??ht?.draftIteration,draftTurnId:We?.draftTurnId??ht?.draftTurnId,isCompanyRuntime:We?.isCompanyRuntime??wn,workItemLog:We?.workItemLog??Ae.workItemLog,childSessions:ar,onSend:(cn,on,It)=>be?.(Ae.taskId,cn,void 0,It),onWorkItemClick:Me,onWorkItemOpenSession:Fe,onMarkRead:()=>Ut?.(Ae.taskId),hasOlderHistory:!Sn.timelineSessions.some(Wi)&&wr>Dt.length,totalMessageCount:wr,onLoadOlderHistory:cn=>{const on=Sn.timelineSessions.find(It=>It.channelId===cn?.channelId)??ht??Ae;return rn?.(on.taskId,cn,Nc(on,{childDetail:on.mode==="child"}))},loadingOlderHistory:ct,showRuntimeProgress:Nc(ht)==="full"},ht?.channelId??Ae.channelId)}),c.jsx(Yg,{disabled:!1,channelId:We?.channelId??Ae.channelId,execMode:Uy(Ae,k),companyProfile:Ae.companyProfile,taskPreferredAgent:eC(Ae,Jn,C),agentStatus:We?.agentStatus??ht?.agentStatus,currentTool:We?.currentTool??ht?.currentTool,displayTool:We?.displayTool??ht?.displayTool,activeAgentCount:mn||void 0,runtimeControlState:(We??ht)?.runtimeControlState,canStop:(We??ht)?.canStop,savedOrgs:N??null,activeSavedOrg:O??null,selectedOrgId:Ae.orgId??O??null,lockedMode:Jn,autoFocus:!1,contextTokens:We?.contextTokens??ht?.contextTokens,contextWindow:We?.contextWindow??ht?.contextWindow,contextRemainingPct:We?.contextRemainingPct??ht?.contextRemainingPct??100,onSend:(cn,on)=>be?.(Ae.taskId,cn,on,Uj(b0(Dt).latestPendingReplyMetadata)),onModeChange:(cn,on,It)=>ee?.(Ae.taskId,cn,on,It),onTaskAgentChange:cn=>te?.(Ae.taskId,cn),onContinueInNewChat:re,onSavedOrgsRefresh:I,onSavedOrgLoad:D,onStop:()=>we?.(Sn.runtimeSession?.taskId??Ae.taskId)})]},Ae.taskId)})}),Pe&&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(qa,{messages:p,channelName:"Activity",viewKind:"activity",detailMode:"summary",onSend:fe,onMarkRead:$e},L)]}),Te&&c.jsxs(c.Fragment,{children:[c.jsx(qa,{messages:p,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onSend:fe,onMarkRead:$e},M),c.jsx(Yg,{disabled:!1,channelId:M,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:Je})]}),o&&!Te&&!Pe&&!Wt&&B==="chat"&&c.jsxs(c.Fragment,{children:[c.jsx(P8,{session:sn??o,agents:S,onTitleChange:X,onViewOnBoard:Be?()=>Be(o.taskId):void 0,onStop:oe,onComplete:(sn??o).status!=="done"&&(sn??o).status!=="cancelled"?de:void 0,onResume:se}),et&&(Rn||mt.length>0||Bt.length>0)&&c.jsx("div",{className:"ctx-work-item-progress",children:c.jsx(Fy,{workItemLog:mt,roleWorkItems:On,executorRoleWorkItems:vn,childSessions:Bt,isCompanyRuntime:et,onWorkItemClick:Me})}),c.jsx(qa,{messages:p,channelName:A,viewKind:"session",detailMode:tt,agentStatus:it?.agentStatus??wt?.agentStatus,currentTool:it?.currentTool??wt?.currentTool,toolElapsedMs:it?.toolElapsedMs??wt?.toolElapsedMs,lastToolSummary:it?.lastToolSummary??wt?.lastToolSummary,progressLog:Qt,draftAssistantText:it?.draftAssistantText??wt?.draftAssistantText,draftUpdatedAt:it?.draftUpdatedAt??wt?.draftUpdatedAt,draftIteration:it?.draftIteration??wt?.draftIteration,draftTurnId:it?.draftTurnId??wt?.draftTurnId,isCompanyRuntime:it?.isCompanyRuntime??et,workItemLog:mt,roleWorkItems:On,executorRoleWorkItems:vn,childSessions:Bt,onSend:fe,onWorkItemClick:Me,onWorkItemOpenSession:Fe,onMarkRead:$e,hasOlderHistory:!Et.timelineSessions.some(Wi)&&Re>p.length,totalMessageCount:Re,onLoadOlderHistory:Ae=>{const Dt=He(Ae);if(Dt)return rn?.(Dt.taskId,Ae,Nc(Dt,{childDetail:Dt.mode==="child"}))},loadingOlderHistory:Xe,showWorkItemRuntimeCard:!1,showRuntimeProgress:tt==="full"},L),c.jsx(Yg,{disabled:!Tn,channelId:it?.channelId??L,execMode:Uy(o,k),companyProfile:o.companyProfile,taskPreferredAgent:eC(o,Zg(it??wt??o,Math.max(Re,p.length)),C),agentStatus:it?.agentStatus??wt?.agentStatus,currentTool:it?.currentTool??wt?.currentTool,displayTool:it?.displayTool??wt?.displayTool,runtimeControlState:(it??wt)?.runtimeControlState,canStop:(it??wt)?.canStop,savedOrgs:N??null,activeSavedOrg:O??null,selectedOrgId:o.orgId??O??null,lockedMode:Zg(it??wt??o,Math.max(Re,p.length)),activeAgentCount:Jw(On,ve),contextTokens:it?.contextTokens??wt?.contextTokens,contextWindow:it?.contextWindow??wt?.contextWindow,contextRemainingPct:it?.contextRemainingPct??wt?.contextRemainingPct??100,onSend:Je,onModeChange:(Ae,Dt,kn)=>ee?.(o.taskId,Ae,Dt,kn),onTaskAgentChange:Ae=>te?.(o.taskId,Ae),onContinueInNewChat:re,onSavedOrgsRefresh:I,onSavedOrgLoad:D,onStop:oe})]}),o&&!Te&&!Wt&&B==="agents"&&T&&(ve.length>0||Rn?c.jsx(PF,{sessions:ve,roleWorkItems:On,isCompanyRuntime:et,agents:S,onOpenChildDetail:yt,onOpenExecutionPanel:Vt}):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&&!Te&&!Wt&&B==="info"&&$n&&c.jsx(YF,{task:$n,agents:S,roleLabel:cl($n)}),B==="comms"&&Y&&Z&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(T8,{state:H??null,message:V??null,onRefresh:Y,onReadMessage:Z,embedded:!0})}),B==="team"&&J&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(O8,{orgInfoData:q??null,recoveryStatus:G??null,commsState:H??null,onStopRun:P,embedded:!0})})]})]})})]})}function KF({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:r}){const[i,o]=E.useState(e),[a,u]=E.useState(!1),d=E.useRef(0),m=E.useRef(0),p=E.useRef(e);p.current=i;const h=E.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=p.current,u(!0)},[]);return E.useEffect(()=>{if(!a)return;const g=v=>{const w=d.current-v.clientX,S=m.current+w;if(S{u(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y)}},[a,t,n,r]),{width:i,isResizing:a,handleMouseDown:h}}const ZF=200;function QF(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function JF(e,t,n){if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:r,employees:i}=t,o=Em(t),a=t.top_level_role_ids??[],u=t.final_decider_role_id??"";if(r.length===0)return confirm(`Your org has no roles defined. + +Set up at least one role before running a task. + +Go to Org tab now?`)&&n?.(),!1;if(a.length>1&&!u)return confirm(`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?`)&&n?.(),!1;const d=[],m=new Set(r.map(y=>y.role_id));o.runtimeTeams.filter(y=>y.member_role_ids.some(v=>m.has(v))||y.manager_role_id&&m.has(y.manager_role_id)).length===0&&d.push("No runtime teams defined — the system will auto-generate from your roles");const h=new Set(i.map(y=>y.role_id)),g=r.filter(y=>!h.has(y.role_id));if(g.length>0){const y=g.map(v=>v.name).join(", ");d.push(`${g.length} role(s) have no employees: ${y}`)}return d.length>0?confirm(`Before running this task: + +`+d.map(y=>"• "+y).join(` +`)+` + +Run anyway?`):!0}function eV(e){if(!e)return!1;const t=Em(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function nC(e,t){const n=!!t?.childDetail;return e?n?"full":e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function rC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function tV({boardColor:e,title:t,onCommit:n}){const[r,i]=E.useState(!1),[o,a]=E.useState(t),u=E.useRef(null);E.useEffect(()=>{r||a(t)},[t,r]);const d=E.useCallback(()=>{const p=o.trim();p&&p!==t?n(p):a(t),i(!1)},[o,t,n]),m=E.useCallback(()=>{a(t),i(!0),setTimeout(()=>u.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:u,className:"board-tab-title-input",value:o,onChange:p=>a(p.target.value),onBlur:d,onKeyDown:p=>{p.key==="Enter"&&d(),p.key==="Escape"&&(a(t),i(!1))}}):c.jsx("span",{className:"board-tab-title",onClick:m,title:"Click to edit session title",children:t})]})})})}function nV({boardStore:e,agents:t,officeMap:n,execMode:r,companyProfile:i,taskPreferredAgent:o,chatStore:a,sessionStore:u,projectId:d,onRunTask:m,onCreateTask:p,onMoveTask:h,onCreateSession:g,onSessionSend:y,onSecretarySend:v,onDeleteSession:w,onTitleChange:S,onSessionConfigChange:_,onSessionTaskAgentChange:k,onContinueInNewChat:C,onSessionStop:N,onSessionResume:O,onSessionComplete:I,onLoadSessionDetail:D,onOpenExecutionPanel:T,onCollabSync:L,orgInfoData:A,onNavigateToOrg:M,recoveryStatus:$,onRecoveryResume:W,onRecoveryCancel:B,commsState:U,commsMessage:H,onCommsRefresh:V,onCommsReadMessage:Y,savedOrgsList:Z,activeSavedOrg:q,onSavedOrgsList:G,onSavedOrgLoad:J}){const{sessions:P,activeSessionId:X,activeSession:ee}=u,[te,re]=E.useState("collapsed"),{width:oe,isResizing:de,handleMouseDown:se}=KF({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>re("collapsed")}),[je,we]=E.useState("chat"),[Ce,Be]=E.useState(null),[Ge,Ye]=E.useState({kind:"activity"}),[yt,Vt]=E.useState([]),[bt,vt]=E.useState(!1),[me,Oe]=E.useState({}),rt=E.useRef(D),Qe=E.useRef({active:null,child:null}),Je=r==="company"||r==="org"||r==="custom",fe=`secretary:${d}`,be=`activity:${d}`,Me=E.useMemo(()=>Ce?P.find(ue=>ue.taskId===Ce)??null:null,[P,Ce]),Fe=E.useMemo(()=>Ge.kind!=="task-detail"?null:e.tasks.find(ue=>ue.id===Ge.taskId)??null,[Ge,e.tasks]),$e=E.useMemo(()=>{const ue=jm(Fe);return ue?P.find(Se=>Se.taskId===ue||Se.runtimeTaskId===ue||Se.executionTurnId===ue)??null:null},[P,Fe]),Ut=E.useMemo(()=>$e?a.getChannelMessages($e.channelId):[],[a.messages,a.getChannelMessages,$e]),rn=E.useMemo(()=>gf(ee,P),[P,ee]),ke=E.useMemo(()=>Tf(ee,P),[P,ee]),Te=E.useMemo(()=>Rf(ee,[...ke,...rn]),[ee,rn,ke]);E.useEffect(()=>{rt.current=D},[D]);const Pe=E.useCallback((ue,Se,Ue="summary")=>{const pt=rt.current;!pt||!ue||(Oe(tn=>tn[ue]?tn:{...tn,[ue]:!0}),pt(ue,{limit:ZF,beforeCreatedAt:Se?.timestamp,beforeMessageId:Se?.id,detailLevel:Ue}),window.setTimeout(()=>{Oe(tn=>tn[ue]?{...tn,[ue]:!1}:tn)},800))},[]),Ve=E.useCallback(ue=>!!me[ue],[me]);E.useEffect(()=>{Qe.current={active:null,child:null}},[d]),E.useEffect(()=>{Ce&&!Me&&Be(null)},[Ce,Me]),E.useEffect(()=>{Ge.kind==="task-detail"&&!Fe&&Ye({kind:"activity"})},[Ge,Fe]);const qe=E.useRef(null);E.useEffect(()=>{if(!$e){qe.current=null;return}qe.current!==$e.taskId&&(qe.current=$e.taskId,Pe($e.taskId,void 0,"full"))},[$e,Pe]),E.useEffect(()=>{if(!Ce){Qe.current.child=null;return}Qe.current.child!==Ce&&(Qe.current.child=Ce,Pe(Ce,void 0,"full"))},[Ce,Pe]),E.useEffect(()=>{if(!X){Qe.current.active=null;return}const ue=Te.timelineSessions.length>0?Te.timelineSessions:P.find(Ue=>Ue.taskId===X)?[P.find(Ue=>Ue.taskId===X)]:[];if(ue.length===0){Qe.current.active=null;return}const Se=ue.map(Ue=>`${Ue.taskId}:${nC(Ue,{childDetail:Ue.mode==="child"})}`).join("|");if(Qe.current.active!==Se){Qe.current.active=Se;for(const Ue of ue)Pe(Ue.taskId,void 0,nC(Ue,{childDetail:Ue.mode==="child"}))}},[Te.timelineSessions,X,Pe,P]);const et=E.useMemo(()=>Ce?{kind:"child-detail"}:Ge.kind==="task-detail"||Ge.kind==="secretary"?Ge:X?{kind:"session",taskId:X}:{kind:"activity"},[Ge,X,Ce]),Mn=E.useMemo(()=>et.kind==="secretary"?fe:et.kind==="child-detail"&&Me?Me.channelId:et.kind==="session"&&Te.displaySession?Te.displaySession.channelId:et.kind==="session"&&ee?ee.channelId:be,[et,Te.displaySession,ee,Me,fe,be]),Tn=E.useMemo(()=>{if(et.kind==="activity")return[be];if(et.kind==="secretary")return[fe];if(et.kind==="child-detail"&&Me)return[Me.channelId];if(et.kind==="session"){const ue=Te.timelineSessions.map(Se=>Se.channelId).filter((Se,Ue,pt)=>!!Se&&pt.indexOf(Se)===Ue);if(ue.length>0)return ue}return Mn?[Mn]:[]},[et.kind,Te.timelineSessions,Me,be,fe,Mn]),Dn=E.useMemo(()=>{const ue=new Set;for(const Se of P)Se.status!=="cancelled"&&ue.add(Se.channelId);return ue.add(be),ue.add(fe),ue},[P,be,fe]),yn=E.useMemo(()=>et.kind==="activity"?a.messages.filter(ue=>ue.sender!=="user"&&Dn.has(ue.channelId)).sort((ue,Se)=>Se.timestamp-ue.timestamp).slice(0,50).reverse():et.kind==="session"&&Tn.length>1?Zk(Tn.map(ue=>a.getChannelMessages(ue))):a.getChannelMessages(Mn),[a.messages,a.getChannelMessages,Mn,et.kind,Dn,Tn]),Wt=E.useMemo(()=>Me?a.getChannelMessages(Me.channelId):[],[a.messages,a.getChannelMessages,Me]),Zt=E.useMemo(()=>{if(et.kind==="session")return Uj(b0(yn).latestPendingReplyMetadata)},[yn,et.kind]),Et=E.useMemo(()=>[...Je?P.filter(Se=>Se.mode!=="child"):P].sort((Se,Ue)=>Ue.updatedAt-Se.updatedAt),[P,Je]),wt=E.useMemo(()=>{if(!Je)return null;const ue=new Set;for(const Se of P)Se.mode==="child"&&ue.add(Se.taskId);return ue.size>0?ue:null},[P,Je]),tt=E.useMemo(()=>{if(!wt)return e.tasksByColumn;const ue={};for(const[Se,Ue]of Object.entries(e.tasksByColumn))ue[Se]=Ue.filter(pt=>!wt.has(pt.id));return ue},[e.tasksByColumn,wt]),it=!!(ee&&(ee.isCompanyRuntime||rn.length>0)),sn=!!(ee&&(Je||it)),Qt=!!(ee&&Je&&eV(A));E.useEffect(()=>{je==="agents"&&!sn&&we("chat"),je==="comms"&&!V&&we("chat"),je==="team"&&!Qt&&we("chat")},[je,sn,Qt,V]);const mt=E.useMemo(()=>{const ue={};for(const Se of P)ue[Se.channelId]=a.getUnreadCount(Se.channelId);return ue[fe]=a.getUnreadCount(fe),ue},[P,a.getUnreadCount,fe]),Bt=E.useMemo(()=>yt.map(ue=>P.find(Se=>Se.taskId===ue)).filter(ue=>!!ue&&ue.mode!=="child"),[yt,P]),On=E.useMemo(()=>{const ue={};for(const Se of Bt){const Ue=gf(Se,P),pt=Tf(Se,P),tn=Rf(Se,[...pt,...Ue]);ue[Se.taskId]=Zk(tn.timelineSessions.map(An=>a.getChannelMessages(An.channelId)))}return ue},[Bt,P,a.getChannelMessages]),vn=E.useMemo(()=>{const ue={};for(const Se of Bt)ue[Se.taskId]=gf(Se,P);return ue},[Bt,P]),Rn=E.useCallback(ue=>{Vt(Se=>Se.includes(ue)?Se:[...Se,ue])},[]),ve=E.useRef(null);E.useEffect(()=>{X&&!ve.current&&te==="collapsed"&&(re("open"),we("chat")),ve.current=X},[X,te]),E.useEffect(()=>{X&&Rn(X)},[X,Rn]),E.useEffect(()=>{const ue=new Set(P.map(Se=>Se.taskId));Vt(Se=>Se.filter(Ue=>ue.has(Ue))),Oe(Se=>Object.fromEntries(Object.entries(Se).filter(([Ue])=>ue.has(Ue))))},[P]),E.useEffect(()=>{bt&&Bt.length<2&&vt(!1)},[bt,Bt.length]),E.useEffect(()=>{const ue=Se=>{if(Se.key==="Escape"&&te!=="collapsed"){const Ue=Se.target?.tagName;if(Ue==="INPUT"||Ue==="TEXTAREA"||Ue==="SELECT")return;re("collapsed")}};return document.addEventListener("keydown",ue),()=>document.removeEventListener("keydown",ue)},[te]),E.useEffect(()=>{if(te!=="collapsed")for(const ue of Tn)a.markRead(ue)},[Tn,a,te]);const Re=E.useCallback(()=>{for(const ue of Tn)a.markRead(ue)},[Tn,a]),Xe=E.useCallback(ue=>{const Se=P.find(Ue=>Ue.taskId===ue);Se&&a.markRead(Se.channelId)},[P,a]),He=E.useCallback(ue=>{const Se=P.find(Ue=>Ue.taskId===ue);Se&&(Rn(ue),u.setActiveSession(ue),Ye({kind:"session",taskId:ue}),re("open"),we("chat"),Be(null),a.markRead(Se.channelId))},[P,Rn,u,a]),Tt=E.useCallback(ue=>{const Se=yt.filter(pt=>pt!==ue);if(Vt(Se),Ce===ue&&Be(null),X!==ue)return;const Ue=Se[Se.length-1]??null;if(u.setActiveSession(Ue),Ue){const pt=P.find(tn=>tn.taskId===Ue);Ye({kind:"session",taskId:Ue}),we("chat"),pt&&a.markRead(pt.channelId);return}Ye({kind:"activity"})},[yt,Ce,X,u,P,a]),ft=E.useCallback(ue=>{if(!ue){Ye({kind:"activity"}),u.setActiveSession(null),Be(null);return}const Se=P.find(Ue=>Ue.taskId===ue);if(Je&&Se?.mode==="child"){Be(ue),re("open");return}He(ue)},[P,u,Je,He]),$n=E.useCallback(()=>{Ye({kind:"secretary"}),u.setActiveSession(null),Be(null),re("open"),a.markRead(fe)},[u,a,fe]),Ae=E.useCallback(ue=>{const Se=e.tasks.find(pt=>pt.id===ue.id);if(Je&&Se){Be(null),Ye({kind:"task-detail",taskId:Se.id}),re("open"),we("info");return}P.find(pt=>pt.taskId===ue.id)?He(ue.id):Se&&Se.phase!=="cancelled"&&(u.createSession({projectId:d,taskId:Se.id,channelId:`session:${Se.id}`,sessionId:Se.sessionId,title:Se.title,status:"pending",columnId:Se.columnId,execMode:r,companyProfile:i,assigneeIds:Se.assigneeIds,priority:Se.priority,tags:Se.tags,selectedExecutionAgent:Se.selectedExecutionAgent,createdAt:Se.createdAt,updatedAt:Se.updatedAt,messageCount:0,progressLog:[]}),Rn(ue.id),u.setActiveSession(ue.id),Ye({kind:"session",taskId:ue.id}),re("open"),we("chat"),L?.())},[P,e.tasks,u,He,Rn,L,Je]),Dt=E.useCallback(ue=>{if(!e.activeBoardId)return;const Se=e.activeBoardColumns.find(pt=>pt.name==="Todo");if(!Se)return;const Ue=e.createTask({boardId:e.activeBoardId,columnId:Se.id,title:ue});p(ue,e.activeBoardId,Se.id,Ue.id)},[e,p]),kn=E.useCallback(ue=>{e.setActiveBoard(ue);const Se=P.find(Ue=>Ue.mode!=="child"&&rC(Ue)===ue);if(Se){He(Se.taskId);return}Be(null),Ye({kind:"activity"}),u.setActiveSession(null)},[e,P,He,u]),nr=E.useMemo(()=>new Set(e.boards.map(ue=>ue.id)),[e.boards]);E.useEffect(()=>{if(Je){const ue=Fe?.boardId??rC(ee)??null;if(!ue||!nr.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)},[Je,Fe?.boardId,ee,nr,e.activeBoardId,e.boards,e.setActiveBoard]);const Sn=E.useCallback(ue=>{const Se=e.tasks.find(Cn=>Cn.id===ue);if(!Se)return;const Ue=P.find(Cn=>Cn.taskId===ue),pt=Ue?.execMode??r,tn=Ue?.companyProfile??i,An=pt==="org"||pt==="custom"?"custom":pt==="company"?tn:void 0;if(!JF(pt,A,M))return;m(ue,Se.title,Se.description??"",pt,An);const gr=e.activeBoardColumns.find(Cn=>Cn.name==="In Progress");gr&&e.moveTask(ue,gr.id,0)},[e,m,P,r,i,A,M]),We=E.useCallback((ue,Se,Ue,pt)=>{_?.(ue,Se,Ue,pt)},[_]),ar=E.useCallback(ue=>{te==="maximized"&&re("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${ue}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[te]),lr=E.useCallback(()=>{const Se=(Te.runtimeSession??Te.displaySession??ee)?.taskId??X;Se&&N?.(Se)},[Te.runtimeSession,Te.displaySession,ee,X,N]),mn=E.useCallback(()=>{Ce||X&&I?.(X)},[X,Ce,I]),zt=E.useCallback(ue=>{N?.(ue)},[N]),Qn=E.useCallback(()=>{const ue=Te.runtimeSession??Te.displaySession??ee,Se=ue?.resumeParentTaskId??ue?.taskId??X;Se&&O?.(Se)},[Te.runtimeSession,Te.displaySession,ee,X,O]),wn=E.useCallback(ue=>{const Se=P.find(Ue=>Ue.taskId===ue);O?.(Se?.resumeParentTaskId??ue)},[P,O]),ht=E.useCallback(ue=>{I?.(ue)},[I]),Tr=E.useCallback(()=>{if(!bt&&et.kind!=="session"){const ue=X??Bt[Bt.length-1]?.taskId??null;ue&&He(ue)}vt(ue=>!ue)},[bt,et.kind,X,Bt,He]),wr=E.useCallback((ue,Se,Ue,pt)=>{y(ue,Se,Ue,pt)},[y]),Jn=E.useCallback((ue,Se)=>{if(et.kind==="secretary"){v?.(ue);return}const Ue=X;if(!Ue)return;const pt=String(Zt?.response_to_checkpoint_id??"").trim();let tn=Zt;if(!pt){const An=QF();tn={...Zt??{},ui_message_id:An};const gr=Te.displaySession??ee;a.sendMessage({channelId:gr?.channelId??`session:${Ue}`,sender:"user",senderName:"You",content:ue,metadata:{ui_message_id:An}})}wr(Ue,ue,Se,tn)},[et.kind,X,Te.displaySession,ee,Zt,a,wr,v]),ct=E.useCallback((ue,Se,Ue)=>{const pt=Se??X;pt&&wr(pt,ue,void 0,Ue)},[X,wr]),cn=E.useCallback(ue=>{const Se=P.find(Ue=>Ue.taskId===ue||Ue.runtimeTaskId===ue||Ue.executionTurnId===ue);Se&&(Be(Se.taskId),re("open"),we("chat"),a.markRead(Se.channelId))},[P,a]),on=E.useCallback(ue=>{if(T){T(ue);return}cn(ue)},[cn,T]),It=et.kind==="secretary",pr=It?"Secretary":ee?ee.title:"Activity";return c.jsxs("div",{className:`workspace-page${te==="maximized"?" panel-maximized":""}`,children:[c.jsx(q4,{sessions:Et,activeSessionId:It?null:X,activeChannel:It?fe:null,secretaryChannelId:fe,unreadCounts:mt,onSelect:ft,onCreateSession:g,onDeleteSession:w,onSelectSecretary:v?$n:void 0}),te!=="maximized"&&c.jsxs("div",{className:"workspace-board",children:[$&&W&&B&&c.jsx(t4,{data:$,onResume:W,onCancel:B}),t.length>0&&c.jsx(b8,{agents:t,tasks:e.tasks}),Je?e.activeBoard&&ee&&c.jsx(tV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:ue=>S(ee.taskId,ue)},ee.taskId):e.boards.length>1&&c.jsx(_8,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:kn}),Je&&!e.activeBoard?c.jsx("div",{className:"kanban-empty-state",children:c.jsx("p",{children:"Select a Runtime Session on the left to view its Work Item board."})}):c.jsxs(c.Fragment,{children:[c.jsx(v8,{columns:e.activeBoardColumns,tasksByColumn:tt,agents:t,officeMap:n,store:e,companyMode:Je,selectedTaskId:et.kind==="task-detail"?et.taskId:X,onCardClick:Ae,onStartTask:Sn,onQuickCreate:Dt,onMoveTask:h}),Je&&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:"No work items yet — start delegation to populate this board."})})]})]}),c.jsx(XF,{panelState:te,width:oe,onResizeMouseDown:se,isResizing:de,activeView:et,activeSession:ee,activeTask:Fe,linkedTaskSession:$e,linkedTaskSessionMessages:Ut,childDetailSession:Me,messages:yn,childDetailMessages:Wt,allSessions:P,openSessions:Bt,openSessionMessages:On,openSessionChildren:vn,agents:t,childSessions:rn,execMode:r,taskPreferredAgent:o,savedOrgsList:Z??null,activeSavedOrg:q??null,onSavedOrgsList:G,onSavedOrgLoad:J,canShowAgentsTab:sn,channelId:Mn,channelName:pr,secretaryChannelId:fe,unreadCounts:mt,multiSessionView:bt,panelTab:je,onPanelTabChange:we,commsState:U??null,commsMessage:H??null,onCommsRefresh:V?()=>V({session_id:ee?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:Y,orgInfoData:A??null,recoveryStatus:$??null,canShowTeamTab:Qt,onTeamStopRun:X?()=>N?.(X):void 0,onTitleChange:S,onSessionConfigChange:We,onSessionTaskAgentChange:k,onContinueInNewChat:C,onStop:lr,onComplete:mn,onResume:Qn,onResumeTask:wn,onStopTask:zt,onCompleteTask:ht,onLocateOnBoard:ar,onBackToParent:()=>Be(null),onCloseTaskDetail:()=>Ye({kind:"activity"}),onOpenChildDetail:cn,onOpenExecutionPanel:T,onSelectSessionTab:He,onCloseSessionTab:Tt,onToggleMultiSessionView:Tr,onCollapse:()=>re("collapsed"),onExpand:()=>re("open"),onMaximize:()=>re(ue=>ue==="maximized"?"open":"maximized"),onComposerSend:Jn,onMessageSend:ct,onSessionSend:wr,onWorkItemClick:on,onWorkItemOpenSession:cn,onMarkRead:Re,onSessionMarkRead:Xe,onLoadSessionHistory:Pe,isSessionHistoryLoading:Ve})]})}function rV(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const dv=2e3,iC={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 Go(e){return e.metadata??{}}function Kf(e){const t=String(e??"").replace(/\r\n/g,` +`).replace(/\r/g,` +`).split(` +`).map(i=>i.trimEnd()).join(` +`).replace(/\n{3,}/g,` + +`).trim(),n=iV(t),r=n.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return r.length>1&&/^Verification:\s/i.test(r[r.length-1])?r.slice(0,-1).join(` + +`).trim():n}function iV(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function qo(e){const t=Go(e),n=new Set,r=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",i=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:"",r&&i?`checkpoint:${r}:${i}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function sV(e){return e.startsWith("checkpoint:")}function qi(e){return typeof e.timestamp=="number"?e.timestamp:0}function sC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Go(e),r=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||r==="user"?"user":"assistant"}function oC(e){const t=Go(e),n=String(e.sender??"").trim().toLowerCase();let r=0;const i=kI(e);return i&&(r+=1e3+i),t.source==="engine"&&(r+=100),n&&n!=="system"&&(r+=20),n&&!["assistant","system","user"].includes(n)&&(r+=5),e.replyToId&&(r+=2),r+=Math.min(Object.keys(t).length,10),r}function aC(e){return String(Go(e).source??"").trim().toLowerCase()==="engine"}function kI(e){const t=Go(e),n=String(t.transcript_kind??"").trim();if(n)return iC[n]??0;const r=String(t.kind??"").trim();return iC[r]??0}function Zf(e){return kI(e)>0}function SI(e,t){if(e.channelId!==t.channelId)return!1;const n=qo(e),r=qo(t);for(const i of n)if(r.has(i))return!0;return!1}function Gy(e,t){if(SI(e,t))return!0;if(e.channelId!==t.channelId||sC(e)!==sC(t)||Kf(e.content)!==Kf(t.content))return!1;const n=Zf(e)&&Zf(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(aC(e)||aC(t)))return!1;const r=qi(e),i=qi(t);return!(!n&&r&&i&&Math.abs(r-i)>dv)}function qy(e,t,n=!1){let r=e,i=t;(n||oC(t)>oC(e))&&(r=t,i=e);const o=[];for(const h of[i.mentions,r.mentions])for(const g of h??[])o.includes(g)||o.push(g);const a=qo(e),u=qo(t);let d="";for(const h of a)if(u.has(h)&&!sV(h)){d=h;break}const m=Kf(r.content),p=m&&m===Kf(i.content)?m:r.content;return{...i,...r,...d?{id:d}:{},content:p,metadata:{...Go(i),...Go(r)},mentions:o,timestamp:qi(r)||qi(i)}}function Qg(e){const t=[],n=new Map;for(const r of[...e].sort((i,o)=>qi(i)-qi(o))){const i=qo(r);let o=-1,a=!1;for(const d of i){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===r.id;break}}if(o===-1){const d=qi(r),m=Zf(r);for(let p=t.length-1;p>=0;p--){const h=qi(t[p]);if(!m&&d>0&&h>0&&d-h>dv)break;if(Gy(t[p],r)){o=p;break}}}const u=o===-1?t.length:o;o===-1?t.push(r):t[o]=qy(t[o],r,a);for(const d of qo(t[u]))n.has(d)||n.set(d,u)}return t}function oV(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(r=>r!==t.agentId)}));default:return e}}function aV(e,t){switch(t.type){case"SET":{const n=Qg(t.messages);if(e.length===0)return n;const r=e.filter(i=>typeof i.id=="string"&&i.id.startsWith("msg-")&&!n.some(o=>Gy(i,o)));return r.length===0?n:Qg([...n,...r])}case"CLEAR":return[];case"ADD":{const n=qi(t.message);qo(t.message);let r=!1;for(let i=e.length-1;i>=0;i--){const o=qi(e[i]);if(!r&&n>0&&o>0&&n-o>dv&&(r=!0),SI(e[i],t.message)){const a=[...e];return a[i]=qy(e[i],t.message,e[i].id===t.message.id),a}if((Zf(t.message)||!r)&&Gy(e[i],t.message)){const a=[...e];return a[i]=qy(e[i],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:Qg([...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 lV(){const[e,t]=E.useReducer(oV,[]),[n,r]=E.useReducer(aV,[]),[i,o]=E.useState({}),[a,u]=E.useState("default"),d=E.useMemo(()=>{const I={};for(const D of n)I[D.channelId]||(I[D.channelId]=[]),I[D.channelId].push(D);return I},[n]),m=E.useMemo(()=>{const I={};for(const D of n){if(D.sender==="user")continue;const T=i[D.channelId]??0;D.timestamp<=T||(I[D.channelId]=(I[D.channelId]??0)+1)}return I},[n,i]),p=E.useCallback(I=>{const D={id:`msg-${rV()}`,channelId:I.channelId,sender:I.sender,senderName:I.senderName,content:I.content,timestamp:Date.now(),replyToId:I.replyToId,mentions:[],metadata:I.metadata};return r({type:"ADD",message:D}),D},[]),h=E.useCallback(I=>d[I]??[],[d]),g=E.useCallback(I=>m[I]??0,[m]),y=E.useCallback(I=>{o(D=>({...D,[I]:Date.now()}))},[]),v=E.useCallback(I=>{r({type:"MARK_SENDER_DELETED",senderId:I})},[]),w=E.useCallback(I=>{t({type:"REMOVE_PARTICIPANT",agentId:I})},[]),S=E.useCallback(I=>{t({type:"REMOVE",channelId:`session:${I}`}),r({type:"REMOVE_BY_TASK_ID",taskId:I})},[]),_=E.useCallback(()=>{t({type:"CLEAR"}),r({type:"CLEAR"}),o({})},[]),k=E.useCallback((I,D,T)=>{const L=I||"default",A=L!==a;u(L),t({type:"SET",channels:D}),r(A?{type:"SET",messages:T}:{type:"MERGE",messages:T});const M={};for(const $ of T)(!M[$.channelId]||$.timestamp>M[$.channelId])&&(M[$.channelId]=$.timestamp);o($=>A?M:{...$,...M})},[a]),C=E.useCallback(I=>{r({type:"ADD",message:I})},[]),N=E.useCallback(I=>{r({type:"MERGE",messages:I})},[]),O=E.useCallback(I=>{t({type:"ADD",channel:I})},[]);return E.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:p,getChannelMessages:h,getUnreadCount:g,markRead:y,markSenderDeleted:v,removeParticipant:w,removeSessionData:S,clear:_,initFromBackend:k,addMessageFromBackend:C,mergeMessagesFromBackend:N,addChannelFromBackend:O}),[a,e,n,p,h,g,y,v,w,S,_,k,C,N,O])}const Mm=4e3;function tl(e,t){return e.length>t?e.slice(-t):e}function Wy(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 r=Math.min(e.length,t.length);for(let i=r;i>0;i-=1)if(e.slice(-i)===t.slice(0,i))return`${e}${t.slice(i)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} +${t}`:`${e}${t}`}function cV(e,t){return"Thinking"}function uV(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 Qf(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 dV(e,t){const n=Qf(e),r=Qf(t);return n&&r?n===r:t.timestamp-e.timestamp>Mm||e.type!==t.type?!1:e.type==="thinking"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function fV(e,t){return t.timestamp-e.timestamp<=Mm&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function mV(e,t){if(e.type==="thinking"){const n=Wy(e.detail??e.summary,t.detail??t.summary,"thinking");return{timestamp:t.timestamp,type:"thinking",summary:cV(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=Wy(e.detail??"",t.detail??"","tool_call");return{timestamp:t.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 wI(e,t,n=100){const r=uV(t),i=Qf(r),o=i?[...e].reverse().findIndex(d=>Qf(d)===i):-1,a=o>=0?e.length-1-o:e.length-1,u=e[a];return u?i&&typeof u.seq=="number"&&typeof r.seq=="number"&&r.seq<=u.seq?e:fV(u,r)?tl([...e.slice(0,a),{...u,timestamp:r.timestamp},...e.slice(a+1)],n):dV(u,r)?tl([...e.slice(0,a),mV(u,r),...e.slice(a+1)],n):tl([...e,r],n):[r]}function CI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,r)=>wI(n,r,t),[])}function hV(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 jI(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 pV(e,t){return t.timestamp-e.timestamp<=Mm&&jI(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function gV(e,t){return jI(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=Mm}function xV(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:Wy(e.detail??"",t.detail??"",n)||void 0}}function EI(e,t,n=100){const r=hV(t),i=e[e.length-1];return i?gV(i,r)?tl([...e.slice(0,-1),{...i,timestamp:r.timestamp}],n):pV(i,r)?tl([...e.slice(0,-1),xV(i,r)],n):tl([...e,r],n):[r]}function NI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,r)=>EI(n,r,t),[])}function Yy(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function yV(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function II(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),r=String(e.orgId??"").trim(),o=t.length>0?Yy(t):n==="custom"||r?"org":Yy(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:r||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const Zd=100,vV=new Set(["done","failed","cancelled"]);function bV(e,t,n){const r=n,i=new Map(t.filter(u=>u.projectId===r).map(u=>[u.taskId,u])),o=new Set,a=[];for(const u of e){if(u.projectId!==r)continue;const d=i.get(u.taskId);d?(a.push(d),o.add(u.taskId)):a.push(u)}for(const u of t)u.projectId!==r||o.has(u.taskId)||(a.push(u),o.add(u.taskId));return a}function _V(e,t){const n=g=>II({...g,progressLog:CI(g.progressLog??[],Zd),workItemLog:NI(g.workItemLog??[],Zd)}),r=g=>{const y=String(g.execMode??"").trim().toLowerCase();return y==="company"||y==="org"||y==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},i=g=>{const y=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),w=String(g.orgId??"").trim();return y==="task"&&(!v||v==="corporate")&&!w&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,y)=>{const v=g.execMode,w=y.execMode;return!v||v==="task"&&w&&w!=="task"&&!i(g)&&(r(g)||r(y))?w:v},a=(g,y,v)=>{const w=g[v],S=y[v];return!w||w==="native"&&S&&S!=="native"?S:w},u=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),d=(g,y,v)=>u(g,v)?g[v]:y[v],m=(g,y)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,w=typeof y.updatedAt=="number"&&Number.isFinite(y.updatedAt)?y.updatedAt:void 0;return v===void 0?w??Date.now():w===void 0?v:Math.max(w,v)},p=(g,y)=>g.runtimeControlState==="suspending"&&y.runtimeControlState==="running"?{...y,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??y.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??y.stopIntentId}:y,h=(g,y,v)=>{const w=g[v];if(w!=null)return w;if(!(vV.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return y[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const y=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const w=y.get(v.taskId);if(!w)return n(v);const S=p(w,v);return n({...v,updatedAt:m(v,w),execMode:o(v,w),preferredAgent:a(v,w,"preferredAgent"),draftAssistantText:w.draftAssistantText??v.draftAssistantText,draftUpdatedAt:w.draftUpdatedAt??v.draftUpdatedAt,draftIteration:w.draftIteration??v.draftIteration,draftTurnId:w.draftTurnId??v.draftTurnId,agentStatus:h(v,w,"agentStatus"),currentTool:h(v,w,"currentTool"),displayTool:h(v,w,"displayTool"),toolElapsedMs:h(v,w,"toolElapsedMs"),lastToolSummary:h(v,w,"lastToolSummary"),contextTokens:w.contextTokens??v.contextTokens,contextWindow:w.contextWindow??v.contextWindow,contextRemainingPct:w.contextRemainingPct??v.contextRemainingPct,inputTokens:w.inputTokens??v.inputTokens,outputTokens:w.outputTokens??v.outputTokens,totalTokens:w.totalTokens??v.totalTokens,turnCostUsd:w.turnCostUsd??v.turnCostUsd,sessionCostUsd:w.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:w.pendingPermissionCount??v.pendingPermissionCount,drainMode:w.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??w.workItemProjectionId,workItemTurnType:v.workItemTurnType??w.workItemTurnType,companyProfile:d(v,w,"companyProfile"),orgId:d(v,w,"orgId"),workItemRoleId:v.workItemRoleId??w.workItemRoleId,workItemRoleName:v.workItemRoleName??w.workItemRoleName,workItemGate:v.workItemGate??w.workItemGate,roleWorkItems:v.roleWorkItems??w.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??w.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??w.employeeAssignment,selectedExecutionAgent:a(v,w,"selectedExecutionAgent"),runtimeControlState:S.runtimeControlState??w.runtimeControlState,canStop:S.canStop??w.canStop,canResume:S.canResume??w.canResume,resumeParentTaskId:v.resumeParentTaskId??w.resumeParentTaskId,resumeParentSessionId:v.resumeParentSessionId??w.resumeParentSessionId,pendingRuntimeCheckpointId:S.pendingRuntimeCheckpointId??w.pendingRuntimeCheckpointId,stopIntentId:S.stopIntentId??w.stopIntentId,residentStatus:w.residentStatus??v.residentStatus,actionableInboxCount:w.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:w.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:w.notificationBacklogCount??v.notificationBacklogCount,latestNotification:w.latestNotification??v.latestNotification,latestPreview:v.latestPreview??w.latestPreview,latestSender:v.latestSender??w.latestSender,latestMessageId:v.latestMessageId??w.latestMessageId,indexLoaded:v.indexLoaded??w.indexLoaded,detailLoaded:w.detailLoaded??v.detailLoaded,fullLoaded:w.fullLoaded??v.fullLoaded,hasMore:v.hasMore??w.hasMore,detailLoading:v.detailLoading??w.detailLoading,detailError:v.detailError??w.detailError,viewGeneration:v.viewGeneration??w.viewGeneration,progressLog:w.progressLog&&w.progressLog.length>0?w.progressLog:v.progressLog,workItemLog:w.workItemLog&&w.workItemLog.length>0?w.workItemLog:v.workItemLog,lastRuntimeEventType:w.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:w.activeSubagents??v.activeSubagents,permissionRequests:w.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??w.handoffContext,handoffTo:v.handoffTo??w.handoffTo})})}case"ADD":const g=n(t.session);return e.some(y=>y.taskId===t.session.taskId)?e.map(y=>y.taskId===t.session.taskId?n({...y,...g,progressLog:g.progressLog.length>0?g.progressLog:y.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:y.workItemLog,messageCount:Math.max(y.messageCount??0,g.messageCount??0),updatedAt:Math.max(y.updatedAt??0,g.updatedAt??0),execMode:o(g,y),preferredAgent:a(g,y,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??y.workItemProjectionId,workItemTurnType:g.workItemTurnType??y.workItemTurnType,companyProfile:d(g,y,"companyProfile"),orgId:d(g,y,"orgId"),workItemRoleId:g.workItemRoleId??y.workItemRoleId,workItemRoleName:g.workItemRoleName??y.workItemRoleName,workItemGate:g.workItemGate??y.workItemGate,roleWorkItems:g.roleWorkItems??y.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??y.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??y.employeeAssignment,selectedExecutionAgent:a(g,y,"selectedExecutionAgent"),handoffContext:g.handoffContext??y.handoffContext,handoffTo:g.handoffTo??y.handoffTo,latestPreview:g.latestPreview??y.latestPreview,latestSender:g.latestSender??y.latestSender,latestMessageId:g.latestMessageId??y.latestMessageId,indexLoaded:g.indexLoaded??y.indexLoaded,detailLoaded:g.detailLoaded??y.detailLoaded,fullLoaded:g.fullLoaded??y.fullLoaded,hasMore:g.hasMore??y.hasMore,detailLoading:g.detailLoading??y.detailLoading,detailError:g.detailError??y.detailError,viewGeneration:g.viewGeneration??y.viewGeneration}):y):[g,...e];case"UPDATE":return e.map(y=>y.taskId===t.taskId?(()=>{const v=p(y,t.partial);return n({...y,...v,updatedAt:m(v,y),runtimeControlState:v.runtimeControlState??y.runtimeControlState,canStop:v.canStop??y.canStop,canResume:v.canResume??y.canResume,resumeParentTaskId:v.resumeParentTaskId??y.resumeParentTaskId,resumeParentSessionId:v.resumeParentSessionId??y.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??y.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??y.stopIntentId,roleWorkItems:v.roleWorkItems??y.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??y.executorRoleWorkItems,execMode:d(v,y,"execMode"),companyProfile:d(v,y,"companyProfile"),orgId:d(v,y,"orgId"),isCompanyRuntime:v.isCompanyRuntime??y.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??y.workItemProjectionId,workItemTurnType:v.workItemTurnType??y.workItemTurnType,workItemRoleId:v.workItemRoleId??y.workItemRoleId,workItemRoleName:v.workItemRoleName??y.workItemRoleName,workItemGate:v.workItemGate??y.workItemGate,employeeAssignment:v.employeeAssignment??y.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??y.selectedExecutionAgent,activeSubagents:v.activeSubagents??y.activeSubagents,permissionRequests:v.permissionRequests??y.permissionRequests,contextTokens:v.contextTokens??y.contextTokens,contextWindow:v.contextWindow??y.contextWindow,contextRemainingPct:v.contextRemainingPct??y.contextRemainingPct,inputTokens:v.inputTokens??y.inputTokens,outputTokens:v.outputTokens??y.outputTokens,totalTokens:v.totalTokens??y.totalTokens,turnCostUsd:v.turnCostUsd??y.turnCostUsd,sessionCostUsd:v.sessionCostUsd??y.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():y);case"DELETE":return e.filter(y=>y.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(y=>y.taskId!==t.taskId?y:{...y,progressLog:wI(y.progressLog,t.entry,Zd),updatedAt:Math.max(y.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(y=>{if(y.taskId!==t.taskId)return y;const v=t.turnId??y.draftTurnId,w=!!t.turnId&&!!y.draftTurnId&&t.turnId!==y.draftTurnId;return{...y,draftAssistantText:`${w?"":y.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??y.draftIteration,draftTurnId:v,updatedAt:Math.max(y.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(y=>y.taskId===t.taskId?{...y,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:y);case"CLEAR_PROGRESS":return e.map(y=>y.taskId===t.taskId?{...y,progressLog:[]}:y);case"APPEND_WORK_ITEM_PROGRESS":return e.map(y=>y.taskId!==t.taskId?y:{...y,workItemLog:EI(y.workItemLog??[],t.entry,Zd)});case"SET_COMPANY_RUNTIME":return e.map(y=>y.taskId===t.taskId?{...y,isCompanyRuntime:t.isCompanyRuntime}:y);default:return e}}function kV(){const[e,t]=E.useReducer(_V,[]),[n,r]=E.useState(null),[i,o]=E.useState("default"),a=E.useMemo(()=>e.find(k=>k.taskId===n)??null,[e,n]),u=E.useCallback(k=>{k.projectId===i&&t({type:"ADD",session:k})},[i]),d=E.useCallback(k=>{t({type:"DELETE",taskId:k})},[]),m=E.useCallback(k=>{r(k)},[]),p=E.useCallback((k,C)=>{t({type:"UPDATE",taskId:k,partial:C})},[]),h=E.useCallback((k,C)=>{t({type:"APPEND_PROGRESS",taskId:k,entry:C})},[]),g=E.useCallback((k,C,N,O)=>{t({type:"APPEND_DRAFT",taskId:k,text:C,iteration:N,turnId:O,timestamp:Date.now()})},[]),y=E.useCallback(k=>{t({type:"CLEAR_DRAFT",taskId:k})},[]),v=E.useCallback(k=>{t({type:"CLEAR_PROGRESS",taskId:k})},[]),w=E.useCallback((k,C)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:k,entry:C})},[]),S=E.useCallback((k,C)=>{t({type:"SET_COMPANY_RUNTIME",taskId:k,isCompanyRuntime:C})},[]),_=E.useCallback((k,C,N)=>{const O=k||"default",I=O!==i,D=N?.preserveExistingWhenIncomingPartial&&!I?bV(e,C,O):C.filter(T=>T.projectId===O);o(O),t({type:"SET",sessions:D,reset:I}),r(T=>!I&&T&&(D.some(L=>L.taskId===T)||N?.preserveActiveWhenMissing)?T:null)},[i,e]);return E.useMemo(()=>({scopeProjectId:i,sessions:e,activeSessionId:n,activeSession:a,createSession:u,deleteSession:d,setActiveSession:m,updateSession:p,appendProgress:h,appendDraft:g,clearDraft:y,clearProgress:v,appendWorkItemProgress:w,setCompanyRuntime:S,initFromBackend:_}),[i,e,n,a,u,d,m,p,h,g,y,v,w,S,_])}function lC(e){return e.trim()||"default"}function SV(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:lC(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(i=>i.id!==t.id),r=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:r}}case"SET_ACTIVE":return{...e,activeProjectId:lC(t.id)};default:return e}}function wV(){const[e,t]=E.useReducer(SV,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=E.useCallback((a,u)=>{t({type:"SET",projects:a,activeId:u})},[]),r=E.useCallback(a=>{t({type:"ADD",project:a})},[]),i=E.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=E.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return E.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:r,removeProject:i,setActiveProject:o}),[e,n,r,i,o])}const cC={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"}},Qd={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 CV(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 r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function Jg(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function jV(e){return e.phase==="failed"?Qd.failed:e.phase==="cancelled"?Qd.cancelled:Qd[e.kanbanColumn]??Qd.todo}function EV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function NV(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,r)=>n+(r.entries?.length??0),0):e.progressLog.length}function IV({sections:e,fallbackEntries:t,sessionStatus:n}){const r=(e??[]).filter(i=>(i.entries?.length??0)>0||!!i.runtimeTaskId);return r.length>0?c.jsx("div",{className:"exec-activity-sections",children:r.map((i,o)=>{const a=i.entries??[],u=`${i.runtimeTaskId||i.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:i.title}),i.roleName&&c.jsx("span",{className:"exec-activity-section-role",children:i.roleName}),a.length>0&&c.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?c.jsx(Vo,{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(Vo,{entries:t,sessionStatus:n,expandedByDefault:!0})}function uC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:r,onClose:i}){const o=E.useMemo(()=>e.workItems.slice().sort((k,C)=>k.createdAt-C.createdAt),[e.workItems]),u=E.useMemo(()=>o.find(k=>!!t&&k.workItemId===t||!!n&&k.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=E.useState(()=>{const k=new Set;return u&&k.add(u),k}),p=E.useRef(new Set);E.useEffect(()=>{!u||p.current.has(u)||(p.current.add(u),m(k=>{if(k.has(u))return k;const C=new Set(k);return C.add(u),C}))},[u]);const h=E.useCallback(k=>{m(C=>{const N=new Set(C);return N.has(k)?N.delete(k):N.add(k),N})},[]),g=E.useRef(null),y=E.useRef(null);E.useEffect(()=>{!u||y.current===u||(y.current=u,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[u]);const v=E.useCallback(k=>{k.key==="Escape"&&i()},[i]);E.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const w=r.find(k=>k.agent_id===e.roleId),S=e.roleName||w?.name||Jg(e.roleId)||"Role",_=cC[e.aggregatedStatus]??cC.pending;return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"exec-panel-backdrop",onClick:i}),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(il,{}),c.jsx("h3",{className:"exec-panel-title",children:S}),c.jsx("span",{className:`exec-badge ${_.cls}`,children:_.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:i,title:"Close (Esc)",children:c.jsx(xm,{})})]}),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:Jg(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,C)=>{const N=k.workItemId===u,O=d.has(k.workItemId),I=jV(k),D=NV(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:()=>h(k.workItemId),title:O?"Collapse":"Expand",children:[c.jsxs("span",{className:"exec-task-card-index",children:["Work item #",C+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:CV(k.updatedAt)}),c.jsx("span",{className:`exec-task-card-chevron${O?" open":""}`,"aria-hidden":"true",children:"▸"})]}),O&&c.jsxs("div",{className:"exec-task-card-body",children:[c.jsxs("div",{className:"exec-task-card-projection",children:[c.jsx(gm,{}),c.jsx("span",{children:Jg(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(il,{}),c.jsx("span",{children:"Activity"}),c.jsx("span",{className:"exec-section-count",children:D})]}),c.jsx("div",{className:"exec-section-content exec-activity-scroll",children:c.jsx(IV,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:EV(k)})})]})]})]},k.workItemId)})]})]})]})}function TV({projects:e,activeId:t,onSelect:n,onCreate:r,onDelete:i}){const[o,a]=E.useState(!1),[u,d]=E.useState(""),[m,p]=E.useState(null),h=E.useCallback(()=>{const y=u.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"");y&&(r(y),d(""),a(!1))},[u,r]),g=E.useCallback(()=>{!m||!i||(i(m),p(null))},[m,i]);return c.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[c.jsx("select",{className:"theme-select",value:t,onChange:y=>n(y.target.value),title:"Switch project",children:e.map(y=>c.jsx("option",{value:y.id,children:y.name},y.id))}),o?c.jsxs("form",{onSubmit:y=>{y.preventDefault(),h()},style:{display:"flex",gap:4},children:[c.jsx("input",{autoFocus:!0,className:"theme-select",value:u,placeholder:"project-name",onChange:y=>d(y.target.value),onKeyDown:y=>{y.key==="Escape"&&a(!1)},style:{width:120}}),c.jsx("button",{type:"submit",className:"pill-btn",style:{fontSize:11,padding:"2px 8px"},children:"+"})]}):c.jsx("button",{className:"pill-btn",onClick:()=>a(!0),title:"New project",style:{fontSize:11,padding:"2px 8px"},children:"+"}),i&&t!=="default"&&!m&&c.jsx("button",{className:"pill-btn",onClick:()=>p(t),title:"Delete project",style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:"Del"}),m&&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-surface, #1e1e2e)",borderRadius:12,padding:"24px 32px",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[c.jsxs("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15},children:['Delete project "',m,'"?']}),c.jsx("p",{style:{margin:"0 0 20px",fontSize:13,opacity:.7},children:"All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone."}),c.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[c.jsx("button",{className:"pill-btn",onClick:()=>p(null),style:{padding:"6px 18px",fontSize:13},children:"Cancel"}),c.jsx("button",{className:"pill-btn",onClick:g,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:"Delete"})]})]})})]})}const RV=80;function AV(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 dC(e){return(e.organization_name||e.name).trim()||e.name}function MV(e){const t=e.trim();return t.length>0&&t.length<=RV&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function DV(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 OV({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 LV({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 zV({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 PV({savedOrgs:e,activeName:t,isDirty:n,onRefresh:r,onSaveAs:i,onLoad:o,onDelete:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(""),[h,g]=E.useState(0),[y,v]=E.useState(!1),[w,S]=E.useState(""),[_,k]=E.useState(null),[C,N]=E.useState(null),O=E.useRef(null),I=E.useRef(null);E.useEffect(()=>{N(null)},[t,e]);const D=(e??[]).filter(Y=>!m.trim()||Y.name.toLowerCase().includes(m.trim().toLowerCase())),T=E.useRef(!1);E.useEffect(()=>{u&&!T.current&&(T.current=!0,r())},[u,r]),E.useEffect(()=>{y&&I.current?.focus()},[y]),E.useEffect(()=>{g(Y=>Math.min(Y,Math.max(0,D.length-1)))},[D.length]),E.useEffect(()=>{if(!u)return;const Y=Z=>{O.current&&!O.current.contains(Z.target)&&L()};return document.addEventListener("mousedown",Y),()=>document.removeEventListener("mousedown",Y)},[u]);const L=E.useCallback(()=>{d(!1),p(""),g(0),v(!1),S(""),k(null)},[]),A=E.useCallback(Y=>{if(Y===t){L();return}N(Y),o(Y),L()},[o,L,t]),M=E.useCallback(Y=>{a(Y),k(null)},[a]),$=w.trim(),W=MV($),B=DV($),U=(e??[]).some(Y=>Y.name===B||dC(Y).toLowerCase()===$.toLowerCase()),H=E.useCallback(()=>{W&&(i($,U),v(!1),S(""),L())},[W,$,U,i,L]),V=Y=>{if(Y.key==="Escape"){Y.preventDefault(),L();return}if(y){Y.key==="Enter"&&(Y.preventDefault(),H());return}if(Y.key==="ArrowDown")Y.preventDefault(),g(Z=>Math.min(Z+1,Math.max(0,D.length-1)));else if(Y.key==="ArrowUp")Y.preventDefault(),g(Z=>Math.max(0,Z-1));else if(Y.key==="Enter"){const Z=D[h];Z&&A(Z.name)}else if((Y.key==="Backspace"||Y.key==="Delete")&&(Y.metaKey||Y.ctrlKey)){const Z=D[h];Z&&(Y.preventDefault(),k(Z.name))}};return c.jsxs("div",{className:"sos-wrap",ref:O,children:[c.jsxs("button",{type:"button",className:"sos-pill","data-open":u?"true":"false",onClick:()=>d(Y=>!Y),"aria-haspopup":"listbox","aria-expanded":u,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[c.jsx(OV,{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(LV,{className:"sos-pill-caret"})]}),u&&c.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:V,tabIndex:-1,children:[c.jsxs("div",{className:"sos-search-row",children:[c.jsx(zV,{className:"sos-search-glyph"}),c.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:Y=>{p(Y.target.value),g(0)},autoFocus:!0,onKeyDown:V}),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…"}):D.length===0?c.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):D.map((Y,Z)=>{const q=t===Y.name,G=h===Z,J=dC(Y);return c.jsxs("div",{className:`sos-row${q?" sos-row--active":""}`,"data-highlighted":G?"true":"false",onMouseEnter:()=>g(Z),onClick:()=>A(Y.name),role:"option","aria-selected":q,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!==Y.name&&`${Y.name} · `,Y.roles_count," ",Y.roles_count===1?"role":"roles"," · ",Y.employees_count," ",Y.employees_count===1?"employee":"employees"," · ",AV(Y.saved_at)]})]}),C===Y.name?c.jsx("span",{className:"sos-row-loading",children:"loading…"}):q?c.jsx("span",{className:"sos-row-active-chip",children:"active"}):_===Y.name?c.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:P=>{P.stopPropagation(),M(Y.name)},children:"confirm"}):c.jsx("button",{type:"button",className:"sos-row-delete",onClick:P=>{P.stopPropagation(),k(Y.name)},title:"Delete",children:"delete"})]},Y.name)})}),c.jsxs("div",{className:"sos-save-as",children:[y?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:w,onChange:Y=>S(Y.target.value),onKeyDown:V}),c.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:H,disabled:!W,children:U?"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..."}),y&&w&&!W&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),y&&W&&U&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const BV=["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"],Wc={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:Wc[e]??Wc.generic:Wc.generic}const Ic=["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"],$V=[{label:"Files",prefix:"file_",tools:Ic.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Ic.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Ic.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Ic.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Ic.filter(e=>e.startsWith("browser_"))}],HV=["codex","cursor","claude_code","opencode"],FV=[{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 VV({role:e,allRoles:t,employees:n,readOnly:r,onUpdateRole:i,onDeleteRole:o,onClose:a}){const[u,d]=E.useState(e.name),[m,p]=E.useState(e.responsibility),[h,g]=E.useState(e.reports_to),[y,v]=E.useState(e.icon??null),[w,S]=E.useState(()=>new Set(e.can_spawn)),[_,k]=E.useState(()=>new Set(e.tools)),[C,N]=E.useState(e.runtime_policy?.execution_strategy??"auto"),[O,I]=E.useState(e.preferred_external_agent??null),[D,T]=E.useState((e.prompt_refs??[]).join(` +`)),[L,A]=E.useState(!1),M=E.useRef(e.role_id);E.useEffect(()=>{M.current!==e.role_id&&(M.current=e.role_id,d(e.name),p(e.responsibility),g(e.reports_to),v(e.icon??null),S(new Set(e.can_spawn)),k(new Set(e.tools)),N(e.runtime_policy?.execution_strategy??"auto"),I(e.preferred_external_agent??null),T((e.prompt_refs??[]).join(` +`)),A(!1))},[e]);const $=E.useRef({}),W=E.useRef(null),B=E.useRef(e.role_id);E.useEffect(()=>{B.current=e.role_id},[e.role_id]);const U=E.useCallback(()=>{W.current&&(clearTimeout(W.current),W.current=null);const se=$.current;$.current={},Object.keys(se).length!==0&&i(B.current,se)},[i]),H=E.useCallback(se=>{r||($.current={...$.current,...se},W.current&&clearTimeout(W.current),W.current=setTimeout(U,500))},[U,r]);E.useEffect(()=>()=>{W.current&&(clearTimeout(W.current),W.current=null);const se=$.current;Object.keys(se).length>0&&($.current={},i(B.current,se))},[i]);const V=se=>{d(se),H({name:se})},Y=se=>{p(se),H({responsibility:se})},Z=se=>{g(se),H({reports_to:se})},q=se=>{v(se),H({icon:se})},G=se=>{N(se),H({execution_strategy:se})},J=se=>{I(se),H({preferred_external_agent:se})},P=se=>{T(se);const je=se.split(` +`).map(we=>we.trim()).filter(Boolean);H({prompt_refs:je})},X=se=>{const je=new Set(w);je.has(se)?je.delete(se):je.add(se),S(je),H({can_spawn:Array.from(je)})},ee=se=>{const je=new Set(_);je.has(se)?je.delete(se):je.add(se),k(je),H({tools:Array.from(je)})},te=E.useMemo(()=>t.filter(se=>se.role_id!==e.role_id),[t,e.role_id]),re=E.useMemo(()=>n.filter(se=>(se.role_ids?.length?se.role_ids:[se.role_id]).includes(e.role_id)).length,[n,e.role_id]),oe=E.useMemo(()=>D.split(` +`).filter(se=>se.trim()).length,[D]),de=()=>{if(!L){A(!0);return}U(),o(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(y),alt:"",className:"ri-panel-icon"}),c.jsxs("div",{className:"ri-panel-title-wrap",children:[c.jsx("h3",{className:"ri-panel-title",children:u||"(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:a,title:"Close (Esc)",children:"✕"})]}),c.jsxs("div",{className:"ri-panel-body",children:[c.jsxs(Ha,{title:"Identity",defaultExpanded:!0,children:[c.jsx(gi,{label:"Name",children:c.jsx("input",{className:"ri-text-input",value:u,onChange:se=>V(se.target.value),disabled:r})}),c.jsx(gi,{label:"Responsibility",children:c.jsx("textarea",{className:"ri-textarea",rows:3,value:m,onChange:se=>Y(se.target.value),disabled:r})}),c.jsx(gi,{label:"Icon",children:c.jsx(UV,{value:y,onChange:q,readOnly:r})})]}),c.jsxs(Ha,{title:"Hierarchy",defaultExpanded:!0,children:[c.jsx(gi,{label:"Reports to",children:c.jsxs("select",{className:"ri-select",value:h,onChange:se=>Z(se.target.value),disabled:r,children:[c.jsx("option",{value:"owner",children:"You (Owner)"}),te.map(se=>c.jsx("option",{value:se.role_id,children:se.name},se.role_id))]})}),c.jsx(gi,{label:"Can delegate to",children:c.jsx(GV,{allIds:te.map(se=>se.role_id),labelFor:se=>te.find(je=>je.role_id===se)?.name??se,selected:w,onToggle:X,readOnly:r})}),c.jsx(gi,{label:"Employees assigned",children:c.jsx("span",{className:"ri-meta-value",children:re})})]}),c.jsx(Ha,{title:`Tools (${_.size})`,children:c.jsx(qV,{tools:_,onToggle:ee,readOnly:r})}),c.jsx(Ha,{title:`Prompts (${oe})`,children:c.jsx(gi,{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:D,onChange:se=>P(se.target.value),disabled:r})})}),c.jsxs(Ha,{title:"Runtime policy",children:[c.jsx(gi,{label:"Execution strategy",children:c.jsx("div",{className:"ri-radio-group",children:FV.map(se=>c.jsxs("label",{className:"ri-radio",title:se.hint,children:[c.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:se.value,checked:C===se.value,onChange:()=>G(se.value),disabled:r}),se.label]},se.value))})}),C==="external"&&c.jsx(gi,{label:"Preferred external agent",children:c.jsxs("select",{className:"ri-select",value:O??"",onChange:se=>J(se.target.value||null),disabled:r,children:[c.jsx("option",{value:"",children:"(any)"}),HV.map(se=>c.jsx("option",{value:se,children:se},se))]})})]}),c.jsxs(Ha,{title:"Advanced",children:[c.jsx(gi,{label:"Role type",children:c.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),c.jsx(gi,{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(gi,{label:"Artifact contract",children:c.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!r&&c.jsx("footer",{className:"ri-panel-footer",children:c.jsx("button",{className:`btn btn-sm ${L?"btn-danger":"btn-ghost"}`,onClick:de,onBlur:()=>A(!1),children:L?"Confirm delete?":"Delete role"})})]})}function Ha({title:e,defaultExpanded:t=!1,children:n}){const[r,i]=E.useState(t);return c.jsxs("section",{className:`ri-group${r?" is-expanded":""}`,children:[c.jsxs("button",{className:"ri-group-header",onClick:()=>i(o=>!o),children:[c.jsx("span",{className:"ri-group-caret",children:r?"▾":"▸"}),c.jsx("span",{className:"ri-group-title",children:e})]}),r&&c.jsx("div",{className:"ri-group-body",children:n})]})}function gi({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 UV({value:e,onChange:t,readOnly:n}){const[r,i]=E.useState(!1);return c.jsxs("div",{className:"ri-icon-picker",children:[c.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&i(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"})]}),r&&c.jsxs("div",{className:"ri-icon-picker-popover",children:[c.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),i(!1)},title:"Default icon",children:c.jsx("img",{src:Wc.generic,alt:""})}),BV.filter(o=>o!=="generic").map(o=>c.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),i(!1)},title:o,children:c.jsx("img",{src:Wc[o],alt:o})},o))]})]})}function GV({allIds:e,labelFor:t,selected:n,onToggle:r,readOnly:i}){const[o,a]=E.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),!i&&c.jsx("button",{className:"ri-chip-x",onClick:()=>r(d),title:"Remove",children:"×"})]},d)),!i&&u.length>0&&c.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&i&&c.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!i&&c.jsx("div",{className:"ri-multiselect-popover",children:u.map(d=>c.jsx("button",{className:"ri-multiselect-option",onClick:()=>{r(d),a(!1)},children:t(d)},d))})]})}function qV({tools:e,onToggle:t,readOnly:n}){return c.jsx("div",{className:"ri-toolcheck",children:$V.map(r=>c.jsxs("fieldset",{className:"ri-toolcheck-group",children:[c.jsx("legend",{className:"ri-toolcheck-legend",children:r.label}),c.jsx("div",{className:"ri-toolcheck-items",children:r.tools.map(i=>c.jsxs("label",{className:"ri-toolcheck-item",children:[c.jsx("input",{type:"checkbox",checked:e.has(i),onChange:()=>t(i),disabled:n}),c.jsx("span",{className:"ri-toolcheck-name",children:i.replace(r.prefix,"")||i})]},i))})]},r.prefix))})}function oo(e,t){return typeof e=="function"?e(t):e}function ni(e,t){return n=>{t.setState(r=>({...r,[e]:oo(n,r[e])}))}}function Dm(e){return e instanceof Function}function WV(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function YV(e,t){const n=[],r=i=>{i.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&r(a)})};return r(e),n}function gt(e,t,n){let r=[],i;return o=>{let a;n.key&&n.debug&&(a=Date.now());const u=e(o);if(!(u.length!==r.length||u.some((p,h)=>r[h]!==p)))return i;r=u;let m;if(n.key&&n.debug&&(m=Date.now()),i=t(...u),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const p=Math.round((Date.now()-a)*100)/100,h=Math.round((Date.now()-m)*100)/100,g=h/16,y=(v,w)=>{for(v=String(v);v.length{var i;return(i=e?.debugAll)!=null?i:e[t]},key:!1,onChange:r}}function XV(e,t,n,r){const i=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:gt(()=>[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 KV(e,t,n,r){var i,o;const u={...e._getDefaultColumnDef(),...t},d=u.accessorKey;let m=(i=(o=u.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?i:typeof u.header=="string"?u.header:void 0,p;if(u.accessorFn?p=u.accessorFn:d&&(d.includes(".")?p=g=>{let y=g;for(const w of d.split(".")){var v;y=(v=y)==null?void 0:v[w]}return y}:p=g=>g[u.accessorKey]),!m)throw new Error;let h={id:`${String(m)}`,accessorFn:p,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:gt(()=>[!0],()=>{var g;return[h,...(g=h.columns)==null?void 0:g.flatMap(y=>y.getFlatColumns())]},xt(e.options,"debugColumns")),getLeafColumns:gt(()=>[e._getOrderColumnsFn()],g=>{var y;if((y=h.columns)!=null&&y.length){let v=h.columns.flatMap(w=>w.getLeafColumns());return g(v)}return[h]},xt(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(h,e);return h}const _r="debugHeaders";function fC(e,t,n){var r;let o={id:(r=n.id)!=null?r: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 ZV={createTable:e=>{e.getHeaderGroups=gt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var o,a;const u=(o=r?.map(h=>n.find(g=>g.id===h)).filter(Boolean))!=null?o:[],d=(a=i?.map(h=>n.find(g=>g.id===h)).filter(Boolean))!=null?a:[],m=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(i!=null&&i.includes(h.id)));return Jd(t,[...u,...m,...d],e)},xt(e.options,_r)),e.getCenterHeaderGroups=gt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(i!=null&&i.includes(o.id))),Jd(t,n,e,"center")),xt(e.options,_r)),e.getLeftHeaderGroups=gt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?i:[];return Jd(t,o,e,"left")},xt(e.options,_r)),e.getRightHeaderGroups=gt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?i:[];return Jd(t,o,e,"right")},xt(e.options,_r)),e.getFooterGroups=gt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),xt(e.options,_r)),e.getLeftFooterGroups=gt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),xt(e.options,_r)),e.getCenterFooterGroups=gt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),xt(e.options,_r)),e.getRightFooterGroups=gt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),xt(e.options,_r)),e.getFlatHeaders=gt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,_r)),e.getLeftFlatHeaders=gt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,_r)),e.getCenterFlatHeaders=gt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,_r)),e.getRightFlatHeaders=gt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),xt(e.options,_r)),e.getCenterLeafHeaders=gt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),xt(e.options,_r)),e.getLeftLeafHeaders=gt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),xt(e.options,_r)),e.getRightLeafHeaders=gt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),xt(e.options,_r)),e.getLeafHeaders=gt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,o,a,u,d,m;return[...(i=(o=t[0])==null?void 0:o.headers)!=null?i:[],...(a=(u=n[0])==null?void 0:u.headers)!=null?a:[],...(d=(m=r[0])==null?void 0:m.headers)!=null?d:[]].map(p=>p.getLeafHeaders()).flat()},xt(e.options,_r))}};function Jd(e,t,n,r){var i,o;let a=0;const u=function(g,y){y===void 0&&(y=1),a=Math.max(a,y),g.filter(v=>v.getIsVisible()).forEach(v=>{var w;(w=v.columns)!=null&&w.length&&u(v.columns,y+1)},0)};u(e);let d=[];const m=(g,y)=>{const v={depth:y,id:[r,`${y}`].filter(Boolean).join("_"),headers:[]},w=[];g.forEach(S=>{const _=[...w].reverse()[0],k=S.column.depth===v.depth;let C,N=!1;if(k&&S.column.parent?C=S.column.parent:(C=S.column,N=!0),_&&_?.column===C)_.subHeaders.push(S);else{const O=fC(n,C,{id:[r,y,C.id,S?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${w.filter(I=>I.column===C).length}`:void 0,depth:y,index:w.length});O.subHeaders.push(S),w.push(O)}v.headers.push(S),S.headerGroup=v}),d.push(v),y>0&&m(w,y-1)},p=t.map((g,y)=>fC(n,g,{depth:a,index:y}));m(p,a-1),d.reverse();const h=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let w=0,S=0,_=[0];v.subHeaders&&v.subHeaders.length?(_=[],h(v.subHeaders).forEach(C=>{let{colSpan:N,rowSpan:O}=C;w+=N,_.push(O)})):w=1;const k=Math.min(..._);return S=S+k,v.colSpan=w,v.rowSpan=S,{colSpan:w,rowSpan:S}});return h((i=(o=d[0])==null?void 0:o.headers)!=null?i:[]),d}const QV=(e,t,n,r,i,o,a)=>{let u={id:t,index:r,original:n,depth:i,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,r),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,r),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:()=>YV(u.subRows,d=>d.subRows),getParentRow:()=>u.parentId?e.getRow(u.parentId,!0):void 0,getParentRows:()=>{let d=[],m=u;for(;;){const p=m.getParentRow();if(!p)break;d.push(p),m=p}return d.reverse()},getAllCells:gt(()=>[e.getAllLeafColumns()],d=>d.map(m=>XV(e,u,m,m.id)),xt(e.options,"debugRows")),_getAllCellsByColumnId:gt(()=>[u.getAllCells()],d=>d.reduce((m,p)=>(m[p.column.id]=p,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()}}},TI=(e,t,n)=>{var r,i;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(o))};TI.autoRemove=e=>Ri(e);const RI=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};RI.autoRemove=e=>Ri(e);const AI=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};AI.autoRemove=e=>Ri(e);const MI=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};MI.autoRemove=e=>Ri(e);const DI=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});DI.autoRemove=e=>Ri(e)||!(e!=null&&e.length);const OI=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});OI.autoRemove=e=>Ri(e)||!(e!=null&&e.length);const LI=(e,t,n)=>e.getValue(t)===n;LI.autoRemove=e=>Ri(e);const zI=(e,t,n)=>e.getValue(t)==n;zI.autoRemove=e=>Ri(e);const fv=(e,t,n)=>{let[r,i]=n;const o=e.getValue(t);return o>=r&&o<=i};fv.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(i)?1/0:i;if(o>a){const u=o;o=a,a=u}return[o,a]};fv.autoRemove=e=>Ri(e)||Ri(e[0])&&Ri(e[1]);const ys={includesString:TI,includesStringSensitive:RI,equalsString:AI,arrIncludes:MI,arrIncludesAll:DI,arrIncludesSome:OI,equals:LI,weakEquals:zI,inNumberRange:fv};function Ri(e){return e==null||e===""}const eU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:ni("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n?.getValue(e.id);return typeof r=="string"?ys.includesString:typeof r=="number"?ys.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?ys.equals:Array.isArray(r)?ys.arrIncludes:ys.weakEquals},e.getFilterFn=()=>{var n,r;return Dm(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:ys[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),o=r?.find(p=>p.id===e.id),a=oo(n,o?o.value:void 0);if(mC(i,a,e)){var u;return(u=r?.filter(p=>p.id!==e.id))!=null?u:[]}const d={id:e.id,value:a};if(o){var m;return(m=r?.map(p=>p.id===e.id?d:p))!=null?m:[]}return r!=null&&r.length?[...r,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=i=>{var o;return(o=oo(t,i))==null?void 0:o.filter(a=>{const u=n.find(d=>d.id===a.id);if(u){const d=u.getFilterFn();if(mC(d,a.value,u))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.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 mC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const tU=(e,t,n)=>n.reduce((r,i)=>{const o=i.getValue(e);return r+(typeof o=="number"?o:0)},0),nU=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},rU=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r=o)&&(r=o)}),r},iU=(e,t,n)=>{let r,i;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(r===void 0?a>=a&&(r=i=a):(r>a&&(r=a),i{let n=0,r=0;if(t.forEach(i=>{let o=i.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},oU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!WV(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),i=n.sort((o,a)=>o-a);return n.length%2!==0?i[r]:(i[r-1]+i[r])/2},aU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),lU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,cU=(e,t)=>t.length,ex={sum:tU,min:nU,max:rU,extent:iU,mean:sU,median:oU,unique:aU,uniqueCount:lU,count:cU},uU={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:ni("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!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],r=n?.getValue(e.id);if(typeof r=="number")return ex.sum;if(Object.prototype.toString.call(r)==="[object Date]")return ex.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Dm(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:ex[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.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 r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}}};function dU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...r]}const fU={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:ni("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=gt(n=>[Yc(t,n)],n=>n.findIndex(r=>r.id===e.id),xt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Yc(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const i=Yc(t,n);return((r=i[i.length-1])==null?void 0:r.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=gt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let o=[];if(!(t!=null&&t.length))o=i;else{const a=[...t],u=[...i];for(;u.length&&a.length;){const d=a.shift(),m=u.findIndex(p=>p.id===d);m>-1&&o.push(u.splice(m,1)[0])}o=[...o,...u]}return dU(o,n,r)},xt(e.options,"debugTable"))}},tx=()=>({left:[],right:[]}),mU={getInitialState:e=>({columnPinning:tx(),...e}),getDefaultOptions:e=>({onColumnPinningChange:ni("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var o,a;if(n==="right"){var u,d;return{left:((u=i?.left)!=null?u:[]).filter(h=>!(r!=null&&r.includes(h))),right:[...((d=i?.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var m,p;return{left:[...((m=i?.left)!=null?m:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((p=i?.right)!=null?p:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((o=i?.left)!=null?o:[]).filter(h=>!(r!=null&&r.includes(h))),right:((a=i?.right)!=null?a:[]).filter(h=>!(r!=null&&r.includes(h)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var i,o,a;return((i=r.columnDef.enablePinning)!=null?i:!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:r,right:i}=t.getState().columnPinning,o=n.some(u=>r?.includes(u)),a=n.some(u=>i?.includes(u));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();return i?(n=(r=t.getState().columnPinning)==null||(r=r[i])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=gt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const o=[...r??[],...i??[]];return n.filter(a=>!o.includes(a.column.id))},xt(t.options,"debugRows")),e.getLeftVisibleCells=gt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),xt(t.options,"debugRows")),e.getRightVisibleCells=gt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).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,r;return e.setColumnPinning(t?tx():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:tx())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var i,o;return!!((i=r.left)!=null&&i.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=gt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),xt(e.options,"debugColumns")),e.getRightLeafColumns=gt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),xt(e.options,"debugColumns")),e.getCenterLeafColumns=gt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n??[],...r??[]];return t.filter(o=>!i.includes(o.id))},xt(e.options,"debugColumns"))}};function hU(e){return e||(typeof document<"u"?document:null)}const ef={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},nx=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),pU={getDefaultColumnDef:()=>ef,getInitialState:e=>({columnSizing:{},columnSizingInfo:nx(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:ni("columnSizing",e),onColumnSizingInfoChange:ni("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,i;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:ef.minSize,(r=o??e.columnDef.size)!=null?r:ef.size),(i=e.columnDef.maxSize)!=null?i:ef.maxSize)},e.getStart=gt(n=>[n,Yc(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((i,o)=>i+o.getSize(),0),xt(t.options,"debugColumns")),e.getAfter=gt(n=>[n,Yc(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((i,o)=>i+o.getSize(),0),xt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var o;n+=(o=i.column.getSize())!=null?o:0}};return r(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 r=t.getColumn(e.column.id),i=r?.getCanResize();return o=>{if(!r||!i||(o.persist==null||o.persist(),rx(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),u=e?e.getLeafHeaders().map(_=>[_.column.id,_.column.getSize()]):[[r.id,r.getSize()]],d=rx(o)?Math.round(o.touches[0].clientX):o.clientX,m={},p=(_,k)=>{typeof k=="number"&&(t.setColumnSizingInfo(C=>{var N,O;const I=t.options.columnResizeDirection==="rtl"?-1:1,D=(k-((N=C?.startOffset)!=null?N:0))*I,T=Math.max(D/((O=C?.startSize)!=null?O:0),-.999999);return C.columnSizingStart.forEach(L=>{let[A,M]=L;m[A]=Math.round(Math.max(M+M*T,0)*100)/100}),{...C,deltaOffset:D,deltaPercentage:T}}),(t.options.columnResizeMode==="onChange"||_==="end")&&t.setColumnSizing(C=>({...C,...m})))},h=_=>p("move",_),g=_=>{p("end",_),t.setColumnSizingInfo(k=>({...k,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},y=hU(n),v={moveHandler:_=>h(_.clientX),upHandler:_=>{y?.removeEventListener("mousemove",v.moveHandler),y?.removeEventListener("mouseup",v.upHandler),g(_.clientX)}},w={moveHandler:_=>(_.cancelable&&(_.preventDefault(),_.stopPropagation()),h(_.touches[0].clientX),!1),upHandler:_=>{var k;y?.removeEventListener("touchmove",w.moveHandler),y?.removeEventListener("touchend",w.upHandler),_.cancelable&&(_.preventDefault(),_.stopPropagation()),g((k=_.touches[0])==null?void 0:k.clientX)}},S=gU()?{passive:!1}:!1;rx(o)?(y?.addEventListener("touchmove",w.moveHandler,S),y?.addEventListener("touchend",w.upHandler,S)):(y?.addEventListener("mousemove",v.moveHandler,S),y?.addEventListener("mouseup",v.upHandler,S)),t.setColumnSizingInfo(_=>({..._,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:u,isResizingColumn:r.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?nx():(n=e.initialState.columnSizingInfo)!=null?n:nx())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}}};let tf=null;function gU(){if(typeof tf=="boolean")return tf;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 tf=e,tf}function rx(e){return e.type==="touchstart"}const xU={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:ni("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const i=e.columns;return(n=i.length?i.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=gt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),xt(t.options,"debugRows")),e.getVisibleCells=gt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],xt(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>gt(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.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 r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,o)=>({...i,[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 r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Yc(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const yU={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()}}},vU={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:ni("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,i,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>ys.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Dm(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:ys[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},bU={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:ni("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var i,o;e.setExpanded(r?{}:(i=(o=e.initialState)==null?void 0:o.expanded)!=null?i:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>!i.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");r=Math.max(r,a.length)}),r},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(r=>{var i;const o=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{a[u]=!0}):a=r,n=(i=n)!=null?i:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:u,...d}=a;return d}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r?.[e.id])},e.getCanExpand=()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Xy=0,Ky=10,ix=()=>({pageIndex:Xy,pageSize:Ky}),_U={getInitialState:e=>({...e,pagination:{...ix(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:ni("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const i=o=>oo(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},e.resetPagination=r=>{var i;e.setPagination(r?ix():(i=e.initialState.pagination)!=null?i:ix())},e.setPageIndex=r=>{e.setPagination(i=>{let o=oo(r,i.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)),{...i,pageIndex:o}})},e.resetPageIndex=r=>{var i,o;e.setPageIndex(r?Xy:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?i:Xy)},e.resetPageSize=r=>{var i,o;e.setPageSize(r?Ky:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?i:Ky)},e.setPageSize=r=>{e.setPagination(i=>{const o=Math.max(1,oo(r,i.pageSize)),a=i.pageSize*i.pageIndex,u=Math.floor(a/o);return{...i,pageIndex:u,pageSize:o}})},e.setPageCount=r=>e.setPagination(i=>{var o;let a=oo(r,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...i,pageCount:a}}),e.getPageOptions=gt(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((o,a)=>a)),i},xt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+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 r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},sx=()=>({top:[],bottom:[]}),kU={getInitialState:e=>({rowPinning:sx(),...e}),getDefaultOptions:e=>({onRowPinningChange:ni("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{const o=r?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=i?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],u=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,p;if(n==="bottom"){var h,g;return{top:((h=d?.top)!=null?h:[]).filter(w=>!(u!=null&&u.has(w))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(w=>!(u!=null&&u.has(w))),...Array.from(u)]}}if(n==="top"){var y,v;return{top:[...((y=d?.top)!=null?y:[]).filter(w=>!(u!=null&&u.has(w))),...Array.from(u)],bottom:((v=d?.bottom)!=null?v:[]).filter(w=>!(u!=null&&u.has(w)))}}return{top:((m=d?.top)!=null?m:[]).filter(w=>!(u!=null&&u.has(w))),bottom:((p=d?.bottom)!=null?p:[]).filter(w=>!(u!=null&&u.has(w)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:i}=t.options;return typeof r=="function"?r(e):(n=r??i)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,o=n.some(u=>r?.includes(u)),a=n.some(u=>i?.includes(u));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();if(!i)return-1;const o=(n=i==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:u}=a;return u});return(r=o?.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?sx():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:sx())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var i,o;return!!((i=r.top)!=null&&i.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var i;return((i=e.options.keepPinnedRows)==null||i?(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:r}))},e.getTopRows=gt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),xt(e.options,"debugRows")),e.getBottomRows=gt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),xt(e.options,"debugRows")),e.getCenterRows=gt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const i=new Set([...n??[],...r??[]]);return t.filter(o=>!i.has(o.id))},xt(e.options,"debugRows"))}},SU={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:ni("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 r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):i.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(o=>{Zy(i,o.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=gt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?ox(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getFilteredSelectedRowModel=gt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?ox(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getGroupedSelectedRowModel=gt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?ox(e,n):{rows:[],flatRows:[],rowsById:{}},xt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(i=>i.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},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,r)=>{const i=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!i,e.getCanSelect()&&i===n)return o;const u={...o};return Zy(u,e.id,n,(a=r?.selectChildren)!=null?a:!0,t),u})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return mv(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Qy(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Qy(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 r=>{var i;n&&e.toggleSelected((i=r.target)==null?void 0:i.checked)}}}},Zy=(e,t,n,r,i)=>{var o;const a=i.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(u=>delete e[u]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(u=>Zy(e,u.id,n,r,i))};function ox(e,t){const n=e.getState().rowSelection,r=[],i={},o=function(a,u){return a.map(d=>{var m;const p=mv(d,n);if(p&&(r.push(d),i[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),p)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:i}}function mv(e,t){var n;return(n=t[e.id])!=null?n:!1}function Qy(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!i)&&(a.getCanSelect()&&(mv(a,t)?o=!0:i=!1),a.subRows&&a.subRows.length)){const u=Qy(a,t);u==="all"?o=!0:(u==="some"&&(o=!0),i=!1)}}),i?"all":o?"some":!1}const Jy=/([0-9]+)/gm,wU=(e,t,n)=>PI(mo(e.getValue(n)).toLowerCase(),mo(t.getValue(n)).toLowerCase()),CU=(e,t,n)=>PI(mo(e.getValue(n)),mo(t.getValue(n))),jU=(e,t,n)=>hv(mo(e.getValue(n)).toLowerCase(),mo(t.getValue(n)).toLowerCase()),EU=(e,t,n)=>hv(mo(e.getValue(n)),mo(t.getValue(n))),NU=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:rhv(e.getValue(n),t.getValue(n));function hv(e,t){return e===t?0:e>t?1:-1}function mo(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function PI(e,t){const n=e.split(Jy).filter(Boolean),r=t.split(Jy).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),o=r.shift(),a=parseInt(i,10),u=parseInt(o,10),d=[a,u].sort();if(isNaN(d[0])){if(i>o)return 1;if(o>i)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-r.length}const Tc={alphanumeric:wU,alphanumericCaseSensitive:CU,text:jU,textCaseSensitive:EU,datetime:NU,basic:IU},TU={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:ni("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const o=i?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Tc.datetime;if(typeof o=="string"&&(r=!0,o.split(Jy).length>1))return Tc.alphanumeric}return r?Tc.text:Tc.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Dm(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:Tc[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const i=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const u=a?.find(y=>y.id===e.id),d=a?.findIndex(y=>y.id===e.id);let m=[],p,h=o?n:i==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?u?p="toggle":p="add":a!=null&&a.length&&d!==a.length-1?p="replace":u?p="toggle":p="replace",p==="toggle"&&(o||i||(p="remove")),p==="add"){var g;m=[...a,{id:e.id,desc:h}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else p==="toggle"?m=a.map(y=>y.id===e.id?{...y,desc:h}:y):p==="remove"?m=a.filter(y=>y.id!==e.id):m=[{id:e.id,desc:h}];return m})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,i;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(i=t.options.enableMultiRemove)!=null)||i)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.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())}},RU=[ZV,xU,fU,mU,JV,eU,yU,vU,TU,uU,bU,_U,kU,SU,pU];function AU(e){var t,n;const r=[...RU,...(t=e._features)!=null?t:[]];let i={_features:r};const o=i._features.reduce((g,y)=>Object.assign(g,y.getDefaultOptions==null?void 0:y.getDefaultOptions(i)),{}),a=g=>i.options.mergeOptions?i.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};i._features.forEach(g=>{var y;d=(y=g.getInitialState==null?void 0:g.getInitialState(d))!=null?y:d});const m=[];let p=!1;const h={_features:r,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),p||(p=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();p=!1}).catch(y=>setTimeout(()=>{throw y})))},reset:()=>{i.setState(i.initialState)},setOptions:g=>{const y=oo(g,i.options);i.options=a(y)},getState:()=>i.options.state,setState:g=>{i.options.onStateChange==null||i.options.onStateChange(g)},_getRowId:(g,y,v)=>{var w;return(w=i.options.getRowId==null?void 0:i.options.getRowId(g,y,v))!=null?w:`${v?[v.id,y].join("."):y}`},getCoreRowModel:()=>(i._getCoreRowModel||(i._getCoreRowModel=i.options.getCoreRowModel(i)),i._getCoreRowModel()),getRowModel:()=>i.getPaginationRowModel(),getRow:(g,y)=>{let v=(y?i.getPrePaginationRowModel():i.getRowModel()).rowsById[g];if(!v&&(v=i.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:gt(()=>[i.options.defaultColumn],g=>{var y;return g=(y=g)!=null?y:{},{header:v=>{const w=v.header.column.columnDef;return w.accessorKey?w.accessorKey:w.accessorFn?w.id:null},cell:v=>{var w,S;return(w=(S=v.renderValue())==null||S.toString==null?void 0:S.toString())!=null?w:null},...i._features.reduce((v,w)=>Object.assign(v,w.getDefaultColumnDef==null?void 0:w.getDefaultColumnDef()),{}),...g}},xt(e,"debugColumns")),_getColumnDefs:()=>i.options.columns,getAllColumns:gt(()=>[i._getColumnDefs()],g=>{const y=function(v,w,S){return S===void 0&&(S=0),v.map(_=>{const k=KV(i,_,S,w),C=_;return k.columns=C.columns?y(C.columns,k,S+1):[],k})};return y(g)},xt(e,"debugColumns")),getAllFlatColumns:gt(()=>[i.getAllColumns()],g=>g.flatMap(y=>y.getFlatColumns()),xt(e,"debugColumns")),_getAllFlatColumnsById:gt(()=>[i.getAllFlatColumns()],g=>g.reduce((y,v)=>(y[v.id]=v,y),{}),xt(e,"debugColumns")),getAllLeafColumns:gt(()=>[i.getAllColumns(),i._getOrderColumnsFn()],(g,y)=>{let v=g.flatMap(w=>w.getLeafColumns());return y(v)},xt(e,"debugColumns")),getColumn:g=>i._getAllFlatColumnsById()[g]};Object.assign(i,h);for(let g=0;ggt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,o,a){o===void 0&&(o=0);const u=[];for(let m=0;me._autoResetPageIndex()))}function DU(){return e=>gt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],o=r.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(p=>({...p}));return m.sort((p,h)=>{for(let y=0;y{var h;i.push(p),(h=p.subRows)!=null&&h.length&&(p.subRows=u(p.subRows))}),m};return{rows:u(n.rows),flatRows:i,rowsById:n.rowsById}},xt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function hC(e,t){return e?OU(e)?E.createElement(e,t):e:null}function OU(e){return LU(e)||typeof e=="function"||zU(e)}function LU(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function zU(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function PU(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=E.useState(()=>({current:AU(t)})),[r,i]=E.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:a=>{i(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const pC=["codex","cursor","claude_code","opencode"];function BU({roles:e,employees:t,selectedIds:n,onSelectRow:r,onUpdateRole:i,onDeleteRole:o,readOnly:a}){const[u,d]=E.useState([]),[m,p]=E.useState({}),[h,g]=E.useState(null),[y,v]=E.useState(""),w=E.useMemo(()=>{const T=new Map;for(const L of t){const A=L.role_ids?.length?L.role_ids:[L.role_id];for(const M of A)M&&T.set(M,(T.get(M)??0)+1)}return e.map(L=>({role_id:L.role_id,name:L.name,icon:L.icon??null,reports_to:L.reports_to,toolCount:L.tools?.length??0,agent:L.preferred_external_agent??null,employeeCount:T.get(L.role_id)??0}))},[e,t]),S=E.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(T=>({id:T.role_id,name:T.name}))],[e]),_=T=>{const L=y.trim();L&&L!==e.find(A=>A.role_id===T)?.name&&i(T,{name:L}),g(null),v("")},k=E.useMemo(()=>[{id:"select",header:({table:T})=>c.jsx("input",{type:"checkbox",checked:T.getIsAllRowsSelected(),ref:L=>{L&&(L.indeterminate=T.getIsSomeRowsSelected()&&!T.getIsAllRowsSelected())},onChange:T.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:T})=>c.jsx("input",{type:"checkbox",checked:T.getIsSelected(),onChange:T.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${T.original.role_id}`,onClick:L=>L.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:T})=>c.jsx("img",{src:wu(T.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:T})=>{const L=T.original;return h?.rowId===L.role_id&&h.col==="name"?c.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:y,onChange:M=>v(M.target.value),onBlur:()=>_(L.role_id),onKeyDown:M=>{M.key==="Enter"?_(L.role_id):M.key==="Escape"&&(g(null),v(""))},onClick:M=>M.stopPropagation()}):c.jsx("span",{className:"rt-cell-name",onDoubleClick:M=>{a||(M.stopPropagation(),v(L.name),g({rowId:L.role_id,col:"name"}))},title:"Double-click to edit",children:L.name})}},{id:"role_id",header:"ID",accessorKey:"role_id",cell:({row:T})=>c.jsx("code",{className:"rt-cell-id",children:T.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:T})=>{const L=T.original;return c.jsx("select",{className:"rt-cell-select",value:L.reports_to,onChange:A=>i(L.role_id,{reports_to:A.target.value}),disabled:a,onClick:A=>A.stopPropagation(),children:S.filter(A=>A.id!==L.role_id).map(A=>c.jsx("option",{value:A.id,children:A.name},A.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:T})=>c.jsx("span",{className:"rt-cell-count",children:T.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:T})=>{const L=T.original;return c.jsxs("select",{className:"rt-cell-select",value:L.agent??"",onChange:A=>i(L.role_id,{preferred_external_agent:A.target.value||null}),disabled:a,onClick:A=>A.stopPropagation(),children:[c.jsx("option",{value:"",children:"(auto)"}),pC.map(A=>c.jsx("option",{value:A,children:A},A))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:T})=>c.jsx("span",{className:"rt-cell-count",children:T.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:T})=>c.jsx("button",{className:"rt-cell-action",onClick:L=>{L.stopPropagation(),!a&&confirm(`Delete role "${T.original.name}"?`)&&o(T.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[h,y,a,S,i,o]),C=PU({data:w,columns:k,state:{sorting:u,rowSelection:m},onSortingChange:d,onRowSelectionChange:p,enableRowSelection:!0,getRowId:T=>T.role_id,getCoreRowModel:MU(),getSortedRowModel:DU()}),N=Object.values(m).filter(Boolean).length,O=Object.keys(m).filter(T=>m[T]),I=T=>{a||(O.forEach(L=>i(L,{preferred_external_agent:T})),p({}))},D=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(O.forEach(T=>o(T)),p({}))};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:T=>{const L=T.target.value;L&&I(L==="__auto__"?null:L)},children:[c.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),c.jsx("option",{value:"__auto__",children:"(auto)"}),pC.map(T=>c.jsx("option",{value:T,children:T},T))]}),c.jsx("button",{className:"btn btn-danger btn-sm",onClick:D,children:"Delete selected"}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>p({}),children:"Clear"})]}),c.jsx("div",{className:"rt-table-wrap",children:c.jsxs("table",{className:"rt-table",children:[c.jsx("thead",{children:C.getHeaderGroups().map(T=>c.jsx("tr",{children:T.headers.map(L=>c.jsxs("th",{style:{width:L.getSize()},className:L.column.getCanSort()?"rt-th-sortable":"",onClick:L.column.getToggleSortingHandler(),children:[hC(L.column.columnDef.header,L.getContext()),L.column.getIsSorted()==="asc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▲"}),L.column.getIsSorted()==="desc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},L.id))},T.id))}),c.jsxs("tbody",{children:[C.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.'})}),C.getRowModel().rows.map(T=>{const L=n.includes(T.original.role_id);return c.jsx("tr",{className:`rt-row${T.getIsSelected()?" rt-row-checked":""}${L?" rt-row-active":""}`,onClick:()=>r(T.original.role_id),children:T.getVisibleCells().map(A=>c.jsx("td",{style:{width:A.column.getSize()},children:hC(A.column.columnDef.cell,A.getContext())},A.id))},T.id)})]})]})})]})}function Zn(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function Om(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}_f.prototype=Om.prototype={constructor:_f,on:function(e,t){var n=this._,r=HU(e+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o0)for(var n=new Array(i),r=0,i,o;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),xC.hasOwnProperty(t)?{space:xC[t],local:e}:e}function VU(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===e0&&t.documentElement.namespaceURI===e0?t.createElement(e):t.createElementNS(n,e)}}function UU(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function BI(e){var t=Lm(e);return(t.local?UU:VU)(t)}function GU(){}function pv(e){return e==null?GU:function(){return this.querySelector(e)}}function qU(e){typeof e!="function"&&(e=pv(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=C&&(C=k+1);!(O=S[C])&&++C=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function xG(e){e||(e=yG);function t(h,g){return h&&g?e(h.__data__,g.__data__):!h-!g}for(var n=this._groups,r=n.length,i=new Array(r),o=0;ot?1:e>=t?0:NaN}function vG(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function bG(){return Array.from(this)}function _G(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?AG:typeof t=="function"?DG:MG)(e,t,n??"")):fl(this.node(),e)}function fl(e,t){return e.style.getPropertyValue(t)||UI(e).getComputedStyle(e,null).getPropertyValue(t)}function LG(e){return function(){delete this[e]}}function zG(e,t){return function(){this[e]=t}}function PG(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function BG(e,t){return arguments.length>1?this.each((t==null?LG:typeof t=="function"?PG:zG)(e,t)):this.node()[e]}function GI(e){return e.trim().split(/^|\s+/)}function gv(e){return e.classList||new qI(e)}function qI(e){this._node=e,this._names=GI(e.getAttribute("class")||"")}qI.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 WI(e,t){for(var n=gv(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,o;n()=>e;function t0(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:d,dy:m,dispatch:p}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value: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:p}})}t0.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Sq(e){return!e.ctrlKey&&!e.button}function wq(){return this.parentNode}function Cq(e,t){return t??{x:e.x,y:e.y}}function jq(){return navigator.maxTouchPoints||"ontouchstart"in this}function JI(){var e=Sq,t=wq,n=Cq,r=jq,i={},o=Om("start","drag","end"),a=0,u,d,m,p,h=0;function g(N){N.on("mousedown.drag",y).filter(r).on("touchstart.drag",S).on("touchmove.drag",_,kq).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(N,O){if(!(p||!e.call(this,N,O))){var I=C(this,t.call(this,N,O),N,O,"mouse");I&&(Kr(N.view).on("mousemove.drag",v,uu).on("mouseup.drag",w,uu),ZI(N.view),ax(N),m=!1,u=N.clientX,d=N.clientY,I("start",N))}}function v(N){if(nl(N),!m){var O=N.clientX-u,I=N.clientY-d;m=O*O+I*I>h}i.mouse("drag",N)}function w(N){Kr(N.view).on("mousemove.drag mouseup.drag",null),QI(N.view,m),nl(N),i.mouse("end",N)}function S(N,O){if(e.call(this,N,O)){var I=N.changedTouches,D=t.call(this,N,O),T=I.length,L,A;for(L=0;L>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?rf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?rf(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=Nq.exec(e))?new Br(t[1],t[2],t[3],1):(t=Iq.exec(e))?new Br(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Tq.exec(e))?rf(t[1],t[2],t[3],t[4]):(t=Rq.exec(e))?rf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Aq.exec(e))?wC(t[1],t[2]/100,t[3]/100,1):(t=Mq.exec(e))?wC(t[1],t[2]/100,t[3]/100,t[4]):yC.hasOwnProperty(e)?_C(yC[e]):e==="transparent"?new Br(NaN,NaN,NaN,0):null}function _C(e){return new Br(e>>16&255,e>>8&255,e&255,1)}function rf(e,t,n,r){return r<=0&&(e=t=n=NaN),new Br(e,t,n,r)}function Lq(e){return e instanceof ju||(e=Wo(e)),e?(e=e.rgb(),new Br(e.r,e.g,e.b,e.opacity)):new Br}function n0(e,t,n,r){return arguments.length===1?Lq(e):new Br(e,t,n,r??1)}function Br(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}xv(Br,n0,eT(ju,{brighter(e){return e=e==null?em:Math.pow(em,e),new Br(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?du:Math.pow(du,e),new Br(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Br($o(this.r),$o(this.g),$o(this.b),tm(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:kC,formatHex:kC,formatHex8:zq,formatRgb:SC,toString:SC}));function kC(){return`#${Bo(this.r)}${Bo(this.g)}${Bo(this.b)}`}function zq(){return`#${Bo(this.r)}${Bo(this.g)}${Bo(this.b)}${Bo((isNaN(this.opacity)?1:this.opacity)*255)}`}function SC(){const e=tm(this.opacity);return`${e===1?"rgb(":"rgba("}${$o(this.r)}, ${$o(this.g)}, ${$o(this.b)}${e===1?")":`, ${e})`}`}function tm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function $o(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bo(e){return e=$o(e),(e<16?"0":"")+e.toString(16)}function wC(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ji(e,t,n,r)}function tT(e){if(e instanceof ji)return new ji(e.h,e.s,e.l,e.opacity);if(e instanceof ju||(e=Wo(e)),!e)return new ji;if(e instanceof ji)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,u=o-i,d=(o+i)/2;return u?(t===o?a=(n-r)/u+(n0&&d<1?0:a,new ji(a,u,d,e.opacity)}function Pq(e,t,n,r){return arguments.length===1?tT(e):new ji(e,t,n,r??1)}function ji(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}xv(ji,Pq,eT(ju,{brighter(e){return e=e==null?em:Math.pow(em,e),new ji(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?du:Math.pow(du,e),new ji(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Br(lx(e>=240?e-240:e+120,i,r),lx(e,i,r),lx(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ji(CC(this.h),sf(this.s),sf(this.l),tm(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=tm(this.opacity);return`${e===1?"hsl(":"hsla("}${CC(this.h)}, ${sf(this.s)*100}%, ${sf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function CC(e){return e=(e||0)%360,e<0?e+360:e}function sf(e){return Math.max(0,Math.min(1,e||0))}function lx(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 yv=e=>()=>e;function Bq(e,t){return function(n){return e+n*t}}function $q(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Hq(e){return(e=+e)==1?nT:function(t,n){return n-t?$q(t,n,e):yv(isNaN(t)?n:t)}}function nT(e,t){var n=t-e;return n?Bq(e,n):yv(isNaN(e)?t:e)}const nm=(function e(t){var n=Hq(t);function r(i,o){var a=n((i=n0(i)).r,(o=n0(o)).r),u=n(i.g,o.g),d=n(i.b,o.b),m=nT(i.opacity,o.opacity);return function(p){return i.r=a(p),i.g=u(p),i.b=d(p),i.opacity=m(p),i+""}}return r.gamma=e,r})(1);function Fq(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;in&&(o=t.slice(n,o),u[a]?u[a]+=o:u[++a]=o),(r=r[0])===(i=i[0])?u[a]?u[a]+=i:u[++a]=i:(u[++a]=null,d.push({i:a,x:Vi(r,i)})),n=cx.lastIndex;return n180?p+=360:p-m>180&&(m+=360),g.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Vi(m,p)})):p&&h.push(i(h)+"rotate("+p+r)}function u(m,p,h,g){m!==p?g.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Vi(m,p)}):p&&h.push(i(h)+"skewX("+p+r)}function d(m,p,h,g,y,v){if(m!==h||p!==g){var w=y.push(i(y)+"scale(",null,",",null,")");v.push({i:w-4,x:Vi(m,h)},{i:w-2,x:Vi(p,g)})}else(h!==1||g!==1)&&y.push(i(y)+"scale("+h+","+g+")")}return function(m,p){var h=[],g=[];return m=e(m),p=e(p),o(m.translateX,m.translateY,p.translateX,p.translateY,h,g),a(m.rotate,p.rotate,h,g),u(m.skewX,p.skewX,h,g),d(m.scaleX,m.scaleY,p.scaleX,p.scaleY,h,g),m=p=null,function(y){for(var v=-1,w=g.length,S;++v=0&&e._call.call(void 0,t),e=e._next;--ml}function NC(){Yo=(im=mu.now())+zm,ml=Oc=0;try{rW()}finally{ml=0,sW(),Yo=0}}function iW(){var e=mu.now(),t=e-im;t>oT&&(zm-=t,im=e)}function sW(){for(var e,t=rm,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:rm=n);Lc=e,s0(r)}function s0(e){if(!ml){Oc&&(Oc=clearTimeout(Oc));var t=e-Yo;t>24?(e<1/0&&(Oc=setTimeout(NC,e-mu.now()-zm)),Rc&&(Rc=clearInterval(Rc))):(Rc||(im=mu.now(),Rc=setInterval(iW,oT)),ml=1,aT(NC))}}function IC(e,t,n){var r=new sm;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var oW=Om("start","end","cancel","interrupt"),aW=[],cT=0,TC=1,o0=2,Sf=3,RC=4,a0=5,wf=6;function Pm(e,t,n,r,i,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;lW(e,n,{name:t,index:r,group:i,on:oW,tween:aW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:cT})}function bv(e,t){var n=Mi(e,t);if(n.state>cT)throw new Error("too late; already scheduled");return n}function Qi(e,t){var n=Mi(e,t);if(n.state>Sf)throw new Error("too late; already running");return n}function Mi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function lW(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=lT(o,0,n.time);function o(m){n.state=TC,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var p,h,g,y;if(n.state!==TC)return d();for(p in r)if(y=r[p],y.name===n.name){if(y.state===Sf)return IC(a);y.state===RC?(y.state=wf,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete r[p]):+po0&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function PW(e,t,n){var r,i,o=zW(t)?bv:Qi;return function(){var a=o(this,e),u=a.on;u!==r&&(i=(r=u).copy()).on(t,n),a.on=i}}function BW(e,t){var n=this._id;return arguments.length<2?Mi(this.node(),n).on.on(e):this.each(PW(n,e,t))}function $W(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function HW(){return this.on("end.remove",$W(this._id))}function FW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=pv(e));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>e;function mY(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ks(e,t,n){this.k=e,this.x=t,this.y=n}ks.prototype={constructor:ks,scale:function(e){return e===1?this:new ks(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ks(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 Bm=new ks(1,0,0);mT.prototype=ks.prototype;function mT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Bm;return e.__zoom}function ux(e){e.stopImmediatePropagation()}function Ac(e){e.preventDefault(),e.stopImmediatePropagation()}function hY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function pY(){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 AC(){return this.__zoom||Bm}function gY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function xY(){return navigator.maxTouchPoints||"ontouchstart"in this}function yY(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=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(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function hT(){var e=hY,t=pY,n=yY,r=gY,i=xY,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],u=250,d=kf,m=Om("start","zoom","end"),p,h,g,y=500,v=150,w=0,S=10;function _(B){B.property("__zoom",AC).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",M).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",W).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}_.transform=function(B,U,H,V){var Y=B.selection?B.selection():B;Y.property("__zoom",AC),B!==Y?O(B,U,H,V):Y.interrupt().each(function(){I(this,arguments).event(V).start().zoom(null,typeof U=="function"?U.apply(this,arguments):U).end()})},_.scaleBy=function(B,U,H,V){_.scaleTo(B,function(){var Y=this.__zoom.k,Z=typeof U=="function"?U.apply(this,arguments):U;return Y*Z},H,V)},_.scaleTo=function(B,U,H,V){_.transform(B,function(){var Y=t.apply(this,arguments),Z=this.__zoom,q=H==null?N(Y):typeof H=="function"?H.apply(this,arguments):H,G=Z.invert(q),J=typeof U=="function"?U.apply(this,arguments):U;return n(C(k(Z,J),q,G),Y,a)},H,V)},_.translateBy=function(B,U,H,V){_.transform(B,function(){return n(this.__zoom.translate(typeof U=="function"?U.apply(this,arguments):U,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),a)},null,V)},_.translateTo=function(B,U,H,V,Y){_.transform(B,function(){var Z=t.apply(this,arguments),q=this.__zoom,G=V==null?N(Z):typeof V=="function"?V.apply(this,arguments):V;return n(Bm.translate(G[0],G[1]).scale(q.k).translate(typeof U=="function"?-U.apply(this,arguments):-U,typeof H=="function"?-H.apply(this,arguments):-H),Z,a)},V,Y)};function k(B,U){return U=Math.max(o[0],Math.min(o[1],U)),U===B.k?B:new ks(U,B.x,B.y)}function C(B,U,H){var V=U[0]-H[0]*B.k,Y=U[1]-H[1]*B.k;return V===B.x&&Y===B.y?B:new ks(B.k,V,Y)}function N(B){return[(+B[0][0]+ +B[1][0])/2,(+B[0][1]+ +B[1][1])/2]}function O(B,U,H,V){B.on("start.zoom",function(){I(this,arguments).event(V).start()}).on("interrupt.zoom end.zoom",function(){I(this,arguments).event(V).end()}).tween("zoom",function(){var Y=this,Z=arguments,q=I(Y,Z).event(V),G=t.apply(Y,Z),J=H==null?N(G):typeof H=="function"?H.apply(Y,Z):H,P=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),X=Y.__zoom,ee=typeof U=="function"?U.apply(Y,Z):U,te=d(X.invert(J).concat(P/X.k),ee.invert(J).concat(P/ee.k));return function(re){if(re===1)re=ee;else{var oe=te(re),de=P/oe[2];re=new ks(de,J[0]-oe[0]*de,J[1]-oe[1]*de)}q.zoom(null,re)}})}function I(B,U,H){return!H&&B.__zooming||new D(B,U)}function D(B,U){this.that=B,this.args=U,this.active=0,this.sourceEvent=null,this.extent=t.apply(B,U),this.taps=0}D.prototype={event:function(B){return B&&(this.sourceEvent=B),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(B,U){return this.mouse&&B!=="mouse"&&(this.mouse[1]=U.invert(this.mouse[0])),this.touch0&&B!=="touch"&&(this.touch0[1]=U.invert(this.touch0[0])),this.touch1&&B!=="touch"&&(this.touch1[1]=U.invert(this.touch1[0])),this.that.__zoom=U,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(B){var U=Kr(this.that).datum();m.call(B,this.that,new mY(B,{sourceEvent:this.sourceEvent,target:_,transform:this.that.__zoom,dispatch:m}),U)}};function T(B,...U){if(!e.apply(this,arguments))return;var H=I(this,U).event(B),V=this.__zoom,Y=Math.max(o[0],Math.min(o[1],V.k*Math.pow(2,r.apply(this,arguments)))),Z=Ci(B);if(H.wheel)(H.mouse[0][0]!==Z[0]||H.mouse[0][1]!==Z[1])&&(H.mouse[1]=V.invert(H.mouse[0]=Z)),clearTimeout(H.wheel);else{if(V.k===Y)return;H.mouse=[Z,V.invert(Z)],Cf(this),H.start()}Ac(B),H.wheel=setTimeout(q,v),H.zoom("mouse",n(C(k(V,Y),H.mouse[0],H.mouse[1]),H.extent,a));function q(){H.wheel=null,H.end()}}function L(B,...U){if(g||!e.apply(this,arguments))return;var H=B.currentTarget,V=I(this,U,!0).event(B),Y=Kr(B.view).on("mousemove.zoom",J,!0).on("mouseup.zoom",P,!0),Z=Ci(B,H),q=B.clientX,G=B.clientY;ZI(B.view),ux(B),V.mouse=[Z,this.__zoom.invert(Z)],Cf(this),V.start();function J(X){if(Ac(X),!V.moved){var ee=X.clientX-q,te=X.clientY-G;V.moved=ee*ee+te*te>w}V.event(X).zoom("mouse",n(C(V.that.__zoom,V.mouse[0]=Ci(X,H),V.mouse[1]),V.extent,a))}function P(X){Y.on("mousemove.zoom mouseup.zoom",null),QI(X.view,V.moved),Ac(X),V.event(X).end()}}function A(B,...U){if(e.apply(this,arguments)){var H=this.__zoom,V=Ci(B.changedTouches?B.changedTouches[0]:B,this),Y=H.invert(V),Z=H.k*(B.shiftKey?.5:2),q=n(C(k(H,Z),V,Y),t.apply(this,U),a);Ac(B),u>0?Kr(this).transition().duration(u).call(O,q,V,B):Kr(this).call(_.transform,q,V,B)}}function M(B,...U){if(e.apply(this,arguments)){var H=B.touches,V=H.length,Y=I(this,U,B.changedTouches.length===V).event(B),Z,q,G,J;for(ux(B),q=0;q"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},hu=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],pT=["Enter"," ","Escape"],gT={"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 hl;(function(e){e.Strict="strict",e.Loose="loose"})(hl||(hl={}));var Ho;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ho||(Ho={}));var pu;(function(e){e.Partial="partial",e.Full="full"})(pu||(pu={}));const xT={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 om;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(om||(om={}));var at;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(at||(at={}));const MC={[at.Left]:at.Right,[at.Right]:at.Left,[at.Top]:at.Bottom,[at.Bottom]:at.Top};function yT(e){return e===null?null:e?"valid":"invalid"}const vT=e=>"id"in e&&"source"in e&&"target"in e,vY=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),kv=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Eu=(e,t=[0,0])=>{const{width:n,height:r}=js(e),i=e.origin??t,o=n*i[0],a=r*i[1];return{x:e.position.x-o,y:e.position.y-a}},bY=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const o=typeof i=="string";let a=!t.nodeLookup&&!o?i:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(i):kv(i)?i:t.nodeLookup.get(i.id));const u=a?am(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return $m(r,u)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Hm(n)},Nu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=$m(n,am(i)),r=!0)}),r?Hm(n):{x:0,y:0,width:0,height:0}},Sv=(e,t,[n,r,i]=[0,0,1],o=!1,a=!1)=>{const u={...Tu(t,[n,r,i]),width:t.width/i,height:t.height/i},d=[];for(const m of e.values()){const{measured:p,selectable:h=!0,hidden:g=!1}=m;if(a&&!h||g)continue;const y=p.width??m.width??m.initialWidth??null,v=p.height??m.height??m.initialHeight??null,w=gu(u,gl(m)),S=(y??0)*(v??0),_=o&&w>0;(!m.internals.handleBounds||_||w>=S||m.dragging)&&d.push(m)}return d},_Y=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function kY(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&(t?.includeHiddenNodes||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function SY({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const u=kY(e,a),d=Nu(u),m=wv(d,t,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function bT({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,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},p=a.origin??r;let h=a.extent||i;if(a.extent==="parent"&&!a.expandParent)if(!u)o?.("005",Ki.error005());else{const y=u.measured.width,v=u.measured.height;y&&v&&(h=[[d,m],[d+y,m+v]])}else u&&xl(a.extent)&&(h=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=xl(h)?Xo(t,h,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",Ki.error015()),{position:{x:g.x-d+(a.measured.width??0)*p[0],y:g.y-m+(a.measured.height??0)*p[1]},positionAbsolute:g}}async function wY({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const y=o.has(g.id),v=!y&&g.parentId&&a.find(w=>w.id===g.parentId);(y||v)&&a.push(g)}const u=new Set(t.map(g=>g.id)),d=r.filter(g=>g.deletable!==!1),p=_Y(a,d);for(const g of d)u.has(g.id)&&!p.find(v=>v.id===g.id)&&p.push(g);if(!i)return{edges:p,nodes:a};const h=await i({nodes:a,edges:p});return typeof h=="boolean"?h?{edges:p,nodes:a}:{edges:[],nodes:[]}:h}const pl=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xo=(e={x:0,y:0},t,n)=>({x:pl(e.x,t[0][0],t[1][0]-(n?.width??0)),y:pl(e.y,t[0][1],t[1][1]-(n?.height??0))});function _T(e,t,n){const{width:r,height:i}=js(n),{x:o,y:a}=n.internals.positionAbsolute;return Xo(e,[[o,a],[o+r,a+i]],t)}const DC=(e,t,n)=>en?-pl(Math.abs(e-n),1,t)/t:0,kT=(e,t,n=15,r=40)=>{const i=DC(e.x,r,t.width-r)*n,o=DC(e.y,r,t.height-r)*n;return[i,o]},$m=(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)}),l0=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Hm=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),gl=(e,t=[0,0])=>{const{x:n,y:r}=kv(e)?e.internals.positionAbsolute:Eu(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},am=(e,t=[0,0])=>{const{x:n,y:r}=kv(e)?e.internals.positionAbsolute:Eu(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ST=(e,t)=>Hm($m(l0(e),l0(t))),gu=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},OC=e=>Ni(e.width)&&Ni(e.height)&&Ni(e.x)&&Ni(e.y),Ni=e=>!isNaN(e)&&isFinite(e),CY=(e,t)=>{},Iu=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Tu=({x:e,y:t},[n,r,i],o=!1,a=[1,1])=>{const u={x:(e-n)/i,y:(t-r)/i};return o?Iu(u,a):u},lm=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Fa(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 jY(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Fa(e,n),i=Fa(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=Fa(e.top??e.y??0,n),i=Fa(e.bottom??e.y??0,n),o=Fa(e.left??e.x??0,t),a=Fa(e.right??e.x??0,t);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function EY(e,t,n,r,i,o){const{x:a,y:u}=lm(e,[t,n,r]),{x:d,y:m}=lm({x:e.x+e.width,y:e.y+e.height},[t,n,r]),p=i-d,h=o-m;return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(p),bottom:Math.floor(h)}}const wv=(e,t,n,r,i,o)=>{const a=jY(o,t,n),u=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(u,d),p=pl(m,r,i),h=e.x+e.width/2,g=e.y+e.height/2,y=t/2-h*p,v=n/2-g*p,w=EY(e,y,v,p,t,n),S={left:Math.min(w.left-a.left,0),top:Math.min(w.top-a.top,0),right:Math.min(w.right-a.right,0),bottom:Math.min(w.bottom-a.bottom,0)};return{x:y-S.left+S.right,y:v-S.top+S.bottom,zoom:p}},xu=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function xl(e){return e!=null&&e!=="parent"}function js(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function wT(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function CT(e,t={width:0,height:0},n,r,i){const o={...e},a=r.get(n);if(a){const u=a.origin||i;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 LC(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function NY(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function IY(e){return{...gT,...e||{}}}function Kc(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:o,y:a}=Ii(e),u=Tu({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:d,y:m}=n?Iu(u,t):u;return{xSnapped:d,ySnapped:m,...u}}const Cv=e=>({width:e.offsetWidth,height:e.offsetHeight}),jT=e=>e?.getRootNode?.()||window?.document,TY=["INPUT","SELECT","TEXTAREA"];function ET(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:TY.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const NT=e=>"clientX"in e,Ii=(e,t)=>{const n=NT(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},zC=(e,t,n,r,i)=>{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:i,position:a.getAttribute("data-handlepos"),x:(u.left-n.left)/r,y:(u.top-n.top)/r,...Cv(a)}})};function IT({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:u}){const d=e*.125+i*.375+a*.375+n*.125,m=t*.125+o*.375+u*.375+r*.125,p=Math.abs(d-e),h=Math.abs(m-t);return[d,m,p,h]}function lf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function PC({pos:e,x1:t,y1:n,x2:r,y2:i,c:o}){switch(e){case at.Left:return[t-lf(t-r,o),n];case at.Right:return[t+lf(r-t,o),n];case at.Top:return[t,n-lf(n-i,o)];case at.Bottom:return[t,n+lf(i-n,o)]}}function TT({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:r,targetY:i,targetPosition:o=at.Top,curvature:a=.25}){const[u,d]=PC({pos:n,x1:e,y1:t,x2:r,y2:i,c:a}),[m,p]=PC({pos:o,x1:r,y1:i,x2:e,y2:t,c:a}),[h,g,y,v]=IT({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:u,sourceControlY:d,targetControlX:m,targetControlY:p});return[`M${e},${t} C${u},${d} ${m},${p} ${r},${i}`,h,g,y,v]}function RT({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,o=n0}const MY=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,DY=(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)),OY=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||MY;let i;return vT(e)?i={...e}:i={...e,id:r(e)},DY(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function AT({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,o,a,u]=RT({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,o,a,u]}const BC={[at.Left]:{x:-1,y:0},[at.Right]:{x:1,y:0},[at.Top]:{x:0,y:-1},[at.Bottom]:{x:0,y:1}},LY=({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 zY({source:e,sourcePosition:t=at.Bottom,target:n,targetPosition:r=at.Top,center:i,offset:o,stepPosition:a}){const u=BC[t],d=BC[r],m={x:e.x+u.x*o,y:e.y+u.y*o},p={x:n.x+d.x*o,y:n.y+d.y*o},h=LY({source:m,sourcePosition:t,target:p}),g=h.x!==0?"x":"y",y=h[g];let v=[],w,S;const _={x:0,y:0},k={x:0,y:0},[,,C,N]=RT({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(u[g]*d[g]===-1){g==="x"?(w=i.x??m.x+(p.x-m.x)*a,S=i.y??(m.y+p.y)/2):(w=i.x??(m.x+p.x)/2,S=i.y??m.y+(p.y-m.y)*a);const T=[{x:w,y:m.y},{x:w,y:p.y}],L=[{x:m.x,y:S},{x:p.x,y:S}];u[g]===y?v=g==="x"?T:L:v=g==="x"?L:T}else{const T=[{x:m.x,y:p.y}],L=[{x:p.x,y:m.y}];if(g==="x"?v=u.x===y?L:T:v=u.y===y?T:L,t===r){const B=Math.abs(e[g]-n[g]);if(B<=o){const U=Math.min(o-1,o-B);u[g]===y?_[g]=(m[g]>e[g]?-1:1)*U:k[g]=(p[g]>n[g]?-1:1)*U}}if(t!==r){const B=g==="x"?"y":"x",U=u[g]===d[B],H=m[B]>p[B],V=m[B]=W?(w=(A.x+M.x)/2,S=v[0].y):(w=v[0].x,S=(A.y+M.y)/2)}const O={x:m.x+_.x,y:m.y+_.y},I={x:p.x+k.x,y:p.y+k.y};return[[e,...O.x!==v[0].x||O.y!==v[0].y?[O]:[],...v,...I.x!==v[v.length-1].x||I.y!==v[v.length-1].y?[I]:[],n],w,S,C,N]}function PY(e,t,n,r){const i=Math.min($C(e,t)/2,$C(t,n)/2,r),{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 u0(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function $Y(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const o=new Set;return e.reduce((a,u)=>([u.markerStart||r,u.markerEnd||i].forEach(d=>{if(d&&typeof d=="object"){const m=u0(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 MT=1e3,HY=10,jv={nodeOrigin:[0,0],nodeExtent:hu,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},FY={...jv,checkEquality:!0};function Ev(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function VY(e,t,n){const r=Ev(jv,n);for(const i of e.values())if(i.parentId)Iv(i,e,t,r);else{const o=Eu(i,r.nodeOrigin),a=xl(i.extent)?i.extent:r.nodeExtent,u=Xo(o,a,js(i));i.internals.positionAbsolute=u}}function UY(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const o={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(o):i.type==="target"&&r.push(o)}return{source:n,target:r}}function Nv(e){return e==="manual"}function d0(e,t,n,r={}){const i=Ev(FY,r),o={i:0},a=new Map(t),u=i?.elevateNodesOnSelect&&!Nv(i.zIndexMode)?MT:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const p of e){let h=a.get(p.id);if(i.checkEquality&&p===h?.internals.userNode)t.set(p.id,h);else{const g=Eu(p,i.nodeOrigin),y=xl(p.extent)?p.extent:i.nodeExtent,v=Xo(g,y,js(p));h={...i.defaults,...p,measured:{width:p.measured?.width,height:p.measured?.height},internals:{positionAbsolute:v,handleBounds:UY(p,h),z:DT(p,u,i.zIndexMode),userNode:p}},t.set(p.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(d=!1),p.parentId&&Iv(h,t,n,r,o),m||=p.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function GY(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 Iv(e,t,n,r,i){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:u,zIndexMode:d}=Ev(jv,r),m=e.parentId,p=t.get(m);if(!p){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}GY(e,n),i&&!p.parentId&&p.internals.rootParentIndex===void 0&&d==="auto"&&(p.internals.rootParentIndex=++i.i,p.internals.z=p.internals.z+i.i*HY),i&&p.internals.rootParentIndex!==void 0&&(i.i=p.internals.rootParentIndex);const h=o&&!Nv(d)?MT:0,{x:g,y,z:v}=qY(e,p,a,u,h,d),{positionAbsolute:w}=e.internals,S=g!==w.x||y!==w.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:g,y}:w,z:v}})}function DT(e,t,n){const r=Ni(e.zIndex)?e.zIndex:0;return Nv(n)?r:r+(e.selected?t:0)}function qY(e,t,n,r,i,o){const{x:a,y:u}=t.internals.positionAbsolute,d=js(e),m=Eu(e,n),p=xl(e.extent)?Xo(m,e.extent,d):m;let h=Xo({x:a+p.x,y:u+p.y},r,d);e.extent==="parent"&&(h=_T(h,d,t));const g=DT(e,i,o),y=t.internals.z??0;return{x:h.x,y:h.y,z:y>=g?y+1:g}}function Tv(e,t,n,r=[0,0]){const i=[],o=new Map;for(const a of e){const u=t.get(a.parentId);if(!u)continue;const d=o.get(a.parentId)?.expandedRect??gl(u),m=ST(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,p=js(u),h=u.origin??r,g=a.x0||y>0||S||_)&&(i.push({id:d,type:"position",position:{x:u.position.x-g+S,y:u.position.y-y+_}}),n.get(d)?.forEach(k=>{e.some(C=>C.id===k.id)||i.push({id:k.id,type:"position",position:{x:k.position.x+g,y:k.position.y+y}})})),(p.width0){const y=Tv(g,t,n,i);m.push(...y)}return{changes:m,updatedInternals:d}}async function YY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,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],[i,o]],r),u=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(u)}function UC(e,t,n,r,i,o){let a=i;const u=r.get(a)||new Map;r.set(a,u.set(n,t)),a=`${i}-${e}`;const d=r.get(a)||new Map;if(r.set(a,d.set(n,t)),o){a=`${i}-${e}-${o}`;const m=r.get(a)||new Map;r.set(a,m.set(n,t))}}function OT(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:o,sourceHandle:a=null,targetHandle:u=null}=r,d={edgeId:r.id,source:i,target:o,sourceHandle:a,targetHandle:u},m=`${i}-${a}--${o}-${u}`,p=`${o}-${u}--${i}-${a}`;UC("source",d,p,e,i,a),UC("target",d,m,e,o,u),t.set(r.id,r)}}function LT(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:LT(n,t):!1}function GC(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function XY(e,t,n,r){const i=new Map;for(const[o,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!LT(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const u=e.get(o);u&&i.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 i}function dx({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const i=[];for(const[a,u]of t){const d=n.get(a)?.internals.userNode;d&&i.push({...d,position:u.position,dragging:r})}if(!e)return[i[0],i];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:i[0],i]}function KY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const o={x:n-i.distance.x,y:r-i.distance.y},a=Iu(o,t);return{x:a.x-o.x,y:a.y-o.y}}function ZY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,u=new Map,d=!1,m={x:0,y:0},p=null,h=!1,g=null,y=!1,v=!1,w=null;function S({noDragClassName:k,handleSelector:C,domNode:N,isSelectable:O,nodeId:I,nodeClickDistance:D=0}){g=Kr(N);function T({x:$,y:W}){const{nodeLookup:B,nodeExtent:U,snapGrid:H,snapToGrid:V,nodeOrigin:Y,onNodeDrag:Z,onSelectionDrag:q,onError:G,updateNodePositions:J}=t();o={x:$,y:W};let P=!1;const X=u.size>1,ee=X&&U?l0(Nu(u)):null,te=X&&V?KY({dragItems:u,snapGrid:H,x:$,y:W}):null;for(const[re,oe]of u){if(!B.has(re))continue;let de={x:$-oe.distance.x,y:W-oe.distance.y};V&&(de=te?{x:Math.round(de.x+te.x),y:Math.round(de.y+te.y)}:Iu(de,H));let se=null;if(X&&U&&!oe.extent&&ee){const{positionAbsolute:Ce}=oe.internals,Be=Ce.x-ee.x+U[0][0],Ge=Ce.x+oe.measured.width-ee.x2+U[1][0],Ye=Ce.y-ee.y+U[0][1],yt=Ce.y+oe.measured.height-ee.y2+U[1][1];se=[[Be,Ye],[Ge,yt]]}const{position:je,positionAbsolute:we}=bT({nodeId:re,nextPosition:de,nodeLookup:B,nodeExtent:se||U,nodeOrigin:Y,onError:G});P=P||oe.position.x!==je.x||oe.position.y!==je.y,oe.position=je,oe.internals.positionAbsolute=we}if(v=v||P,!!P&&(J(u,!0),w&&(r||Z||!I&&q))){const[re,oe]=dx({nodeId:I,dragItems:u,nodeLookup:B});r?.(w,u,re,oe),Z?.(w,re,oe),I||q?.(w,oe)}}async function L(){if(!p)return;const{transform:$,panBy:W,autoPanSpeed:B,autoPanOnNodeDrag:U}=t();if(!U){d=!1,cancelAnimationFrame(a);return}const[H,V]=kT(m,p,B);(H!==0||V!==0)&&(o.x=(o.x??0)-H/$[2],o.y=(o.y??0)-V/$[2],await W({x:H,y:V})&&T(o)),a=requestAnimationFrame(L)}function A($){const{nodeLookup:W,multiSelectionActive:B,nodesDraggable:U,transform:H,snapGrid:V,snapToGrid:Y,selectNodesOnDrag:Z,onNodeDragStart:q,onSelectionDragStart:G,unselectNodesAndEdges:J}=t();h=!0,(!Z||!O)&&!B&&I&&(W.get(I)?.selected||J()),O&&Z&&I&&e?.(I);const P=Kc($.sourceEvent,{transform:H,snapGrid:V,snapToGrid:Y,containerBounds:p});if(o=P,u=XY(W,U,P,I),u.size>0&&(n||q||!I&&G)){const[X,ee]=dx({nodeId:I,dragItems:u,nodeLookup:W});n?.($.sourceEvent,u,X,ee),q?.($.sourceEvent,X,ee),I||G?.($.sourceEvent,ee)}}const M=JI().clickDistance(D).on("start",$=>{const{domNode:W,nodeDragThreshold:B,transform:U,snapGrid:H,snapToGrid:V}=t();p=W?.getBoundingClientRect()||null,y=!1,v=!1,w=$.sourceEvent,B===0&&A($),o=Kc($.sourceEvent,{transform:U,snapGrid:H,snapToGrid:V,containerBounds:p}),m=Ii($.sourceEvent,p)}).on("drag",$=>{const{autoPanOnNodeDrag:W,transform:B,snapGrid:U,snapToGrid:H,nodeDragThreshold:V,nodeLookup:Y}=t(),Z=Kc($.sourceEvent,{transform:B,snapGrid:U,snapToGrid:H,containerBounds:p});if(w=$.sourceEvent,($.sourceEvent.type==="touchmove"&&$.sourceEvent.touches.length>1||I&&!Y.has(I))&&(y=!0),!y){if(!d&&W&&h&&(d=!0,L()),!h){const q=Ii($.sourceEvent,p),G=q.x-m.x,J=q.y-m.y;Math.sqrt(G*G+J*J)>V&&A($)}(o.x!==Z.xSnapped||o.y!==Z.ySnapped)&&u&&h&&(m=Ii($.sourceEvent,p),T(Z))}}).on("end",$=>{if(!(!h||y)&&(d=!1,h=!1,cancelAnimationFrame(a),u.size>0)){const{nodeLookup:W,updateNodePositions:B,onNodeDragStop:U,onSelectionDragStop:H}=t();if(v&&(B(u,!1),v=!1),i||U||!I&&H){const[V,Y]=dx({nodeId:I,dragItems:u,nodeLookup:W,dragging:!1});i?.($.sourceEvent,u,V,Y),U?.($.sourceEvent,V,Y),I||H?.($.sourceEvent,Y)}}}).filter($=>{const W=$.target;return!$.button&&(!k||!GC(W,`.${k}`,N))&&(!C||GC(W,C,N))});g.call(M)}function _(){g?.on(".drag",null)}return{update:S,destroy:_}}function QY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())gu(i,gl(o))>0&&r.push(o);return r}const JY=250;function eX(e,t,n,r){let i=[],o=1/0;const a=QY(e,n,t+JY);for(const u of a){const d=[...u.internals.handleBounds?.source??[],...u.internals.handleBounds?.target??[]];for(const m of d){if(r.nodeId===m.nodeId&&r.type===m.type&&r.id===m.id)continue;const{x:p,y:h}=Ko(u,m,m.position,!0),g=Math.sqrt(Math.pow(p-e.x,2)+Math.pow(h-e.y,2));g>t||(g1){const u=r.type==="source"?"target":"source";return i.find(d=>d.type===u)??i[0]}return i[0]}function zT(e,t,n,r,i,o=!1){const a=r.get(e);if(!a)return null;const u=i==="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,...Ko(a,d,d.position,!0)}:d}function PT(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function tX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const BT=()=>!0;function nX(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:d,lib:m,autoPanOnConnect:p,flowId:h,panBy:g,cancelConnection:y,onConnectStart:v,onConnect:w,onConnectEnd:S,isValidConnection:_=BT,onReconnectEnd:k,updateConnection:C,getTransform:N,getFromHandle:O,autoPanSpeed:I,dragThreshold:D=1,handleDomNode:T}){const L=jT(e.target);let A=0,M;const{x:$,y:W}=Ii(e),B=PT(o,T),U=u?.getBoundingClientRect();let H=!1;if(!U||!B)return;const V=zT(i,B,r,d,t);if(!V)return;let Y=Ii(e,U),Z=!1,q=null,G=!1,J=null;function P(){if(!p||!U)return;const[je,we]=kT(Y,U,I);g({x:je,y:we}),A=requestAnimationFrame(P)}const X={...V,nodeId:i,type:B,position:V.position},ee=d.get(i);let re={inProgress:!0,isValid:null,from:Ko(ee,X,at.Left,!0),fromHandle:X,fromPosition:X.position,fromNode:ee,to:Y,toHandle:null,toPosition:MC[X.position],toNode:null,pointer:Y};function oe(){H=!0,C(re),v?.(e,{nodeId:i,handleId:r,handleType:B})}D===0&&oe();function de(je){if(!H){const{x:yt,y:Vt}=Ii(je),bt=yt-$,vt=Vt-W;if(!(bt*bt+vt*vt>D*D))return;oe()}if(!O()||!X){se(je);return}const we=N();Y=Ii(je,U),M=eX(Tu(Y,we,!1,[1,1]),n,d,X),Z||(P(),Z=!0);const Ce=$T(je,{handle:M,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:_,doc:L,lib:m,flowId:h,nodeLookup:d});J=Ce.handleDomNode,q=Ce.connection,G=tX(!!M,Ce.isValid);const Be=d.get(i),Ge=Be?Ko(Be,X,at.Left,!0):re.from,Ye={...re,from:Ge,isValid:G,to:Ce.toHandle&&G?lm({x:Ce.toHandle.x,y:Ce.toHandle.y},we):Y,toHandle:Ce.toHandle,toPosition:G&&Ce.toHandle?Ce.toHandle.position:MC[X.position],toNode:Ce.toHandle?d.get(Ce.toHandle.nodeId):null,pointer:Y};C(Ye),re=Ye}function se(je){if(!("touches"in je&&je.touches.length>0)){if(H){(M||J)&&q&&G&&w?.(q);const{inProgress:we,...Ce}=re,Be={...Ce,toPosition:re.toHandle?re.toPosition:null};S?.(je,Be),o&&k?.(je,Be)}y(),cancelAnimationFrame(A),Z=!1,G=!1,q=null,J=null,L.removeEventListener("mousemove",de),L.removeEventListener("mouseup",se),L.removeEventListener("touchmove",de),L.removeEventListener("touchend",se)}}L.addEventListener("mousemove",de),L.addEventListener("mouseup",se),L.addEventListener("touchmove",de),L.addEventListener("touchend",se)}function $T(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:o,doc:a,lib:u,flowId:d,isValidConnection:m=BT,nodeLookup:p}){const h=o==="target",g=t?a.querySelector(`.${u}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:y,y:v}=Ii(e),w=a.elementFromPoint(y,v),S=w?.classList.contains(`${u}-flow__handle`)?w:g,_={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=PT(void 0,S),C=S.getAttribute("data-nodeid"),N=S.getAttribute("data-handleid"),O=S.classList.contains("connectable"),I=S.classList.contains("connectableend");if(!C||!k)return _;const D={source:h?C:r,sourceHandle:h?N:i,target:h?r:C,targetHandle:h?i:N};_.connection=D;const L=O&&I&&(n===hl.Strict?h&&k==="source"||!h&&k==="target":C!==r||N!==i);_.isValid=L&&m(D),_.toHandle=zT(C,k,N,p,n,!0)}return _}const f0={onPointerDown:nX,isValid:$T};function rX({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=Kr(e);function o({translateExtent:u,width:d,height:m,zoomStep:p=1,pannable:h=!0,zoomable:g=!0,inversePan:y=!1}){const v=C=>{if(C.sourceEvent.type!=="wheel"||!t)return;const N=n(),O=C.sourceEvent.ctrlKey&&xu()?10:1,I=-C.sourceEvent.deltaY*(C.sourceEvent.deltaMode===1?.05:C.sourceEvent.deltaMode?1:.002)*p,D=N[2]*Math.pow(2,I*O);t.scaleTo(D)};let w=[0,0];const S=C=>{(C.sourceEvent.type==="mousedown"||C.sourceEvent.type==="touchstart")&&(w=[C.sourceEvent.clientX??C.sourceEvent.touches[0].clientX,C.sourceEvent.clientY??C.sourceEvent.touches[0].clientY])},_=C=>{const N=n();if(C.sourceEvent.type!=="mousemove"&&C.sourceEvent.type!=="touchmove"||!t)return;const O=[C.sourceEvent.clientX??C.sourceEvent.touches[0].clientX,C.sourceEvent.clientY??C.sourceEvent.touches[0].clientY],I=[O[0]-w[0],O[1]-w[1]];w=O;const D=r()*Math.max(N[2],Math.log(N[2]))*(y?-1:1),T={x:N[0]-I[0]*D,y:N[1]-I[1]*D},L=[[0,0],[d,m]];t.setViewportConstrained({x:T.x,y:T.y,zoom:N[2]},L,u)},k=hT().on("start",S).on("zoom",h?_:null).on("zoom.wheel",g?v:null);i.call(k,{})}function a(){i.on("zoom",null)}return{update:o,destroy:a,pointer:Ci}}const Fm=e=>({x:e.x,y:e.y,zoom:e.k}),fx=({x:e,y:t,zoom:n})=>Bm.translate(e,t).scale(n),Ya=(e,t)=>e.target.closest(`.${t}`),HT=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),iX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,mx=(e,t=0,n=iX,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},FT=e=>{const t=e.ctrlKey&&xu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function sX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:u,onPanZoom:d,onPanZoomEnd:m}){return p=>{if(Ya(p,t))return p.ctrlKey&&p.preventDefault(),!1;p.preventDefault(),p.stopImmediatePropagation();const h=n.property("__zoom").k||1;if(p.ctrlKey&&a){const S=Ci(p),_=FT(p),k=h*Math.pow(2,_);r.scaleTo(n,k,S,p);return}const g=p.deltaMode===1?20:1;let y=i===Ho.Vertical?0:p.deltaX*g,v=i===Ho.Horizontal?0:p.deltaY*g;!xu()&&p.shiftKey&&i!==Ho.Vertical&&(y=p.deltaY*g,v=0),r.translateBy(n,-(y/h)*o,-(v/h)*o,{internal:!0});const w=Fm(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(p,w),e.panScrollTimeout=setTimeout(()=>{m?.(p,w),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,u?.(p,w))}}function oX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const o=r.type==="wheel",a=!t&&o&&!r.ctrlKey,u=Ya(r,e);if(r.ctrlKey&&o&&u&&r.preventDefault(),a||u)return null;r.preventDefault(),n.call(this,r,i)}}function aX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const i=Fm(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,i)}}function lX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{e.usedRightMouseButton=!!(n&&HT(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,Fm(o.transform))}}function cX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&HT(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const u=Fm(a.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(a.sourceEvent,u)},n?150:0)}}}function uX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:u,noPanClassName:d,lib:m,connectionInProgress:p}){return h=>{const g=e||t,y=n&&h.ctrlKey,v=h.type==="wheel";if(h.button===1&&h.type==="mousedown"&&(Ya(h,`${m}-flow__node`)||Ya(h,`${m}-flow__edge`)))return!0;if(!r&&!g&&!i&&!o&&!n||a||p&&!v||Ya(h,u)&&v||Ya(h,d)&&(!v||i&&v&&!e)||!n&&h.ctrlKey&&v)return!1;if(!n&&h.type==="touchstart"&&h.touches?.length>1)return h.preventDefault(),!1;if(!g&&!i&&!y&&v||!r&&(h.type==="mousedown"||h.type==="touchstart")||Array.isArray(r)&&!r.includes(h.button)&&h.type==="mousedown")return!1;const w=Array.isArray(r)&&r.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||v)&&w}}function dX({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,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},p=e.getBoundingClientRect(),h=hT().scaleExtent([t,n]).translateExtent(r),g=Kr(e).call(h);k({x:i.x,y:i.y,zoom:pl(i.zoom,t,n)},[[0,0],[p.width,p.height]],r);const y=g.on("wheel.zoom"),v=g.on("dblclick.zoom");h.wheelDelta(FT);function w(M,$){return g?new Promise(W=>{h?.interpolate($?.interpolate==="linear"?Xc:kf).transform(mx(g,$?.duration,$?.ease,()=>W(!0)),M)}):Promise.resolve(!1)}function S({noWheelClassName:M,noPanClassName:$,onPaneContextMenu:W,userSelectionActive:B,panOnScroll:U,panOnDrag:H,panOnScrollMode:V,panOnScrollSpeed:Y,preventScrolling:Z,zoomOnPinch:q,zoomOnScroll:G,zoomOnDoubleClick:J,zoomActivationKeyPressed:P,lib:X,onTransformChange:ee,connectionInProgress:te,paneClickDistance:re,selectionOnDrag:oe}){B&&!m.isZoomingOrPanning&&_();const de=U&&!P&&!B;h.clickDistance(oe?1/0:!Ni(re)||re<0?0:re);const se=de?sX({zoomPanValues:m,noWheelClassName:M,d3Selection:g,d3Zoom:h,panOnScrollMode:V,panOnScrollSpeed:Y,zoomOnPinch:q,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:u}):oX({noWheelClassName:M,preventScrolling:Z,d3ZoomHandler:y});if(g.on("wheel.zoom",se,{passive:!1}),!B){const we=aX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});h.on("start",we);const Ce=lX({zoomPanValues:m,panOnDrag:H,onPaneContextMenu:!!W,onPanZoom:o,onTransformChange:ee});h.on("zoom",Ce);const Be=cX({zoomPanValues:m,panOnDrag:H,panOnScroll:U,onPaneContextMenu:W,onPanZoomEnd:u,onDraggingChange:d});h.on("end",Be)}const je=uX({zoomActivationKeyPressed:P,panOnDrag:H,zoomOnScroll:G,panOnScroll:U,zoomOnDoubleClick:J,zoomOnPinch:q,userSelectionActive:B,noPanClassName:$,noWheelClassName:M,lib:X,connectionInProgress:te});h.filter(je),J?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function _(){h.on("zoom",null)}async function k(M,$,W){const B=fx(M),U=h?.constrain()(B,$,W);return U&&await w(U),new Promise(H=>H(U))}async function C(M,$){const W=fx(M);return await w(W,$),new Promise(B=>B(W))}function N(M){if(g){const $=fx(M),W=g.property("__zoom");(W.k!==M.zoom||W.x!==M.x||W.y!==M.y)&&h?.transform(g,$,null,{sync:!0})}}function O(){const M=g?mT(g.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}function I(M,$){return g?new Promise(W=>{h?.interpolate($?.interpolate==="linear"?Xc:kf).scaleTo(mx(g,$?.duration,$?.ease,()=>W(!0)),M)}):Promise.resolve(!1)}function D(M,$){return g?new Promise(W=>{h?.interpolate($?.interpolate==="linear"?Xc:kf).scaleBy(mx(g,$?.duration,$?.ease,()=>W(!0)),M)}):Promise.resolve(!1)}function T(M){h?.scaleExtent(M)}function L(M){h?.translateExtent(M)}function A(M){const $=!Ni(M)||M<0?0:M;h?.clickDistance($)}return{update:S,destroy:_,setViewport:C,setViewportConstrained:k,getViewport:O,scaleTo:I,scaleBy:D,setScaleExtent:T,setTranslateExtent:L,syncViewport:N,setClickDistance:A}}var yl;(function(e){e.Line="line",e.Handle="handle"})(yl||(yl={}));function fX({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:o}){const a=e-t,u=n-r,d=[a>0?1:a<0?-1:0,u>0?1:u<0?-1:0];return a&&i&&(d[0]=d[0]*-1),u&&o&&(d[1]=d[1]*-1),d}function qC(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function no(e,t){return Math.max(0,t-e)}function ro(e,t){return Math.max(0,e-t)}function cf(e,t,n){return Math.max(0,t-e,e-n)}function WC(e,t){return e?!t:t}function mX(e,t,n,r,i,o,a,u){let{affectsX:d,affectsY:m}=t;const{isHorizontal:p,isVertical:h}=t,g=p&&h,{xSnapped:y,ySnapped:v}=n,{minWidth:w,maxWidth:S,minHeight:_,maxHeight:k}=r,{x:C,y:N,width:O,height:I,aspectRatio:D}=e;let T=Math.floor(p?y-e.pointerX:0),L=Math.floor(h?v-e.pointerY:0);const A=O+(d?-T:T),M=I+(m?-L:L),$=-o[0]*O,W=-o[1]*I;let B=cf(A,w,S),U=cf(M,_,k);if(a){let Y=0,Z=0;d&&T<0?Y=no(C+T+$,a[0][0]):!d&&T>0&&(Y=ro(C+A+$,a[1][0])),m&&L<0?Z=no(N+L+W,a[0][1]):!m&&L>0&&(Z=ro(N+M+W,a[1][1])),B=Math.max(B,Y),U=Math.max(U,Z)}if(u){let Y=0,Z=0;d&&T>0?Y=ro(C+T,u[0][0]):!d&&T<0&&(Y=no(C+A,u[1][0])),m&&L>0?Z=ro(N+L,u[0][1]):!m&&L<0&&(Z=no(N+M,u[1][1])),B=Math.max(B,Y),U=Math.max(U,Z)}if(i){if(p){const Y=cf(A/D,_,k)*D;if(B=Math.max(B,Y),a){let Z=0;!d&&!m||d&&!m&&g?Z=ro(N+W+A/D,a[1][1])*D:Z=no(N+W+(d?T:-T)/D,a[0][1])*D,B=Math.max(B,Z)}if(u){let Z=0;!d&&!m||d&&!m&&g?Z=no(N+A/D,u[1][1])*D:Z=ro(N+(d?T:-T)/D,u[0][1])*D,B=Math.max(B,Z)}}if(h){const Y=cf(M*D,w,S)/D;if(U=Math.max(U,Y),a){let Z=0;!d&&!m||m&&!d&&g?Z=ro(C+M*D+$,a[1][0])/D:Z=no(C+(m?L:-L)*D+$,a[0][0])/D,U=Math.max(U,Z)}if(u){let Z=0;!d&&!m||m&&!d&&g?Z=no(C+M*D,u[1][0])/D:Z=ro(C+(m?L:-L)*D,u[0][0])/D,U=Math.max(U,Z)}}}L=L+(L<0?U:-U),T=T+(T<0?B:-B),i&&(g?A>M*D?L=(WC(d,m)?-T:T)/D:T=(WC(d,m)?-L:L)*D:p?(L=T/D,m=d):(T=L*D,d=m));const H=d?C+T:C,V=m?N+L:N;return{width:O+(d?-T:T),height:I+(m?-L:L),x:o[0]*T*(d?-1:1)+H,y:o[1]*L*(m?-1:1)+V}}const VT={width:0,height:0,x:0,y:0},hX={...VT,pointerX:0,pointerY:0,aspectRatio:1};function pX(e){return[[0,0],[e.measured.width,e.measured.height]]}function gX(e,t,n){const r=t.position.x+e.position.x,i=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[[r-u,i-d],[r+o-u,i+a-d]]}function xX({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const o=Kr(e);let a={controlDirection:qC("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:p,keepAspectRatio:h,resizeDirection:g,onResizeStart:y,onResize:v,onResizeEnd:w,shouldResize:S}){let _={...VT},k={...hX};a={boundaries:p,resizeDirection:g,keepAspectRatio:h,controlDirection:qC(m)};let C,N=null,O=[],I,D,T,L=!1;const A=JI().on("start",M=>{const{nodeLookup:$,transform:W,snapGrid:B,snapToGrid:U,nodeOrigin:H,paneDomNode:V}=n();if(C=$.get(t),!C)return;N=V?.getBoundingClientRect()??null;const{xSnapped:Y,ySnapped:Z}=Kc(M.sourceEvent,{transform:W,snapGrid:B,snapToGrid:U,containerBounds:N});_={width:C.measured.width??0,height:C.measured.height??0,x:C.position.x??0,y:C.position.y??0},k={..._,pointerX:Y,pointerY:Z,aspectRatio:_.width/_.height},I=void 0,C.parentId&&(C.extent==="parent"||C.expandParent)&&(I=$.get(C.parentId),D=I&&C.extent==="parent"?pX(I):void 0),O=[],T=void 0;for(const[q,G]of $)if(G.parentId===t&&(O.push({id:q,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const J=gX(G,C,G.origin??H);T?T=[[Math.min(J[0][0],T[0][0]),Math.min(J[0][1],T[0][1])],[Math.max(J[1][0],T[1][0]),Math.max(J[1][1],T[1][1])]]:T=J}y?.(M,{..._})}).on("drag",M=>{const{transform:$,snapGrid:W,snapToGrid:B,nodeOrigin:U}=n(),H=Kc(M.sourceEvent,{transform:$,snapGrid:W,snapToGrid:B,containerBounds:N}),V=[];if(!C)return;const{x:Y,y:Z,width:q,height:G}=_,J={},P=C.origin??U,{width:X,height:ee,x:te,y:re}=mX(k,a.controlDirection,H,a.boundaries,a.keepAspectRatio,P,D,T),oe=X!==q,de=ee!==G,se=te!==Y&&oe,je=re!==Z&&de;if(!se&&!je&&!oe&&!de)return;if((se||je||P[0]===1||P[1]===1)&&(J.x=se?te:_.x,J.y=je?re:_.y,_.x=J.x,_.y=J.y,O.length>0)){const Ge=te-Y,Ye=re-Z;for(const yt of O)yt.position={x:yt.position.x-Ge+P[0]*(X-q),y:yt.position.y-Ye+P[1]*(ee-G)},V.push(yt)}if((oe||de)&&(J.width=oe&&(!a.resizeDirection||a.resizeDirection==="horizontal")?X:_.width,J.height=de&&(!a.resizeDirection||a.resizeDirection==="vertical")?ee:_.height,_.width=J.width,_.height=J.height),I&&C.expandParent){const Ge=P[0]*(J.width??0);J.x&&J.x{L&&(w?.(M,{..._}),i?.({..._}),L=!1)});o.call(A)}function d(){o.on(".drag",null)}return{update:u,destroy:d}}var hx={exports:{}},px={},gx={exports:{}},xx={};var YC;function yX(){if(YC)return xx;YC=1;var e=bl();function t(h,g){return h===g&&(h!==0||1/h===1/g)||h!==h&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,i=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function u(h,g){var y=g(),v=r({inst:{value:y,getSnapshot:g}}),w=v[0].inst,S=v[1];return o(function(){w.value=y,w.getSnapshot=g,d(w)&&S({inst:w})},[h,y,g]),i(function(){return d(w)&&S({inst:w}),h(function(){d(w)&&S({inst:w})})},[h]),a(y),y}function d(h){var g=h.getSnapshot;h=h.value;try{var y=g();return!n(h,y)}catch{return!0}}function m(h,g){return g()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:u;return xx.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,xx}var XC;function vX(){return XC||(XC=1,gx.exports=yX()),gx.exports}var KC;function bX(){if(KC)return px;KC=1;var e=bl(),t=vX();function n(m,p){return m===p&&(m!==0||1/m===1/p)||m!==m&&p!==p}var r=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,u=e.useMemo,d=e.useDebugValue;return px.useSyncExternalStoreWithSelector=function(m,p,h,g,y){var v=o(null);if(v.current===null){var w={hasValue:!1,value:null};v.current=w}else w=v.current;v=u(function(){function _(I){if(!k){if(k=!0,C=I,I=g(I),y!==void 0&&w.hasValue){var D=w.value;if(y(D,I))return N=D}return N=I}if(D=N,r(C,I))return D;var T=g(I);return y!==void 0&&y(D,T)?(C=I,D):(C=I,N=T)}var k=!1,C,N,O=h===void 0?null:h;return[function(){return _(p())},O===null?void 0:function(){return _(O())}]},[p,h,g,y]);var S=i(m,v[0],v[1]);return a(function(){w.hasValue=!0,w.value=S},[S]),d(S),S},px}var ZC;function _X(){return ZC||(ZC=1,hx.exports=bX()),hx.exports}var kX=_X();const SX=Zo(kX),wX={},QC=e=>{let t;const n=new Set,r=(p,h)=>{const g=typeof p=="function"?p(t):p;if(!Object.is(g,t)){const y=t;t=h??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,y))}},i=()=>t,d={setState:r,getState:i,getInitialState:()=>m,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(wX?"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(r,i,d);return d},CX=e=>e?QC(e):QC,{useDebugValue:jX}=St,{useSyncExternalStoreWithSelector:EX}=SX,NX=e=>e;function UT(e,t=NX,n){const r=EX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return jX(r),r}const JC=(e,t)=>{const n=CX(e),r=(i,o=t)=>UT(n,i,o);return Object.assign(r,n),r},IX=(e,t)=>e?JC(e,t):JC;function Nn(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[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Vm=E.createContext(null),TX=Vm.Provider,GT=Ki.error001();function Ft(e,t){const n=E.useContext(Vm);if(n===null)throw new Error(GT);return UT(n,e,t)}function In(){const e=E.useContext(Vm);if(e===null)throw new Error(GT);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const e2={display:"none"},RX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},qT="react-flow__node-desc",WT="react-flow__edge-desc",AX="react-flow__aria-live",MX=e=>e.ariaLiveMessage,DX=e=>e.ariaLabelConfig;function OX({rfId:e}){const t=Ft(MX);return c.jsx("div",{id:`${AX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:RX,children:t})}function LX({rfId:e,disableKeyboardA11y:t}){const n=Ft(DX);return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:`${qT}-${e}`,style:e2,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),c.jsx("div",{id:`${WT}-${e}`,style:e2,children:n["edge.a11yDescription.default"]}),!t&&c.jsx(OX,{rfId:e})]})}const Um=E.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},o)=>{const a=`${e}`.split("-");return c.jsx("div",{className:Zn(["react-flow__panel",n,...a]),style:r,ref:o,...i,children:t})});Um.displayName="Panel";function zX({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:c.jsx(Um,{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 PX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},uf=e=>e.id;function BX(e,t){return Nn(e.selectedNodes.map(uf),t.selectedNodes.map(uf))&&Nn(e.selectedEdges.map(uf),t.selectedEdges.map(uf))}function $X({onSelectionChange:e}){const t=In(),{selectedNodes:n,selectedEdges:r}=Ft(PX,BX);return E.useEffect(()=>{const i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(o=>o(i))},[n,r,e]),null}const HX=e=>!!e.onSelectionChangeHandlers;function FX({onSelectionChange:e}){const t=Ft(HX);return e||t?c.jsx($X,{onSelectionChange:e}):null}const m0=typeof window<"u"?E.useLayoutEffect:E.useEffect,YT=[0,0],VX={x:0,y:0,zoom:1},UX=["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"],t2=[...UX,"rfId"],GX=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}),n2={translateExtent:hu,nodeOrigin:YT,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function qX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:o,setNodeExtent:a,reset:u,setDefaultNodesAndEdges:d}=Ft(GX,Nn),m=In();m0(()=>(d(e.defaultNodes,e.defaultEdges),()=>{p.current=n2,u()}),[]);const p=E.useRef(n2);return m0(()=>{for(const h of t2){const g=e[h],y=p.current[h];g!==y&&(typeof e[h]>"u"||(h==="nodes"?t(g):h==="edges"?n(g):h==="minZoom"?r(g):h==="maxZoom"?i(g):h==="translateExtent"?o(g):h==="nodeExtent"?a(g):h==="ariaLabelConfig"?m.setState({ariaLabelConfig:IY(g)}):h==="fitView"?m.setState({fitViewQueued:g}):h==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[h]:g})))}p.current=e},t2.map(h=>e[h])),null}function r2(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function WX(e){const[t,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const r=r2(),i=()=>n(r?.matches?"dark":"light");return i(),r?.addEventListener("change",i),()=>{r?.removeEventListener("change",i)}},[e]),t!==null?t:r2()?.matches?"dark":"light"}const i2=typeof document<"u"?document:null;function yu(e=null,t={target:i2,actInsideInputWithModifier:!0}){const[n,r]=E.useState(!1),i=E.useRef(!1),o=E.useRef(new Set([])),[a,u]=E.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(h=>typeof h=="string").map(h=>h.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),p=m.reduce((h,g)=>h.concat(...g),[]);return[m,p]}return[[],[]]},[e]);return E.useEffect(()=>{const d=t?.target??i2,m=t?.actInsideInputWithModifier??!0;if(e!==null){const p=y=>{if(i.current=y.ctrlKey||y.metaKey||y.shiftKey||y.altKey,(!i.current||i.current&&!m)&&ET(y))return!1;const w=o2(y.code,u);if(o.current.add(y[w]),s2(a,o.current,!1)){const S=y.composedPath?.()?.[0]||y.target,_=S?.nodeName==="BUTTON"||S?.nodeName==="A";t.preventDefault!==!1&&(i.current||!_)&&y.preventDefault(),r(!0)}},h=y=>{const v=o2(y.code,u);s2(a,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(y[v]),y.key==="Meta"&&o.current.clear(),i.current=!1},g=()=>{o.current.clear(),r(!1)};return d?.addEventListener("keydown",p),d?.addEventListener("keyup",h),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",p),d?.removeEventListener("keyup",h),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,r]),n}function s2(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function o2(e,t){return t.includes(e)?"code":"key"}const YX=()=>{const e=In();return E.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:r}=e.getState();return r?r.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:o,maxZoom:a,panZoom:u}=e.getState(),d=wv(t,r,i,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:r,snapGrid:i,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},p=n.snapGrid??i,h=n.snapToGrid??o;return Tu(m,r,h,p)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:o}=r.getBoundingClientRect(),a=lm(t,n);return{x:a.x+i,y:a.y+o}}}),[])};function XT(e,t){const n=[],r=new Map,i=[];for(const o of e)if(o.type==="add"){i.push(o);continue}else if(o.type==="remove"||o.type==="replace")r.set(o.id,[o]);else{const a=r.get(o.id);a?a.push(o):r.set(o.id,[o])}for(const o of t){const a=r.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)XX(d,u);n.push(u)}return i.length&&i.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function XX(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 KT(e,t){return XT(e,t)}function KX(e,t){return XT(e,t)}function zo(e,t){return{id:e,type:"select",selected:t}}function Xa(e,t=new Set,n=!1){const r=[];for(const[i,o]of e){const a=t.has(i);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),r.push(zo(o.id,a)))}return r}function a2({items:e=[],lookup:t}){const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,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:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function l2(e){return{id:e.id,type:"remove"}}const c2=e=>vY(e),ZX=e=>vT(e);function ZT(e){return E.forwardRef(e)}function u2(e){const[t,n]=E.useState(BigInt(0)),[r]=E.useState(()=>QX(()=>n(i=>i+BigInt(1))));return m0(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function QX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const QT=E.createContext(null);function JX({children:e}){const t=In(),n=E.useCallback(u=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:p,onNodesChange:h,nodeLookup:g,fitViewQueued:y,onNodesChangeMiddlewareMap:v}=t.getState();let w=d;for(const _ of u)w=typeof _=="function"?_(w):_;let S=a2({items:w,lookup:g});for(const _ of v.values())S=_(S);p&&m(w),S.length>0?h?.(S):y&&window.requestAnimationFrame(()=>{const{fitViewQueued:_,nodes:k,setNodes:C}=t.getState();_&&C(k)})},[]),r=u2(n),i=E.useCallback(u=>{const{edges:d=[],setEdges:m,hasDefaultEdges:p,onEdgesChange:h,edgeLookup:g}=t.getState();let y=d;for(const v of u)y=typeof v=="function"?v(y):v;p?m(y):h&&h(a2({items:y,lookup:g}))},[]),o=u2(i),a=E.useMemo(()=>({nodeQueue:r,edgeQueue:o}),[]);return c.jsx(QT.Provider,{value:a,children:e})}function eK(){const e=E.useContext(QT);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const tK=e=>!!e.panZoom;function Rv(){const e=YX(),t=In(),n=eK(),r=Ft(tK),i=E.useMemo(()=>{const o=h=>t.getState().nodeLookup.get(h),a=h=>{n.nodeQueue.push(h)},u=h=>{n.edgeQueue.push(h)},d=h=>{const{nodeLookup:g,nodeOrigin:y}=t.getState(),v=c2(h)?h:g.get(h.id),w=v.parentId?CT(v.position,v.measured,v.parentId,g,y):v.position,S={...v,position:w,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return gl(S)},m=(h,g,y={replace:!1})=>{a(v=>v.map(w=>{if(w.id===h){const S=typeof g=="function"?g(w):g;return y.replace&&c2(S)?S:{...w,...S}}return w}))},p=(h,g,y={replace:!1})=>{u(v=>v.map(w=>{if(w.id===h){const S=typeof g=="function"?g(w):g;return y.replace&&ZX(S)?S:{...w,...S}}return w}))};return{getNodes:()=>t.getState().nodes.map(h=>({...h})),getNode:h=>o(h)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:h=[]}=t.getState();return h.map(g=>({...g}))},getEdge:h=>t.getState().edgeLookup.get(h),setNodes:a,setEdges:u,addNodes:h=>{const g=Array.isArray(h)?h:[h];n.nodeQueue.push(y=>[...y,...g])},addEdges:h=>{const g=Array.isArray(h)?h:[h];n.edgeQueue.push(y=>[...y,...g])},toObject:()=>{const{nodes:h=[],edges:g=[],transform:y}=t.getState(),[v,w,S]=y;return{nodes:h.map(_=>({..._})),edges:g.map(_=>({..._})),viewport:{x:v,y:w,zoom:S}}},deleteElements:async({nodes:h=[],edges:g=[]})=>{const{nodes:y,edges:v,onNodesDelete:w,onEdgesDelete:S,triggerNodeChanges:_,triggerEdgeChanges:k,onDelete:C,onBeforeDelete:N}=t.getState(),{nodes:O,edges:I}=await wY({nodesToRemove:h,edgesToRemove:g,nodes:y,edges:v,onBeforeDelete:N}),D=I.length>0,T=O.length>0;if(D){const L=I.map(l2);S?.(I),k(L)}if(T){const L=O.map(l2);w?.(O),_(L)}return(T||D)&&C?.({nodes:O,edges:I}),{deletedNodes:O,deletedEdges:I}},getIntersectingNodes:(h,g=!0,y)=>{const v=OC(h),w=v?h:d(h),S=y!==void 0;return w?(y||t.getState().nodes).filter(_=>{const k=t.getState().nodeLookup.get(_.id);if(k&&!v&&(_.id===h.id||!k.internals.positionAbsolute))return!1;const C=gl(S?_:k),N=gu(C,w);return g&&N>0||N>=C.width*C.height||N>=w.width*w.height}):[]},isNodeIntersecting:(h,g,y=!0)=>{const w=OC(h)?h:d(h);if(!w)return!1;const S=gu(w,g);return y&&S>0||S>=g.width*g.height||S>=w.width*w.height},updateNode:m,updateNodeData:(h,g,y={replace:!1})=>{m(h,v=>{const w=typeof g=="function"?g(v):g;return y.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},y)},updateEdge:p,updateEdgeData:(h,g,y={replace:!1})=>{p(h,v=>{const w=typeof g=="function"?g(v):g;return y.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},y)},getNodesBounds:h=>{const{nodeLookup:g,nodeOrigin:y}=t.getState();return bY(h,{nodeLookup:g,nodeOrigin:y})},getHandleConnections:({type:h,id:g,nodeId:y})=>Array.from(t.getState().connectionLookup.get(`${y}-${h}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:h,handleId:g,nodeId:y})=>Array.from(t.getState().connectionLookup.get(`${y}${h?g?`-${h}-${g}`:`-${h}`:""}`)?.values()??[]),fitView:async h=>{const g=t.getState().fitViewResolver??NY();return t.setState({fitViewQueued:!0,fitViewOptions:h,fitViewResolver:g}),n.nodeQueue.push(y=>[...y]),g.promise}}},[]);return E.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const d2=e=>e.selected,nK=typeof window<"u"?window:void 0;function rK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=In(),{deleteElements:r}=Rv(),i=yu(e,{actInsideInputWithModifier:!1}),o=yu(t,{target:nK});E.useEffect(()=>{if(i){const{edges:a,nodes:u}=n.getState();r({nodes:u.filter(d2),edges:a.filter(d2)}),n.setState({nodesSelectionActive:!1})}},[i]),E.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function iK(e){const t=In();E.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const r=Cv(e.current);(r.height===0||r.width===0)&&t.getState().onError?.("004",Ki.error004()),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Gm={position:"absolute",width:"100%",height:"100%",top:0,left:0},sK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function oK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:o=Ho.Free,zoomOnDoubleClick:a=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:m,minZoom:p,maxZoom:h,zoomActivationKeyCode:g,preventScrolling:y=!0,children:v,noWheelClassName:w,noPanClassName:S,onViewportChange:_,isControlledViewport:k,paneClickDistance:C,selectionOnDrag:N}){const O=In(),I=E.useRef(null),{userSelectionActive:D,lib:T,connectionInProgress:L}=Ft(sK,Nn),A=yu(g),M=E.useRef();iK(I);const $=E.useCallback(W=>{_?.({x:W[0],y:W[1],zoom:W[2]}),k||O.setState({transform:W})},[_,k]);return E.useEffect(()=>{if(I.current){M.current=dX({domNode:I.current,minZoom:p,maxZoom:h,translateExtent:m,viewport:d,onDraggingChange:H=>O.setState(V=>V.paneDragging===H?V:{paneDragging:H}),onPanZoomStart:(H,V)=>{const{onViewportChangeStart:Y,onMoveStart:Z}=O.getState();Z?.(H,V),Y?.(V)},onPanZoom:(H,V)=>{const{onViewportChange:Y,onMove:Z}=O.getState();Z?.(H,V),Y?.(V)},onPanZoomEnd:(H,V)=>{const{onViewportChangeEnd:Y,onMoveEnd:Z}=O.getState();Z?.(H,V),Y?.(V)}});const{x:W,y:B,zoom:U}=M.current.getViewport();return O.setState({panZoom:M.current,transform:[W,B,U],domNode:I.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),E.useEffect(()=>{M.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:u,zoomActivationKeyPressed:A,preventScrolling:y,noPanClassName:S,userSelectionActive:D,noWheelClassName:w,lib:T,onTransformChange:$,connectionInProgress:L,selectionOnDrag:N,paneClickDistance:C})},[e,t,n,r,i,o,a,u,A,y,S,D,w,T,$,L,N,C]),c.jsx("div",{className:"react-flow__renderer",ref:I,style:Gm,children:v})}const aK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function lK(){const{userSelectionActive:e,userSelectionRect:t}=Ft(aK,Nn);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 yx=(e,t)=>n=>{n.target===t.current&&e?.(n)},cK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function uK({isSelecting:e,selectionKeyPressed:t,selectionMode:n=pu.Full,panOnDrag:r,paneClickDistance:i,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:u,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:p,onPaneMouseEnter:h,onPaneMouseMove:g,onPaneMouseLeave:y,children:v}){const w=In(),{userSelectionActive:S,elementsSelectable:_,dragging:k,connectionInProgress:C}=Ft(cK,Nn),N=_&&(e||S),O=E.useRef(null),I=E.useRef(),D=E.useRef(new Set),T=E.useRef(new Set),L=E.useRef(!1),A=Y=>{if(L.current||C){L.current=!1;return}d?.(Y),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})},M=Y=>{if(Array.isArray(r)&&r?.includes(2)){Y.preventDefault();return}m?.(Y)},$=p?Y=>p(Y):void 0,W=Y=>{L.current&&(Y.stopPropagation(),L.current=!1)},B=Y=>{const{domNode:Z}=w.getState();if(I.current=Z?.getBoundingClientRect(),!I.current)return;const q=Y.target===O.current;if(!q&&!!Y.target.closest(".nokey")||!e||!(o&&q||t)||Y.button!==0||!Y.isPrimary)return;Y.target?.setPointerCapture?.(Y.pointerId),L.current=!1;const{x:P,y:X}=Ii(Y.nativeEvent,I.current);w.setState({userSelectionRect:{width:0,height:0,startX:P,startY:X,x:P,y:X}}),q||(Y.stopPropagation(),Y.preventDefault())},U=Y=>{const{userSelectionRect:Z,transform:q,nodeLookup:G,edgeLookup:J,connectionLookup:P,triggerNodeChanges:X,triggerEdgeChanges:ee,defaultEdgeOptions:te,resetSelectedElements:re}=w.getState();if(!I.current||!Z)return;const{x:oe,y:de}=Ii(Y.nativeEvent,I.current),{startX:se,startY:je}=Z;if(!L.current){const Ye=t?0:i;if(Math.hypot(oe-se,de-je)<=Ye)return;re(),a?.(Y)}L.current=!0;const we={startX:se,startY:je,x:oeYe.id)),T.current=new Set;const Ge=te?.selectable??!0;for(const Ye of D.current){const yt=P.get(Ye);if(yt)for(const{edgeId:Vt}of yt.values()){const bt=J.get(Vt);bt&&(bt.selectable??Ge)&&T.current.add(Vt)}}if(!LC(Ce,D.current)){const Ye=Xa(G,D.current,!0);X(Ye)}if(!LC(Be,T.current)){const Ye=Xa(J,T.current);ee(Ye)}w.setState({userSelectionRect:we,userSelectionActive:!0,nodesSelectionActive:!1})},H=Y=>{Y.button===0&&(Y.target?.releasePointerCapture?.(Y.pointerId),!S&&Y.target===O.current&&w.getState().userSelectionRect&&A?.(Y),w.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(u?.(Y),w.setState({nodesSelectionActive:D.current.size>0})))},V=r===!0||Array.isArray(r)&&r.includes(0);return c.jsxs("div",{className:Zn(["react-flow__pane",{draggable:V,dragging:k,selection:e}]),onClick:N?void 0:yx(A,O),onContextMenu:yx(M,O),onWheel:yx($,O),onPointerEnter:N?void 0:h,onPointerMove:N?U:g,onPointerUp:N?H:void 0,onPointerDownCapture:N?B:void 0,onClickCapture:N?W:void 0,onPointerLeave:y,ref:O,style:Gm,children:[v,c.jsx(lK,{})]})}function h0({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:u,onError:d}=t.getState(),m=u.get(e);if(!m){d?.("012",Ki.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function JT({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:o,nodeClickDistance:a}){const u=In(),[d,m]=E.useState(!1),p=E.useRef();return E.useEffect(()=>{p.current=ZY({getStoreItems:()=>u.getState(),onNodeMouseDown:h=>{h0({id:h,store:u,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),E.useEffect(()=>{if(!(t||!e.current||!p.current))return p.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:o,nodeId:i,nodeClickDistance:a}),()=>{p.current?.destroy()}},[n,r,t,o,e,i,a]),d}const dK=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function eR(){const e=In();return E.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:o,nodesDraggable:a,onError:u,updateNodePositions:d,nodeLookup:m,nodeOrigin:p}=e.getState(),h=new Map,g=dK(a),y=i?o[0]:5,v=i?o[1]:5,w=n.direction.x*y*n.factor,S=n.direction.y*v*n.factor;for(const[,_]of m){if(!g(_))continue;let k={x:_.internals.positionAbsolute.x+w,y:_.internals.positionAbsolute.y+S};i&&(k=Iu(k,o));const{position:C,positionAbsolute:N}=bT({nodeId:_.id,nextPosition:k,nodeLookup:m,nodeExtent:r,nodeOrigin:p,onError:u});_.position=C,_.internals.positionAbsolute=N,h.set(_.id,_)}d(h)},[])}const Av=E.createContext(null),fK=Av.Provider;Av.Consumer;const tR=()=>E.useContext(Av),mK=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),hK=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:o,connection:a}=r,{fromHandle:u,toHandle:d,isValid:m}=a,p=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:u?.nodeId===e&&u?.id===t&&u?.type===n,connectingTo:p,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:o===hl.Strict?u?.type!==n:e!==u?.nodeId||t!==u?.id,connectionInProcess:!!u,clickConnectionInProcess:!!i,valid:p&&m}};function pK({type:e="source",position:t=at.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:o=!0,id:a,onConnect:u,children:d,className:m,onMouseDown:p,onTouchStart:h,...g},y){const v=a||null,w=e==="target",S=In(),_=tR(),{connectOnClick:k,noPanClassName:C,rfId:N}=Ft(mK,Nn),{connectingFrom:O,connectingTo:I,clickConnecting:D,isPossibleEndHandle:T,connectionInProcess:L,clickConnectionInProcess:A,valid:M}=Ft(hK(_,v,e),Nn);_||S.getState().onError?.("010",Ki.error010());const $=U=>{const{defaultEdgeOptions:H,onConnect:V,hasDefaultEdges:Y}=S.getState(),Z={...H,...U};if(Y){const{edges:q,setEdges:G}=S.getState();G(OY(Z,q))}V?.(Z),u?.(Z)},W=U=>{if(!_)return;const H=NT(U.nativeEvent);if(i&&(H&&U.button===0||!H)){const V=S.getState();f0.onPointerDown(U.nativeEvent,{handleDomNode:U.currentTarget,autoPanOnConnect:V.autoPanOnConnect,connectionMode:V.connectionMode,connectionRadius:V.connectionRadius,domNode:V.domNode,nodeLookup:V.nodeLookup,lib:V.lib,isTarget:w,handleId:v,nodeId:_,flowId:V.rfId,panBy:V.panBy,cancelConnection:V.cancelConnection,onConnectStart:V.onConnectStart,onConnectEnd:(...Y)=>S.getState().onConnectEnd?.(...Y),updateConnection:V.updateConnection,onConnect:$,isValidConnection:n||((...Y)=>S.getState().isValidConnection?.(...Y)??!0),getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:V.autoPanSpeed,dragThreshold:V.connectionDragThreshold})}H?p?.(U):h?.(U)},B=U=>{const{onClickConnectStart:H,onClickConnectEnd:V,connectionClickStartHandle:Y,connectionMode:Z,isValidConnection:q,lib:G,rfId:J,nodeLookup:P,connection:X}=S.getState();if(!_||!Y&&!i)return;if(!Y){H?.(U.nativeEvent,{nodeId:_,handleId:v,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:_,type:e,id:v}});return}const ee=jT(U.target),te=n||q,{connection:re,isValid:oe}=f0.isValid(U.nativeEvent,{handle:{nodeId:_,id:v,type:e},connectionMode:Z,fromNodeId:Y.nodeId,fromHandleId:Y.id||null,fromType:Y.type,isValidConnection:te,flowId:J,doc:ee,lib:G,nodeLookup:P});oe&&re&&$(re);const de=structuredClone(X);delete de.inProgress,de.toPosition=de.toHandle?de.toHandle.position:null,V?.(U,de),S.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":v,"data-nodeid":_,"data-handlepos":t,"data-id":`${N}-${_}-${v}-${e}`,className:Zn(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",C,m,{source:!w,target:w,connectable:r,connectablestart:i,connectableend:o,clickconnecting:D,connectingfrom:O,connectingto:I,valid:M,connectionindicator:r&&(!L||T)&&(L||A?o:i)}]),onMouseDown:W,onTouchStart:W,onClick:k?B:void 0,ref:y,...g,children:d})}const vl=E.memo(ZT(pK));function gK({data:e,isConnectable:t,sourcePosition:n=at.Bottom}){return c.jsxs(c.Fragment,{children:[e?.label,c.jsx(vl,{type:"source",position:n,isConnectable:t})]})}function xK({data:e,isConnectable:t,targetPosition:n=at.Top,sourcePosition:r=at.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(vl,{type:"target",position:n,isConnectable:t}),e?.label,c.jsx(vl,{type:"source",position:r,isConnectable:t})]})}function yK(){return null}function vK({data:e,isConnectable:t,targetPosition:n=at.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(vl,{type:"target",position:n,isConnectable:t}),e?.label]})}const cm={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},f2={input:gK,default:xK,output:vK,group:yK};function bK(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 _K=e=>{const{width:t,height:n,x:r,y:i}=Nu(e.nodeLookup,{filter:o=>!!o.selected});return{width:Ni(t)?t:null,height:Ni(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function kK({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=In(),{width:i,height:o,transformString:a,userSelectionActive:u}=Ft(_K,Nn),d=eR(),m=E.useRef(null);E.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const p=!u&&i!==null&&o!==null;if(JT({nodeRef:m,disabled:!p}),!p)return null;const h=e?y=>{const v=r.getState().nodes.filter(w=>w.selected);e(y,v)}:void 0,g=y=>{Object.prototype.hasOwnProperty.call(cm,y.key)&&(y.preventDefault(),d({direction:cm[y.key],factor:y.shiftKey?4:1}))};return c.jsx("div",{className:Zn(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:c.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:h,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:i,height:o}})})}const m2=typeof window<"u"?window:void 0,SK=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function nR({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:u,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:p,selectionMode:h,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:v,panActivationKeyCode:w,zoomActivationKeyCode:S,elementsSelectable:_,zoomOnScroll:k,zoomOnPinch:C,panOnScroll:N,panOnScrollSpeed:O,panOnScrollMode:I,zoomOnDoubleClick:D,panOnDrag:T,defaultViewport:L,translateExtent:A,minZoom:M,maxZoom:$,preventScrolling:W,onSelectionContextMenu:B,noWheelClassName:U,noPanClassName:H,disableKeyboardA11y:V,onViewportChange:Y,isControlledViewport:Z}){const{nodesSelectionActive:q,userSelectionActive:G}=Ft(SK,Nn),J=yu(m,{target:m2}),P=yu(w,{target:m2}),X=P||T,ee=P||N,te=p&&X!==!0,re=J||G||te;return rK({deleteKeyCode:d,multiSelectionKeyCode:v}),c.jsx(oK,{onPaneContextMenu:o,elementsSelectable:_,zoomOnScroll:k,zoomOnPinch:C,panOnScroll:ee,panOnScrollSpeed:O,panOnScrollMode:I,zoomOnDoubleClick:D,panOnDrag:!J&&X,defaultViewport:L,translateExtent:A,minZoom:M,maxZoom:$,zoomActivationKeyCode:S,preventScrolling:W,noWheelClassName:U,noPanClassName:H,onViewportChange:Y,isControlledViewport:Z,paneClickDistance:u,selectionOnDrag:te,children:c.jsxs(uK,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:X,isSelecting:!!re,selectionMode:h,selectionKeyPressed:J,paneClickDistance:u,selectionOnDrag:te,children:[e,q&&c.jsx(kK,{onSelectionContextMenu:B,noPanClassName:H,disableKeyboardA11y:V})]})})}nR.displayName="FlowRenderer";const wK=E.memo(nR),CK=e=>t=>e?Sv(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 jK(e){return Ft(E.useCallback(CK(e),[e]),Nn)}const EK=e=>e.updateNodeInternals;function NK(){const e=Ft(EK),[t]=E.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const o=i.target.getAttribute("data-id");r.set(o,{id:o,nodeElement:i.target,force:!0})}),e(r)}));return E.useEffect(()=>()=>{t?.disconnect()},[t]),t}function IK({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=In(),o=E.useRef(null),a=E.useRef(null),u=E.useRef(e.sourcePosition),d=E.useRef(e.targetPosition),m=E.useRef(t),p=n&&!!e.internals.handleBounds;return E.useEffect(()=>{o.current&&!e.hidden&&(!p||a.current!==o.current)&&(a.current&&r?.unobserve(a.current),r?.observe(o.current),a.current=o.current)},[p,e.hidden]),E.useEffect(()=>()=>{a.current&&(r?.unobserve(a.current),a.current=null)},[]),E.useEffect(()=>{if(o.current){const h=m.current!==t,g=u.current!==e.sourcePosition,y=d.current!==e.targetPosition;(h||g||y)&&(m.current=t,u.current=e.sourcePosition,d.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function TK({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:o,onDoubleClick:a,nodesDraggable:u,elementsSelectable:d,nodesConnectable:m,nodesFocusable:p,resizeObserver:h,noDragClassName:g,noPanClassName:y,disableKeyboardA11y:v,rfId:w,nodeTypes:S,nodeClickDistance:_,onError:k}){const{node:C,internals:N,isParent:O}=Ft(oe=>{const de=oe.nodeLookup.get(e),se=oe.parentLookup.has(e);return{node:de,internals:de.internals,isParent:se}},Nn);let I=C.type||"default",D=S?.[I]||f2[I];D===void 0&&(k?.("003",Ki.error003(I)),I="default",D=S?.default||f2.default);const T=!!(C.draggable||u&&typeof C.draggable>"u"),L=!!(C.selectable||d&&typeof C.selectable>"u"),A=!!(C.connectable||m&&typeof C.connectable>"u"),M=!!(C.focusable||p&&typeof C.focusable>"u"),$=In(),W=wT(C),B=IK({node:C,nodeType:I,hasDimensions:W,resizeObserver:h}),U=JT({nodeRef:B,disabled:C.hidden||!T,noDragClassName:g,handleSelector:C.dragHandle,nodeId:e,isSelectable:L,nodeClickDistance:_}),H=eR();if(C.hidden)return null;const V=js(C),Y=bK(C),Z=L||T||t||n||r||i,q=n?oe=>n(oe,{...N.userNode}):void 0,G=r?oe=>r(oe,{...N.userNode}):void 0,J=i?oe=>i(oe,{...N.userNode}):void 0,P=o?oe=>o(oe,{...N.userNode}):void 0,X=a?oe=>a(oe,{...N.userNode}):void 0,ee=oe=>{const{selectNodesOnDrag:de,nodeDragThreshold:se}=$.getState();L&&(!de||!T||se>0)&&h0({id:e,store:$,nodeRef:B}),t&&t(oe,{...N.userNode})},te=oe=>{if(!(ET(oe.nativeEvent)||v)){if(pT.includes(oe.key)&&L){const de=oe.key==="Escape";h0({id:e,store:$,unselect:de,nodeRef:B})}else if(T&&C.selected&&Object.prototype.hasOwnProperty.call(cm,oe.key)){oe.preventDefault();const{ariaLabelConfig:de}=$.getState();$.setState({ariaLiveMessage:de["node.a11yDescription.ariaLiveMessage"]({direction:oe.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),H({direction:cm[oe.key],factor:oe.shiftKey?4:1})}}},re=()=>{if(v||!B.current?.matches(":focus-visible"))return;const{transform:oe,width:de,height:se,autoPanOnNodeFocus:je,setCenter:we}=$.getState();if(!je)return;Sv(new Map([[e,C]]),{x:0,y:0,width:de,height:se},oe,!0).length>0||we(C.position.x+V.width/2,C.position.y+V.height/2,{zoom:oe[2]})};return c.jsx("div",{className:Zn(["react-flow__node",`react-flow__node-${I}`,{[y]:T},C.className,{selected:C.selected,selectable:L,parent:O,draggable:T,dragging:U}]),ref:B,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:Z?"all":"none",visibility:W?"visible":"hidden",...C.style,...Y},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:q,onMouseMove:G,onMouseLeave:J,onContextMenu:P,onClick:ee,onDoubleClick:X,onKeyDown:M?te:void 0,tabIndex:M?0:void 0,onFocus:M?re:void 0,role:C.ariaRole??(M?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${qT}-${w}`,"aria-label":C.ariaLabel,...C.domAttributes,children:c.jsx(fK,{value:e,children:c.jsx(D,{id:e,data:C.data,type:I,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:C.selected??!1,selectable:L,draggable:T,deletable:C.deletable??!0,isConnectable:A,sourcePosition:C.sourcePosition,targetPosition:C.targetPosition,dragging:U,dragHandle:C.dragHandle,zIndex:N.z,parentId:C.parentId,...V})})})}var RK=E.memo(TK);const AK=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function rR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:o}=Ft(AK,Nn),a=jK(e.onlyRenderVisibleElements),u=NK();return c.jsx("div",{className:"react-flow__nodes",style:Gm,children:a.map(d=>c.jsx(RK,{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:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}rR.displayName="NodeRenderer";const MK=E.memo(rR);function DK(e){return Ft(E.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const o=n.nodeLookup.get(i.source),a=n.nodeLookup.get(i.target);o&&a&&AY({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),Nn)}const OK=({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"})},LK=({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"})},h2={[om.Arrow]:OK,[om.ArrowClosed]:LK};function zK(e){const t=In();return E.useMemo(()=>Object.prototype.hasOwnProperty.call(h2,e)?h2[e]:(t.getState().onError?.("009",Ki.error009(e)),null),[e])}const PK=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:u="auto-start-reverse"})=>{const d=zK(t);return d?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:u,refX:"0",refY:"0",children:c.jsx(d,{color:n,strokeWidth:a})}):null},iR=({defaultColor:e,rfId:t})=>{const n=Ft(o=>o.edges),r=Ft(o=>o.defaultEdgeOptions),i=E.useMemo(()=>$Y(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?c.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:c.jsx("defs",{children:i.map(o=>c.jsx(PK,{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};iR.displayName="MarkerDefinitions";var BK=E.memo(iR);function sR({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:u=2,children:d,className:m,...p}){const[h,g]=E.useState({x:1,y:0,width:0,height:0}),y=Zn(["react-flow__edge-textwrapper",m]),v=E.useRef(null);return E.useEffect(()=>{if(v.current){const w=v.current.getBBox();g({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?c.jsxs("g",{transform:`translate(${e-h.width/2} ${t-h.height/2})`,className:y,visibility:h.width?"visible":"hidden",...p,children:[i&&c.jsx("rect",{width:h.width+2*a[0],x:-a[0],y:-a[1],height:h.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:u,ry:u}),c.jsx("text",{className:"react-flow__edge-text",y:h.height/2,dy:"0.3em",ref:v,style:r,children:n}),d]}):null}sR.displayName="EdgeText";const $K=E.memo(sR);function qm({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d,interactionWidth:m=20,...p}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...p,d:e,fill:"none",className:Zn(["react-flow__edge-path",p.className])}),m?c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,r&&Ni(t)&&Ni(n)?c.jsx($K,{x:t,y:n,label:r,labelStyle:i,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d}):null]})}function p2({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===at.Left||e===at.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function oR({sourceX:e,sourceY:t,sourcePosition:n=at.Bottom,targetX:r,targetY:i,targetPosition:o=at.Top}){const[a,u]=p2({pos:n,x1:e,y1:t,x2:r,y2:i}),[d,m]=p2({pos:o,x1:r,y1:i,x2:e,y2:t}),[p,h,g,y]=IT({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:u,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${u} ${d},${m} ${r},${i}`,p,h,g,y]}function aR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,sourcePosition:a,targetPosition:u,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:_})=>{const[k,C,N]=oR({sourceX:n,sourceY:r,sourcePosition:a,targetX:i,targetY:o,targetPosition:u}),O=e.isInternal?void 0:t;return c.jsx(qm,{id:O,path:k,labelX:C,labelY:N,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:_})})}const HK=aR({isInternal:!1}),lR=aR({isInternal:!0});HK.displayName="SimpleBezierEdge";lR.displayName="SimpleBezierEdgeInternal";function cR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,sourcePosition:y=at.Bottom,targetPosition:v=at.Top,markerEnd:w,markerStart:S,pathOptions:_,interactionWidth:k})=>{const[C,N,O]=c0({sourceX:n,sourceY:r,sourcePosition:y,targetX:i,targetY:o,targetPosition:v,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),I=e.isInternal?void 0:t;return c.jsx(qm,{id:I,path:C,labelX:N,labelY:O,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:S,interactionWidth:k})})}const uR=cR({isInternal:!1}),dR=cR({isInternal:!0});uR.displayName="SmoothStepEdge";dR.displayName="SmoothStepEdgeInternal";function fR(e){return E.memo(({id:t,...n})=>{const r=e.isInternal?void 0:t;return c.jsx(uR,{...n,id:r,pathOptions:E.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const FK=fR({isInternal:!1}),mR=fR({isInternal:!0});FK.displayName="StepEdge";mR.displayName="StepEdgeInternal";function hR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:v,interactionWidth:w})=>{const[S,_,k]=AT({sourceX:n,sourceY:r,targetX:i,targetY:o}),C=e.isInternal?void 0:t;return c.jsx(qm,{id:C,path:S,labelX:_,labelY:k,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:v,interactionWidth:w})})}const VK=hR({isInternal:!1}),pR=hR({isInternal:!0});VK.displayName="StraightEdge";pR.displayName="StraightEdgeInternal";function gR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,sourcePosition:a=at.Bottom,targetPosition:u=at.Top,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,pathOptions:_,interactionWidth:k})=>{const[C,N,O]=TT({sourceX:n,sourceY:r,sourcePosition:a,targetX:i,targetY:o,targetPosition:u,curvature:_?.curvature}),I=e.isInternal?void 0:t;return c.jsx(qm,{id:I,path:C,labelX:N,labelY:O,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:k})})}const UK=gR({isInternal:!1}),xR=gR({isInternal:!0});UK.displayName="BezierEdge";xR.displayName="BezierEdgeInternal";const g2={default:xR,straight:pR,step:mR,smoothstep:dR,simplebezier:lR},x2={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},GK=(e,t,n)=>n===at.Left?e-t:n===at.Right?e+t:e,qK=(e,t,n)=>n===at.Top?e-t:n===at.Bottom?e+t:e,y2="react-flow__edgeupdater";function v2({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:o,onMouseOut:a,type:u}){return c.jsx("circle",{onMouseDown:i,onMouseEnter:o,onMouseOut:a,className:Zn([y2,`${y2}-${u}`]),cx:GK(t,r,e),cy:qK(n,r,e),r,stroke:"transparent",fill:"transparent"})}function WK({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:o,targetY:a,sourcePosition:u,targetPosition:d,onReconnect:m,onReconnectStart:p,onReconnectEnd:h,setReconnecting:g,setUpdateHover:y}){const v=In(),w=(N,O)=>{if(N.button!==0)return;const{autoPanOnConnect:I,domNode:D,connectionMode:T,connectionRadius:L,lib:A,onConnectStart:M,cancelConnection:$,nodeLookup:W,rfId:B,panBy:U,updateConnection:H}=v.getState(),V=O.type==="target",Y=(G,J)=>{g(!1),h?.(G,n,O.type,J)},Z=G=>m?.(n,G),q=(G,J)=>{g(!0),p?.(N,n,O.type),M?.(G,J)};f0.onPointerDown(N.nativeEvent,{autoPanOnConnect:I,connectionMode:T,connectionRadius:L,domNode:D,handleId:O.id,nodeId:O.nodeId,nodeLookup:W,isTarget:V,edgeUpdaterType:O.type,lib:A,flowId:B,cancelConnection:$,panBy:U,isValidConnection:(...G)=>v.getState().isValidConnection?.(...G)??!0,onConnect:Z,onConnectStart:q,onConnectEnd:(...G)=>v.getState().onConnectEnd?.(...G),onReconnectEnd:Y,updateConnection:H,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},S=N=>w(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),_=N=>w(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),k=()=>y(!0),C=()=>y(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(v2,{position:u,centerX:r,centerY:i,radius:t,onMouseDown:S,onMouseEnter:k,onMouseOut:C,type:"source"}),(e===!0||e==="target")&&c.jsx(v2,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:_,onMouseEnter:k,onMouseOut:C,type:"target"})]})}function YK({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,rfId:v,edgeTypes:w,noPanClassName:S,onError:_,disableKeyboardA11y:k}){let C=Ft(we=>we.edgeLookup.get(e));const N=Ft(we=>we.defaultEdgeOptions);C=N?{...N,...C}:C;let O=C.type||"default",I=w?.[O]||g2[O];I===void 0&&(_?.("011",Ki.error011(O)),O="default",I=w?.default||g2.default);const D=!!(C.focusable||t&&typeof C.focusable>"u"),T=typeof h<"u"&&(C.reconnectable||n&&typeof C.reconnectable>"u"),L=!!(C.selectable||r&&typeof C.selectable>"u"),A=E.useRef(null),[M,$]=E.useState(!1),[W,B]=E.useState(!1),U=In(),{zIndex:H,sourceX:V,sourceY:Y,targetX:Z,targetY:q,sourcePosition:G,targetPosition:J}=Ft(E.useCallback(we=>{const Ce=we.nodeLookup.get(C.source),Be=we.nodeLookup.get(C.target);if(!Ce||!Be)return{zIndex:C.zIndex,...x2};const Ge=BY({id:e,sourceNode:Ce,targetNode:Be,sourceHandle:C.sourceHandle||null,targetHandle:C.targetHandle||null,connectionMode:we.connectionMode,onError:_});return{zIndex:RY({selected:C.selected,zIndex:C.zIndex,sourceNode:Ce,targetNode:Be,elevateOnSelect:we.elevateEdgesOnSelect,zIndexMode:we.zIndexMode}),...Ge||x2}},[C.source,C.target,C.sourceHandle,C.targetHandle,C.selected,C.zIndex]),Nn),P=E.useMemo(()=>C.markerStart?`url('#${u0(C.markerStart,v)}')`:void 0,[C.markerStart,v]),X=E.useMemo(()=>C.markerEnd?`url('#${u0(C.markerEnd,v)}')`:void 0,[C.markerEnd,v]);if(C.hidden||V===null||Y===null||Z===null||q===null)return null;const ee=we=>{const{addSelectedEdges:Ce,unselectNodesAndEdges:Be,multiSelectionActive:Ge}=U.getState();L&&(U.setState({nodesSelectionActive:!1}),C.selected&&Ge?(Be({nodes:[],edges:[C]}),A.current?.blur()):Ce([e])),i&&i(we,C)},te=o?we=>{o(we,{...C})}:void 0,re=a?we=>{a(we,{...C})}:void 0,oe=u?we=>{u(we,{...C})}:void 0,de=d?we=>{d(we,{...C})}:void 0,se=m?we=>{m(we,{...C})}:void 0,je=we=>{if(!k&&pT.includes(we.key)&&L){const{unselectNodesAndEdges:Ce,addSelectedEdges:Be}=U.getState();we.key==="Escape"?(A.current?.blur(),Ce({edges:[C]})):Be([e])}};return c.jsx("svg",{style:{zIndex:H},children:c.jsxs("g",{className:Zn(["react-flow__edge",`react-flow__edge-${O}`,C.className,S,{selected:C.selected,animated:C.animated,inactive:!L&&!i,updating:M,selectable:L}]),onClick:ee,onDoubleClick:te,onContextMenu:re,onMouseEnter:oe,onMouseMove:de,onMouseLeave:se,onKeyDown:D?je:void 0,tabIndex:D?0:void 0,role:C.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":C.ariaLabel===null?void 0:C.ariaLabel||`Edge from ${C.source} to ${C.target}`,"aria-describedby":D?`${WT}-${v}`:void 0,ref:A,...C.domAttributes,children:[!W&&c.jsx(I,{id:e,source:C.source,target:C.target,type:C.type,selected:C.selected,animated:C.animated,selectable:L,deletable:C.deletable??!0,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,sourceX:V,sourceY:Y,targetX:Z,targetY:q,sourcePosition:G,targetPosition:J,data:C.data,style:C.style,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerStart:P,markerEnd:X,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth}),T&&c.jsx(WK,{edge:C,isReconnectable:T,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,sourceX:V,sourceY:Y,targetX:Z,targetY:q,sourcePosition:G,targetPosition:J,setUpdateHover:$,setReconnecting:B})]})})}var XK=E.memo(YK);const KK=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function yR({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:u,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:p,reconnectRadius:h,onEdgeDoubleClick:g,onReconnectStart:y,onReconnectEnd:v,disableKeyboardA11y:w}){const{edgesFocusable:S,edgesReconnectable:_,elementsSelectable:k,onError:C}=Ft(KK,Nn),N=DK(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(BK,{defaultColor:e,rfId:n}),N.map(O=>c.jsx(XK,{id:O,edgesFocusable:S,edgesReconnectable:_,elementsSelectable:k,noPanClassName:i,onReconnect:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,onClick:p,reconnectRadius:h,onDoubleClick:g,onReconnectStart:y,onReconnectEnd:v,rfId:n,onError:C,edgeTypes:r,disableKeyboardA11y:w},O))]})}yR.displayName="EdgeRenderer";const ZK=E.memo(yR),QK=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function JK({children:e}){const t=Ft(QK);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function eZ(e){const t=Rv(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const tZ=e=>e.panZoom?.syncViewport;function nZ(e){const t=Ft(tZ),n=In();return E.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function rZ(e){return e.connection.inProgress?{...e.connection,to:Tu(e.connection.to,e.transform)}:{...e.connection}}function iZ(e){return rZ}function sZ(e){const t=iZ();return Ft(t,Nn)}const oZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function aZ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:o,height:a,isValid:u,inProgress:d}=Ft(oZ,Nn);return!(o&&i&&d)?null:c.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:Zn(["react-flow__connection",yT(u)]),children:c.jsx(vR,{style:t,type:n,CustomComponent:r,isValid:u})})})}const vR=({style:e,type:t=so.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:o,fromNode:a,fromHandle:u,fromPosition:d,to:m,toNode:p,toHandle:h,toPosition:g,pointer:y}=sZ();if(!i)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:yT(r),toNode:p,toHandle:h,pointer:y});let v="";const w={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case so.Bezier:[v]=TT(w);break;case so.SimpleBezier:[v]=oR(w);break;case so.Step:[v]=c0({...w,borderRadius:0});break;case so.SmoothStep:[v]=c0(w);break;default:[v]=AT(w)}return c.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};vR.displayName="ConnectionLine";const lZ={};function b2(e=lZ){E.useRef(e),In(),E.useEffect(()=>{},[e])}function cZ(){In(),E.useRef(!1),E.useEffect(()=>{},[])}function bR({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:p,onSelectionContextMenu:h,onSelectionStart:g,onSelectionEnd:y,connectionLineType:v,connectionLineStyle:w,connectionLineComponent:S,connectionLineContainerStyle:_,selectionKeyCode:k,selectionOnDrag:C,selectionMode:N,multiSelectionKeyCode:O,panActivationKeyCode:I,zoomActivationKeyCode:D,deleteKeyCode:T,onlyRenderVisibleElements:L,elementsSelectable:A,defaultViewport:M,translateExtent:$,minZoom:W,maxZoom:B,preventScrolling:U,defaultMarkerColor:H,zoomOnScroll:V,zoomOnPinch:Y,panOnScroll:Z,panOnScrollSpeed:q,panOnScrollMode:G,zoomOnDoubleClick:J,panOnDrag:P,onPaneClick:X,onPaneMouseEnter:ee,onPaneMouseMove:te,onPaneMouseLeave:re,onPaneScroll:oe,onPaneContextMenu:de,paneClickDistance:se,nodeClickDistance:je,onEdgeContextMenu:we,onEdgeMouseEnter:Ce,onEdgeMouseMove:Be,onEdgeMouseLeave:Ge,reconnectRadius:Ye,onReconnect:yt,onReconnectStart:Vt,onReconnectEnd:bt,noDragClassName:vt,noWheelClassName:me,noPanClassName:Oe,disableKeyboardA11y:rt,nodeExtent:Qe,rfId:Je,viewport:fe,onViewportChange:be}){return b2(e),b2(t),cZ(),eZ(n),nZ(fe),c.jsx(wK,{onPaneClick:X,onPaneMouseEnter:ee,onPaneMouseMove:te,onPaneMouseLeave:re,onPaneContextMenu:de,onPaneScroll:oe,paneClickDistance:se,deleteKeyCode:T,selectionKeyCode:k,selectionOnDrag:C,selectionMode:N,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:O,panActivationKeyCode:I,zoomActivationKeyCode:D,elementsSelectable:A,zoomOnScroll:V,zoomOnPinch:Y,zoomOnDoubleClick:J,panOnScroll:Z,panOnScrollSpeed:q,panOnScrollMode:G,panOnDrag:P,defaultViewport:M,translateExtent:$,minZoom:W,maxZoom:B,onSelectionContextMenu:h,preventScrolling:U,noDragClassName:vt,noWheelClassName:me,noPanClassName:Oe,disableKeyboardA11y:rt,onViewportChange:be,isControlledViewport:!!fe,children:c.jsxs(JK,{children:[c.jsx(ZK,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:a,onReconnect:yt,onReconnectStart:Vt,onReconnectEnd:bt,onlyRenderVisibleElements:L,onEdgeContextMenu:we,onEdgeMouseEnter:Ce,onEdgeMouseMove:Be,onEdgeMouseLeave:Ge,reconnectRadius:Ye,defaultMarkerColor:H,noPanClassName:Oe,disableKeyboardA11y:rt,rfId:Je}),c.jsx(aZ,{style:w,type:v,component:S,containerStyle:_}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(MK,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:o,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:p,nodeClickDistance:je,onlyRenderVisibleElements:L,noPanClassName:Oe,noDragClassName:vt,disableKeyboardA11y:rt,nodeExtent:Qe,rfId:Je}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}bR.displayName="GraphView";const uZ=E.memo(bR),_2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d=.5,maxZoom:m=2,nodeOrigin:p,nodeExtent:h,zIndexMode:g="basic"}={})=>{const y=new Map,v=new Map,w=new Map,S=new Map,_=r??t??[],k=n??e??[],C=p??[0,0],N=h??hu;OT(w,S,_);const{nodesInitialized:O}=d0(k,y,v,{nodeOrigin:C,nodeExtent:N,zIndexMode:g});let I=[0,0,1];if(a&&i&&o){const D=Nu(y,{filter:M=>!!((M.width||M.initialWidth)&&(M.height||M.initialHeight))}),{x:T,y:L,zoom:A}=wv(D,i,o,d,m,u?.padding??.1);I=[T,L,A]}return{rfId:"1",width:i??0,height:o??0,transform:I,nodes:k,nodesInitialized:O,nodeLookup:y,parentLookup:v,edges:_,edgeLookup:S,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:hu,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:hl.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:C,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:{...xT},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:CY,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:gT,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},dZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:p,nodeExtent:h,zIndexMode:g})=>IX((y,v)=>{async function w(){const{nodeLookup:S,panZoom:_,fitViewOptions:k,fitViewResolver:C,width:N,height:O,minZoom:I,maxZoom:D}=v();_&&(await SY({nodes:S,width:N,height:O,panZoom:_,minZoom:I,maxZoom:D},k),C?.resolve(!0),y({fitViewResolver:null}))}return{..._2({nodes:e,edges:t,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:p,nodeExtent:h,defaultNodes:n,defaultEdges:r,zIndexMode:g}),setNodes:S=>{const{nodeLookup:_,parentLookup:k,nodeOrigin:C,elevateNodesOnSelect:N,fitViewQueued:O,zIndexMode:I,nodesSelectionActive:D}=v(),{nodesInitialized:T,hasSelectedNodes:L}=d0(S,_,k,{nodeOrigin:C,nodeExtent:h,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:I}),A=D&&L;O&&T?(w(),y({nodes:S,nodesInitialized:T,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):y({nodes:S,nodesInitialized:T,nodesSelectionActive:A})},setEdges:S=>{const{connectionLookup:_,edgeLookup:k}=v();OT(_,k,S),y({edges:S})},setDefaultNodesAndEdges:(S,_)=>{if(S){const{setNodes:k}=v();k(S),y({hasDefaultNodes:!0})}if(_){const{setEdges:k}=v();k(_),y({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:_,nodeLookup:k,parentLookup:C,domNode:N,nodeOrigin:O,nodeExtent:I,debug:D,fitViewQueued:T,zIndexMode:L}=v(),{changes:A,updatedInternals:M}=WY(S,k,C,N,O,I,L);M&&(VY(k,C,{nodeOrigin:O,nodeExtent:I,zIndexMode:L}),T?(w(),y({fitViewQueued:!1,fitViewOptions:void 0})):y({}),A?.length>0&&(D&&console.log("React Flow: trigger node changes",A),_?.(A)))},updateNodePositions:(S,_=!1)=>{const k=[];let C=[];const{nodeLookup:N,triggerNodeChanges:O,connection:I,updateConnection:D,onNodesChangeMiddlewareMap:T}=v();for(const[L,A]of S){const M=N.get(L),$=!!(M?.expandParent&&M?.parentId&&A?.position),W={id:L,type:"position",position:$?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:_};if(M&&I.inProgress&&I.fromNode.id===M.id){const B=Ko(M,I.fromHandle,at.Left,!0);D({...I,from:B})}$&&M.parentId&&k.push({id:L,parentId:M.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),C.push(W)}if(k.length>0){const{parentLookup:L,nodeOrigin:A}=v(),M=Tv(k,N,L,A);C.push(...M)}for(const L of T.values())C=L(C);O(C)},triggerNodeChanges:S=>{const{onNodesChange:_,setNodes:k,nodes:C,hasDefaultNodes:N,debug:O}=v();if(S?.length){if(N){const I=KT(S,C);k(I)}O&&console.log("React Flow: trigger node changes",S),_?.(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:_,setEdges:k,edges:C,hasDefaultEdges:N,debug:O}=v();if(S?.length){if(N){const I=KX(S,C);k(I)}O&&console.log("React Flow: trigger edge changes",S),_?.(S)}},addSelectedNodes:S=>{const{multiSelectionActive:_,edgeLookup:k,nodeLookup:C,triggerNodeChanges:N,triggerEdgeChanges:O}=v();if(_){const I=S.map(D=>zo(D,!0));N(I);return}N(Xa(C,new Set([...S]),!0)),O(Xa(k))},addSelectedEdges:S=>{const{multiSelectionActive:_,edgeLookup:k,nodeLookup:C,triggerNodeChanges:N,triggerEdgeChanges:O}=v();if(_){const I=S.map(D=>zo(D,!0));O(I);return}O(Xa(k,new Set([...S]))),N(Xa(C,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:_}={})=>{const{edges:k,nodes:C,nodeLookup:N,triggerNodeChanges:O,triggerEdgeChanges:I}=v(),D=S||C,T=_||k,L=[];for(const M of D){if(!M.selected)continue;const $=N.get(M.id);$&&($.selected=!1),L.push(zo(M.id,!1))}const A=[];for(const M of T)M.selected&&A.push(zo(M.id,!1));O(L),I(A)},setMinZoom:S=>{const{panZoom:_,maxZoom:k}=v();_?.setScaleExtent([S,k]),y({minZoom:S})},setMaxZoom:S=>{const{panZoom:_,minZoom:k}=v();_?.setScaleExtent([k,S]),y({maxZoom:S})},setTranslateExtent:S=>{v().panZoom?.setTranslateExtent(S),y({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:_,triggerNodeChanges:k,triggerEdgeChanges:C,elementsSelectable:N}=v();if(!N)return;const O=_.reduce((D,T)=>T.selected?[...D,zo(T.id,!1)]:D,[]),I=S.reduce((D,T)=>T.selected?[...D,zo(T.id,!1)]:D,[]);k(O),C(I)},setNodeExtent:S=>{const{nodes:_,nodeLookup:k,parentLookup:C,nodeOrigin:N,elevateNodesOnSelect:O,nodeExtent:I,zIndexMode:D}=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]||(d0(_,k,C,{nodeOrigin:N,nodeExtent:S,elevateNodesOnSelect:O,checkEquality:!1,zIndexMode:D}),y({nodeExtent:S}))},panBy:S=>{const{transform:_,width:k,height:C,panZoom:N,translateExtent:O}=v();return YY({delta:S,panZoom:N,transform:_,translateExtent:O,width:k,height:C})},setCenter:async(S,_,k)=>{const{width:C,height:N,maxZoom:O,panZoom:I}=v();if(!I)return Promise.resolve(!1);const D=typeof k?.zoom<"u"?k.zoom:O;return await I.setViewport({x:C/2-S*D,y:N/2-_*D,zoom:D},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{y({connection:{...xT}})},updateConnection:S=>{y({connection:S})},reset:()=>y({..._2()})}},Object.is);function _R({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:o,initialMinZoom:a,initialMaxZoom:u,initialFitViewOptions:d,fitView:m,nodeOrigin:p,nodeExtent:h,zIndexMode:g,children:y}){const[v]=E.useState(()=>dZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:m,minZoom:a,maxZoom:u,fitViewOptions:d,nodeOrigin:p,nodeExtent:h,zIndexMode:g}));return c.jsx(TX,{value:v,children:c.jsx(JX,{children:y})})}function fZ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:o,height:a,fitView:u,fitViewOptions:d,minZoom:m,maxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y}){return E.useContext(Vm)?c.jsx(c.Fragment,{children:e}):c.jsx(_R,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:o,initialHeight:a,fitView:u,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y,children:e})}const mZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function hZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:o,edgeTypes:a,onNodeClick:u,onEdgeClick:d,onInit:m,onMove:p,onMoveStart:h,onMoveEnd:g,onConnect:y,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:_,onNodeMouseEnter:k,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:O,onNodeDoubleClick:I,onNodeDragStart:D,onNodeDrag:T,onNodeDragStop:L,onNodesDelete:A,onEdgesDelete:M,onDelete:$,onSelectionChange:W,onSelectionDragStart:B,onSelectionDrag:U,onSelectionDragStop:H,onSelectionContextMenu:V,onSelectionStart:Y,onSelectionEnd:Z,onBeforeDelete:q,connectionMode:G,connectionLineType:J=so.Bezier,connectionLineStyle:P,connectionLineComponent:X,connectionLineContainerStyle:ee,deleteKeyCode:te="Backspace",selectionKeyCode:re="Shift",selectionOnDrag:oe=!1,selectionMode:de=pu.Full,panActivationKeyCode:se="Space",multiSelectionKeyCode:je=xu()?"Meta":"Control",zoomActivationKeyCode:we=xu()?"Meta":"Control",snapToGrid:Ce,snapGrid:Be,onlyRenderVisibleElements:Ge=!1,selectNodesOnDrag:Ye,nodesDraggable:yt,autoPanOnNodeFocus:Vt,nodesConnectable:bt,nodesFocusable:vt,nodeOrigin:me=YT,edgesFocusable:Oe,edgesReconnectable:rt,elementsSelectable:Qe=!0,defaultViewport:Je=VX,minZoom:fe=.5,maxZoom:be=2,translateExtent:Me=hu,preventScrolling:Fe=!0,nodeExtent:$e,defaultMarkerColor:Ut="#b1b1b7",zoomOnScroll:rn=!0,zoomOnPinch:ke=!0,panOnScroll:Te=!1,panOnScrollSpeed:Pe=.5,panOnScrollMode:Ve=Ho.Free,zoomOnDoubleClick:qe=!0,panOnDrag:et=!0,onPaneClick:Mn,onPaneMouseEnter:Tn,onPaneMouseMove:Dn,onPaneMouseLeave:yn,onPaneScroll:Wt,onPaneContextMenu:Zt,paneClickDistance:Et=1,nodeClickDistance:wt=0,children:tt,onReconnect:it,onReconnectStart:sn,onReconnectEnd:Qt,onEdgeContextMenu:mt,onEdgeDoubleClick:Bt,onEdgeMouseEnter:On,onEdgeMouseMove:vn,onEdgeMouseLeave:Rn,reconnectRadius:ve=10,onNodesChange:Re,onEdgesChange:Xe,noDragClassName:He="nodrag",noWheelClassName:Tt="nowheel",noPanClassName:ft="nopan",fitView:$n,fitViewOptions:Ae,connectOnClick:Dt,attributionPosition:kn,proOptions:nr,defaultEdgeOptions:Sn,elevateNodesOnSelect:We=!0,elevateEdgesOnSelect:ar=!1,disableKeyboardA11y:lr=!1,autoPanOnConnect:mn,autoPanOnNodeDrag:zt,autoPanSpeed:Qn,connectionRadius:wn,isValidConnection:ht,onError:Tr,style:wr,id:Jn,nodeDragThreshold:ct,connectionDragThreshold:cn,viewport:on,onViewportChange:It,width:pr,height:ue,colorMode:Se="light",debug:Ue,onScroll:pt,ariaLabelConfig:tn,zIndexMode:An="basic",...gr},Cn){const Hn=Jn||"1",Cr=WX(Se),hn=E.useCallback(Rr=>{Rr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),pt?.(Rr)},[pt]);return c.jsx("div",{"data-testid":"rf__wrapper",...gr,onScroll:hn,style:{...wr,...mZ},ref:Cn,className:Zn(["react-flow",i,Cr]),id:Jn,role:"application",children:c.jsxs(fZ,{nodes:e,edges:t,width:pr,height:ue,fitView:$n,fitViewOptions:Ae,minZoom:fe,maxZoom:be,nodeOrigin:me,nodeExtent:$e,zIndexMode:An,children:[c.jsx(qX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:_,nodesDraggable:yt,autoPanOnNodeFocus:Vt,nodesConnectable:bt,nodesFocusable:vt,edgesFocusable:Oe,edgesReconnectable:rt,elementsSelectable:Qe,elevateNodesOnSelect:We,elevateEdgesOnSelect:ar,minZoom:fe,maxZoom:be,nodeExtent:$e,onNodesChange:Re,onEdgesChange:Xe,snapToGrid:Ce,snapGrid:Be,connectionMode:G,translateExtent:Me,connectOnClick:Dt,defaultEdgeOptions:Sn,fitView:$n,fitViewOptions:Ae,onNodesDelete:A,onEdgesDelete:M,onDelete:$,onNodeDragStart:D,onNodeDrag:T,onNodeDragStop:L,onSelectionDrag:U,onSelectionDragStart:B,onSelectionDragStop:H,onMove:p,onMoveStart:h,onMoveEnd:g,noPanClassName:ft,nodeOrigin:me,rfId:Hn,autoPanOnConnect:mn,autoPanOnNodeDrag:zt,autoPanSpeed:Qn,onError:Tr,connectionRadius:wn,isValidConnection:ht,selectNodesOnDrag:Ye,nodeDragThreshold:ct,connectionDragThreshold:cn,onBeforeDelete:q,debug:Ue,ariaLabelConfig:tn,zIndexMode:An}),c.jsx(uZ,{onInit:m,onNodeClick:u,onEdgeClick:d,onNodeMouseEnter:k,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:O,onNodeDoubleClick:I,nodeTypes:o,edgeTypes:a,connectionLineType:J,connectionLineStyle:P,connectionLineComponent:X,connectionLineContainerStyle:ee,selectionKeyCode:re,selectionOnDrag:oe,selectionMode:de,deleteKeyCode:te,multiSelectionKeyCode:je,panActivationKeyCode:se,zoomActivationKeyCode:we,onlyRenderVisibleElements:Ge,defaultViewport:Je,translateExtent:Me,minZoom:fe,maxZoom:be,preventScrolling:Fe,zoomOnScroll:rn,zoomOnPinch:ke,zoomOnDoubleClick:qe,panOnScroll:Te,panOnScrollSpeed:Pe,panOnScrollMode:Ve,panOnDrag:et,onPaneClick:Mn,onPaneMouseEnter:Tn,onPaneMouseMove:Dn,onPaneMouseLeave:yn,onPaneScroll:Wt,onPaneContextMenu:Zt,paneClickDistance:Et,nodeClickDistance:wt,onSelectionContextMenu:V,onSelectionStart:Y,onSelectionEnd:Z,onReconnect:it,onReconnectStart:sn,onReconnectEnd:Qt,onEdgeContextMenu:mt,onEdgeDoubleClick:Bt,onEdgeMouseEnter:On,onEdgeMouseMove:vn,onEdgeMouseLeave:Rn,reconnectRadius:ve,defaultMarkerColor:Ut,noDragClassName:He,noWheelClassName:Tt,noPanClassName:ft,rfId:Hn,disableKeyboardA11y:lr,nodeExtent:$e,viewport:on,onViewportChange:It}),c.jsx(FX,{onSelectionChange:W}),tt,c.jsx(zX,{proOptions:nr,position:kn}),c.jsx(LX,{rfId:Hn,disableKeyboardA11y:lr})]})})}var pZ=ZT(hZ);function gZ({dimensions:e,lineWidth:t,variant:n,className:r}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Zn(["react-flow__background-pattern",n,r])})}function xZ({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:Zn(["react-flow__background-pattern","dots",t])})}var co;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(co||(co={}));const yZ={[co.Dots]:1,[co.Lines]:1,[co.Cross]:6},vZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function kR({id:e,variant:t=co.Dots,gap:n=20,size:r,lineWidth:i=1,offset:o=0,color:a,bgColor:u,style:d,className:m,patternClassName:p}){const h=E.useRef(null),{transform:g,patternId:y}=Ft(vZ,Nn),v=r||yZ[t],w=t===co.Dots,S=t===co.Cross,_=Array.isArray(n)?n:[n,n],k=[_[0]*g[2]||1,_[1]*g[2]||1],C=v*g[2],N=Array.isArray(o)?o:[o,o],O=S?[C,C]:k,I=[N[0]*g[2]||1+O[0]/2,N[1]*g[2]||1+O[1]/2],D=`${y}${e||""}`;return c.jsxs("svg",{className:Zn(["react-flow__background",m]),style:{...d,...Gm,"--xy-background-color-props":u,"--xy-background-pattern-color-props":a},ref:h,"data-testid":"rf__background",children:[c.jsx("pattern",{id:D,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:w?c.jsx(xZ,{radius:C/2,className:p}):c.jsx(gZ,{dimensions:O,lineWidth:i,variant:t,className:p})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}kR.displayName="Background";const bZ=E.memo(kR);function _Z(){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 kZ(){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 SZ(){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 wZ(){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 CZ(){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:Zn(["react-flow__controls-button",t]),...n,children:e})}const jZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function SR({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:o,onZoomOut:a,onFitView:u,onInteractiveChange:d,className:m,children:p,position:h="bottom-left",orientation:g="vertical","aria-label":y}){const v=In(),{isInteractive:w,minZoomReached:S,maxZoomReached:_,ariaLabelConfig:k}=Ft(jZ,Nn),{zoomIn:C,zoomOut:N,fitView:O}=Rv(),I=()=>{C(),o?.()},D=()=>{N(),a?.()},T=()=>{O(i),u?.()},L=()=>{v.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),d?.(!w)},A=g==="horizontal"?"horizontal":"vertical";return c.jsxs(Um,{className:Zn(["react-flow__controls",A,m]),position:h,style:e,"data-testid":"rf__controls","aria-label":y??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:_,children:c.jsx(_Z,{})}),c.jsx(df,{onClick:D,className:"react-flow__controls-zoomout",title:k["controls.zoomOut.ariaLabel"],"aria-label":k["controls.zoomOut.ariaLabel"],disabled:S,children:c.jsx(kZ,{})})]}),n&&c.jsx(df,{className:"react-flow__controls-fitview",onClick:T,title:k["controls.fitView.ariaLabel"],"aria-label":k["controls.fitView.ariaLabel"],children:c.jsx(SZ,{})}),r&&c.jsx(df,{className:"react-flow__controls-interactive",onClick:L,title:k["controls.interactive.ariaLabel"],"aria-label":k["controls.interactive.ariaLabel"],children:w?c.jsx(CZ,{}):c.jsx(wZ,{})}),p]})}SR.displayName="Controls";const EZ=E.memo(SR);function NZ({id:e,x:t,y:n,width:r,height:i,style:o,color:a,strokeColor:u,strokeWidth:d,className:m,borderRadius:p,shapeRendering:h,selected:g,onClick:y}){const{background:v,backgroundColor:w}=o||{},S=a||v||w;return c.jsx("rect",{className:Zn(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:p,ry:p,width:r,height:i,style:{fill:S,stroke:u,strokeWidth:d},shapeRendering:h,onClick:y?_=>y(_,e):void 0})}const IZ=E.memo(NZ),TZ=e=>e.nodes.map(t=>t.id),vx=e=>e instanceof Function?e:()=>e;function RZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:o=IZ,onClick:a}){const u=Ft(TZ,Nn),d=vx(t),m=vx(e),p=vx(n),h=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:u.map(g=>c.jsx(MZ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:p,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:o,onClick:a,shapeRendering:h},g))})}function AZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:u,onClick:d}){const{node:m,x:p,y:h,width:g,height:y}=Ft(v=>{const w=v.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const S=w.internals.userNode,{x:_,y:k}=w.internals.positionAbsolute,{width:C,height:N}=js(S);return{node:S,x:_,y:k,width:C,height:N}},Nn);return!m||m.hidden||!wT(m)?null:c.jsx(u,{x:p,y:h,width:g,height:y,style:m.style,selected:!!m.selected,className:r(m),color:t(m),borderRadius:i,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const MZ=E.memo(AZ);var DZ=E.memo(RZ);const OZ=200,LZ=150,zZ=e=>!e.hidden,PZ=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?ST(Nu(e.nodeLookup,{filter:zZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},BZ="react-flow__minimap-desc";function wR({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:u,bgColor:d,maskColor:m,maskStrokeColor:p,maskStrokeWidth:h,position:g="bottom-right",onClick:y,onNodeClick:v,pannable:w=!1,zoomable:S=!1,ariaLabel:_,inversePan:k,zoomStep:C=1,offsetScale:N=5}){const O=In(),I=E.useRef(null),{boundingRect:D,viewBB:T,rfId:L,panZoom:A,translateExtent:M,flowWidth:$,flowHeight:W,ariaLabelConfig:B}=Ft(PZ,Nn),U=e?.width??OZ,H=e?.height??LZ,V=D.width/U,Y=D.height/H,Z=Math.max(V,Y),q=Z*U,G=Z*H,J=N*Z,P=D.x-(q-D.width)/2-J,X=D.y-(G-D.height)/2-J,ee=q+J*2,te=G+J*2,re=`${BZ}-${L}`,oe=E.useRef(0),de=E.useRef();oe.current=Z,E.useEffect(()=>{if(I.current&&A)return de.current=rX({domNode:I.current,panZoom:A,getTransform:()=>O.getState().transform,getViewScale:()=>oe.current}),()=>{de.current?.destroy()}},[A]),E.useEffect(()=>{de.current?.update({translateExtent:M,width:$,height:W,inversePan:k,pannable:w,zoomStep:C,zoomable:S})},[w,S,k,C,M,$,W]);const se=y?Ce=>{const[Be,Ge]=de.current?.pointer(Ce)||[0,0];y(Ce,{x:Be,y:Ge})}:void 0,je=v?E.useCallback((Ce,Be)=>{const Ge=O.getState().nodeLookup.get(Be).internals.userNode;v(Ce,Ge)},[]):void 0,we=_??B["minimap.ariaLabel"];return c.jsx(Um,{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 p=="string"?p:void 0,"--xy-minimap-mask-stroke-width-props":typeof h=="number"?h*Z:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:Zn(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:U,height:H,viewBox:`${P} ${X} ${ee} ${te}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":re,ref:I,onClick:se,children:[we&&c.jsx("title",{id:re,children:we}),c.jsx(DZ,{onClick:je,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:i,nodeStrokeWidth:a,nodeComponent:u}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${P-J},${X-J}h${ee+J*2}v${te+J*2}h${-ee-J*2}z + M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}wR.displayName="MiniMap";const $Z=E.memo(wR),HZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,FZ={[yl.Line]:"right",[yl.Handle]:"bottom-right"};function VZ({nodeId:e,position:t,variant:n=yl.Handle,className:r,style:i=void 0,children:o,color:a,minWidth:u=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:p=Number.MAX_VALUE,keepAspectRatio:h=!1,resizeDirection:g,autoScale:y=!0,shouldResize:v,onResizeStart:w,onResize:S,onResizeEnd:_}){const k=tR(),C=typeof e=="string"?e:k,N=In(),O=E.useRef(null),I=n===yl.Handle,D=Ft(E.useCallback(HZ(I&&y),[I,y]),Nn),T=E.useRef(null),L=t??FZ[n];E.useEffect(()=>{if(!(!O.current||!C))return T.current||(T.current=xX({domNode:O.current,nodeId:C,getStoreItems:()=>{const{nodeLookup:M,transform:$,snapGrid:W,snapToGrid:B,nodeOrigin:U,domNode:H}=N.getState();return{nodeLookup:M,transform:$,snapGrid:W,snapToGrid:B,nodeOrigin:U,paneDomNode:H}},onChange:(M,$)=>{const{triggerNodeChanges:W,nodeLookup:B,parentLookup:U,nodeOrigin:H}=N.getState(),V=[],Y={x:M.x,y:M.y},Z=B.get(C);if(Z&&Z.expandParent&&Z.parentId){const q=Z.origin??H,G=M.width??Z.measured.width??0,J=M.height??Z.measured.height??0,P={id:Z.id,parentId:Z.parentId,rect:{width:G,height:J,...CT({x:M.x??Z.position.x,y:M.y??Z.position.y},{width:G,height:J},Z.parentId,B,q)}},X=Tv([P],B,U,H);V.push(...X),Y.x=M.x?Math.max(q[0]*G,M.x):void 0,Y.y=M.y?Math.max(q[1]*J,M.y):void 0}if(Y.x!==void 0&&Y.y!==void 0){const q={id:C,type:"position",position:{...Y}};V.push(q)}if(M.width!==void 0&&M.height!==void 0){const G={id:C,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:M.width,height:M.height}};V.push(G)}for(const q of $){const G={...q,type:"position"};V.push(G)}W(V)},onEnd:({width:M,height:$})=>{const W={id:C,type:"dimensions",resizing:!1,dimensions:{width:M,height:$}};N.getState().triggerNodeChanges([W])}})),T.current.update({controlPosition:L,boundaries:{minWidth:u,minHeight:d,maxWidth:m,maxHeight:p},keepAspectRatio:h,resizeDirection:g,onResizeStart:w,onResize:S,onResizeEnd:_,shouldResize:v}),()=>{T.current?.destroy()}},[L,u,d,m,p,h,w,S,_,v]);const A=L.split("-");return c.jsx("div",{className:Zn(["react-flow__resize-control","nodrag",...A,n,r]),ref:O,style:{...i,scale:D,...a&&{[I?"backgroundColor":"borderColor"]:a}},children:o})}E.memo(VZ);const UZ=E.memo(function({data:t}){const n=["oc-canvas-node",t.isOwner&&"is-owner",t.isSelected&&"is-selected",t.isDropTarget&&"is-drop-target"].filter(Boolean).join(" "),r=wu(t.icon);return c.jsxs("div",{className:n,children:[c.jsx(vl,{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("${r}")`,maskImage:`url("${r}")`},"aria-hidden":!0})}),c.jsxs("div",{className:"oc-canvas-node-text",children:[c.jsx("span",{className:"oc-canvas-node-name",children:t.name}),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(vl,{type:"source",position:at.Bottom,className:"oc-canvas-handle"})]})});var bx,k2;function Mv(){if(k2)return bx;k2=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(p){p&&(this._isDirected=Object.hasOwn(p,"directed")?p.directed:!0,this._isMultigraph=Object.hasOwn(p,"multigraph")?p.multigraph:!1,this._isCompound=Object.hasOwn(p,"compound")?p.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(p){return this._label=p,this}graph(){return this._label}setDefaultNodeLabel(p){return this._defaultNodeLabelFn=p,typeof p!="function"&&(this._defaultNodeLabelFn=()=>p),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var p=this;return this.nodes().filter(h=>Object.keys(p._in[h]).length===0)}sinks(){var p=this;return this.nodes().filter(h=>Object.keys(p._out[h]).length===0)}setNodes(p,h){var g=arguments,y=this;return p.forEach(function(v){g.length>1?y.setNode(v,h):y.setNode(v)}),this}setNode(p,h){return Object.hasOwn(this._nodes,p)?(arguments.length>1&&(this._nodes[p]=h),this):(this._nodes[p]=arguments.length>1?h:this._defaultNodeLabelFn(p),this._isCompound&&(this._parent[p]=t,this._children[p]={},this._children[t][p]=!0),this._in[p]={},this._preds[p]={},this._out[p]={},this._sucs[p]={},++this._nodeCount,this)}node(p){return this._nodes[p]}hasNode(p){return Object.hasOwn(this._nodes,p)}removeNode(p){var h=this;if(Object.hasOwn(this._nodes,p)){var g=y=>h.removeEdge(h._edgeObjs[y]);delete this._nodes[p],this._isCompound&&(this._removeFromParentsChildList(p),delete this._parent[p],this.children(p).forEach(function(y){h.setParent(y)}),delete this._children[p]),Object.keys(this._in[p]).forEach(g),delete this._in[p],delete this._preds[p],Object.keys(this._out[p]).forEach(g),delete this._out[p],delete this._sucs[p],--this._nodeCount}return this}setParent(p,h){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(h===void 0)h=t;else{h+="";for(var g=h;g!==void 0;g=this.parent(g))if(g===p)throw new Error("Setting "+h+" as parent of "+p+" would create a cycle");this.setNode(h)}return this.setNode(p),this._removeFromParentsChildList(p),this._parent[p]=h,this._children[h][p]=!0,this}_removeFromParentsChildList(p){delete this._children[this._parent[p]][p]}parent(p){if(this._isCompound){var h=this._parent[p];if(h!==t)return h}}children(p=t){if(this._isCompound){var h=this._children[p];if(h)return Object.keys(h)}else{if(p===t)return this.nodes();if(this.hasNode(p))return[]}}predecessors(p){var h=this._preds[p];if(h)return Object.keys(h)}successors(p){var h=this._sucs[p];if(h)return Object.keys(h)}neighbors(p){var h=this.predecessors(p);if(h){const y=new Set(h);for(var g of this.successors(p))y.add(g);return Array.from(y.values())}}isLeaf(p){var h;return this.isDirected()?h=this.successors(p):h=this.neighbors(p),h.length===0}filterNodes(p){var h=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});h.setGraph(this.graph());var g=this;Object.entries(this._nodes).forEach(function([w,S]){p(w)&&h.setNode(w,S)}),Object.values(this._edgeObjs).forEach(function(w){h.hasNode(w.v)&&h.hasNode(w.w)&&h.setEdge(w,g.edge(w))});var y={};function v(w){var S=g.parent(w);return S===void 0||h.hasNode(S)?(y[w]=S,S):S in y?y[S]:v(S)}return this._isCompound&&h.nodes().forEach(w=>h.setParent(w,v(w))),h}setDefaultEdgeLabel(p){return this._defaultEdgeLabelFn=p,typeof p!="function"&&(this._defaultEdgeLabelFn=()=>p),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(p,h){var g=this,y=arguments;return p.reduce(function(v,w){return y.length>1?g.setEdge(v,w,h):g.setEdge(v,w),w}),this}setEdge(){var p,h,g,y,v=!1,w=arguments[0];typeof w=="object"&&w!==null&&"v"in w?(p=w.v,h=w.w,g=w.name,arguments.length===2&&(y=arguments[1],v=!0)):(p=w,h=arguments[1],g=arguments[3],arguments.length>2&&(y=arguments[2],v=!0)),p=""+p,h=""+h,g!==void 0&&(g=""+g);var S=a(this._isDirected,p,h,g);if(Object.hasOwn(this._edgeLabels,S))return v&&(this._edgeLabels[S]=y),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(p),this.setNode(h),this._edgeLabels[S]=v?y:this._defaultEdgeLabelFn(p,h,g);var _=u(this._isDirected,p,h,g);return p=_.v,h=_.w,Object.freeze(_),this._edgeObjs[S]=_,i(this._preds[h],p),i(this._sucs[p],h),this._in[h][S]=_,this._out[p][S]=_,this._edgeCount++,this}edge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g);return this._edgeLabels[y]}edgeAsObj(){const p=this.edge(...arguments);return typeof p!="object"?{label:p}:p}hasEdge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g);return Object.hasOwn(this._edgeLabels,y)}removeEdge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g),v=this._edgeObjs[y];return v&&(p=v.v,h=v.w,delete this._edgeLabels[y],delete this._edgeObjs[y],o(this._preds[h],p),o(this._sucs[p],h),delete this._in[h][y],delete this._out[p][y],this._edgeCount--),this}inEdges(p,h){var g=this._in[p];if(g){var y=Object.values(g);return h?y.filter(v=>v.v===h):y}}outEdges(p,h){var g=this._out[p];if(g){var y=Object.values(g);return h?y.filter(v=>v.w===h):y}}nodeEdges(p,h){var g=this.inEdges(p,h);if(g)return g.concat(this.outEdges(p,h))}}function i(m,p){m[p]?m[p]++:m[p]=1}function o(m,p){--m[p]||delete m[p]}function a(m,p,h,g){var y=""+p,v=""+h;if(!m&&y>v){var w=y;y=v,v=w}return y+n+v+n+(g===void 0?e:g)}function u(m,p,h,g){var y=""+p,v=""+h;if(!m&&y>v){var w=y;y=v,v=w}var S={v:y,w:v};return g&&(S.name=g),S}function d(m,p){return a(m,p.v,p.w,p.name)}return bx=r,bx}var _x,S2;function GZ(){return S2||(S2=1,_x="2.2.4"),_x}var kx,w2;function qZ(){return w2||(w2=1,kx={Graph:Mv(),version:GZ()}),kx}var Sx,C2;function WZ(){if(C2)return Sx;C2=1;var e=Mv();Sx={write:t,read:i};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:r(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 r(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 i(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 Sx}var wx,j2;function YZ(){if(j2)return wx;j2=1,wx=e;function e(t){var n={},r=[],i;function o(a){Object.hasOwn(n,a)||(n[a]=!0,i.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){i=[],o(a),i.length&&r.push(i)}),r}return wx}var Cx,E2;function CR(){if(E2)return Cx;E2=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 r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var o=this._arr,a=o.length;return i[n]=a,o.push({key:n,priority:r}),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,r){var i=this._keyIndices[n];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)}_heapify(n){var r=this._arr,i=2*n,o=i+1,a=n;i>1,!(r[o].priority1;function n(i,o,a,u){return r(i,String(o),a||t,u||function(d){return i.outEdges(d)})}function r(i,o,a,u){var d={},m=new e,p,h,g=function(y){var v=y.v!==p?y.v:y.w,w=d[v],S=a(y),_=h.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+y+" Weight: "+S);_0&&(p=m.removeMin(),h=d[p],h.distance!==Number.POSITIVE_INFINITY);)u(p).forEach(g);return d}return jx}var Ex,I2;function XZ(){if(I2)return Ex;I2=1;var e=jR();Ex=t;function t(n,r,i){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,r,i),o},{})}return Ex}var Nx,T2;function ER(){if(T2)return Nx;T2=1,Nx=e;function e(t){var n=0,r=[],i={},o=[];function a(u){var d=i[u]={onStack:!0,lowlink:n,index:n++};if(r.push(u),t.successors(u).forEach(function(h){Object.hasOwn(i,h)?i[h].onStack&&(d.lowlink=Math.min(d.lowlink,i[h].index)):(a(h),d.lowlink=Math.min(d.lowlink,i[h].lowlink))}),d.lowlink===d.index){var m=[],p;do p=r.pop(),i[p].onStack=!1,m.push(p);while(u!==p);o.push(m)}}return t.nodes().forEach(function(u){Object.hasOwn(i,u)||a(u)}),o}return Nx}var Ix,R2;function KZ(){if(R2)return Ix;R2=1;var e=ER();Ix=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Ix}var Tx,A2;function ZZ(){if(A2)return Tx;A2=1,Tx=t;var e=()=>1;function t(r,i,o){return n(r,i||e,o||function(a){return r.outEdges(a)})}function n(r,i,o){var a={},u=r.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 p=m.v===d?m.w:m.v,h=i(m);a[d][p]={distance:h,predecessor:d}})}),u.forEach(function(d){var m=a[d];u.forEach(function(p){var h=a[p];u.forEach(function(g){var y=h[d],v=m[g],w=h[g],S=y.distance+v.distance;Si.successors(h):h=>i.neighbors(h),d=a==="post"?t:n,m=[],p={};return o.forEach(h=>{if(!i.hasNode(h))throw new Error("Graph does not have node: "+h);d(h,u,p,m)}),m}function t(i,o,a,u){for(var d=[[i,!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]),r(o(m[0]),p=>d.push([p,!1])))}}function n(i,o,a,u){for(var d=[i];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,u.push(m),r(o(m),p=>d.push(p)))}}function r(i,o){for(var a=i.length;a--;)o(i[a],a,i);return i}return Mx}var Dx,L2;function JZ(){if(L2)return Dx;L2=1;var e=IR();Dx=t;function t(n,r){return e(n,r,"post")}return Dx}var Ox,z2;function eQ(){if(z2)return Ox;z2=1;var e=IR();Ox=t;function t(n,r){return e(n,r,"pre")}return Ox}var Lx,P2;function tQ(){if(P2)return Lx;P2=1;var e=Mv(),t=CR();Lx=n;function n(r,i){var o=new e,a={},u=new t,d;function m(h){var g=h.v===d?h.w:h.v,y=u.priority(g);if(y!==void 0){var v=i(h);v0;){if(d=u.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(p)throw new Error("Input graph is not connected: "+r);p=!0}r.nodeEdges(d).forEach(m)}return o}return Lx}var zx,B2;function nQ(){return B2||(B2=1,zx={components:YZ(),dijkstra:jR(),dijkstraAll:XZ(),findCycles:KZ(),floydWarshall:ZZ(),isAcyclic:QZ(),postorder:JZ(),preorder:eQ(),prim:tQ(),tarjan:ER(),topsort:NR()}),zx}var Px,$2;function Ai(){if($2)return Px;$2=1;var e=qZ();return Px={Graph:e.Graph,json:WZ(),alg:nQ(),version:e.version},Px}var Bx,H2;function rQ(){if(H2)return Bx;H2=1;class e{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,o=i._prev;if(o!==i)return t(o),o}enqueue(i){let o=this._sentinel;i._prev&&i._next&&t(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o}toString(){let i=[],o=this._sentinel,a=o._prev;for(;a!==o;)i.push(JSON.stringify(a,n)),a=a._prev;return"["+i.join(", ")+"]"}}function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,i){if(r!=="_next"&&r!=="_prev")return i}return Bx=e,Bx}var $x,F2;function iQ(){if(F2)return $x;F2=1;let e=Ai().Graph,t=rQ();$x=r;let n=()=>1;function r(m,p){if(m.nodeCount()<=1)return[];let h=a(m,p||n);return i(h.graph,h.buckets,h.zeroIdx).flatMap(y=>m.outEdges(y.v,y.w))}function i(m,p,h){let g=[],y=p[p.length-1],v=p[0],w;for(;m.nodeCount();){for(;w=v.dequeue();)o(m,p,h,w);for(;w=y.dequeue();)o(m,p,h,w);if(m.nodeCount()){for(let S=p.length-2;S>0;--S)if(w=p[S].dequeue(),w){g=g.concat(o(m,p,h,w,!0));break}}}return g}function o(m,p,h,g,y){let v=y?[]:void 0;return m.inEdges(g.v).forEach(w=>{let S=m.edge(w),_=m.node(w.v);y&&v.push({v:w.v,w:w.w}),_.out-=S,u(p,h,_)}),m.outEdges(g.v).forEach(w=>{let S=m.edge(w),_=w.w,k=m.node(_);k.in-=S,u(p,h,k)}),m.removeNode(g.v),v}function a(m,p){let h=new e,g=0,y=0;m.nodes().forEach(S=>{h.setNode(S,{v:S,in:0,out:0})}),m.edges().forEach(S=>{let _=h.edge(S.v,S.w)||0,k=p(S),C=_+k;h.setEdge(S.v,S.w,C),y=Math.max(y,h.node(S.v).out+=k),g=Math.max(g,h.node(S.w).in+=k)});let v=d(y+g+3).map(()=>new t),w=g+1;return h.nodes().forEach(S=>{u(v,w,h.node(S))}),{graph:h,buckets:v,zeroIdx:w}}function u(m,p,h){h.out?h.in?m[h.out-h.in+p].enqueue(h):m[m.length-1].enqueue(h):m[0].enqueue(h)}function d(m){const p=[];for(let h=0;hL.setNode(A,T.node(A))),T.edges().forEach(A=>{let M=L.edge(A.v,A.w)||{weight:0,minlen:1},$=T.edge(A);L.setEdge(A.v,A.w,{weight:M.weight+$.weight,minlen:Math.max(M.minlen,$.minlen)})}),L}function r(T){let L=new e({multigraph:T.isMultigraph()}).setGraph(T.graph());return T.nodes().forEach(A=>{T.children(A).length||L.setNode(A,T.node(A))}),T.edges().forEach(A=>{L.setEdge(A,T.edge(A))}),L}function i(T){let L=T.nodes().map(A=>{let M={};return T.outEdges(A).forEach($=>{M[$.w]=(M[$.w]||0)+T.edge($).weight}),M});return D(T.nodes(),L)}function o(T){let L=T.nodes().map(A=>{let M={};return T.inEdges(A).forEach($=>{M[$.v]=(M[$.v]||0)+T.edge($).weight}),M});return D(T.nodes(),L)}function a(T,L){let A=T.x,M=T.y,$=L.x-A,W=L.y-M,B=T.width/2,U=T.height/2;if(!$&&!W)throw new Error("Not possible to find intersection inside of the rectangle");let H,V;return Math.abs(W)*B>Math.abs($)*U?(W<0&&(U=-U),H=U*$/W,V=U):($<0&&(B=-B),H=B,V=B*W/$),{x:A+H,y:M+V}}function u(T){let L=N(v(T)+1).map(()=>[]);return T.nodes().forEach(A=>{let M=T.node(A),$=M.rank;$!==void 0&&(L[$][M.order]=A)}),L}function d(T){let L=T.nodes().map(M=>{let $=T.node(M).rank;return $===void 0?Number.MAX_VALUE:$}),A=y(Math.min,L);T.nodes().forEach(M=>{let $=T.node(M);Object.hasOwn($,"rank")&&($.rank-=A)})}function m(T){let L=T.nodes().map(B=>T.node(B).rank),A=y(Math.min,L),M=[];T.nodes().forEach(B=>{let U=T.node(B).rank-A;M[U]||(M[U]=[]),M[U].push(B)});let $=0,W=T.graph().nodeRankFactor;Array.from(M).forEach((B,U)=>{B===void 0&&U%W!==0?--$:B!==void 0&&$&&B.forEach(H=>T.node(H).rank+=$)})}function p(T,L,A,M){let $={width:0,height:0};return arguments.length>=4&&($.rank=A,$.order=M),t(T,"border",$,L)}function h(T,L=g){const A=[];for(let M=0;Mg){const A=h(L);return T.apply(null,A.map(M=>T.apply(null,M)))}else return T.apply(null,L)}function v(T){const A=T.nodes().map(M=>{let $=T.node(M).rank;return $===void 0?Number.MIN_VALUE:$});return y(Math.max,A)}function w(T,L){let A={lhs:[],rhs:[]};return T.forEach(M=>{L(M)?A.lhs.push(M):A.rhs.push(M)}),A}function S(T,L){let A=Date.now();try{return L()}finally{console.log(T+" time: "+(Date.now()-A)+"ms")}}function _(T,L){return L()}let k=0;function C(T){var L=++k;return T+(""+L)}function N(T,L,A=1){L==null&&(L=T,T=0);let M=W=>WLM[L]),Object.entries(T).reduce((M,[$,W])=>(M[$]=A(W,$),M),{})}function D(T,L){return T.reduce((A,M,$)=>(A[M]=L[$],A),{})}return Hx}var Fx,U2;function sQ(){if(U2)return Fx;U2=1;let e=iQ(),t=Kn().uniqueId;Fx={run:n,undo:i};function n(o){(o.graph().acyclicer==="greedy"?e(o,u(o)):r(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 r(o){let a=[],u={},d={};function m(p){Object.hasOwn(d,p)||(d[p]=!0,u[p]=!0,o.outEdges(p).forEach(h=>{Object.hasOwn(u,h.w)?a.push(h):m(h.w)}),delete u[p])}return o.nodes().forEach(m),a}function i(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 Fx}var Vx,G2;function oQ(){if(G2)return Vx;G2=1;let e=Kn();Vx={run:t,undo:r};function t(i){i.graph().dummyChains=[],i.edges().forEach(o=>n(i,o))}function n(i,o){let a=o.v,u=i.node(a).rank,d=o.w,m=i.node(d).rank,p=o.name,h=i.edge(o),g=h.labelRank;if(m===u+1)return;i.removeEdge(o);let y,v,w;for(w=0,++u;u{let a=i.node(o),u=a.edgeLabel,d;for(i.setEdge(a.edgeObj,u);a.dummy;)d=i.successors(o)[0],i.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=i.node(o)})}return Vx}var Ux,q2;function um(){if(q2)return Ux;q2=1;const{applyWithChunking:e}=Kn();Ux={longestPath:t,slack:n};function t(r){var i={};function o(a){var u=r.node(a);if(Object.hasOwn(i,a))return u.rank;i[a]=!0;let d=r.outEdges(a).map(p=>p==null?Number.POSITIVE_INFINITY:o(p.w)-r.edge(p).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),u.rank=m}r.sources().forEach(o)}function n(r,i){return r.node(i.w).rank-r.node(i.v).rank-r.edge(i).minlen}return Ux}var Gx,W2;function TR(){if(W2)return Gx;W2=1;var e=Ai().Graph,t=um().slack;Gx=n;function n(a){var u=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();u.setNode(d,{});for(var p,h;r(u,a){var h=p.v,g=m===h?p.w:h;!a.hasNode(g)&&!t(u,p)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function i(a,u){return u.edges().reduce((m,p)=>{let h=Number.POSITIVE_INFINITY;return a.hasNode(p.v)!==a.hasNode(p.w)&&(h=t(u,p)),hu.node(m).rank+=d)}return Gx}var qx,Y2;function aQ(){if(Y2)return qx;Y2=1;var e=TR(),t=um().slack,n=um().longestPath,r=Ai().alg.preorder,i=Ai().alg.postorder,o=Kn().simplify;qx=a,a.initLowLimValues=p,a.initCutValues=u,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=y,a.exchangeEdges=v;function a(k){k=o(k),n(k);var C=e(k);p(C),u(C,k);for(var N,O;N=g(C);)O=y(C,k,N),v(C,k,N,O)}function u(k,C){var N=i(k,k.nodes());N=N.slice(0,N.length-1),N.forEach(O=>d(k,C,O))}function d(k,C,N){var O=k.node(N),I=O.parent;k.edge(N,I).cutvalue=m(k,C,N)}function m(k,C,N){var O=k.node(N),I=O.parent,D=!0,T=C.edge(N,I),L=0;return T||(D=!1,T=C.edge(I,N)),L=T.weight,C.nodeEdges(N).forEach(A=>{var M=A.v===N,$=M?A.w:A.v;if($!==I){var W=M===D,B=C.edge(A).weight;if(L+=W?B:-B,S(k,N,$)){var U=k.edge(N,$).cutvalue;L+=W?-U:U}}}),L}function p(k,C){arguments.length<2&&(C=k.nodes()[0]),h(k,{},1,C)}function h(k,C,N,O,I){var D=N,T=k.node(O);return C[O]=!0,k.neighbors(O).forEach(L=>{Object.hasOwn(C,L)||(N=h(k,C,N,L,O))}),T.low=D,T.lim=N++,I?T.parent=I:delete T.parent,N}function g(k){return k.edges().find(C=>k.edge(C).cutvalue<0)}function y(k,C,N){var O=N.v,I=N.w;C.hasEdge(O,I)||(O=N.w,I=N.v);var D=k.node(O),T=k.node(I),L=D,A=!1;D.lim>T.lim&&(L=T,A=!0);var M=C.edges().filter($=>A===_(k,k.node($.v),L)&&A!==_(k,k.node($.w),L));return M.reduce(($,W)=>t(C,W)!C.node(I).parent),O=r(k,N);O=O.slice(1),O.forEach(I=>{var D=k.node(I).parent,T=C.edge(I,D),L=!1;T||(T=C.edge(D,I),L=!0),C.node(I).rank=C.node(D).rank+(L?T.minlen:-T.minlen)})}function S(k,C,N){return k.hasEdge(C,N)}function _(k,C,N){return N.low<=C.lim&&C.lim<=N.lim}return qx}var Wx,X2;function lQ(){if(X2)return Wx;X2=1;var e=um(),t=e.longestPath,n=TR(),r=aQ();Wx=i;function i(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){r(d)}return Wx}var Yx,K2;function cQ(){if(K2)return Yx;K2=1,Yx=e;function e(r){let i=n(r);r.graph().dummyChains.forEach(o=>{let a=r.node(o),u=a.edgeObj,d=t(r,i,u.v,u.w),m=d.path,p=d.lca,h=0,g=m[h],y=!0;for(;o!==u.w;){if(a=r.node(o),y){for(;(g=m[h])!==p&&r.node(g).maxRankm||p>i[h].lim));for(g=h,h=a;(h=r.parent(h))!==g;)d.push(h);return{path:u.concat(d.reverse()),lca:g}}function n(r){let i={},o=0;function a(u){let d=o;r.children(u).forEach(a),i[u]={low:d,lim:o++}}return r.children().forEach(a),i}return Yx}var Xx,Z2;function uQ(){if(Z2)return Xx;Z2=1;let e=Kn();Xx={run:t,cleanup:o};function t(a){let u=e.addDummyNode(a,"root",{},"_root"),d=r(a),m=Object.values(d),p=e.applyWithChunking(Math.max,m)-1,h=2*p+1;a.graph().nestingRoot=u,a.edges().forEach(y=>a.edge(y).minlen*=h);let g=i(a)+1;a.children().forEach(y=>n(a,u,h,g,p,d,y)),a.graph().nodeRankFactor=h}function n(a,u,d,m,p,h,g){let y=a.children(g);if(!y.length){g!==u&&a.setEdge(u,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),w=e.addBorderNode(a,"_bb"),S=a.node(g);a.setParent(v,g),S.borderTop=v,a.setParent(w,g),S.borderBottom=w,y.forEach(_=>{n(a,u,d,m,p,h,_);let k=a.node(_),C=k.borderTop?k.borderTop:_,N=k.borderBottom?k.borderBottom:_,O=k.borderTop?m:2*m,I=C!==N?1:p-h[g]+1;a.setEdge(v,C,{weight:O,minlen:I,nestingEdge:!0}),a.setEdge(N,w,{weight:O,minlen:I,nestingEdge:!0})}),a.parent(g)||a.setEdge(u,v,{weight:0,minlen:p+h[g]})}function r(a){var u={};function d(m,p){var h=a.children(m);h&&h.length&&h.forEach(g=>d(g,p+1)),u[m]=p}return a.children().forEach(m=>d(m,1)),u}function i(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 Xx}var Kx,Q2;function dQ(){if(Q2)return Kx;Q2=1;let e=Kn();Kx=t;function t(r){function i(o){let a=r.children(o),u=r.node(o);if(a.length&&a.forEach(i),Object.hasOwn(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(let d=u.minRank,m=u.maxRank+1;dr(d.node(m))),d.edges().forEach(m=>r(d.edge(m)))}function r(d){let m=d.width;d.width=d.height,d.height=m}function i(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let p=d.edge(m);p.points.forEach(o),Object.hasOwn(p,"y")&&o(p)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>u(d.node(m))),d.edges().forEach(m=>{let p=d.edge(m);p.points.forEach(u),Object.hasOwn(p,"x")&&u(p)})}function u(d){let m=d.x;d.x=d.y,d.y=m}return Zx}var Qx,ej;function mQ(){if(ej)return Qx;ej=1;let e=Kn();Qx=t;function t(n){let r={},i=n.nodes().filter(p=>!n.children(p).length),o=i.map(p=>n.node(p).rank),a=e.applyWithChunking(Math.max,o),u=e.range(a+1).map(()=>[]);function d(p){if(r[p])return;r[p]=!0;let h=n.node(p);u[h.rank].push(p),n.successors(p).forEach(d)}return i.sort((p,h)=>n.node(p).rank-n.node(h).rank).forEach(d),u}return Qx}var Jx,tj;function hQ(){if(tj)return Jx;tj=1;let e=Kn().zipObject;Jx=t;function t(r,i){let o=0;for(let a=1;ay)),u=i.flatMap(g=>r.outEdges(g).map(y=>({pos:a[y.w],weight:r.edge(y).weight})).sort((y,v)=>y.pos-v.pos)),d=1;for(;d{let y=g.pos+d;p[y]+=g.weight;let v=0;for(;y>0;)y%2&&(v+=p[y+1]),y=y-1>>1,p[y]+=g.weight;h+=g.weight*v}),h}return Jx}var ey,nj;function pQ(){if(nj)return ey;nj=1,ey=e;function e(t,n=[]){return n.map(r=>{let i=t.inEdges(r);if(i.length){let o=i.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:r,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:r}})}return ey}var ty,rj;function gQ(){if(rj)return ty;rj=1;let e=Kn();ty=t;function t(i,o){let a={};i.forEach((d,m)=>{let p=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(p.barycenter=d.barycenter,p.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],p=a[d.w];m!==void 0&&p!==void 0&&(p.indegree++,m.out.push(a[d.w]))});let u=Object.values(a).filter(d=>!d.indegree);return n(u)}function n(i){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&r(d,m)}}function u(d){return m=>{m.in.push(d),--m.indegree===0&&i.push(m)}}for(;i.length;){let d=i.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 r(i,o){let a=0,u=0;i.weight&&(a+=i.barycenter*i.weight,u+=i.weight),o.weight&&(a+=o.barycenter*o.weight,u+=o.weight),i.vs=o.vs.concat(i.vs),i.barycenter=a/u,i.weight=u,i.i=Math.min(o.i,i.i),o.merged=!0}return ty}var ny,ij;function xQ(){if(ij)return ny;ij=1;let e=Kn();ny=t;function t(i,o){let a=e.partition(i,v=>Object.hasOwn(v,"barycenter")),u=a.lhs,d=a.rhs.sort((v,w)=>w.i-v.i),m=[],p=0,h=0,g=0;u.sort(r(!!o)),g=n(m,d,g),u.forEach(v=>{g+=v.vs.length,m.push(v.vs),p+=v.barycenter*v.weight,h+=v.weight,g=n(m,d,g)});let y={vs:m.flat(!0)};return h&&(y.barycenter=p/h,y.weight=h),y}function n(i,o,a){let u;for(;o.length&&(u=o[o.length-1]).i<=a;)o.pop(),i.push(u.vs),a++;return a}function r(i){return(o,a)=>o.barycentera.barycenter?1:i?a.i-o.i:o.i-a.i}return ny}var ry,sj;function yQ(){if(sj)return ry;sj=1;let e=pQ(),t=gQ(),n=xQ();ry=r;function r(a,u,d,m){let p=a.children(u),h=a.node(u),g=h?h.borderLeft:void 0,y=h?h.borderRight:void 0,v={};g&&(p=p.filter(k=>k!==g&&k!==y));let w=e(a,p);w.forEach(k=>{if(a.children(k.v).length){let C=r(a,k.v,d,m);v[k.v]=C,Object.hasOwn(C,"barycenter")&&o(k,C)}});let S=t(w,d);i(S,v);let _=n(S,m);if(g&&(_.vs=[g,_.vs,y].flat(!0),a.predecessors(g).length)){let k=a.node(a.predecessors(g)[0]),C=a.node(a.predecessors(y)[0]);Object.hasOwn(_,"barycenter")||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+k.order+C.order)/(_.weight+2),_.weight+=2}return _}function i(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 ry}var iy,oj;function vQ(){if(oj)return iy;oj=1;let e=Ai().Graph,t=Kn();iy=n;function n(i,o,a,u){u||(u=i.nodes());let d=r(i),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(p=>i.node(p));return u.forEach(p=>{let h=i.node(p),g=i.parent(p);(h.rank===o||h.minRank<=o&&o<=h.maxRank)&&(m.setNode(p),m.setParent(p,g||d),i[a](p).forEach(y=>{let v=y.v===p?y.w:y.v,w=m.edge(v,p),S=w!==void 0?w.weight:0;m.setEdge(v,p,{weight:i.edge(y).weight+S})}),Object.hasOwn(h,"minRank")&&m.setNode(p,{borderLeft:h.borderLeft[o],borderRight:h.borderRight[o]}))}),m}function r(i){for(var o;i.hasNode(o=t.uniqueId("_root")););return o}return iy}var sy,aj;function bQ(){if(aj)return sy;aj=1,sy=e;function e(t,n,r){let i={},o;r.forEach(a=>{let u=t.parent(a),d,m;for(;u;){if(d=t.parent(u),d?(m=i[d],i[d]=u):(m=o,o=u),m&&m!==u){n.setEdge(m,u);return}u=d}})}return sy}var oy,lj;function _Q(){if(lj)return oy;lj=1;let e=mQ(),t=hQ(),n=yQ(),r=vQ(),i=bQ(),o=Ai().Graph,a=Kn();oy=u;function u(h,g){if(g&&typeof g.customOrder=="function"){g.customOrder(h,u);return}let y=a.maxRank(h),v=d(h,a.range(1,y+1),"inEdges"),w=d(h,a.range(y-1,-1,-1),"outEdges"),S=e(h);if(p(h,S),g&&g.disableOptimalOrderHeuristic)return;let _=Number.POSITIVE_INFINITY,k;for(let C=0,N=0;N<4;++C,++N){m(C%2?v:w,C%4>=2),S=a.buildLayerMatrix(h);let O=t(h,S);O<_&&(N=0,k=Object.assign({},S),_=O)}p(h,k)}function d(h,g,y){const v=new Map,w=(S,_)=>{v.has(S)||v.set(S,[]),v.get(S).push(_)};for(const S of h.nodes()){const _=h.node(S);if(typeof _.rank=="number"&&w(_.rank,S),typeof _.minRank=="number"&&typeof _.maxRank=="number")for(let k=_.minRank;k<=_.maxRank;k++)k!==_.rank&&w(k,S)}return g.map(function(S){return r(h,S,y,v.get(S)||[])})}function m(h,g){let y=new o;h.forEach(function(v){let w=v.graph().root,S=n(v,w,y,g);S.vs.forEach((_,k)=>v.node(_).order=k),i(v,y,S.vs)})}function p(h,g){Object.values(g).forEach(y=>y.forEach((v,w)=>h.node(v).order=w))}return oy}var ay,cj;function kQ(){if(cj)return ay;cj=1;let e=Ai().Graph,t=Kn();ay={positionX:y,findType1Conflicts:n,findType2Conflicts:r,addConflict:o,hasConflict:a,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:h,findSmallestWidthAlignment:p,balance:g};function n(S,_){let k={};function C(N,O){let I=0,D=0,T=N.length,L=O[O.length-1];return O.forEach((A,M)=>{let $=i(S,A),W=$?S.node($).order:T;($||A===L)&&(O.slice(D,M+1).forEach(B=>{S.predecessors(B).forEach(U=>{let H=S.node(U),V=H.order;(V{A=O[M],S.node(A).dummy&&S.predecessors(A).forEach($=>{let W=S.node($);W.dummy&&(W.orderL)&&o(k,$,A)})})}function N(O,I){let D=-1,T,L=0;return I.forEach((A,M)=>{if(S.node(A).dummy==="border"){let $=S.predecessors(A);$.length&&(T=S.node($[0]).order,C(I,L,M,D,T),L=M,D=T)}C(I,L,I.length,T,O.length)}),I}return _.length&&_.reduce(N),k}function i(S,_){if(S.node(_).dummy)return S.predecessors(_).find(k=>S.node(k).dummy)}function o(S,_,k){if(_>k){let N=_;_=k,k=N}let C=S[_];C||(S[_]=C={}),C[k]=!0}function a(S,_,k){if(_>k){let C=_;_=k,k=C}return!!S[_]&&Object.hasOwn(S[_],k)}function u(S,_,k,C){let N={},O={},I={};return _.forEach(D=>{D.forEach((T,L)=>{N[T]=T,O[T]=T,I[T]=L})}),_.forEach(D=>{let T=-1;D.forEach(L=>{let A=C(L);if(A.length){A=A.sort(($,W)=>I[$]-I[W]);let M=(A.length-1)/2;for(let $=Math.floor(M),W=Math.ceil(M);$<=W;++$){let B=A[$];O[L]===L&&TMath.max($,O[W.v]+I.edge(W)),0)}function A(M){let $=I.outEdges(M).reduce((B,U)=>Math.min(B,O[U.w]-I.edge(U)),Number.POSITIVE_INFINITY),W=S.node(M);$!==Number.POSITIVE_INFINITY&&W.borderType!==D&&(O[M]=Math.max(O[M],$))}return T(L,I.predecessors.bind(I)),T(A,I.successors.bind(I)),Object.keys(C).forEach(M=>O[M]=O[k[M]]),O}function m(S,_,k,C){let N=new e,O=S.graph(),I=v(O.nodesep,O.edgesep,C);return _.forEach(D=>{let T;D.forEach(L=>{let A=k[L];if(N.setNode(A),T){var M=k[T],$=N.edge(M,A);N.setEdge(M,A,Math.max(I(S,L,T),$||0))}T=L})}),N}function p(S,_){return Object.values(_).reduce((k,C)=>{let N=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY;Object.entries(C).forEach(([D,T])=>{let L=w(S,D)/2;N=Math.max(T+L,N),O=Math.min(T-L,O)});const I=N-O;return I{["l","r"].forEach(I=>{let D=O+I,T=S[D];if(T===_)return;let L=Object.values(T),A=C-t.applyWithChunking(Math.min,L);I!=="l"&&(A=N-t.applyWithChunking(Math.max,L)),A&&(S[D]=t.mapValues(T,M=>M+A))})})}function g(S,_){return t.mapValues(S.ul,(k,C)=>{if(_)return S[_.toLowerCase()][C];{let N=Object.values(S).map(O=>O[C]).sort((O,I)=>O-I);return(N[1]+N[2])/2}})}function y(S){let _=t.buildLayerMatrix(S),k=Object.assign(n(S,_),r(S,_)),C={},N;["u","d"].forEach(I=>{N=I==="u"?_:Object.values(_).reverse(),["l","r"].forEach(D=>{D==="r"&&(N=N.map(M=>Object.values(M).reverse()));let T=(I==="u"?S.predecessors:S.successors).bind(S),L=u(S,N,k,T),A=d(S,N,L.root,L.align,D==="r");D==="r"&&(A=t.mapValues(A,M=>-M)),C[I+D]=A})});let O=p(S,C);return h(C,O),g(C,S.graph().align)}function v(S,_,k){return(C,N,O)=>{let I=C.node(N),D=C.node(O),T=0,L;if(T+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":L=-I.width/2;break;case"r":L=I.width/2;break}if(L&&(T+=k?L:-L),L=0,T+=(I.dummy?_:S)/2,T+=(D.dummy?_:S)/2,T+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":L=D.width/2;break;case"r":L=-D.width/2;break}return L&&(T+=k?L:-L),L=0,T}}function w(S,_){return S.node(_).width}return ay}var ly,uj;function SQ(){if(uj)return ly;uj=1;let e=Kn(),t=kQ().positionX;ly=n;function n(i){i=e.asNonCompoundGraph(i),r(i),Object.entries(t(i)).forEach(([o,a])=>i.node(o).x=a)}function r(i){let o=e.buildLayerMatrix(i),a=i.graph().ranksep,u=0;o.forEach(d=>{const m=d.reduce((p,h)=>{const g=i.node(h).height;return p>g?p:g},0);d.forEach(p=>i.node(p).y=u+m/2),u+=m+a})}return ly}var cy,dj;function wQ(){if(dj)return cy;dj=1;let e=sQ(),t=oQ(),n=lQ(),r=Kn().normalizeRanks,i=cQ(),o=Kn().removeEmptyRanks,a=uQ(),u=dQ(),d=fQ(),m=_Q(),p=SQ(),h=Kn(),g=Ai().Graph;cy=y;function y(P,X){let ee=X&&X.debugTiming?h.time:h.notime;ee("layout",()=>{let te=ee(" buildLayoutGraph",()=>T(P));ee(" runLayout",()=>v(te,ee,X)),ee(" updateInputGraph",()=>w(P,te))})}function v(P,X,ee){X(" makeSpaceForEdgeLabels",()=>L(P)),X(" removeSelfEdges",()=>Y(P)),X(" acyclic",()=>e.run(P)),X(" nestingGraph.run",()=>a.run(P)),X(" rank",()=>n(h.asNonCompoundGraph(P))),X(" injectEdgeLabelProxies",()=>A(P)),X(" removeEmptyRanks",()=>o(P)),X(" nestingGraph.cleanup",()=>a.cleanup(P)),X(" normalizeRanks",()=>r(P)),X(" assignRankMinMax",()=>M(P)),X(" removeEdgeLabelProxies",()=>$(P)),X(" normalize.run",()=>t.run(P)),X(" parentDummyChains",()=>i(P)),X(" addBorderSegments",()=>u(P)),X(" order",()=>m(P,ee)),X(" insertSelfEdges",()=>Z(P)),X(" adjustCoordinateSystem",()=>d.adjust(P)),X(" position",()=>p(P)),X(" positionSelfEdges",()=>q(P)),X(" removeBorderNodes",()=>V(P)),X(" normalize.undo",()=>t.undo(P)),X(" fixupEdgeLabelCoords",()=>U(P)),X(" undoCoordinateSystem",()=>d.undo(P)),X(" translateGraph",()=>W(P)),X(" assignNodeIntersects",()=>B(P)),X(" reversePoints",()=>H(P)),X(" acyclic.undo",()=>e.undo(P))}function w(P,X){P.nodes().forEach(ee=>{let te=P.node(ee),re=X.node(ee);te&&(te.x=re.x,te.y=re.y,te.rank=re.rank,X.children(ee).length&&(te.width=re.width,te.height=re.height))}),P.edges().forEach(ee=>{let te=P.edge(ee),re=X.edge(ee);te.points=re.points,Object.hasOwn(re,"x")&&(te.x=re.x,te.y=re.y)}),P.graph().width=X.graph().width,P.graph().height=X.graph().height}let S=["nodesep","edgesep","ranksep","marginx","marginy"],_={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},k=["acyclicer","ranker","rankdir","align"],C=["width","height","rank"],N={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function T(P){let X=new g({multigraph:!0,compound:!0}),ee=J(P.graph());return X.setGraph(Object.assign({},_,G(ee,S),h.pick(ee,k))),P.nodes().forEach(te=>{let re=J(P.node(te));const oe=G(re,C);Object.keys(N).forEach(de=>{oe[de]===void 0&&(oe[de]=N[de])}),X.setNode(te,oe),X.setParent(te,P.parent(te))}),P.edges().forEach(te=>{let re=J(P.edge(te));X.setEdge(te,Object.assign({},I,G(re,O),h.pick(re,D)))}),X}function L(P){let X=P.graph();X.ranksep/=2,P.edges().forEach(ee=>{let te=P.edge(ee);te.minlen*=2,te.labelpos.toLowerCase()!=="c"&&(X.rankdir==="TB"||X.rankdir==="BT"?te.width+=te.labeloffset:te.height+=te.labeloffset)})}function A(P){P.edges().forEach(X=>{let ee=P.edge(X);if(ee.width&&ee.height){let te=P.node(X.v),oe={rank:(P.node(X.w).rank-te.rank)/2+te.rank,e:X};h.addDummyNode(P,"edge-proxy",oe,"_ep")}})}function M(P){let X=0;P.nodes().forEach(ee=>{let te=P.node(ee);te.borderTop&&(te.minRank=P.node(te.borderTop).rank,te.maxRank=P.node(te.borderBottom).rank,X=Math.max(X,te.maxRank))}),P.graph().maxRank=X}function $(P){P.nodes().forEach(X=>{let ee=P.node(X);ee.dummy==="edge-proxy"&&(P.edge(ee.e).labelRank=ee.rank,P.removeNode(X))})}function W(P){let X=Number.POSITIVE_INFINITY,ee=0,te=Number.POSITIVE_INFINITY,re=0,oe=P.graph(),de=oe.marginx||0,se=oe.marginy||0;function je(we){let Ce=we.x,Be=we.y,Ge=we.width,Ye=we.height;X=Math.min(X,Ce-Ge/2),ee=Math.max(ee,Ce+Ge/2),te=Math.min(te,Be-Ye/2),re=Math.max(re,Be+Ye/2)}P.nodes().forEach(we=>je(P.node(we))),P.edges().forEach(we=>{let Ce=P.edge(we);Object.hasOwn(Ce,"x")&&je(Ce)}),X-=de,te-=se,P.nodes().forEach(we=>{let Ce=P.node(we);Ce.x-=X,Ce.y-=te}),P.edges().forEach(we=>{let Ce=P.edge(we);Ce.points.forEach(Be=>{Be.x-=X,Be.y-=te}),Object.hasOwn(Ce,"x")&&(Ce.x-=X),Object.hasOwn(Ce,"y")&&(Ce.y-=te)}),oe.width=ee-X+de,oe.height=re-te+se}function B(P){P.edges().forEach(X=>{let ee=P.edge(X),te=P.node(X.v),re=P.node(X.w),oe,de;ee.points?(oe=ee.points[0],de=ee.points[ee.points.length-1]):(ee.points=[],oe=re,de=te),ee.points.unshift(h.intersectRect(te,oe)),ee.points.push(h.intersectRect(re,de))})}function U(P){P.edges().forEach(X=>{let ee=P.edge(X);if(Object.hasOwn(ee,"x"))switch((ee.labelpos==="l"||ee.labelpos==="r")&&(ee.width-=ee.labeloffset),ee.labelpos){case"l":ee.x-=ee.width/2+ee.labeloffset;break;case"r":ee.x+=ee.width/2+ee.labeloffset;break}})}function H(P){P.edges().forEach(X=>{let ee=P.edge(X);ee.reversed&&ee.points.reverse()})}function V(P){P.nodes().forEach(X=>{if(P.children(X).length){let ee=P.node(X),te=P.node(ee.borderTop),re=P.node(ee.borderBottom),oe=P.node(ee.borderLeft[ee.borderLeft.length-1]),de=P.node(ee.borderRight[ee.borderRight.length-1]);ee.width=Math.abs(de.x-oe.x),ee.height=Math.abs(re.y-te.y),ee.x=oe.x+ee.width/2,ee.y=te.y+ee.height/2}}),P.nodes().forEach(X=>{P.node(X).dummy==="border"&&P.removeNode(X)})}function Y(P){P.edges().forEach(X=>{if(X.v===X.w){var ee=P.node(X.v);ee.selfEdges||(ee.selfEdges=[]),ee.selfEdges.push({e:X,label:P.edge(X)}),P.removeEdge(X)}})}function Z(P){var X=h.buildLayerMatrix(P);X.forEach(ee=>{var te=0;ee.forEach((re,oe)=>{var de=P.node(re);de.order=oe+te,(de.selfEdges||[]).forEach(se=>{h.addDummyNode(P,"selfedge",{width:se.label.width,height:se.label.height,rank:de.rank,order:oe+ ++te,e:se.e,label:se.label},"_se")}),delete de.selfEdges})})}function q(P){P.nodes().forEach(X=>{var ee=P.node(X);if(ee.dummy==="selfedge"){var te=P.node(ee.e.v),re=te.x+te.width/2,oe=te.y,de=ee.x-re,se=te.height/2;P.setEdge(ee.e,ee.label),P.removeNode(X),ee.label.points=[{x:re+2*de/3,y:oe-se},{x:re+5*de/6,y:oe-se},{x:re+de,y:oe},{x:re+5*de/6,y:oe+se},{x:re+2*de/3,y:oe+se}],ee.label.x=ee.x,ee.label.y=ee.y}})}function G(P,X){return h.mapValues(h.pick(P,X),Number)}function J(P){var X={};return P&&Object.entries(P).forEach(([ee,te])=>{typeof ee=="string"&&(ee=ee.toLowerCase()),X[ee]=te}),X}return cy}var uy,fj;function CQ(){if(fj)return uy;fj=1;let e=Kn(),t=Ai().Graph;uy={debugOrdering:n};function n(r){let i=e.buildLayerMatrix(r),o=new t({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+r.node(a).rank)}),r.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),i.forEach((a,u)=>{let d="layer"+u;o.setNode(d,{rank:"same"}),a.reduce((m,p)=>(o.setEdge(m,p,{style:"invis"}),p))}),o}return uy}var dy,mj;function jQ(){return mj||(mj=1,dy="1.1.8"),dy}var fy,hj;function EQ(){return hj||(hj=1,fy={graphlib:Ai(),layout:wQ(),debug:CQ(),util:{time:Kn().time,notime:Kn().notime},version:jQ()}),fy}var NQ=EQ();const pj=Zo(NQ);function IQ(e,t,n={}){const r=new pj.graphlib.Graph;r.setDefaultEdgeLabel(()=>({})),r.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const i=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>r.setNode(a.id,{width:i,height:o})),t.forEach(a=>r.setEdge(a.source,a.target)),pj.layout(r),e.map(a=>{const{x:u,y:d}=r.node(a.id);return{...a,position:{x:u-i/2,y:d-o/2}}})}const TQ={roleNode:UZ},RQ=E.forwardRef(function(t,n){return c.jsx(_R,{children:c.jsx(AQ,{...t,forwardedRef:n})})});function AQ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:r,onSelectRole:i,onReparent:o,readOnly:a,forwardedRef:u}){const d=E.useMemo(()=>{const A=new Map;for(const M of t){const $=M.role_ids?.length?M.role_ids:[M.role_id];for(const W of $){if(!W)continue;const B=A.get(W)??[];B.push(M),A.set(W,B)}}return A},[t]),m=E.useCallback(A=>n?n[A]??[]:(d.get(A)??[]).filter(M=>!M.is_default_employee).map(M=>M.name).filter(Boolean),[d,n]),[p,h]=E.useState(0),g=E.useMemo(()=>e.map(A=>A.role_id).sort().join("|"),[e]),y=E.useRef(g);E.useEffect(()=>{y.current!==g&&(y.current=g,h(A=>A+1))},[g]),E.useImperativeHandle(u,()=>({autoLayout:()=>h(A=>A+1)}),[]);const[v,w]=E.useState(null),[S,_]=E.useState({});E.useEffect(()=>{_({})},[p]);const k=E.useMemo(()=>{const A={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}},M=e.map(U=>({id:U.role_id,type:"roleNode",position:{x:0,y:0},draggable:!0,data:{roleId:U.role_id,name:U.name,responsibility:U.responsibility,icon:U.icon??null,employeeCount:m(U.role_id).length,employeeNames:m(U.role_id),isOwner:!1,isSelected:!1,isDropTarget:!1}})),$=[A,...M],W=e.map(U=>({id:`e-${U.reports_to}-${U.role_id}`,source:U.reports_to,target:U.role_id,type:"smoothstep"}));return{nodes:IQ($,W),edges:W}},[p,a]),C=E.useMemo(()=>k.nodes.map(A=>{if(A.id==="owner")return A;const M=e.find(W=>W.role_id===A.id);if(!M)return A;const $=S[A.id];return{...A,position:$??A.position,draggable:!0,data:{...A.data,name:M.name,responsibility:M.responsibility,icon:M.icon??null,employeeCount:m(M.role_id).length,employeeNames:m(M.role_id),isSelected:M.role_id===r,isDropTarget:M.role_id===v}}}),[k.nodes,e,d,m,r,v,a,S]),[N,O]=E.useState(C);E.useEffect(()=>{O(C)},[C]);const I=E.useCallback(A=>{O(M=>KT(A,M))},[]),D=E.useCallback((A,M)=>{if(a)return;const $=220,W=80,B={x:M.position.x+$/2,y:M.position.y+W/2},U=N.find(H=>H.id===M.id?!1:B.x>=H.position.x&&B.x<=H.position.x+$&&B.y>=H.position.y&&B.y<=H.position.y+W);w(U?.id??null)},[N,a]),T=E.useCallback((A,M)=>{const $=v;w(null);const W=()=>_(B=>({...B,[M.id]:{x:M.position.x,y:M.position.y}}));if(a||!$||$===M.id||RR(e,M.id,$)){W();return}o(M.id,$),h(B=>B+1)},[v,e,a,o]),L=E.useCallback((A,M)=>{i(M.id==="owner"?null:M.id)},[i]);return c.jsx("div",{style:{width:"100%",height:"100%"},children:c.jsxs(pZ,{nodes:N,edges:k.edges,nodeTypes:TQ,onNodesChange:I,onNodeDrag:D,onNodeDragStop:T,onNodeClick:L,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[c.jsx(bZ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),c.jsx(EZ,{showInteractive:!1}),c.jsx($Z,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function RR(e,t,n){const r=e.filter(i=>i.reports_to===t).map(i=>i.role_id);for(const i of r)if(i===n||RR(e,i,n))return!0;return!1}function MQ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onUpdateRole:o,onDeleteRole:a,savedOrgsList:u,activeSavedOrg:d,currentOrgVersion:m,versionAtLoad:p,onSavedOrgsList:h,onSavedOrgSaveAs:g,onSavedOrgLoad:y,onSavedOrgDelete:v}){const[w,S]=E.useState("canvas"),[_,k]=E.useState(null),C=E.useRef(null),N=E.useMemo(()=>e.find(A=>A.role_id===_)??null,[e,_]),O=E.useCallback((A,M)=>{r&&o(A,{reports_to:M})},[o,r]),I=E.useCallback(()=>{C.current?.autoLayout()},[]),D=E.useCallback(()=>{if(!r)return;const A=new Set(e.map(W=>W.role_id));let M="new_role",$=1;for(;A.has(M);)$+=1,M=`new_role_${$}`;i(M,"New Role","","owner",null),k(M)},[e,i,r]),T=E.useCallback(()=>{if(!r||!N)return;const A=new Set(e.map(W=>W.role_id));let M=`${N.role_id}_copy`,$=1;for(;A.has(M);)$+=1,M=`${N.role_id}_copy_${$}`;i(M,`${N.name} (copy)`,N.responsibility,N.reports_to,N.icon),k(M)},[e,i,N,r]),L=E.useRef(null);return E.useEffect(()=>{const A=M=>{const $=M.target;if(!($&&($.tagName==="INPUT"||$.tagName==="TEXTAREA"||$.tagName==="SELECT"||$.isContentEditable))&&!(L.current&&!L.current.contains($))){if(M.key==="Escape"&&_){k(null),M.preventDefault();return}if(M.key==="Delete"&&_&&r){a(_),k(null),M.preventDefault();return}if((M.metaKey||M.ctrlKey)&&M.key.toLowerCase()==="d"&&_&&r){T(),M.preventDefault();return}if(M.key.toLowerCase()==="f"&&w==="canvas"){I(),M.preventDefault();return}}};return window.addEventListener("keydown",A),()=>window.removeEventListener("keydown",A)},[_,r,w,a,I,T]),c.jsxs("div",{className:"se-container",ref:L,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":w==="canvas",className:`se-view-btn${w==="canvas"?" is-active":""}`,onClick:()=>S("canvas"),children:"Canvas"}),c.jsx("button",{role:"tab","aria-selected":w==="table",className:`se-view-btn${w==="table"?" is-active":""}`,onClick:()=>S("table"),children:"Table"})]}),c.jsxs("div",{className:`se-toolbar-actions${r?"":" se-toolbar-actions--readonly"}`,children:[r?c.jsxs("div",{className:"se-saved-org-control",children:[c.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),c.jsx(PV,{savedOrgs:u??null,activeName:d??null,isDirty:p!=null&&(m??0)!==p,onRefresh:h??(()=>{}),onSaveAs:g??(()=>{}),onLoad:y??(()=>{}),onDelete:v??(()=>{})})]}):c.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),c.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),w==="canvas"&&c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:I,children:"Auto-layout"}),r&&c.jsx("button",{className:"btn btn-primary btn-sm",onClick:D,children:"+ Add role"})]})]}),c.jsxs("div",{className:"se-body",children:[w==="canvas"?c.jsx(RQ,{ref:C,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:_,onSelectRole:k,onReparent:O,readOnly:!r}):c.jsx(BU,{roles:e,employees:t,selectedIds:_?[_]:[],onSelectRow:A=>k(A),onUpdateRole:o,onDeleteRole:a,readOnly:!r}),N&&c.jsx(VV,{role:N,allRoles:e,employees:t,readOnly:!r,onUpdateRole:o,onDeleteRole:A=>{a(A),k(null)},onClose:()=>k(null)})]})]})}const Gi={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 DQ({onComplete:e,onSwitchToTab:t}){const[n,r]=E.useState(1),[i,o]=E.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...i,{name:"",resp:"",parent:"owner"}]),u=(g,y,v)=>{const w=[...i];w[g][y]=v,o(w)},d=g=>{i.length<=1||o(i.filter((y,v)=>v!==g))},m=i.filter(g=>g.name.trim()),p=m.map(g=>g.name.trim()).filter(Boolean),h=()=>{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:Gi.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:Gi.people,label:"Team Members"},{n:2,icon:Gi.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:i.map((g,y)=>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(y,"name",v.target.value)}),c.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>u(y,"resp",v.target.value)}),c.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>u(y,"parent",v.target.value),children:[c.jsx("option",{value:"owner",children:"Reports to you"}),p.filter(v=>v!==g.name.trim()).map(v=>c.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),i.length>1&&c.jsx("button",{className:"qs-remove-btn",onClick:()=>d(y),title:"Remove",children:c.jsx("img",{src:Gi.trash,alt:"",className:"qs-remove-icon"})})]},y))}),c.jsxs("button",{className:"qs-add-member",onClick:a,children:[c.jsx("img",{src:Gi.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:()=>r(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,y)=>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})`})]},y))]}),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:()=>r(1),children:"← Back"}),c.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:h,children:"Create Team"})]})]})]})}function OQ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onBulkAddRoles:o,onUpdateRole:a,onDeleteRole:u,onExport:d,onImportEmployee:m,onResetArchitecture:p,onSwitchToTab:h,savedOrgsList:g,activeSavedOrg:y,currentOrgVersion:v,versionAtLoad:w,onSavedOrgsList:S,onSavedOrgSaveAs:_,onSavedOrgLoad:k,onSavedOrgDelete:C}){const[N,O]=E.useState(!1),[I,D]=E.useState(!1),[T,L]=E.useState(""),[A,M]=E.useState(""),[$,W]=E.useState(""),[B,U]=E.useState("1.0.0"),H=E.useMemo(()=>{const X=new Map;for(const ee of t){const te=ee.role_ids?.length?ee.role_ids:[ee.role_id];for(const re of te){if(!re)continue;const oe=X.get(re)||[];oe.push(ee),X.set(re,oe)}}return X},[t]),V=()=>{!T.trim()||!A.trim()||(d({package_id:T.trim(),name:A.trim(),description:$,version:B}),D(!1),L(""),M(""),W(""),U("1.0.0"))},Y=E.useRef(null);E.useEffect(()=>{N&&e.length>0&&(O(!1),Y.current&&(clearTimeout(Y.current),Y.current=null))},[e.length,N]),E.useEffect(()=>{if(N)return Y.current=setTimeout(()=>O(!1),1e4),()=>{Y.current&&clearTimeout(Y.current)}},[N]);const Z=X=>{const ee=new Map,te=new Set,re=[];for(const oe of X){let de=oe.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!de)continue;let se=de,je=2;for(;te.has(se);)se=`${de}-${je++}`;te.add(se),ee.set(oe.name,se);const we=oe.reportsTo==="owner"?"owner":ee.get(oe.reportsTo)||"owner";re.push({role_id:se,name:oe.name,responsibility:oe.responsibility,reports_to:we})}if(re.length!==0)if(o)O(!0),o(re);else{for(const oe of re)i(oe.role_id,oe.name,oe.responsibility,oe.reports_to);O(!0)}},q=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&p?.()},G=E.useMemo(()=>{let X=0;for(const ee of e)(H.get(ee.role_id)??[]).length>0&&(X+=1);return X},[e,H]),J=E.useMemo(()=>t.filter(X=>X.linked_agent_id).length,[t]),P=Math.max(0,e.length-G);return r&&e.length===0?c.jsx("div",{className:"team-view",children:N?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(DQ,{onComplete:Z,onSwitchToTab:h})}):c.jsxs("div",{className:"team-view",children:[c.jsxs("div",{className:`team-command-bar${r?" 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:r?"Saved org workspace":"Corporate baseline"}),c.jsx("span",{className:"team-command-title",children:r?"Editable company architecture":"Built-in company architecture"})]}),c.jsxs("div",{className:"team-command-metrics",children:[c.jsxs("span",{children:[c.jsx("b",{children:G})," staffed roles"]}),c.jsxs("span",{children:[c.jsx("b",{children:P})," vacant"]}),c.jsxs("span",{children:[c.jsx("b",{children:J})," in office"]})]}),r&&c.jsxs("div",{className:"team-command-actions",children:[c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>h("employees"),children:[c.jsx("img",{src:Gi.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>D(!0),children:"Export Package"}),p&&c.jsxs("button",{className:"myorg-reset-btn",onClick:q,children:[c.jsx("img",{src:Gi.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!r&&c.jsx("div",{className:"team-readonly-strip",children:"Corporate is fixed and read-only; saved company architectures are edited separately."}),c.jsx(MQ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onUpdateRole:a,onDeleteRole:u,savedOrgsList:g??null,activeSavedOrg:y??null,currentOrgVersion:v??0,versionAtLoad:w??null,onSavedOrgsList:S,onSavedOrgSaveAs:_,onSavedOrgLoad:k,onSavedOrgDelete:C}),I&&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:X=>L(X.target.value),placeholder:"my-architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Name"}),c.jsx("input",{value:A,onChange:X=>M(X.target.value),placeholder:"My Architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Description"}),c.jsx("input",{value:$,onChange:X=>W(X.target.value),placeholder:"An org team structure"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Version"}),c.jsx("input",{value:B,onChange:X=>U(X.target.value)})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:V,disabled:!T.trim()||!A.trim(),children:"Export"}),c.jsx("button",{className:"oc-btn-ghost",onClick:()=>D(!1),children:"Cancel"})]})]}),c.jsxs("div",{className:"myorg-section",children:[c.jsxs("div",{className:"myorg-section-header",children:[c.jsx("img",{src:Gi.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:[G,"/",e.length," staffed"]})]}),c.jsx("div",{className:"team-roster-grid",children:e.map(X=>{const ee=H.get(X.role_id)||[];return c.jsxs("div",{className:"team-roster-card",children:[c.jsxs("div",{className:"team-roster-card-header",children:[c.jsx("img",{src:wu(X.icon),alt:"",className:"team-roster-card-icon"}),c.jsx("span",{className:"team-roster-role-name",children:X.name}),c.jsx("span",{className:"team-roster-count",children:ee.length||"vacant"})]}),ee.length>0?ee.map(te=>c.jsxs("div",{className:"team-roster-emp",children:[c.jsx("img",{src:Gi.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:te.name}),c.jsx("span",{className:`team-roster-seniority team-roster-seniority--${te.seniority}`,children:te.seniority})]}),te.linked_agent_id?c.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):m&&te.role_id?c.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>m(te.employee_id),title:"Add this employee to the office workspace",children:[c.jsx("img",{src:Gi.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},te.employee_id)):c.jsxs("div",{className:"team-roster-vacant",children:[c.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),r&&c.jsx("button",{className:"team-roster-hire-btn",onClick:()=>h("employees"),children:"Hire"})]})]},X.role_id)})})]})]})}function Wm(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 LQ(e){const t=Wm(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(r=>r&&typeof r=="object").filter(r=>!!(r.required??!0)&&!r.satisfied).map(r=>String(r.name??"").trim()).filter(Boolean)}function zQ(e){const n=Wm(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function PQ(e){const t=Wm(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function BQ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:r,frontier:i,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:u,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:p,onUpdateRuntimePolicy:h}){const g=e.filter(S=>(d??[]).includes(S.role_id)),y=u||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!y,w=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:y,disabled:m,onChange:S=>{m||p?.({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||r.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:[i.status||"running",i.run_id?` (${i.run_id.slice(0,8)})`:""]})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Frontier"}),c.jsxs("div",{children:[i.running_count??0," running, ",i.ready_count??0," ready, ",i.blocked_count??0," blocked, ",i.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:r.length})]}),r.length>0&&c.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:r.slice(0,6).map(S=>{const _=Wm(S),k=typeof _?.normalized_state=="string"?_.normalized_state:"",C=typeof _?.blocked_reason=="string"?_.blocked_reason:S.blocked_reason??"",N=zQ(S),O=LQ(S),I=PQ(S),D=[C?`waiting ${C}`:"",N?`gate ${w.get(N)??N}`:"",O.length?`signals ${O.join(", ")}`:"",I?`confidence ${I}`:"",k==="invalidated"?"invalidated":""].filter(Boolean);return c.jsxs("div",{style:{marginBottom:6},children:[c.jsxs("div",{children:[w.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]})]}),D.length>0&&c.jsx("div",{style:{marginLeft:12,opacity:.85},children:D.join(" • ")})]},S.work_item_id)})})]})}):null]})}function $Q({pkg:e,onUninstall:t,uninstallingId:n}){const r=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:r,onClick:i=>{i.stopPropagation(),t(e.package_id)},children:r?"Removing...":"Uninstall"})})]})}function my({icon:e,title:t,count:n,extra:r,children:i,defaultExpanded:o=!1}){const[a,u]=E.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}),r&&c.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:r})]}),a&&c.jsx("div",{className:"myorg-collapsible-body",children:i})]})}const Ui={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"},p0={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function HQ({presets:e,installedIds:t,previewData:n,applyingPresetId:r,readOnly:i,onPreview:o,onApplyPreset:a,onClearPreview:u,installedPackages:d,channels:m,reorgProposals:p,isCustomMode:h,onReorgDecide:g,onMarketInstall:y,onMarketUninstall:v}){const[w,S]=E.useState(""),[_,k]=E.useState(null),[C,N]=E.useState(null),[O,I]=E.useState(!1),[D,T]=E.useState(""),[L,A]=E.useState(null),M=E.useMemo(()=>{const H=new Set;for(const V of e)V.category&&H.add(V.category);return Array.from(H).sort()},[e]),$=E.useMemo(()=>{const H=new Set;for(const V of e)V.collaboration_pattern&&H.add(V.collaboration_pattern);return Array.from(H).sort()},[e]),W=E.useMemo(()=>{let H=e;if(_&&(H=H.filter(V=>V.category===_)),C&&(H=H.filter(V=>V.collaboration_pattern===C)),w.trim()){const V=w.trim().toLowerCase();H=H.filter(Y=>Y.name.toLowerCase().includes(V)||Y.description.toLowerCase().includes(V)||Y.tags.some(Z=>Z.toLowerCase().includes(V))||(p0[Y.collaboration_pattern]||"").toLowerCase().includes(V))}return H},[e,_,C,w]),B=()=>{D.trim()&&(y(D.trim(),"namespace"),I(!1),T(""))},U=H=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(A(H),v(H),setTimeout(()=>A(null),3e3))};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:Ui.search,alt:"",className:"mkt-search-icon"}),c.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:w,onChange:H=>S(H.target.value)})]}),c.jsxs("span",{className:"mkt-count",children:[W.length," architectures"]})]}),c.jsxs("div",{className:"mkt-filters",children:[M.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill${_?"":" active"}`,onClick:()=>k(null),children:"All"}),M.map(H=>c.jsx("button",{className:`mkt-pill${_===H?" active":""}`,onClick:()=>k(_===H?null:H),children:H},H))]}),$.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill mkt-pill-pattern${C?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),$.map(H=>c.jsx("button",{className:`mkt-pill mkt-pill-pattern${C===H?" active":""}`,onClick:()=>N(C===H?null:H),children:p0[H]||H},H))]})]}),W.length>0?c.jsxs("div",{className:"mkt-section",children:[c.jsxs("div",{className:"mkt-section-header",children:[c.jsx("img",{src:Ui.arch,alt:"",className:"mkt-section-icon"}),c.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),c.jsx("span",{className:"mkt-section-count",children:W.length})]}),c.jsx("div",{className:"mkt-arch-grid",children:W.map(H=>c.jsx(FQ,{preset:H,isInstalled:t.has(H.id),isApplying:r===H.id,readOnly:i,onPreview:()=>o(H.id),onApply:()=>a(H.id,"namespace")},H.id))})]}):c.jsx("div",{className:"mkt-empty",children:c.jsx("p",{children:"No architectures match your search."})}),c.jsxs(my,{icon:Ui.packages,title:"Installed Packages",count:d.length,extra:h?c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>I(!O),children:[c.jsx("img",{src:Ui.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[h&&O&&c.jsxs("div",{className:"myorg-form",children:[c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Path"}),c.jsx("input",{value:D,onChange:H=>T(H.target.value),placeholder:"/path/to/package.opcpkg"})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:B,disabled:!D.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(H=>c.jsx($Q,{pkg:H,onUninstall:h?U:void 0,uninstallingId:L},H.package_id))}):c.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),c.jsx(my,{icon:Ui.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?c.jsx("div",{className:"org-channels-grid",children:m.map(H=>c.jsxs("div",{className:`org-channel-card${H.running?" org-ch-running":""}${H.enabled?"":" org-ch-disabled"}`,children:[c.jsxs("div",{className:"org-ch-header",children:[c.jsx("span",{className:`org-ch-dot${H.running?" running":H.ready?" ready":H.configured?" configured":""}`}),c.jsx("span",{className:"org-ch-name",children:H.name})]}),c.jsxs("div",{className:"org-ch-status-row",children:[H.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),H.running&&c.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!H.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},H.name))}):c.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),p.length>0&&c.jsx(my,{icon:Ui.reorg,title:"Reorg Proposals",count:p.length,children:c.jsx("div",{className:"org-reorg-list",children:p.map(H=>{const V=H.status==="proposed";return c.jsxs("div",{className:`org-reorg-card org-reorg-${H.status}`,children:[c.jsxs("div",{className:"org-reorg-header",children:[c.jsx("span",{className:"org-reorg-title",children:H.title||H.summary||"Untitled"}),c.jsx("span",{className:"org-reorg-status",children:H.status})]}),H.summary&&c.jsx("div",{className:"org-reorg-summary",children:H.summary}),V&&h&&c.jsxs("div",{className:"org-reorg-actions",children:[c.jsx("button",{className:"org-reorg-approve",onClick:()=>g(H.proposal_id,!0),children:"Approve"}),c.jsx("button",{className:"org-reorg-deny",onClick:()=>g(H.proposal_id,!1),children:"Deny"})]})]},H.proposal_id)})})}),n&&c.jsx(VQ,{data:n,isInstalled:t.has(n.id),isApplying:r===n.id,onApply:()=>a(n.id,"namespace"),onClose:u})]})}function FQ({preset:e,isInstalled:t,isApplying:n,readOnly:r,onPreview:i,onApply:o}){const a=p0[e.collaboration_pattern]||e.collaboration_pattern;return c.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:i,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"}):r?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(),i()},children:"Preview"})]})]})}function VQ({data:e,isInstalled:t,isApplying:n,onApply:r,onClose:i}){return c.jsx("div",{className:"mkt-modal-overlay",onClick:i,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:i,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(UQ,{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:r,children:n?"Applying...":"Use This Architecture"})})]})})}function UQ({templates:e}){const t=[];let n="__init__",r=[];for(const i of e)i.parallel_group!==n?(r.length>0&&t.push({group:n,templates:r}),n=i.parallel_group,r=[i]):r.push(i);return r.length>0&&t.push({group:n,templates:r}),c.jsx("div",{className:"org-dag",children:t.map((i,o)=>c.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&c.jsx("div",{className:"org-dag-arrow",children:c.jsx("img",{src:Ui.arrow,alt:"→",className:"org-dag-arrow-icon"})}),c.jsxs("div",{className:`org-dag-group${i.templates.length>1?" org-dag-parallel":""}`,children:[i.templates.length>1&&c.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),i.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"?Ui.gateReview:a.gate.type==="approval"?Ui.gateApproval:Ui.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 GQ(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 qQ({template:e,hiringId:t,onHire:n,onClick:r}){const i=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 p of[...e.tags,...e.domains])u.has(p)||(u.add(p),a.push(p));const d=a.slice(0,3),m=a.length-d.length;return c.jsxs("div",{className:"tm-card",onClick:()=>r(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:GQ(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(p=>c.jsx("span",{className:"tm-card-chip",children:p},p)),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:i,onClick:p=>{p.stopPropagation(),n(e.template_id)},children:i?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const AR=e=>e,MR=e=>e;function WQ({template:e,vacantRoles:t,hiringId:n,readOnly:r,onHire:i,onClose:o}){const[a,u]=E.useState(""),d=n===e.template_id,m=t.length===0,p=!r&&!d&&!m&&a!=="";E.useEffect(()=>{u("")},[e.template_id]);const h=()=>{p&&i(MR(e.template_id),AR(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})]}),!r&&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 y=g.role_id===a;return c.jsxs("button",{type:"button",role:"option","aria-selected":y,className:`tm-detail-role-row${y?" 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)})})]})]}),!r&&c.jsx("div",{className:"tm-detail-footer",children:c.jsx("button",{className:"tm-detail-hire-btn",disabled:!p,onClick:h,children:d?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function YQ({open:e,template:t,vacantRoles:n,onConfirm:r,onClose:i}){const[o,a]=E.useState("");if(E.useEffect(()=>{e&&a("")},[e,t?.template_id]),E.useEffect(()=>{if(!e)return;const p=h=>{h.key==="Escape"&&i()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[e,i]),!e||!t)return null;const u=n.length===0,d=!u&&o!=="",m=()=>{d&&r(MR(t.template_id),AR(o))};return c.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:i,children:c.jsxs("div",{className:"htr-modal",onMouseDown:p=>p.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:i,"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(p=>{const h=p.role_id===o;return c.jsxs("button",{type:"button",role:"option","aria-selected":h,className:`htr-role-row${h?" is-selected":""}`,onClick:()=>a(p.role_id),children:[c.jsx("span",{className:"htr-role-name",children:p.name}),p.responsibility&&c.jsx("span",{className:"htr-role-resp",children:p.responsibility})]},p.role_id)})})}),c.jsxs("footer",{className:"htr-footer",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i,children:u?"Close":"Cancel"}),!u&&c.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const gj={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 XQ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:r,onHireTalent:i}){const[o,a]=E.useState(""),[u,d]=E.useState(null),[m,p]=E.useState(null),[h,g]=E.useState(null),y=E.useMemo(()=>{const S=new Set;for(const _ of e)_.category&&S.add(_.category);return Array.from(S).sort()},[e]),v=E.useMemo(()=>{let S=e;if(u&&(S=S.filter(_=>_.category===u)),o.trim()){const _=o.trim().toLowerCase();S=S.filter(k=>k.name.toLowerCase().includes(_)||k.description.toLowerCase().includes(_)||k.domains.some(C=>C.toLowerCase().includes(_))||k.tags.some(C=>C.toLowerCase().includes(_))||(k.vibe??"").toLowerCase().includes(_))}return S},[e,u,o]),w=S=>{if(r)return;const _=e.find(k=>k.template_id===S);_&&g(_)};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:gj.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"]})]})]}),y.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"}),y.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:gj.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(qQ,{template:S,hiringId:n,onHire:w,onClick:p},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(WQ,{template:m,vacantRoles:t,hiringId:n,readOnly:r,onHire:(S,_)=>{r||(i(S,_),p(null))},onClose:()=>p(null)}),c.jsx(YQ,{open:h!==null,template:h,vacantRoles:t,onConfirm:(S,_)=>{i(S,_),g(null)},onClose:()=>g(null)})]})}const Mc={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 KQ({onExport:e,onImport:t,configExportYaml:n,importPreview:r,importError:i}){const[o,a]=E.useState(""),[u,d]=E.useState(null),[m,p]=E.useState(!1),h=E.useRef(!1),g=E.useRef(null);E.useEffect(()=>{if(!h.current||!n||n===g.current)return;g.current=n,h.current=!1;const k=new Blob([n],{type:"application/x-yaml"}),C=URL.createObjectURL(k),N=document.createElement("a");N.href=C;const O=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);N.download=`org_config_${O}.yaml`,document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(C)},[n]),E.useEffect(()=>{p(!1)},[o]),E.useEffect(()=>{r&&!i&&p(!0)},[r,i]);const y=()=>{h.current=!0,e()},v=k=>{const C=k.target.files?.[0];if(!C)return;d(C.name);const N=new FileReader;N.onload=()=>{const O=N.result;typeof O=="string"&&a(O)},N.readAsText(C),k.target.value=""},w=()=>{o.trim()&&t(o,!0)},S=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),p(!1),a(""),d(null))},_=()=>{a(""),d(null),p(!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:Mc.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:y,children:[c.jsx("img",{src:Mc.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:Mc.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:w,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:_,children:"Clear"})]}),r&&!i&&c.jsxs("div",{className:"cfg-io-preview",children:[c.jsx("img",{src:Mc.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:r.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:r.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:r.employees_changed})]})]})]})]}),i&&c.jsxs("div",{className:"cfg-io-error",children:[c.jsx("img",{src:Mc.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:i})]})]})]})]})}const xj=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function hy(e){return e.trim()||"Member"}function ZQ({open:e,pending:t,result:n,onClose:r,onCreate:i}){const[o,a]=E.useState(1),[u,d]=E.useState(""),[m,p]=E.useState(xj),[h,g]=E.useState("");E.useEffect(()=>{e&&(a(1),d(""),p(xj),g(""))},[e]),E.useEffect(()=>{if(!(!e||!n)){if(n.ok){r();return}g(n.error||"Failed to create organization")}},[e,n,r]);const y=u.trim().length>0,v=E.useMemo(()=>m.map((D,T)=>({member:D,index:T})).filter(D=>D.member.name.trim()),[m]),w=E.useMemo(()=>new Map(v.map((D,T)=>[D.index,T])),[v]),S=v.length>=2,_=y&&S&&!t,k=E.useMemo(()=>v.map(({member:D,index:T},L)=>{const A=D.reportsToIndex==null?null:w.get(D.reportsToIndex);return{...D,roleName:hy(D.name),managerName:A!=null&&A{p(L=>L.map((A,M)=>M===D?{...A,...T}:A))},N=()=>{p(D=>[...D,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},O=D=>{p(T=>T.filter((A,M)=>M!==D).map((A,M)=>({...A,reportsToIndex:A.reportsToIndex==null?null:A.reportsToIndex>=D?Math.max(0,A.reportsToIndex-1):A.reportsToIndex})).map((A,M)=>M===0?{...A,reportsToIndex:null}:A))},I=()=>{_&&(g(""),i(u.trim(),v.map(({member:D},T)=>{const L=D.reportsToIndex==null?null:w.get(D.reportsToIndex);return{name:D.name.trim(),responsibility:D.responsibility.trim(),prompt:D.prompt.trim(),reports_to_index:L!=null&&LD.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:r,"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(([D,T])=>c.jsxs("span",{className:`org-create-step${o===Number(D)?" org-create-step--active":o>Number(D)?" org-create-step--done":""}`,children:[c.jsx("span",{children:D}),T]},D))}),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:D=>d(D.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((D,T)=>c.jsxs("div",{className:"org-create-member-row",children:[c.jsx("input",{value:D.name,onChange:L=>C(T,{name:L.target.value}),placeholder:T===0?"Lead role":"Member role"}),c.jsx("input",{value:D.responsibility,onChange:L=>C(T,{responsibility:L.target.value}),placeholder:"Responsibility"}),c.jsxs("select",{value:D.reportsToIndex==null?"owner":String(D.reportsToIndex),onChange:L=>C(T,{reportsToIndex:L.target.value==="owner"?null:Number(L.target.value)}),disabled:T===0,"aria-label":"Reports to",children:[c.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,T).map((L,A)=>c.jsx("option",{value:A,children:hy(L.name)},A))]}),c.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>O(T),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),c.jsx("textarea",{value:D.prompt,onChange:L=>C(T,{prompt:L.target.value}),placeholder:"Prompt optional","aria-label":`${T===0?"Lead role":"Member role"} prompt optional`})]},T))}),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(D=>c.jsxs("div",{className:"org-create-review-row",children:[c.jsx("strong",{children:D.roleName}),c.jsxs("span",{children:[D.managerName,D.prompt.trim()?c.jsx("em",{children:"Prompt"}):null]})]},D.index))]})}),h&&c.jsx("div",{className:"org-create-error",children:h}),c.jsxs("div",{className:"org-create-actions",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?r:()=>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?!y:!S,children:"Next"}):c.jsx("button",{type:"button",className:"btn btn-primary",onClick:I,disabled:!_,children:t?"Creating...":"Create organization"})]})]})})}const Va={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"},yj={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 QQ(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 JQ({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:r,reorgProposals:i,isCustomMode:o,onRequestData:a,onRequestTalents:u,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:p,onImportEmployee:h,onRequestReorgList:g,onReorgDecide:y,onMarketExport:v,onMarketInstall:w,onMarketUninstall:S,marketPresets:_,marketPreviewData:k,onMarketBrowse:C,onMarketPreview:N,onMarketApplyPreset:O,onMarketClearPreview:I,onAddRole:D,onBulkAddRoles:T,onUpdateRole:L,onDeleteRole:A,onUpdateOrgStrategy:M,onUpdateRuntimePolicy:$,onResetArchitecture:W,onConfigExport:B,onConfigImport:U,configExportYaml:H,configImportPreview:V,configImportError:Y,onSavedOrgsList:Z,onSavedOrgSaveAs:q,onSavedOrgCreate:G,onSavedOrgLoad:J,onSavedOrgDelete:P,savedOrgsList:X,activeSavedOrg:ee,activeSavedOrgVersionAtLoad:te,orgCreatePending:re,orgCreateResult:oe,onSelectCorporate:de}){const[se,je]=E.useState("team"),[we,Ce]=E.useState(!1),Be=E.useCallback(tt=>{je(tt)},[]),[Ge,Ye]=E.useState(null),yt=E.useRef(-1),[Vt,bt]=E.useState(null),vt=E.useRef(null),me=E.useCallback((tt,it="info")=>{bt({msg:tt,type:it}),vt.current&&clearTimeout(vt.current),vt.current=setTimeout(()=>bt(null),3e3)},[]);E.useEffect(()=>()=>{vt.current&&clearTimeout(vt.current)},[]);const Oe=E.useRef(a),rt=E.useRef(u),Qe=E.useRef(g),Je=E.useRef(C),fe=E.useRef(Z);Oe.current=a,rt.current=u,Qe.current=g,Je.current=C,fe.current=Z,E.useEffect(()=>{Oe.current(),rt.current(),Qe.current(),Je.current?.(),fe.current?.()},[]),E.useEffect(()=>{!oe||!oe.ok||(Ce(!1),je("team"),me(`Created ${oe.organization_name||oe.name} and saved automatically`))},[oe,me]);const be=e?.roles??[],Me=E.useMemo(()=>o?be.filter(tt=>!tt.is_builtin):be,[be,o]),Fe=E.useMemo(()=>e?.employees??[],[e?.employees]),$e=E.useMemo(()=>Em(e),[e]),Ut=E.useMemo(()=>Fe.filter(tt=>tt.linked_agent_id),[Fe]),ke=e?.organization_name?.trim()||QQ(ee)||(o?"Custom org":"Corporate company"),Te=(o?e?.organization_id||ee:"corporate")||"",Pe=o?"Saved org":"Corporate",Ve=o?ee?"Editable saved architecture":"Editable draft architecture":"Built-in read-only architecture",qe=$e.frontier.status||$e.projectRun?.status||$e.projectRun?.lifecycle_status||"ready",et=E.useMemo(()=>{const tt=new Set;for(const it of Fe){if(it.is_default_employee)continue;const sn=it.role_ids?.length?it.role_ids:[it.role_id];for(const Qt of sn)Qt&&tt.add(Qt)}return tt},[Fe]),Mn=E.useMemo(()=>Me.filter(tt=>!et.has(tt.role_id)),[Me,et]),Tn=E.useMemo(()=>new Set((e?.installed_packages??[]).map(tt=>tt.package_id)),[e?.installed_packages]),Dn=e?.org_version??0;E.useEffect(()=>{Ge&&yt.current>=0&&Dn!==yt.current&&(Ye(null),yt.current=-1,je("team"),me("Architecture applied successfully"))},[Dn,Ge,me]);const yn=(tt,it)=>{yt.current=Dn,Ye(tt),O?.(tt,it)},Wt=tt=>{if(tt==="corporate"){de?.();return}if(tt.startsWith("org:")){const it=tt.slice(4);it&&J?.(it)}};if(!e)return c.jsx("div",{className:"org-tab",children:c.jsx("div",{className:"org-loading",children:"Loading organization data..."})});const Zt=e.installed_packages??[],Et=X??[],wt=o&&ee?`org:${ee}`:"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:"Company"}),c.jsx("span",{className:"org-eyebrow-separator",children:"/"}),c.jsx("span",{children:Pe})]}),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:Ve})]}),c.jsxs("div",{className:"org-header-meta",children:[c.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),Te&&c.jsx("code",{className:"org-meta-code",children:Te}),c.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:qe}),c.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:"Auto-saved"})]})]}),c.jsxs("div",{className:"org-control-panel",children:[c.jsxs("label",{className:"org-switcher",children:[c.jsx("span",{className:"org-switcher-label",children:"Organization"}),c.jsx("span",{className:"org-switcher-select-wrap",children:c.jsxs("select",{className:"org-switcher-select",value:wt,onChange:tt=>Wt(tt.target.value),onFocus:()=>Z?.(),onPointerDown:()=>Z?.(),"aria-label":"Organization",children:[c.jsx("option",{value:"corporate",children:"Corporate"}),Et.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:()=>Ce(!0),children:[c.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),"New organization"]})]}),c.jsxs("div",{className:"org-stats-strip",children:[c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:yj.agents,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Me.length})," roles"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:Va.employees,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Fe.length})," employees"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:Va.runtime,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:$e.runtimeTeams.length})," runtime teams"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:yj.active,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Ut.length})," active"]})]})]}),c.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:Va.team,label:"Team",count:Me.length},{id:"runtime",icon:Va.runtime,label:"Runtime",count:$e.runtimeTeams.length},{id:"architecture",icon:Va.architecture,label:"Architecture",count:_?.length??0},{id:"employees",icon:Va.employees,label:"Employees",count:n.length}].map(tt=>c.jsxs("button",{className:`org-subtab${se===tt.id?" org-subtab--active":""}`,onClick:()=>Be(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))}),Vt&&c.jsx("div",{className:`org-toast org-toast--${Vt.type}`,onClick:()=>bt(null),children:Vt.msg}),c.jsxs("div",{className:"org-tab-content",children:[se==="team"&&c.jsx(OQ,{roles:Me,employees:Fe,sessionRecruitmentByRole:t,isCustomMode:o,onAddRole:D??(()=>{}),onBulkAddRoles:T,onUpdateRole:L??(()=>{}),onDeleteRole:A??(()=>{}),onExport:v??(()=>{}),onImportEmployee:h,onResetArchitecture:W,onSwitchToTab:tt=>je(tt),savedOrgsList:X,activeSavedOrg:ee??null,currentOrgVersion:e?.org_version??0,versionAtLoad:te??null,onSavedOrgsList:Z,onSavedOrgSaveAs:q,onSavedOrgLoad:J,onSavedOrgDelete:P}),se==="runtime"&&c.jsx(BQ,{roles:Me,runtimeTeams:$e.runtimeTeams,runtimeSeats:$e.runtimeSeats,workItems:$e.workItems,frontier:$e.frontier,companyProfile:e.company_profile,runtimePolicy:e.runtime_policy,finalDeciderRoleId:e.final_decider_role_id,topLevelRoleIds:e.top_level_role_ids,readOnly:!o,onUpdateOrgStrategy:M,onUpdateRuntimePolicy:$}),se==="architecture"&&c.jsxs(c.Fragment,{children:[c.jsx(HQ,{presets:_??[],installedIds:Tn,previewData:k??null,applyingPresetId:Ge,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:yn,onClearPreview:I??(()=>{}),installedPackages:Zt,channels:e.channels,reorgProposals:i,isCustomMode:!!o,onReorgDecide:y,onMarketInstall:(tt,it)=>w?.(tt,it),onMarketUninstall:tt=>S?.(tt)}),o&&c.jsx(KQ,{onExport:B??(()=>{}),onImport:U??(()=>{}),configExportYaml:H??null,importPreview:V??null,importError:Y??null})]}),se==="employees"&&c.jsx(XQ,{templates:n,vacantRoles:Mn,hiringTemplateId:p??null,readOnly:!o,onHireTalent:m})]}),c.jsx(ZQ,{open:we,pending:re,result:oe??null,onClose:()=>Ce(!1),onCreate:(tt,it)=>G?.(tt,it)})]})}function eJ(e,t,n,r){const i=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 ${i}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const tJ=1e12,nJ=/^\[Company:([^\]]+)\]\s*(.*)$/,rJ=/^\[Company\]\s*(.*)$/;function DR(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function dm(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:dm(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,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 iJ(e){return Array.isArray(e)?NI(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,r=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:dm(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:r,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 sJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function vj(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 oJ(e){const t=e.content.trim(),n=e.metadata??{},r=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,i=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=nJ.exec(t);if(o){const[,u,d]=o,m=d.trim();return{timestamp:e.timestamp,type:vj(m),workItemProjectionId:u,workItemProjectionTitle:sJ(u),roleName:r,detail:m||void 0,runtimeTaskId:i,executionTurnId:i}}const a=rJ.exec(t);if(a){const u=a[1].trim();return{timestamp:e.timestamp,type:vj(u),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:r,detail:u||void 0,runtimeTaskId:i,executionTurnId:i}}return null}function aJ(e){return e.map(oJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function lJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const r of t){const i=n.get(r.channelId);i?i.push(r):n.set(r.channelId,[r])}return e.map(r=>{const i=aJ(n.get(r.channelId)??[]),o=r.workItemLog&&r.workItemLog.length>0?r.workItemLog:i,a=[...o].reverse().find(m=>{const p=m.workItemProjectionId;return p&&p!=="company_runtime"}),u=r.mode==="primary"?a?.workItemProjectionId??r.workItemProjectionId:r.workItemProjectionId??a?.workItemProjectionId,d=r.isCompanyRuntime||r.mode==="primary"&&o.length>0;return o.length===0&&u===r.workItemProjectionId&&d===r.isCompanyRuntime?r:{...r,isCompanyRuntime:d,workItemProjectionId:u,...o.length>0?{workItemLog:o}:{}}})}function cJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(r=>[r.taskId,r]));return e.map(r=>{const i=n.get(r.id);if(!i)return r;const o=i.workItemProjectionId??r.workItemProjectionId,a=i.companyProfile??r.companyProfile,u=i.workItemRoleId??r.workItemRoleId,d=i.workItemRoleName??r.workItemRoleName;return o===r.workItemProjectionId&&a===r.companyProfile&&u===r.workItemRoleId&&d===r.workItemRoleName?r:{...r,workItemProjectionId:o,companyProfile:a,workItemRoleId:u,workItemRoleName:d}})}function OR(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 jf(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 LR(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 zR(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 PR(e){const t=DR(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",r=e.work_item_id??e.workItemId??e.task_id??e.id??"",i=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??i,a=e.execution_mode??e.executionMode,u=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||u==="task_mode_execution";return{id:r,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:i,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:$R(e.work_item_gate??e.workItemGate),employeeAssignment:BR(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:Ym(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 BR(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 $R(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 uJ=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"]),dJ=new Set(["active","waiting","pending","done","failed"]);function fJ(e){return typeof e=="string"&&uJ.has(e)?e:"queued"}function mJ(e){return typeof e=="string"&&dJ.has(e)?e:"pending"}function hJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function pJ(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:Ym(e.entries)}}function gJ(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:fJ(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,createdAt:dm(e.created_at??e.createdAt),updatedAt:dm(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(pJ),progressLog:Ym(e.progress_log??e.progressLog)}}function bj(e){if(!e||typeof e!="object")return;const t={};for(const[n,r]of Object.entries(e)){if(!r||typeof r!="object")continue;const i=r,a=(Array.isArray(i.work_items)?i.work_items:Array.isArray(i.workItems)?i.workItems:[]).map(gJ).sort((d,m)=>d.createdAt-m.createdAt),u=typeof i.role_key=="string"?i.role_key:typeof i.roleKey=="string"?i.roleKey:n;t[n]={roleKey:u,roleId:typeof i.role_id=="string"?i.role_id:typeof i.roleId=="string"?i.roleId:n,roleName:typeof i.role_name=="string"?i.role_name:typeof i.roleName=="string"?i.roleName:n,roleSessionId:typeof i.role_session_id=="string"?i.role_session_id:typeof i.roleSessionId=="string"?i.roleSessionId:void 0,teamInstanceId:typeof i.team_instance_id=="string"?i.team_instance_id:typeof i.teamInstanceId=="string"?i.teamInstanceId:void 0,runtimeStatus:hJ(i.runtime_status??i.runtimeStatus),aggregatedStatus:mJ(i.aggregated_status??i.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function HR(e){const t=DR(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,i=e.execution_turn_id??e.executionTurnId??r,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,p={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:r,executionTurnId:i,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:Ym(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,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:$R(e.work_item_gate??e.workItemGate),employeeAssignment:BR(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,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,resumeParentTaskId:e.resume_parent_task_id??e.resumeParentTaskId,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?[]:iJ(e.work_item_log??e.workItemLog),roleWorkItems:d?void 0:bj(e.role_work_items??e.roleWorkItems),executorRoleWorkItems:d?void 0:bj(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 II(p)}function _j(e){const t=(e.channels??[]).map(OR),n=(e.messages??[]).map(jf),r=(e.boards??[]).map(LR),i=(e.columns??[]).map(zR),o=lJ((e.sessions??[]).map(HR),n),a=cJ((e.tasks??[]).map(PR),o);return{channels:t,messages:n,boards:r,columns:i,tasks:a,sessions:o}}function xJ(e){return`session:${e}`}const yJ=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function vJ(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!yJ.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,r={},i=(o,a)=>{const u=String(o??"").trim(),d=String(a??"").trim();if(!u||!d)return;const m=r[u]??(r[u]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&i(o.role_id,o.selection_label);if(Object.keys(r).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";i(o?.role_id,a)}return Object.keys(r).length?r:null}function bJ(){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 kj=80,_J=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"]),kJ=new Set(["member_inbox_updated"]);function SJ(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function wJ(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function Dc(e){return yV(e)}function xs(e){return Yy(e)}function py(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function Do(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function bs(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"?t:"native"}function CJ(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function jJ(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",r=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},i=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:i,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:r,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 Sj(e,t=[]){const n=new Map(t.map(r=>[r.agent_id,r]));return e.filter(r=>!!r&&typeof r=="object").map(r=>{const i=typeof r.agent_id=="string"?r.agent_id:"";return jJ(r,n.get(i))}).filter(r=>!!r.agent_id)}function wj(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 ff(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function EJ(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function gy(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=wj(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=bs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=bs(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 i=wj(e.employee_assignment??e.employeeAssignment);return i&&(t.employeeAssignment=i),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=bs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=bs(e.selectedExecutionAgent)),t}function xy(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 yy(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 Cj(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 r=t.sessions.find(u=>u.taskId===e);if(!r)return!1;const i=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(r.parentSessionId??"").trim();if(o&&i.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(r.taskId??"").trim()===a||String(r.sessionId??"").trim()===a:!1}function NJ(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 IJ(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 TJ(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 RJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function AJ(e){const t=io(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,r=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),i=NJ(e.status);return{roleKey:n,roleId:n,roleName:r,runtimeStatus:RJ(e.agentStatus),aggregatedStatus:TJ(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:i,kanbanColumn:IJ(i),title:e.title||r,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:r,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:r,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function MJ({taskId:e,sessions:t,agents:n,onClose:r}){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(p=>p.executionTurnId===e);if(m)return c.jsx(uC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:r})}}const i=t.find(a=>a.taskId===e||io(a)===e);if(!i)return null;const o=AJ(i);return c.jsx(uC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:r})}function DJ(){const e=E.useRef(new FM);E.useMemo(()=>WM(e.current),[]);const t=E.useRef(null),n=SJ(),[r,i]=E.useState(n),[o,a]=E.useState(n),[u,d]=E.useState("disconnected"),[m,p]=E.useState(""),[h,g]=E.useState(null),[y,v]=E.useState([]),[w,S]=E.useState(0),[_,k]=E.useState(null),[C,N]=E.useState("openopc"),[O,I]=E.useState(!0),[D,T]=E.useState(()=>{try{return localStorage.getItem("opc_office_sidebar_collapsed")==="1"}catch{return!1}}),L=()=>T(Q=>{const z=!Q;try{localStorage.setItem("opc_office_sidebar_collapsed",z?"1":"0")}catch{}return z}),[A,M]=E.useState("all"),[$,W]=E.useState("workspace"),[B,U]=E.useState([]),[H,V]=E.useState(!1),[Y,Z]=E.useState(null),[q,G]=E.useState("task"),[J,P]=E.useState("corporate"),[X,ee]=E.useState("native"),[te,re]=E.useState(null),[oe,de]=E.useState(null),[se,je]=E.useState(null),[we,Ce]=E.useState(null),[Be,Ge]=E.useState([]),[Ye,yt]=E.useState(""),[Vt,bt]=E.useState(null),[vt,me]=E.useState([]),[Oe,rt]=E.useState([]),[Qe,Je]=E.useState(null),[fe,be]=E.useState(null),[Me,Fe]=E.useState(null),[$e,Ut]=E.useState(null),[rn,ke]=E.useState(null),[Te,Pe]=E.useState(null),[Ve,qe]=E.useState(null),[et,Mn]=E.useState(!1),[Tn,Dn]=E.useState(null),[yn,Wt]=E.useState(null),Zt=E.useRef(new Set),Et=E.useRef(new Set),wt=E.useRef([]),tt=E.useRef("task"),it=E.useRef(null),sn=E.useRef(null),Qt=E.useRef(null),mt=E.useRef(null),Bt=E.useRef(null),On=E.useRef("default"),vn=E.useRef(null),Rn=E.useRef(""),ve=E.useRef(0),Re=E.useRef(!1),Xe=E.useRef(!1),He=E.useRef(0),Tt=E.useRef(!1),ft=E.useRef(null),$n=E.useRef(null),Ae=E.useRef(new Map),[Dt,kn]=E.useState(null),[nr,Sn]=E.useState(null),[We,ar]=E.useState("success"),[lr,mn]=E.useState(null),[zt,Qn]=E.useState(null),[wn,ht]=E.useState(null),[Tr,wr]=E.useState(()=>bJ()),Jn=E.useCallback(Q=>(typeof Q=="string"?Q.trim():"")||"default",[]),ct=E.useCallback(()=>Jn(On.current),[Jn]),cn=E.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),on=E.useCallback(Q=>{if(!Q||typeof Q!="object")return"";for(const ne of["project_id","projectId","active_project_id","activeProjectId"]){const le=Q[ne];if(typeof le=="string"&&le.trim())return le.trim()}const z=Q.data;if(z&&typeof z=="object")for(const ne of["project_id","projectId"]){const le=z[ne];if(typeof le=="string"&&le.trim())return le.trim()}return""},[]),It=E.useCallback((Q,z=!1)=>{const ne=on(Q);return ne?ne===ct():z},[ct,on]),pr=E.useCallback(Q=>{if(!Q||typeof Q!="object")return"";const z=Q.switch_seq??Q.switchSeq;return typeof z=="string"?z.trim():""},[]),ue=E.useCallback(Q=>{if(!Q||typeof Q!="object")return null;const z=Q.view_generation??Q.viewGeneration;if(typeof z=="number")return z;if(typeof z=="string"&&z.trim()){const ne=Number(z);return Number.isFinite(ne)?ne:null}return null},[]),Se=E.useCallback(Q=>{const z=on(Q);if(!z)return!1;const ne=vn.current;if(z!==ct()&&z!==ne)return!1;const le=ue(Q);if(le!==null&&le!==ve.current)return!1;const ge=pr(Q);return!ge||!Rn.current||ge===Rn.current},[ct,pr,ue,on]),Ue=E.useCallback(Q=>{if(!Q||Q.error!=="task_not_found")return!1;if(!It(Q,!1))return!0;if((typeof Q.action=="string"?Q.action:"")!=="session_detail")return!1;const ne=ue(Q);if(ne!==null&&ne!==ve.current)return!0;const le=typeof Q.task_id=="string"?Q.task_id:"";return le?!(mt.current?.sessions??[]).some(Ne=>Ne.taskId===le):!0},[It,ue]),pt=E.useCallback(()=>{for(const Q of Ae.current.values())clearTimeout(Q);Ae.current.clear()},[]),tn=E.useCallback((Q,z="full",ne=!1,le)=>{if(!Q)return;const ge=le||ct(),Ne=ve.current;if(!ne&&!Cj(Q,mt.current))return;const Ke=`${ge}:${Ne}:${Q}`,ze=Ae.current.get(Ke);ze&&(clearTimeout(ze),Ae.current.delete(Ke));const Yt=setTimeout(()=>{Ae.current.delete(Ke),ge===ct()&&Ne===ve.current&&(!ne&&!Cj(Q,mt.current)||(mt.current?.updateSession(Q,{detailLoading:!0,detailError:void 0,viewGeneration:Ne}),t.current?.sessionDetail(ge,Q,{limit:200,detailLevel:z,include:z==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne})))},180);Ae.current.set(Ke,Yt)},[ct]),An=E.useCallback((Q,z="success")=>{Sn(Q),ar(z),setTimeout(()=>Sn(null),3e3)},[]),gr=E.useCallback(()=>{$n.current&&(clearTimeout($n.current),$n.current=null),Tt.current=!1,ft.current=null},[]),Cn=E.useCallback(Q=>{gr(),Tt.current=!0,ft.current=Q,$n.current=setTimeout(()=>{!Tt.current||ft.current!==Q||(gr(),p("create_session_timeout"),An("Session creation timed out. Please try again.","error"))},3e4)},[gr,An]),Hn=e4(),Cr=lV(),hn=kV(),Rr=wV(),Jo=hn.activeSessionId,Ru=E.useMemo(()=>Jo?vJ(Cr.getChannelMessages(xJ(Jo))):null,[Jo,Cr]);E.useCallback(Q=>{const z=Jn(Q);On.current=z,pt(),Cr.initFromBackend(z,[],[]),Hn.initFromBackend(z,[],[],[]),hn.initFromBackend(z,[]),gr(),ht(null),je(null),Ce(null)},[Hn,Cr,gr,pt,Jn,hn]);const Es=E.useCallback(Q=>{const z=Jn(Q),ne=cn();return Re.current=!0,Rn.current=ne,ve.current+=1,vn.current=z,pt(),p(`Switching to ${z}...`),ne},[pt,cn,Jn]),Xm=E.useRef(!1);E.useLayoutEffect(()=>{sn.current=Cr,Qt.current=Hn,mt.current=hn,Bt.current=Rr,it.current=Q=>{if(!Hn.activeBoardId||Hn.activeBoardColumns.length===0)return;const ne=Hn.activeBoardColumns.find(le=>le.name==="Todo")?.id??Hn.activeBoardColumns[0].id;Hn.createTask({boardId:Hn.activeBoardId,columnId:ne,title:Q.title,priority:Q.priority,assigneeIds:Q.assignee_id?[Q.assignee_id]:[]})},Xm.current=!0}),E.useEffect(()=>{wt.current=B},[B]),E.useEffect(()=>{tt.current=q},[q]),E.useEffect(()=>{const Q=e.current,z=ne=>{k(ne),S(le=>le+1)};return Q.on("agentSelected",z),()=>{Q.off("agentSelected",z)}},[]),E.useEffect(()=>{const Q=new Y3(r,{onSnapshot:z=>{if(!Se(z))return;g(z);const ne=z.timeline.slice(-kj);v(ne);const le=new Set;for(const Ne of ne)le.add(Ne.event_id);Et.current=le,e.current.pushSnapshot(z);const ge=Object.entries(z.agents??{});if(ge.length>0){const Ne=Sj(ge.map(([Ke,ze])=>({...ze&&typeof ze=="object"?ze:{},agent_id:Ke})),wt.current);wt.current=Ne,U(Ne)}z.exec_mode&&G(xs(z.exec_mode)),z.company_profile&&P(Dc(z.company_profile)),z.task_preferred_agent&&ee(bs(z.task_preferred_agent)),S(Ne=>Ne+1)},onEvent:z=>{try{if(!It(z,!1))return;if(Et.current.has(z.event_id)){Et.current.delete(z.event_id);return}if(v(ne=>[...ne.slice(-kj+1),z]),e.current.pushEvent(z),z.type==="task_routed"&&z.agent_id){if(tt.current==="company"||tt.current==="org")return;const ne=z.data?.task_id;if(ne&&!Qt.current?.tasks.find(le=>le.id===ne)){const le=typeof z.data?.content_preview=="string"?z.data.content_preview.slice(0,80):"Task";it.current?.({title:le,priority:null,assignee_id:z.agent_id})}}if(z.type==="task_done"&&z.agent_id&&Z(z.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(z.type)){const ne=z.data,le=typeof ne.task_id=="string"?ne.task_id:"";if(le){const ge=mt.current,Ne=Qt.current,Ke=ge?.sessions.find(Ar=>Ar.taskId===le),ze=typeof ne.work_item_projection_id=="string"?ne.work_item_projection_id:"",Jt=(typeof ne.execution_mode=="string"?ne.execution_mode:"")==="task_mode"||ze==="task_mode_execution",Gt=typeof ne.turn_id=="string"&&ne.turn_id?ne.turn_id:typeof ne.canonical_turn_id=="string"&&ne.canonical_turn_id?ne.canonical_turn_id:typeof ne.execution_turn_id=="string"&&ne.execution_turn_id?ne.execution_turn_id:void 0;ze&&ze!=="task_mode_execution"&&!Jt&&ge?.setCompanyRuntime(le,!0);const qt={lastRuntimeEventType:z.type,...z.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...xy(ne)};z.type==="turn_started"||z.type==="turn_completed"||z.type==="turn_failed"||z.type==="checkpoint_saved"?ge?.clearDraft(le):z.type==="assistant_delta"&&typeof ne.text=="string"&&ne.text&&ge?.appendDraft(le,ne.text,typeof ne.iteration=="number"?ne.iteration:Ke?.draftIteration,Gt),ge?.updateSession(le,qt);const Nt=typeof ne.tool_name=="string"?ne.tool_name:void 0;Ne?.updateTask(le,{...yy(ne),...Nt!==void 0?{currentTool:Nt||void 0}:{},...Nt?{displayTool:Nt}:{}});const yr=Jt&&_J.has(z.type)||kJ.has(z.type);z.type!=="assistant_delta"&&!yr&&tn(le)}}if(z.type==="agent_removed"&&z.agent_id){const ne=z.agent_id;yM(ne);const le=sn.current;le&&(le.markSenderDeleted(ne),le.removeParticipant(ne))}S(ne=>ne+1)}catch(ne){console.error("[onEvent] Error:",ne,z)}},onAck:z=>{try{if(z.ok===!1){if(z.action==="create_session"&&gr(),Ue(z))return;z.action==="session_detail"&&typeof z.task_id=="string"&&mt.current?.updateSession(z.task_id,{detailLoading:!1,detailError:String(z.error??"request_failed")}),p(String(z.error??"request_failed")),Qn(null),mn(null),An(String(z.error??"Request failed"),"error")}if(z.ok&&z.action==="employee_imported"&&An("Employee deployed to office!"),z.ok&&z.action==="talent_imported"&&An(`Imported ${z.count??0} templates!`),z.ok&&z.action==="talent_hired"&&(kn(null),An(`${z.name??"Agent"} hired and added to office!`)),z.ok&&z.action==="architecture_reset"&&(Pe(null),qe(null)),z.ok&&z.action==="session_detail"){if(!It(z,!1))return;const ne=ue(z);if(ne!==null&&ne!==ve.current)return;const le=typeof z.task_id=="string"?z.task_id:"",ge=Array.isArray(z.messages)?z.messages.map(jf):[],Ne=typeof z.message_count=="number"?z.message_count:ge.length,Ke=sn.current;Ke&&ge.length>0&&Ke.mergeMessagesFromBackend(ge);const ze=mt.current;if(ze&&le){const Yt=ze.sessions.find(yr=>yr.taskId===le),Jt=String(Yt?.draftTurnId??"").trim();Jt&&ge.some(yr=>{if(yr.sender==="user")return!1;const Ar=yr.metadata??{};return String(Ar.transcript_kind??Ar.kind??"").trim()!=="runtime_v2_assistant"?!1:String(Ar.canonical_turn_id??Ar.turn_id??"").trim()===Jt})&&ze.clearDraft(le);const qt=z.session_state,Nt=qt&&typeof qt=="object"?HR(qt):null;ze.updateSession(le,{...Nt??{},...typeof z.handoff_context=="string"?{handoffContext:z.handoff_context}:{},...typeof z.handoff_to=="string"?{handoffTo:z.handoff_to}:{},messageCount:Ne,detailLoaded:!0,fullLoaded:z.detail_level==="full"&&z.has_more!==!0,hasMore:z.has_more===!0,detailLoading:!1,detailError:void 0,viewGeneration:ne??ve.current})}}if(Array.isArray(z.agents)){const ne=Sj(z.agents,wt.current);wt.current=ne,U(ne);for(const le of ne)e.current.ensureAgent(le.agent_id,le.name,le.office_id,le.appearance?.palette,le.appearance?.desk_id);S(le=>le+1)}if(z.ok&&(z.agent_id||z.deleted)&&(z.deleted&&(Qn(null),mn(null),An("Agent removed")),z.agent_id&&!z.deleted&&An("Agent created!"),t.current?.listAgents()),z.ok&&Array.isArray(z.projects)){const ne=Bt.current;if(ne){const le=ct(),ge=!Xe.current,Ne=!Xe.current&&!Re.current,Ke=typeof z.active_project_id=="string"?z.active_project_id.trim():"",ze=z.action==="create_project"&&typeof z.project_id=="string"?z.project_id.trim():"",Yt=Ne?Jn(ze||Ke||On.current):ze?Jn(ze):ct();if(ze&&(Re.current=!0),Xe.current=!0,On.current=Yt,ne.initFromBackend(z.projects,Yt),Yt!==le||ge){const Jt=cn();Rn.current=Jt,vn.current=Yt,ve.current+=1,p(`Switching to ${Yt}...`),t.current?.switchProject(Yt,Jt)}}}if(z.ok&&Array.isArray(z.channels)){if(!Se(z))return;const ne=_j(z),le=on(z);if(!le)return;const ge=vn.current===le||ct()!==le;On.current=le,vn.current=null,Bt.current?.setActiveProject(le),ge&&(pt(),ht(null),je(null),Ce(null)),p("");const Ne=sn.current;Ne&&Ne.initFromBackend(le,ne.channels,ne.messages);const Ke=Qt.current;Ke&&Ke.initFromBackend(le,ne.boards,ne.columns,ne.tasks);const ze=mt.current;if(ze){ze.initFromBackend(le,ne.sessions);const Yt=ze.activeSessionId;Yt&&tn(Yt,"full",!0)}}}catch(ne){console.error("[onAck] Error:",ne)}},onStatus:(z,ne)=>{if(d(z),p(ne??""),z==="connected"){const le=ct();Q.listProjects(),Q.orgInfo(),Q.orgSavedList(),Q.collabSync(le,void 0,ve.current)}},onCollabMessage:(z,ne)=>{try{if(z==="project_index_push"){if(!Se(ne))return}else if(!It(ne,!1))return;const le=sn.current;if(z==="chat_new_message")le&&le.addMessageFromBackend(jf(ne));else if(z==="chat_channel_created")le&&le.addChannelFromBackend(OR(ne));else if(z==="session_runtime_control"){const ge=mt.current;if(ge){const Ne=Array.isArray(ne.task_ids)?ne.task_ids.map(String).filter(Boolean):[],Ke={runtimeControlState:String(ne.runtime_control_state??ne.runtimeControlState??"idle"),canStop:!!(ne.can_stop??ne.canStop),canResume:!!(ne.can_resume??ne.canResume),resumeParentTaskId:String(ne.resume_parent_task_id??ne.resumeParentTaskId??""),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 Ne)ge.updateSession(ze,Ke)}}else if(z==="board_task_status_changed"){const ge=String(ne.task_id??""),Ne=String(ne.column_id??""),Ke=String(ne.status??""),ze=["done","failed","cancelled"].includes(Ke);if(ge&&Ne){const Yt=Qt.current;if(Yt){const Gt=Yt.tasks.find(qt=>qt.id===ge);if(Gt){const qt={};Gt.columnId!==Ne&&Yt.moveTask(ge,Ne,0),Ke==="running"?(!Gt.agentStatus||Gt.agentStatus==="idle")&&(qt.agentStatus="reflecting"):(Gt.agentStatus||Gt.currentTool||Gt.displayTool)&&(qt.agentStatus=void 0,qt.currentTool=void 0,qt.displayTool=void 0),Object.keys(qt).length>0&&Yt.updateTask(ge,qt)}}const Jt=mt.current;if(Jt){const Gt=Jt.sessions.find(Nt=>Nt.taskId===ge),qt={columnId:Ne,status:Ke||Ne};Ke==="running"?(!Gt?.agentStatus||Gt.agentStatus==="idle")&&(qt.agentStatus="reflecting"):(Gt?.agentStatus||Gt?.currentTool||Gt?.displayTool||ze)&&(qt.agentStatus=void 0,qt.currentTool=void 0,qt.displayTool=void 0),Object.assign(qt,T4(Gt,Ke)),Jt.updateSession(ge,{...qt})}}}else if(z==="execution_mode_resolved"){const ge=String(ne.mode??""),Ne=String(ne.profile??"");if(ge){const Ke=xs(ge);G(Ke),P(Ke==="org"?"custom":Ke==="company"?Dc(Ne):"corporate")}else Ne&&P(Dc(Ne))}else if(z==="project_run_updated"||z==="seat_digest_updated"||z==="work_item_batch_updated")t.current?.collabSync(ct(),void 0,ve.current);else if(z==="collab_sync_push"||z==="project_index_push"){const ge=String(ne.sync_scope??ne.syncScope??"").toLowerCase(),Ne=z==="project_index_push"||ge==="index";if(!Se(ne))return;const Ke=_j(ne),ze=on(ne);if(!ze)return;const Yt=vn.current===ze||ct()!==ze;if(On.current=ze,vn.current=null,Bt.current?.setActiveProject(ze),Yt&&(pt(),ht(null),je(null),Ce(null)),p(""),Ne){const Nt=mt.current;Nt&&Nt.initFromBackend(ze,Ke.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),t.current?.collabSync(ze,void 0,ve.current);return}const Jt=sn.current;Jt&&Jt.initFromBackend(ze,Ke.channels,Ke.messages);const Gt=Qt.current;Gt&&Gt.initFromBackend(ze,Ke.boards,Ke.columns,Ke.tasks);const qt=mt.current;if(qt){qt.initFromBackend(ze,Ke.sessions);const Nt=qt.activeSessionId;Nt&&tn(Nt,"full",!0)}}}catch(le){console.error("[onCollabMessage] Error:",le)}},onAgentRuntimeUpdate:z=>{if(!It(z,!1))return;z.agent_id&&U(le=>{const ge=le.map(Ne=>Ne.agent_id===z.agent_id?{...Ne,status:z.status,runtime_status:z.status,current_tool:z.current_tool??void 0,current_task_id:z.task_id??void 0}:Ne);return wt.current=ge,ge});const ne=Qt.current;if(ne&&z.task_id){const le=z,ge=yy(le),Ne=xy(le);if(ff(le,"current_tool")){const ze=typeof le.current_tool=="string"&&le.current_tool.trim()?le.current_tool:void 0;ge.currentTool=ze,Ne.currentTool=ze,ze&&(ge.displayTool=ze,Ne.displayTool=ze)}if(ff(le,"display_tool")){const ze=typeof le.display_tool=="string"&&le.display_tool.trim()?le.display_tool:void 0;ze&&(ge.displayTool=ze,Ne.displayTool=ze)}if(EJ(z.status)&&(ge.displayTool=void 0,Ne.displayTool=void 0),ff(le,"tool_elapsed_ms")){const ze=typeof le.tool_elapsed_ms=="number"?le.tool_elapsed_ms:void 0;ge.toolElapsedMs=ze,Ne.toolElapsedMs=ze}if(ff(le,"last_tool_summary")){const ze=typeof le.last_tool_summary=="string"?le.last_tool_summary:void 0;ge.lastToolSummary=ze,Ne.lastToolSummary=ze}typeof z.iteration=="number"&&(ge.iterationCount=z.iteration),ne.updateTask(z.task_id,{agentStatus:z.status,...ge});const Ke=mt.current;Ke&&Ke.updateSession(z.task_id,{agentStatus:z.status,...Ne,updatedAt:Date.now()}),tn(z.task_id)}},onWorkerNotification:z=>{if(!It(z,!1))return;const ne=z,le=typeof z.task_id=="string"?z.task_id:"";if(!le)return;const ge=ne;mt.current?.updateSession(le,{...xy(ne),latestNotification:ge,updatedAt:Date.now()}),Qt.current?.updateTask(le,{...yy(ne),latestNotification:ge}),tn(le)},onKanbanViewData:z=>{if(!It(z,!1))return;const ne=Qt.current;ne&&ne.initFromBackend(on(z)||ct(),(z.boards??[]).map(LR),(z.columns??[]).map(zR),(z.tasks??[]).map(PR))},onSessionProgress:z=>{if(!It(z,!1))return;const ne=mt.current;if(!(!ne||!z.task_id||!z.entry)){if(ne.appendProgress(z.task_id,{type:z.entry.type,summary:z.entry.summary,detail:z.entry.detail,timestamp:z.entry.timestamp*1e3,turnId:typeof z.entry.turn_id=="string"?z.entry.turn_id:typeof z.entry.turnId=="string"?z.entry.turnId:void 0,itemId:typeof z.entry.item_id=="string"?z.entry.item_id:typeof z.entry.itemId=="string"?z.entry.itemId:void 0,streamId:typeof z.entry.stream_id=="string"?z.entry.stream_id:typeof z.entry.streamId=="string"?z.entry.streamId:void 0,toolCallId:typeof z.entry.tool_call_id=="string"?z.entry.tool_call_id:typeof z.entry.toolCallId=="string"?z.entry.toolCallId:void 0,permissionGroupKey:typeof z.entry.permission_group_key=="string"?z.entry.permission_group_key:typeof z.entry.permissionGroupKey=="string"?z.entry.permissionGroupKey:void 0,seq:typeof z.entry.seq=="number"?z.entry.seq:void 0,executionMode:typeof z.entry.execution_mode=="string"?z.entry.execution_mode:typeof z.entry.executionMode=="string"?z.entry.executionMode:void 0}),z.entry.type==="tool_call"){const le=String(z.entry.summary??"").trim();ne.updateSession(z.task_id,{...le?{currentTool:le,displayTool:le}:{},updatedAt:z.entry.timestamp*1e3})}z.entry.type!=="thinking"&&z.entry.type!=="verification"&&tn(z.task_id)}},onBoardEvent:z=>{if(!It(z,!1))return;const ne=Qt.current;if(!ne)return;const le=String(z.task_id??"");if(!le)return;const ge=mt.current;if(ge&&ge.sessions.find(yr=>yr.taskId===le)?.mode==="child")return;const Ne=Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):[],Ke=gy(z);if(ne.tasks.find(Nt=>Nt.id===le)){const Nt={};z.title&&(Nt.title=String(z.title)),z.display_id&&(Nt.displayId=String(z.display_id)),Ne.length>0&&(Nt.assigneeIds=Ne),Object.assign(Nt,Ke),Object.keys(Nt).length>0&&ne.updateTask(le,Nt);return}const Yt=String(z.board_id??ne.activeBoardId??"default"),Jt=ne.columns.filter(Nt=>Nt.boardId===Yt),qt=Jt.find(Nt=>Nt.name==="Todo")?.id??Jt[0]?.id??"";qt&&(ne.createTask({boardId:Yt,columnId:qt,title:String(z.title??"Untitled"),taskId:le,displayId:z.display_id?String(z.display_id):void 0,assigneeIds:Ne}),Object.keys(Ke).length>0&&ne.updateTask(le,Ke))},onSessionCreated:z=>{try{if(!It(z,!1))return;const ne=mt.current;if(!ne)return;const le=String(z.task_id??"");if(!le)return;const ge=on(z);if(!ge)return;const Ne=le?ne.sessions.find(Nt=>Nt.taskId===le):void 0,Ke=gy(z),ze=xs(z.exec_mode??Ne?.execMode),Yt=py(ze,z.company_profile??Ne?.companyProfile),Jt=Do(ze,z.org_id??z.organization_id??Ne?.orgId);ze==="org"&&Jt&&Pe(Jt),ne.createSession({projectId:ge,taskId:le,channelId:z.channel_id,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??Ne?.originTaskId??le,mode:z.parent_session_id?"child":"primary",execMode:ze,companyProfile:Yt,orgId:Jt,preferredAgent:bs(z.preferred_agent??Ne?.preferredAgent),title:z.title,status:z.status,columnId:Ne?.columnId??"todo",assigneeIds:Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):Ne?.assigneeIds??[],priority:Ne?.priority??null,tags:Ne?.tags??[],progressLog:Ne?.progressLog??[],createdAt:typeof z.created_at=="number"?z.created_at*1e3:Ne?.createdAt??Date.now(),updatedAt:Date.now(),messageCount:0,...Ke});const Gt=Qt.current;if(Gt&&ze==="task"&&!z.parent_session_id&&le&&!Gt.tasks.find(Nt=>Nt.id===le)&&Gt.activeBoardId){const yr=Gt.columns.filter(Ar=>Ar.boardId===Gt.activeBoardId).find(Ar=>Ar.name==="Todo");yr&&Gt.createTask({boardId:Gt.activeBoardId,columnId:yr.id,title:z.title,taskId:le,assigneeIds:Ne?.assigneeIds??[]})}if(Tt.current){if(ft.current!==ge)return;gr(),ne.setActiveSession(z.task_id),tn(z.task_id,"full",!0)}}catch(ne){console.error("[onSessionCreated] Error:",ne)}},onSessionUpdated:z=>{try{if(!It(z,!1))return;const ne=mt.current;if(!ne||!z.task_id)return;const le=xs(z.exec_mode??ne.sessions.find(ge=>ge.taskId===z.task_id)?.execMode);ne.updateSession(z.task_id,{...z.exec_mode?{execMode:le}:{},...z.exec_mode||z.company_profile?{companyProfile:py(le,z.company_profile)}:{},..."org_id"in z||"organization_id"in z?{orgId:Do(le,z.org_id??z.organization_id)}:{},...z.preferred_agent?{preferredAgent:bs(z.preferred_agent)}:{},...z.selected_execution_agent?{selectedExecutionAgent:bs(z.selected_execution_agent)}:{}}),(z.exec_mode==="org"||z.exec_mode==="custom")&&(z.org_id||z.organization_id)&&Pe(String(z.org_id??z.organization_id))}catch(ne){console.error("[onSessionUpdated] Error:",ne)}},onSessionMessage:z=>{try{if(!It(z,!1))return;const ne=sn.current;if(!ne)return;const le=jf(z);console.debug("[onSessionMessage]",le.sender,le.channelId,le.content?.slice(0,60)),ne.addMessageFromBackend(le);const ge=le.channelId.startsWith("session:")?le.channelId.slice(8):"";ge&&le.sender!=="user"&&(mt.current?.clearDraft(ge),tn(ge,"full",!0))}catch(ne){console.error("[onSessionMessage] Error:",ne)}},onSessionTitleUpdated:z=>{try{if(!It(z,!1))return;const ne=mt.current;ne&&ne.updateSession(z.task_id,{title:z.title});const le=Qt.current;if(le){const Ne=ne?.sessions.find(ze=>ze.taskId===z.task_id)?.originTaskId??z.task_id,Ke=le.boards.find(ze=>ze.id===Ne);Ke&&Ke.name!==z.title&&le.updateBoardName(Ne,z.title)}}catch(ne){console.error("[onSessionTitleUpdated] Error:",ne)}},onSessionDeleted:z=>{try{if(!It(z,!1))return;const ne=mt.current;if(!ne)return;ne.activeSessionId===z.task_id&&ne.setActiveSession(null),ne.deleteSession(z.task_id);const le=Qt.current;le&&le.deleteTask(z.task_id);const ge=sn.current;ge&&ge.removeSessionData(z.task_id)}catch(ne){console.error("[onSessionDeleted] Error:",ne)}},onProjectSwitched:z=>{if(!Se(z))return;const ne=typeof z.project_id=="string"?z.project_id.trim():"";ne&&(vn.current=ne,p(`Switching to ${ne}...`))},onProjectDeleted:z=>{const ne=Bt.current;ne&&ne.removeProject(z.project_id)},onOrgInfo:z=>{const ne=tN(z);re(ne),qe(le=>le===null?ne?.org_version??0:le),(z?.project_run?.execution_model==="multi_team_org"||Array.isArray(z?.work_items)&&z.work_items.length>0)&&t.current?.collabSync(ct(),void 0,ve.current)},onRecoveryStatus:z=>{It(z,!1)&&de(z)},onCommsState:z=>{It(z,!1)&&je(z)},onCommsMessage:z=>{It(z,!0)&&Ce(z)},onRecoveryResult:z=>{It(z,!1)&&(z?.status==="completed"||z?.status==="cancelled")&&t.current?.recoveryAction(ct(),"scan")},onTalentList:z=>{Ge(z.templates??[]),z.talent_dir&&yt(z.talent_dir)},onEmployeeDetail:z=>{bt(z)},onReorgList:z=>{me(z.proposals??[])},onOrgConfigExport:z=>{be(z.yaml??"")},onOrgConfigImport:z=>{z.ok?(Fe(z.preview??null),Ut(null),z.dry_run||(Pe(null),qe(null))):(Ut(z.error??"Import failed"),Fe(null))},onOrgSavedList:z=>{ke(z.orgs??[]),"active_name"in z&&Pe(z.active_name??null)},onOrgSavedSaveAs:z=>{z.ok?(t.current?.orgSavedList(),Pe(z.name),qe(null),Wt({kind:"ok",text:`Saved "${z.name}"`})):Wt({kind:"error",text:`Save failed: ${z.error??"unknown"}`})},onOrgSavedCreate:z=>{if(Mn(!1),Dn({...z,nonce:Date.now()}),z.ok){const ne=z.organization_id||z.name;Pe(ne),G("org"),P("custom"),t.current?.orgSavedList(),t.current?.orgInfo(),qe(null),Wt({kind:"ok",text:`Created "${z.organization_name||ne}"`})}else Wt({kind:"error",text:`Create failed: ${z.error??"unknown"}`})},onOrgSavedLoad:z=>{z.ok?(Pe(z.name),G("org"),P("custom"),t.current?.orgSavedList(),qe(null),Wt({kind:"ok",text:`Loaded "${z.name}"`})):Wt({kind:"error",text:`Load failed: ${z.error??"unknown"}`})},onOrgSavedDelete:z=>{z.ok?(t.current?.orgSavedList(),Pe(ne=>ne===z.name?(qe(null),null):ne),Wt({kind:"ok",text:`Deleted "${z.name}"`})):Wt({kind:"error",text:`Delete failed: ${z.error??"unknown"}`})},onMarketBrowse:z=>{rt(z.presets??[])},onMarketPreview:z=>{Je(z)},onChildSessionCreated:z=>{if(!It(z,!1))return;const ne=mt.current;if(!ne)return;const le=gy(z),ge=on(z);if(ge&&(ne.createSession({projectId:ge,taskId:z.task_id,channelId:z.channel_id??`session:${z.task_id}`,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??z.task_id,mode:"child",orgId:String(z.org_id??z.organization_id??"").trim()||void 0,title:z.title,status:"pending",columnId:"todo",assigneeIds:z.agent_id?[z.agent_id]:[],priority:null,tags:[],createdAt:Date.now(),updatedAt:Date.now(),messageCount:0,progressLog:[],...le}),z.parent_session_id)){const Ne=ne.sessions.find(Ke=>Ke.sessionId===z.parent_session_id||Ke.taskId===z.parent_session_id);Ne&&!Ne.isCompanyRuntime&&ne.setCompanyRuntime(Ne.taskId,!0)}},onWorkItemProgress:z=>{if(!It(z,!1))return;const ne=mt.current;if(!ne||!z.task_id||!z.entry)return;const le=typeof z.entry.work_item_projection_id=="string"?z.entry.work_item_projection_id:"",ge=le&&le!=="company_runtime"?le:void 0,Ne=typeof z.entry.runtime_task_id=="string"&&z.entry.runtime_task_id?z.entry.runtime_task_id:typeof z.runtime_task_id=="string"&&z.runtime_task_id?z.runtime_task_id:typeof z.entry.execution_turn_id=="string"&&z.entry.execution_turn_id?z.entry.execution_turn_id:typeof z.execution_turn_id=="string"&&z.execution_turn_id?z.execution_turn_id:void 0,Ke=typeof z.entry.execution_turn_id=="string"&&z.entry.execution_turn_id?z.entry.execution_turn_id:typeof z.execution_turn_id=="string"&&z.execution_turn_id?z.execution_turn_id:Ne;ne.updateSession(z.task_id,{isCompanyRuntime:!0,...ge?{workItemProjectionId:ge}:{}});const ze=Qt.current;ze&&ge&&ze.updateTask(z.task_id,{workItemProjectionId:ge}),ne.appendWorkItemProgress(z.task_id,{timestamp:z.entry.timestamp*1e3,type:z.entry.type,workItemProjectionId:ge,workItemTurnType:typeof z.entry.work_item_turn_type=="string"?z.entry.work_item_turn_type:void 0,workItemProjectionTitle:typeof z.entry.work_item_projection_title=="string"?z.entry.work_item_projection_title:void 0,runtimeTaskId:Ne,executionTurnId:Ke,roleName:z.entry.role_name,detail:z.entry.detail})}});return t.current=Q,Q.connect(),()=>{Q.disconnect();for(const z of Zt.current)clearTimeout(z);Zt.current.clear();for(const z of Ae.current.values())clearTimeout(z);Ae.current.clear()}},[r]),E.useEffect(()=>{const Q=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ne=Date.now();ne-He.current<1500||(He.current=ne,t.current?.collabSync(ct(),void 0,ve.current))},z=()=>{document.visibilityState==="visible"&&Q()};return window.addEventListener("focus",Q),document.addEventListener("visibilitychange",z),()=>{window.removeEventListener("focus",Q),document.removeEventListener("visibilitychange",z)}},[ct]),E.useEffect(()=>{if(!yn)return;const Q=setTimeout(()=>Wt(null),3e3);return()=>clearTimeout(Q)},[yn]);const El=E.useCallback(()=>{t.current?.orgSavedList()},[]),Au=E.useCallback((Q,z)=>{t.current?.orgSavedSaveAs(Q,z)},[]),Nl=E.useCallback((Q,z)=>{Mn(!0),Dn(null),t.current?.orgSavedCreate(Q,z)},[]),Mu=E.useCallback(Q=>{t.current?.orgSavedLoad(Q)},[]),Km=E.useCallback(Q=>{t.current?.orgSavedDelete(Q)},[]),ea=E.useCallback(()=>{G("company"),P("corporate"),qe(null),t.current?.setExecutionMode("company","corporate",X),t.current?.orgInfo()},[X]);E.useEffect(()=>{if(!Y)return;const Q=Y;e.current.setAgentBubble(Q,"Done!");const z=setTimeout(()=>{Zt.current.delete(z),e.current.setAgentBubble(Q,null)},3e3);Zt.current.add(z),Z(null)},[Y]),E.useCallback((Q,z,ne)=>{const le=Hn.tasks.find(ge=>ge.id===Q);for(const ge of z)e.current.sendToSeat(ge),e.current.setAgentActive(ge,!0),e.current.setAgentBubble(ge,`Task: ${ne.slice(0,22)}`),t.current?.assignTaskToAgent(ct(),Q,ge,ne);if(le){const ge=z.map(Ne=>B.find(Ke=>Ke.agent_id===Ne)?.name??Ne);eJ(Cr,le,ge)}S(ge=>ge+1)},[Hn.tasks,Cr,B,ct]);const ii=E.useMemo(()=>{const Q=h?Object.keys(h.agents).length:0,z=h?.skills.total??0;return{totalAgents:Q,totalSkills:z}},[h]),si=E.useMemo(()=>{const Q=e.current.getCharacterCards();return(O?Q:Q.filter(ne=>!ne.isSubagent)).slice().sort((ne,le)=>ne.displayName.localeCompare(le.displayName))},[O,w]),Ns=E.useMemo(()=>Bn(),[w]),Is=E.useMemo(()=>{const Q={};for(const z of si)z.officeId&&(Q[z.id]=z.officeId);return Q},[si]),[Ts,ta]=E.useState(null),[po,Il]=E.useState(""),Rs=Q=>{po.trim()&&(e.current.renameOffice(Q,po.trim()),S(z=>z+1)),ta(null)},oi=(Q,z)=>{e.current.assignAgentToOffice(z,Q),t.current?.moveAgent(z,Q),S(ne=>ne+1)},Tl=(Q,z)=>{e.current.changeAgentSeat(Q,z),S(ne=>ne+1)},Un=si.find(Q=>Q.id===_)??null,Di=E.useMemo(()=>Un?e.current.getSeatsForOffice(Un.officeId):[],[Un?.officeId,w]),na=E.useMemo(()=>{const Q=y.slice(-40);return{trace:Q.some(z=>z.type==="tool_start"||z.type==="tool_done"),reflect:Q.some(z=>z.type==="reflect_start"||z.type==="reflect_done"),synthesize:Q.some(z=>z.type==="skill_synthesized")}},[y]),ra=E.useMemo(()=>["all",...Array.from(new Set(y.map(z=>z.type)))],[y]),Du=E.useMemo(()=>(A==="all"?y:y.filter(z=>z.type===A)).slice().reverse(),[A,y]),ia=()=>{const Q=o.trim();!Q||Q===r||i(Q)},As=E.useCallback(Q=>{k(Q),S(z=>z+1)},[]),Ou=E.useCallback((Q,z,ne,le)=>{const ge=hn.sessions.find(Ar=>Ar.taskId===Q),Ne=xs(z),Ke=Dc(ge?.companyProfile??J),ze=Ne==="org"?"custom":"corporate",Yt=String(ge?.orgId??Te??"").trim(),Jt=Do(Ne,le??ge?.orgId??Te),Gt=xs(ge?.execMode),qt=Dc(J);if(Gt===Ne&&Ke===ze&&Yt===String(Jt??"").trim()&&q===Ne&&qt===ze)return;hn.updateSession(Q,{execMode:Ne,companyProfile:ze,orgId:Jt,preferredAgent:ge?.preferredAgent??X}),G(Ne),P(ze),Ne==="org"&&Jt&&Pe(Jt);const Nt=ge?.preferredAgent??X,yr=Ne==="task"?void 0:ze;t.current?.sessionUpdateConfig(ct(),Q,Ne,yr,Nt,Jt),t.current?.setExecutionMode(Ne,yr,Nt,Jt)},[hn,q,J,X,Te,ct]),xr=E.useCallback((Q,z)=>{const ne=hn.sessions.find(Yt=>Yt.taskId===Q),le=bs(z),ge=xs(ne?.execMode),Ne=ge==="org"?"custom":"corporate";hn.updateSession(Q,{preferredAgent:le,selectedExecutionAgent:le}),ee(le);const Ke=ge==="task"?void 0:Ne,ze=Do(ge,ne?.orgId??Te);t.current?.sessionUpdateConfig(ct(),Q,ge,Ke,le,ze),t.current?.setExecutionMode(ge,Ke,le,ze)},[hn,J,Te,ct]),Ji=E.useCallback((Q,z,ne)=>{if(vn.current||Tt.current)return;const le=ct();Cn(le);const ge=xs(Q),Ne=ge==="org"?"custom":ge==="company"?"corporate":void 0;t.current?.createSession(le,void 0,ge,Ne,X,Do(ge,ne??Te)),W("workspace")},[ct,Cn,X,Te]),es=E.useCallback((Q,z)=>{const ne=hn.sessions.find(Ne=>Ne.taskId===Q),le=ne?.resumeParentSessionId??ne?.parentSessionId??ne?.sessionId,ge=ne?.resumeParentTaskId??(le?hn.sessions.find(Ne=>Ne.sessionId===le&&!Ne.parentSessionId)?.taskId:void 0)??Q;for(const Ne of hn.sessions)(Ne.taskId===Q||Ne.taskId===ge||le&&(Ne.parentSessionId===le||Ne.sessionId===le))&&hn.updateSession(Ne.taskId,{...z,resumeParentTaskId:ge,resumeParentSessionId:le})},[hn]),go=E.useCallback(Q=>{const z=hn.sessions.find(le=>le.taskId===Q);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&es(Q,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),t.current?.sessionStop(ct(),Q)},[hn.sessions,es,ct]),Zm=E.useCallback(Q=>{const z=hn.sessions.find(le=>le.taskId===Q);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&es(Q,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),t.current?.sessionResume(ct(),Q)},[hn.sessions,es,ct]);E.useCallback((Q,z,ne)=>{const le=xs(Q),ge=le==="org"?"custom":"corporate",Ne=Do(le,ne??Te);G(le),P(ge),Ne&&Pe(Ne),t.current?.setExecutionMode(le,le==="task"?void 0:ge,X,Ne)},[J,X,Te]);const Oi=q==="org",Rl=q==="task"?"task":q==="org"?`company/${Te??"org"}`:`company/${J}`;return c.jsxs("div",{className:`app-shell theme-${C}`,children:[yn&&c.jsx("div",{className:`org-toast org-toast--${yn.kind}`,role:"status","aria-live":"polite",children:yn.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 ${wJ(u)}`,title:`${u}${m?` — ${m}`:""} +${r}`}),c.jsx(TV,{projects:Rr.projects,activeId:Rr.activeProjectId,onSelect:Q=>{const z=Es(Q);t.current?.switchProject(Q,z)},onCreate:Q=>{t.current?.createProject(Q)},onDelete:Q=>t.current?.deleteProject(Q)})]}),c.jsxs("div",{className:"topbar-center",children:[c.jsxs("div",{className:"page-nav",children:[c.jsxs("button",{className:`page-nav-btn${$==="workspace"?" active":""}`,onClick:()=>W("workspace"),children:["Workspace",(()=>{const Q=Cr.channels.reduce((z,ne)=>z+Cr.getUnreadCount(ne.id),0);return Q>0?c.jsx("span",{className:"nav-unread-badge",children:Q>99?"99+":Q}):null})()]}),c.jsx("button",{className:`page-nav-btn${$==="office"?" active":""}`,onClick:()=>W("office"),children:"Office"}),c.jsx("button",{className:`page-nav-btn${$==="org"?" active":""}`,onClick:()=>W("org"),children:"Org"})]}),c.jsxs("div",{className:"stat-chips",children:[c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:ii.totalAgents})," agents"]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:ii.totalSkills})," skills"]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Hn.getOpenTaskCount()})," tasks"]})]})]}),c.jsxs("div",{className:"topbar-right",children:[c.jsxs("select",{className:"theme-select",value:Tr,title:"Outdoor lighting override",onChange:Q=>{const z=Q.target.value;wr(z);try{z==="auto"?(localStorage.removeItem("opc_outdoor_override"),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night")):(localStorage.setItem("opc_outdoor_override",z),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night"))}catch{}e.current.syncOutdoorLighting()},children:[c.jsx("option",{value:"auto",children:"Outdoor auto"}),c.jsx("option",{value:"day",children:"Outdoor day"}),c.jsx("option",{value:"night",children:"Outdoor night"})]}),c.jsxs("select",{className:"theme-select",value:C,onChange:Q=>N(Q.target.value),children:[c.jsx("option",{value:"midnight",children:"Midnight"}),c.jsx("option",{value:"neon",children:"Neon"}),c.jsx("option",{value:"paper",children:"Paper"}),c.jsx("option",{value:"retro",children:"Retro"}),c.jsx("option",{value:"terminal",children:"Terminal"}),c.jsx("option",{value:"cozy",children:"Cozy"}),c.jsx("option",{value:"openopc",children:"OpenOPC"})]}),c.jsx("button",{className:`icon-btn ${H?"active":""}`,onClick:()=>V(Q=>!Q),title:"Developer 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"})]})})]})]}),$==="workspace"&&c.jsx(nV,{boardStore:Hn,chatStore:Cr,sessionStore:hn,agents:B,officeMap:Is,execMode:q,companyProfile:J,taskPreferredAgent:X,projectId:Rr.activeProjectId,orgInfoData:te,onNavigateToOrg:()=>W("org"),savedOrgsList:rn,activeSavedOrg:Te,onSavedOrgsList:El,onSavedOrgLoad:Mu,recoveryStatus:oe,onRecoveryResume:Q=>t.current?.recoveryAction(ct(),"resume",Q),onRecoveryCancel:Q=>t.current?.recoveryAction(ct(),"cancel",Q),commsState:se,commsMessage:we,onCommsRefresh:Q=>{const{project_id:z,...ne}=Q??{};t.current?.commsState(ct(),ne)},onCommsReadMessage:Q=>t.current?.commsReadMessage(ct(),Q),onRunTask:(Q,z,ne,le,ge)=>{t.current?.send({type:"run_task",project_id:ct(),task_id:Q,title:z,description:ne,mode:le,profile:ge})},onCreateTask:(Q,z,ne,le)=>{t.current?.send({type:"kanban_create_task",project_id:ct(),title:Q,board_id:z,column_id:ne,task_id:le})},onMoveTask:(Q,z)=>{t.current?.send({type:"kanban_move_task",project_id:ct(),task_id:Q,column_id:z})},onCreateSession:()=>{if(vn.current||Tt.current)return;const Q=ct();Cn(Q),t.current?.createSession(Q,void 0,q,py(q),X,Do(q,Te))},onSessionSend:(Q,z,ne,le)=>t.current?.sessionSend(ct(),Q,z,ne,le),onSecretarySend:Q=>t.current?.secretarySend(ct(),Q),onDeleteSession:Q=>t.current?.deleteSession(ct(),Q),onTitleChange:(Q,z)=>t.current?.sessionUpdateTitle(ct(),Q,z),onSessionConfigChange:Ou,onSessionTaskAgentChange:xr,onContinueInNewChat:Ji,onSessionStop:go,onSessionResume:Zm,onSessionComplete:Q=>t.current?.sessionComplete(ct(),Q),onLoadSessionDetail:(Q,z)=>t.current?.sessionDetail(ct(),Q,{...z,include:z?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:ve.current}),onOpenExecutionPanel:Q=>ht(Q),onCollabSync:()=>t.current?.collabSync(ct(),void 0,ve.current)}),$==="org"&&c.jsx("div",{className:"org-page",children:c.jsx(JQ,{data:te,sessionRecruitmentByRole:Ru,talents:Be,employeeDetail:Vt,reorgProposals:vt,isCustomMode:Oi,onRequestData:()=>t.current?.orgInfo(),onRequestTalents:()=>t.current?.talentList(),onRequestEmployeeDetail:Q=>t.current?.employeeDetail(Q),onHireTalent:(Q,z)=>{kn(Q),t.current?.talentHire(Q,z,void 0,te?.organization_id||Te||void 0)},hiringTemplateId:Dt,onImportEmployee:Q=>t.current?.importEmployeeAsAgent(Q),onRequestReorgList:()=>t.current?.reorgList(),onReorgDecide:(Q,z,ne)=>t.current?.reorgDecide(Q,z,ne),onMarketExport:Q=>t.current?.marketExport(Q),onMarketInstall:(Q,z)=>t.current?.marketInstall(Q,z),onMarketUninstall:Q=>t.current?.marketUninstall(Q),marketPresets:Oe,marketPreviewData:Qe,onMarketBrowse:()=>t.current?.marketBrowse(),onMarketPreview:Q=>t.current?.marketPreview(Q),onMarketApplyPreset:(Q,z)=>t.current?.marketApplyPreset(Q,z),onMarketClearPreview:()=>Je(null),onAddRole:(Q,z,ne,le,ge)=>t.current?.addRole(Q,z,ne,le,ge),onBulkAddRoles:Q=>t.current?.bulkAddRoles(Q),onUpdateRole:(Q,z)=>t.current?.updateRole(Q,z),onDeleteRole:Q=>t.current?.deleteRole(Q),onUpdateOrgStrategy:Q=>t.current?.updateOrgStrategy(Q),onUpdateRuntimePolicy:Q=>t.current?.updateRuntimePolicy(Q),onResetArchitecture:()=>t.current?.resetArchitecture(),onConfigExport:()=>t.current?.orgConfigExport(),onConfigImport:(Q,z)=>t.current?.orgConfigImport(Q,z),configExportYaml:fe,configImportPreview:Me,configImportError:$e,onSavedOrgsList:El,onSavedOrgSaveAs:Au,onSavedOrgCreate:Nl,onSavedOrgLoad:Mu,onSavedOrgDelete:Km,savedOrgsList:rn,activeSavedOrg:Te,activeSavedOrgVersionAtLoad:Ve,orgCreatePending:et,orgCreateResult:Tn,onSelectCorporate:ea})}),$==="mapEditor"&&c.jsx("div",{className:"editor-page",children:c.jsx(UM,{bridge:e.current})}),c.jsxs("main",{className:`main-grid${$!=="office"?" hidden":""}${D?" sidebar-collapsed":""}`,children:[c.jsxs("section",{className:"canvas-wrap",children:[c.jsx(HM,{bridge:e.current}),c.jsx("button",{className:"canvas-float-btn",onClick:()=>I(Q=>!Q),title:O?"Hide sub-agents":"Show sub-agents",children:O?"👥":"👤"}),c.jsx("button",{className:"sidebar-collapse-btn",onClick:L,title:D?"Show side panel":"Hide side panel","aria-label":D?"Show side panel":"Hide side panel",children:c.jsx("span",{className:"collapse-glyph",children:D?"❮":"❯"})})]}),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:q==="company"?`${q}/${J}`:Rl}),Oi?c.jsxs("span",{className:"mode-hint",children:["Manage your team in the ",c.jsx("b",{children:"Org"})," tab"]}):c.jsxs("span",{className:"mode-hint",children:["Switch to ",c.jsx("b",{children:"Org"})," mode to create or manage agents"]})]}),c.jsxs("div",{className:"section-label",children:["Offices ",c.jsx("span",{className:"count-badge",children:Ns.length})]}),c.jsx("div",{className:"office-cards",children:Ns.map(Q=>{const z=Lj(Q.id).length,ne=si.filter(ge=>ge.officeId===Q.id),le=si.filter(ge=>ge.officeId!==Q.id&&!ge.isSubagent);return c.jsxs("div",{className:"office-card",onClick:()=>e.current.panToOffice(Q.id),children:[c.jsxs("div",{className:"office-card-header",children:[Ts===Q.id?c.jsx("input",{className:"office-name-input",value:po,onChange:ge=>Il(ge.target.value),onBlur:()=>Rs(Q.id),onKeyDown:ge=>{ge.key==="Enter"&&Rs(Q.id),ge.key==="Escape"&&ta(null)},autoFocus:!0,onClick:ge=>ge.stopPropagation()}):c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"office-name",children:Q.name}),c.jsx("button",{className:"office-edit-btn",title:"Rename",onClick:ge=>{ge.stopPropagation(),ta(Q.id),Il(Q.name)},children:"✎"})]}),c.jsxs("span",{className:"office-capacity",children:[ne.length,"/",z]})]}),c.jsxs("div",{className:"office-agents",children:[ne.map(ge=>c.jsx("span",{className:"office-agent-chip",title:`${ge.displayName} — ${ge.seatId??"no seat"}`,onClick:Ne=>{Ne.stopPropagation(),As(ge.id)},children:ge.displayName.slice(0,8)},ge.id)),Oi&&ne.length0&&c.jsxs("select",{className:"assign-dropdown",value:"",onClick:ge=>ge.stopPropagation(),onChange:ge=>{ge.target.value&&oi(Q.id,ge.target.value)},children:[c.jsx("option",{value:"",children:"+ Move here"}),le.map(ge=>c.jsxs("option",{value:ge.id,children:[ge.displayName," (",Ns.find(Ne=>Ne.id===si.find(Ke=>Ke.id===ge.id)?.officeId)?.name??"?",")"]},ge.id))]})]})]},Q.id)})}),c.jsxs("div",{className:"section-label",children:["Active Agents ",c.jsx("span",{className:"count-badge",children:B.length})]}),c.jsxs("div",{className:"agent-list",children:[B.map(Q=>c.jsxs("div",{className:`agent-row ${_===Q.agent_id?"selected":""}`,children:[c.jsxs("button",{className:"agent-row-main",onClick:()=>As(Q.agent_id),children:[c.jsx("span",{className:`dot ${Q.status}`}),c.jsxs("div",{className:"agent-info",children:[c.jsx("span",{className:"agent-name",children:Q.name}),c.jsx("span",{className:"agent-spec",children:Q.specialties.slice(0,2).join(" · ")||"general"})]})]}),Oi&&(zt===Q.agent_id?c.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:c.jsx("span",{className:"spinner-inline"})}):lr===Q.agent_id?c.jsxs("span",{className:"del-confirm",children:[c.jsx("span",{className:"del-confirm-label",children:"Delete?"}),c.jsx("button",{className:"del-confirm-yes",onClick:()=>{Qn(Q.agent_id),mn(null),t.current?.deleteAgent(Q.agent_id)},children:"Yes"}),c.jsx("button",{className:"del-confirm-no",onClick:()=>mn(null),children:"No"})]}):c.jsx("button",{className:"agent-del",title:`Remove ${Q.name}`,onClick:()=>mn(Q.agent_id),children:"×"}))]},Q.agent_id)),B.length===0&&c.jsx("div",{className:"empty-state",children:"No agents yet — click a template above to spawn one."})]}),Un&&c.jsxs("div",{className:"agent-detail",children:[c.jsx("div",{className:"agent-detail-name",children:Un.displayName}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"State"}),c.jsx("span",{className:"detail-value",children:Un.state})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Tool"}),c.jsx("span",{className:"detail-value",children:Un.currentTool??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Task"}),c.jsx("span",{className:"detail-value",children:Un.taskSummary??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Office"}),c.jsx("select",{className:"detail-select",value:Un.officeId,onChange:Q=>{oi(Q.target.value,Un.id)},disabled:!Oi,children:Ns.map(Q=>c.jsx("option",{value:Q.id,children:Q.name},Q.id))})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Seat"}),c.jsxs("select",{className:"detail-select",value:Un.seatId??"",onChange:Q=>{Q.target.value&&Tl(Un.id,Q.target.value)},disabled:!Oi,children:[c.jsx("option",{value:"",children:"—"}),Di.map(Q=>{const z=Q.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,le=>le.toUpperCase()),ne=Q.assigned&&Q.assignedTo!==Un.id;return c.jsxs("option",{value:Q.id,disabled:ne,children:[z,ne?` (${Q.assignedTo})`:Q.assignedTo===Un.id?" ✓":""]},Q.id)})]})]})]}),si.length>B.length&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"section-label",children:["Characters",c.jsx("button",{className:"inline-btn",onClick:()=>I(Q=>!Q),children:O?"hide sub":"show sub"})]}),c.jsx("div",{className:"agent-list",children:si.filter(Q=>!B.some(z=>z.agent_id===Q.id)).map(Q=>c.jsxs("button",{className:`agent-row-simple ${_===Q.id?"selected":""}`,onClick:()=>As(Q.id),children:[Q.isSubagent&&c.jsx("span",{className:"sub-badge",children:"SUB"}),c.jsx("span",{className:"agent-name",children:Q.displayName}),c.jsxs("span",{className:"agent-spec",children:[Q.state,Q.currentTool?` · ${Q.currentTool}`:""]})]},Q.id))})]})]})})})]}),H&&c.jsxs("div",{className:"dev-overlay",children:[c.jsxs("div",{className:"dev-header",children:[c.jsx("span",{className:"dev-title",children:"Developer Tools"}),c.jsx("button",{className:"icon-btn",onClick:()=>V(!1),children:"✕"})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Connection"}),c.jsxs("div",{className:"input-row",children:[c.jsx("input",{value:o,onChange:Q=>a(Q.target.value),placeholder:"ws://..."}),c.jsx("button",{className:"send-btn",onClick:ia,children:"↩"})]})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Evolution Pipeline"}),c.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((Q,z)=>{const ne=Q.toLowerCase(),le=ne in na?na[ne]:!1;return c.jsxs("div",{className:"evo-phase-group",children:[z>0&&c.jsx("div",{className:"evo-connector"}),c.jsxs("div",{className:`evo-node ${le?"active":""}`,children:[c.jsx("div",{className:"evo-dot"}),c.jsx("span",{className:"evo-label",children:Q})]})]},Q)})}),c.jsx("div",{className:"list",children:(h?.skills.recent??[]).slice(-6).reverse().map((Q,z)=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:Q.skill_name}),c.jsx("span",{className:"muted mono",children:Q.version})]},`${Q.skill_name}-${Q.timestamp}-${z}`))})]}),c.jsxs("div",{className:"dev-group",children:[c.jsxs("div",{className:"dev-label",children:["Events",c.jsx("select",{className:"inline-select",value:A,onChange:Q=>M(Q.target.value),children:ra.map(Q=>c.jsx("option",{value:Q,children:Q},Q))})]}),c.jsx("div",{className:"event-log",children:Du.slice(0,30).map(Q=>c.jsxs("div",{className:"log-row",children:[c.jsx("span",{className:"log-time",children:new Date(Q.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),c.jsx("span",{className:"log-type",children:Q.type}),c.jsx("span",{className:"log-agent",children:Q.agent_id}),c.jsx("span",{className:"log-data",children:CJ(Q.data)})]},Q.event_id))})]}),Object.keys(h?.channels??{}).length>0&&c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Channels"}),Object.entries(h?.channels??{}).map(([Q,z])=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:Q}),c.jsx("span",{className:"muted",children:String(z.last_type??"idle")})]},Q))]})]}),nr&&c.jsx("div",{className:We==="error"?"toast-error":"toast-success",children:nr}),c.jsx(MJ,{taskId:wn,sessions:hn.sessions,agents:B,onClose:()=>ht(null)})]})}class OJ extends St.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 g0=document.getElementById("root");if(!g0)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{$3.createRoot(g0).render(c.jsx(OJ,{children:c.jsx(DJ,{})}))}catch(e){console.error("React render error:",e),g0.innerHTML=`

React Error: ${e}

`} diff --git a/opc/plugins/office_ui/frontend_dist/assets/index-iXYjKKT7.js b/opc/plugins/office_ui/frontend_dist/assets/index-iXYjKKT7.js deleted file mode 100644 index 7cdf4a7..0000000 --- a/opc/plugins/office_ui/frontend_dist/assets/index-iXYjKKT7.js +++ /dev/null @@ -1,155 +0,0 @@ -import{g as Zo,r as R3}from"./phaser-DFK5Ua9d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var Gp={exports:{}},hc={};var sk;function A3(){if(sk)return hc;sk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,i,o){var a=null;if(o!==void 0&&(a=""+o),i.key!==void 0&&(a=""+i.key),"key"in i){o={};for(var u in i)u!=="key"&&(o[u]=i[u])}else o=i;return i=o.ref,{$$typeof:e,type:r,key:a,ref:i!==void 0?i:null,props:o}}return hc.Fragment=t,hc.jsx=n,hc.jsxs=n,hc}var ok;function M3(){return ok||(ok=1,Gp.exports=A3()),Gp.exports}var c=M3(),qp={exports:{}},_t={};var ak;function D3(){if(ak)return _t;ak=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=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"),p=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),g=Symbol.iterator;function y(U){return U===null||typeof U!="object"?null:(U=g&&U[g]||U["@@iterator"],typeof U=="function"?U:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,S={};function _(U,ee,P){this.props=U,this.context=ee,this.refs=S,this.updater=P||v}_.prototype.isReactComponent={},_.prototype.setState=function(U,ee){if(typeof U!="object"&&typeof U!="function"&&U!=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,U,ee,"setState")},_.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};function k(){}k.prototype=_.prototype;function C(U,ee,P){this.props=U,this.context=ee,this.refs=S,this.updater=P||v}var N=C.prototype=new k;N.constructor=C,w(N,_.prototype),N.isPureReactComponent=!0;var L=Array.isArray;function I(){}var D={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function O(U,ee,P){var K=P.ref;return{$$typeof:e,type:U,key:ee,ref:K!==void 0?K:null,props:P}}function M(U,ee){return O(U.type,ee,U.props)}function A(U){return typeof U=="object"&&U!==null&&U.$$typeof===e}function $(U){var ee={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(P){return ee[P]})}var Y=/\/+/g;function B(U,ee){return typeof U=="object"&&U!==null&&U.key!=null?$(""+U.key):ee.toString(36)}function G(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status=="string"?U.then(I,I):(U.status="pending",U.then(function(ee){U.status==="pending"&&(U.status="fulfilled",U.value=ee)},function(ee){U.status==="pending"&&(U.status="rejected",U.reason=ee)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function H(U,ee,P,K,J){var te=typeof U;(te==="undefined"||te==="boolean")&&(U=null);var re=!1;if(U===null)re=!0;else switch(te){case"bigint":case"string":case"number":re=!0;break;case"object":switch(U.$$typeof){case e:case t:re=!0;break;case p:return re=U._init,H(re(U._payload),ee,P,K,J)}}if(re)return J=J(U),re=K===""?"."+B(U,0):K,L(J)?(P="",re!=null&&(P=re.replace(Y,"$&/")+"/"),H(J,ee,P,"",function(se){return se})):J!=null&&(A(J)&&(J=M(J,P+(J.key==null||U&&U.key===J.key?"":(""+J.key).replace(Y,"$&/")+"/")+re)),ee.push(J)),1;re=0;var oe=K===""?".":K+":";if(L(U))for(var fe=0;fe>>1,q=H[Z];if(0>>1;Zi(P,W))Ki(J,P)?(H[Z]=J,H[K]=W,Z=K):(H[Z]=P,H[ee]=W,Z=ee);else if(Ki(J,W))H[Z]=J,H[K]=W,Z=K;else break e}}return V}function i(H,V){var W=H.sortIndex-V.sortIndex;return W!==0?W:H.id-V.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=[],p=1,h=null,g=3,y=!1,v=!1,w=!1,S=!1,_=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function N(H){for(var V=n(m);V!==null;){if(V.callback===null)r(m);else if(V.startTime<=H)r(m),V.sortIndex=V.expirationTime,t(d,V);else break;V=n(m)}}function L(H){if(w=!1,N(H),!v)if(n(d)!==null)v=!0,I||(I=!0,$());else{var V=n(m);V!==null&&G(L,V.startTime-H)}}var I=!1,D=-1,T=5,O=-1;function M(){return S?!0:!(e.unstable_now()-OH&&M());){var Z=h.callback;if(typeof Z=="function"){h.callback=null,g=h.priorityLevel;var q=Z(h.expirationTime<=H);if(H=e.unstable_now(),typeof q=="function"){h.callback=q,N(H),V=!0;break t}h===n(d)&&r(d),N(H)}else r(d);h=n(d)}if(h!==null)V=!0;else{var U=n(m);U!==null&&G(L,U.startTime-H),V=!1}}break e}finally{h=null,g=W,y=!1}V=void 0}}finally{V?$():I=!1}}}var $;if(typeof C=="function")$=function(){C(A)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,B=Y.port2;Y.port1.onmessage=A,$=function(){B.postMessage(null)}}else $=function(){_(A,0)};function G(H,V){D=_(function(){H(e.unstable_now())},V)}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(H){H.callback=null},e.unstable_forceFrameRate=function(H){0>H||125Z?(H.sortIndex=W,t(m,H),n(d)===null&&H===n(m)&&(w?(k(D),D=-1):w=!0,G(L,W-Z))):(H.sortIndex=q,t(d,H),v||y||(v=!0,I||(I=!0,$()))),H},e.unstable_shouldYield=M,e.unstable_wrapCallback=function(H){var V=g;return function(){var W=g;g=V;try{return H.apply(this,arguments)}finally{g=W}}}})(Xp)),Xp}var uk;function L3(){return uk||(uk=1,Yp.exports=O3()),Yp.exports}var Kp={exports:{}},yr={};var dk;function z3(){if(dk)return yr;dk=1;var e=yl();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(),Kp.exports=z3(),Kp.exports}var mk;function P3(){if(mk)return pc;mk=1;var e=L3(),t=yl(),n=Sj();function r(s){var l="https://react.dev/errors/"+s;if(1q||(s.current=Z[q],Z[q]=null,q--)}function P(s,l){q++,Z[q]=s.current,s.current=l}var K=U(null),J=U(null),te=U(null),re=U(null);function oe(s,l){switch(P(te,l),P(J,s),P(K,null),l.nodeType){case 9:case 11:s=(s=l.documentElement)&&(s=s.namespaceURI)?N_(s):0;break;default:if(s=l.tagName,l=l.namespaceURI)l=N_(l),s=I_(l,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}ee(K),P(K,s)}function fe(){ee(K),ee(J),ee(te)}function se(s){s.memoizedState!==null&&P(re,s);var l=K.current,f=I_(l,s.type);l!==f&&(P(J,s),P(K,f))}function je(s){J.current===s&&(ee(K),ee(J)),re.current===s&&(ee(re),uc._currentValue=W)}var Se,Ce;function He(s){if(Se===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);Se=l&&l[1]||"",Ce=-1)":-1b||ie[x]!==pe[b]){var _e=` -`+ie[x].replace(" at new "," at ");return s.displayName&&_e.includes("")&&(_e=_e.replace("",s.displayName)),_e}while(1<=x&&0<=b);break}}}finally{We=!1,Error.prepareStackTrace=f}return(f=s?s.displayName||s.name:"")?He(f):""}function gt(s,l){switch(s.tag){case 26:case 27:case 5:return He(s.type);case 16:return He("Lazy");case 13:return s.child!==l&&l!==null?He("Suspense Fallback"):He("Suspense");case 19:return He("SuspenseList");case 0:case 15:return Ye(s.type,!1);case 11:return Ye(s.type.render,!1);case 1:return Ye(s.type,!0);case 31:return He("Activity");default:return""}}function Ut(s){try{var l="",f=null;do l+=gt(s,f),f=s,s=s.return;while(s);return l}catch(x){return` -Error generating stack: `+x.message+` -`+x.stack}}var bt=Object.prototype.hasOwnProperty,xt=e.unstable_scheduleCallback,me=e.unstable_cancelCallback,Oe=e.unstable_shouldYield,it=e.unstable_requestPaint,et=e.unstable_now,nt=e.unstable_getCurrentPriorityLevel,de=e.unstable_ImmediatePriority,ve=e.unstable_UserBlockingPriority,Ae=e.unstable_NormalPriority,Ue=e.unstable_LowPriority,Fe=e.unstable_IdlePriority,vt=e.log,Rt=e.unstable_setDisableYieldValue,ke=null,Re=null;function Ke(s){if(typeof vt=="function"&&Rt(s),Re&&typeof Re.setStrictMode=="function")try{Re.setStrictMode(ke,s)}catch{}}var Ge=Math.clz32?Math.clz32:xn,tt=Math.log,Qe=Math.LN2;function xn(s){return s>>>=0,s===0?32:31-(tt(s)/Qe|0)|0}var Qt=256,kn=262144,Nn=4194304;function sn(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 tn(s,l,f){var x=s.pendingLanes;if(x===0)return 0;var b=0,j=s.suspendedLanes,F=s.pingedLanes;s=s.warmLanes;var X=x&134217727;return X!==0?(x=X&~j,x!==0?b=sn(x):(F&=X,F!==0?b=sn(F):f||(f=X&~s,f!==0&&(b=sn(f))))):(X=x&~j,X!==0?b=sn(X):F!==0?b=sn(F):f||(f=x&~s,f!==0&&(b=sn(f)))),b===0?0:l!==0&&l!==b&&(l&j)===0&&(j=b&-b,f=l&-l,j>=f||j===32&&(f&4194048)!==0)?l:b}function Nt(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function kt(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 qe(){var s=Nn;return Nn<<=1,(Nn&62914560)===0&&(Nn=4194304),s}function ze(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function pn(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function In(s,l,f,x,b,j){var F=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,ie=s.expirationTimes,pe=s.hiddenUpdates;for(f=F&~f;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var Qn=/[\n"\\]/g;function St(s){return s.replace(Qn,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ei(s,l,f,x,b,j,F,X){s.name="",F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?s.type=F:s.removeAttribute("type"),l!=null?F==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+ue(l)):s.value!==""+ue(l)&&(s.value=""+ue(l)):F!=="submit"&&F!=="reset"||s.removeAttribute("value"),l!=null?fo(s,F,ue(l)):f!=null?fo(s,F,ue(f)):x!=null&&s.removeAttribute("value"),b==null&&j!=null&&(s.defaultChecked=!!j),b!=null&&(s.checked=b&&typeof b!="function"&&typeof b!="symbol"),X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?s.name=""+ue(X):s.removeAttribute("name")}function Es(s,l,f,x,b,j,F,X){if(j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(s.type=j),l!=null||f!=null){if(!(j!=="submit"&&j!=="reset"||l!=null)){mt(s);return}f=f!=null?""+ue(f):"",l=l!=null?""+ue(l):f,X||l===s.value||(s.value=l),s.defaultValue=l}x=x??b,x=typeof x!="function"&&typeof x!="symbol"&&!!x,s.checked=X?s.checked:!!x,s.defaultChecked=!!x,F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"&&(s.name=F),mt(s)}function fo(s,l,f){l==="number"&&ln(s.ownerDocument)===s||s.defaultValue===""+f||(s.defaultValue=""+f)}function pi(s,l,f,x){if(s=s.options,l){l={};for(var b=0;b"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ea=!1;if(xi)try{var ho={};Object.defineProperty(ho,"passive",{get:function(){ea=!0}}),window.addEventListener("test",ho,ho),window.removeEventListener("test",ho,ho)}catch{ea=!1}var Di=null,Tl=null,Is=null;function Du(){if(Is)return Is;var s,l=Tl,f=l.length,x,b="value"in Di?Di.value:Di.textContent,j=b.length;for(s=0;s=Rl),Ov=" ",Lv=!1;function zv(s,l){switch(s){case"keyup":return JR.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Pv(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var ra=!1;function tA(s,l){switch(s){case"compositionend":return Pv(l);case"keypress":return l.which!==32?null:(Lv=!0,Ov);case"textInput":return s=l.data,s===Ov&&Lv?null:s;default:return null}}function nA(s,l){if(ra)return s==="compositionend"||!Zm&&zv(s,l)?(s=Du(),Is=Tl=Di=null,ra=!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=x}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=qv(f)}}function Yv(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?Yv(s,l.parentNode):"contains"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function Xv(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=ln(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=ln(s.document)}return l}function eh(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 uA=xi&&"documentMode"in document&&11>=document.documentMode,ia=null,th=null,Ol=null,nh=!1;function Kv(s,l,f){var x=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;nh||ia==null||ia!==ln(x)||(x=ia,"selectionStart"in x&&eh(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),Ol&&Dl(Ol,x)||(Ol=x,x=Sd(th,"onSelect"),0>=F,b-=F,Oi=1<<32-Ge(l)+b|f<jt?(Pt=rt,rt=null):Pt=rt.sibling;var Zt=xe(ce,rt,he[jt],we);if(Zt===null){rt===null&&(rt=Pt);break}s&&rt&&Zt.alternate===null&&l(ce,rt),ae=j(Zt,ae,jt),Kt===null?ct=Zt:Kt.sibling=Zt,Kt=Zt,rt=Pt}if(jt===he.length)return f(ce,rt),Bt&&ns(ce,jt),ct;if(rt===null){for(;jtjt?(Pt=rt,rt=null):Pt=rt.sibling;var Zs=xe(ce,rt,Zt.value,we);if(Zs===null){rt===null&&(rt=Pt);break}s&&rt&&Zs.alternate===null&&l(ce,rt),ae=j(Zs,ae,jt),Kt===null?ct=Zs:Kt.sibling=Zs,Kt=Zs,rt=Pt}if(Zt.done)return f(ce,rt),Bt&&ns(ce,jt),ct;if(rt===null){for(;!Zt.done;jt++,Zt=he.next())Zt=Ie(ce,Zt.value,we),Zt!==null&&(ae=j(Zt,ae,jt),Kt===null?ct=Zt:Kt.sibling=Zt,Kt=Zt);return Bt&&ns(ce,jt),ct}for(rt=x(rt);!Zt.done;jt++,Zt=he.next())Zt=ye(rt,ce,jt,Zt.value,we),Zt!==null&&(s&&Zt.alternate!==null&&rt.delete(Zt.key===null?jt:Zt.key),ae=j(Zt,ae,jt),Kt===null?ct=Zt:Kt.sibling=Zt,Kt=Zt);return s&&rt.forEach(function(T3){return l(ce,T3)}),Bt&&ns(ce,jt),ct}function dn(ce,ae,he,we){if(typeof he=="object"&&he!==null&&he.type===w&&he.key===null&&(he=he.props.children),typeof he=="object"&&he!==null){switch(he.$$typeof){case y:e:{for(var ct=he.key;ae!==null;){if(ae.key===ct){if(ct=he.type,ct===w){if(ae.tag===7){f(ce,ae.sibling),we=b(ae,he.props.children),we.return=ce,ce=we;break e}}else if(ae.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===T&&Co(ct)===ae.type){f(ce,ae.sibling),we=b(ae,he.props),Hl(we,he),we.return=ce,ce=we;break e}f(ce,ae);break}else l(ce,ae);ae=ae.sibling}he.type===w?(we=bo(he.props.children,ce.mode,we,he.key),we.return=ce,ce=we):(we=$u(he.type,he.key,he.props,null,ce.mode,we),Hl(we,he),we.return=ce,ce=we)}return F(ce);case v:e:{for(ct=he.key;ae!==null;){if(ae.key===ct)if(ae.tag===4&&ae.stateNode.containerInfo===he.containerInfo&&ae.stateNode.implementation===he.implementation){f(ce,ae.sibling),we=b(ae,he.children||[]),we.return=ce,ce=we;break e}else{f(ce,ae);break}else l(ce,ae);ae=ae.sibling}we=ch(he,ce.mode,we),we.return=ce,ce=we}return F(ce);case T:return he=Co(he),dn(ce,ae,he,we)}if(G(he))return Ze(ce,ae,he,we);if($(he)){if(ct=$(he),typeof ct!="function")throw Error(r(150));return he=ct.call(he),ft(ce,ae,he,we)}if(typeof he.then=="function")return dn(ce,ae,Wu(he),we);if(he.$$typeof===C)return dn(ce,ae,Vu(ce,he),we);Yu(ce,he)}return typeof he=="string"&&he!==""||typeof he=="number"||typeof he=="bigint"?(he=""+he,ae!==null&&ae.tag===6?(f(ce,ae.sibling),we=b(ae,he),we.return=ce,ce=we):(f(ce,ae),we=lh(he,ce.mode,we),we.return=ce,ce=we),F(ce)):f(ce,ae)}return function(ce,ae,he,we){try{$l=0;var ct=dn(ce,ae,he,we);return pa=null,ct}catch(rt){if(rt===ha||rt===Gu)throw rt;var Kt=Pr(29,rt,null,ce.mode);return Kt.lanes=we,Kt.return=ce,Kt}}}var Eo=vb(!0),bb=vb(!1),Ds=!1;function _h(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function kh(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 Os(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function Ls(s,l,f){var x=s.updateQueue;if(x===null)return null;if(x=x.shared,(en&2)!==0){var b=x.pending;return b===null?l.next=l:(l.next=b.next,b.next=l),x.pending=l,l=Bu(s),rb(s,null,f),l}return Pu(s,x,l,f),Bu(s)}function Fl(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var x=l.lanes;x&=s.pendingLanes,f|=x,l.lanes=f,Gt(s,f)}}function Sh(s,l){var f=s.updateQueue,x=s.alternate;if(x!==null&&(x=x.updateQueue,f===x)){var b=null,j=null;if(f=f.firstBaseUpdate,f!==null){do{var F={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};j===null?b=j=F:j=j.next=F,f=f.next}while(f!==null);j===null?b=j=l:j=j.next=l}else b=j=l;f={baseState:x.baseState,firstBaseUpdate:b,lastBaseUpdate:j,shared:x.shared,callbacks:x.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}var wh=!1;function Vl(){if(wh){var s=ma;if(s!==null)throw s}}function Ul(s,l,f,x){wh=!1;var b=s.updateQueue;Ds=!1;var j=b.firstBaseUpdate,F=b.lastBaseUpdate,X=b.shared.pending;if(X!==null){b.shared.pending=null;var ie=X,pe=ie.next;ie.next=null,F===null?j=pe:F.next=pe,F=ie;var _e=s.alternate;_e!==null&&(_e=_e.updateQueue,X=_e.lastBaseUpdate,X!==F&&(X===null?_e.firstBaseUpdate=pe:X.next=pe,_e.lastBaseUpdate=ie))}if(j!==null){var Ie=b.baseState;F=0,_e=pe=ie=null,X=j;do{var xe=X.lane&-536870913,ye=xe!==X.lane;if(ye?(zt&xe)===xe:(x&xe)===xe){xe!==0&&xe===fa&&(wh=!0),_e!==null&&(_e=_e.next={lane:0,tag:X.tag,payload:X.payload,callback:null,next:null});e:{var Ze=s,ft=X;xe=l;var dn=f;switch(ft.tag){case 1:if(Ze=ft.payload,typeof Ze=="function"){Ie=Ze.call(dn,Ie,xe);break e}Ie=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=ft.payload,xe=typeof Ze=="function"?Ze.call(dn,Ie,xe):Ze,xe==null)break e;Ie=h({},Ie,xe);break e;case 2:Ds=!0}}xe=X.callback,xe!==null&&(s.flags|=64,ye&&(s.flags|=8192),ye=b.callbacks,ye===null?b.callbacks=[xe]:ye.push(xe))}else ye={lane:xe,tag:X.tag,payload:X.payload,callback:X.callback,next:null},_e===null?(pe=_e=ye,ie=Ie):_e=_e.next=ye,F|=xe;if(X=X.next,X===null){if(X=b.shared.pending,X===null)break;ye=X,X=ye.next,ye.next=null,b.lastBaseUpdate=ye,b.shared.pending=null}}while(!0);_e===null&&(ie=Ie),b.baseState=ie,b.firstBaseUpdate=pe,b.lastBaseUpdate=_e,j===null&&(b.shared.lanes=0),Hs|=F,s.lanes=F,s.memoizedState=Ie}}function _b(s,l){if(typeof s!="function")throw Error(r(191,s));s.call(l)}function kb(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;sj?j:8;var F=H.T,X={};H.T=X,Vh(s,!1,l,f);try{var ie=b(),pe=H.S;if(pe!==null&&pe(X,ie),ie!==null&&typeof ie=="object"&&typeof ie.then=="function"){var _e=vA(ie,x);Wl(s,l,_e,Vr(s))}else Wl(s,l,x,Vr(s))}catch(Ie){Wl(s,l,{then:function(){},status:"rejected",reason:Ie},Vr())}finally{V.p=j,F!==null&&X.types!==null&&(F.types=X.types),H.T=F}}function CA(){}function Hh(s,l,f,x){if(s.tag!==5)throw Error(r(476));var b=e1(s).queue;Jb(s,b,l,W,f===null?CA:function(){return t1(s),f(x)})}function e1(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:W},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:os,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function t1(s){var l=e1(s);l.next===null&&(l=s.alternate.memoizedState),Wl(s,l.next.queue,{},Vr())}function Fh(){return dr(uc)}function n1(){return $n().memoizedState}function r1(){return $n().memoizedState}function jA(s){for(var l=s.return;l!==null;){switch(l.tag){case 24:case 3:var f=Vr();s=Os(f);var x=Ls(l,s,f);x!==null&&(Mr(x,l,f),Fl(x,l,f)),l={cache:xh()},s.payload=l;return}l=l.return}}function EA(s,l,f){var x=Vr();f={lane:x,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null},id(s)?s1(l,f):(f=oh(s,l,f,x),f!==null&&(Mr(f,s,x),o1(f,l,x)))}function i1(s,l,f){var x=Vr();Wl(s,l,f,x)}function Wl(s,l,f,x){var b={lane:x,revertLane:0,gesture:null,action:f,hasEagerState:!1,eagerState:null,next:null};if(id(s))s1(l,b);else{var j=s.alternate;if(s.lanes===0&&(j===null||j.lanes===0)&&(j=l.lastRenderedReducer,j!==null))try{var F=l.lastRenderedState,X=j(F,f);if(b.hasEagerState=!0,b.eagerState=X,zr(X,F))return Pu(s,l,b,0),mn===null&&zu(),!1}catch{}if(f=oh(s,l,b,x),f!==null)return Mr(f,s,x),o1(f,l,x),!0}return!1}function Vh(s,l,f,x){if(x={lane:2,revertLane:_p(),gesture:null,action:x,hasEagerState:!1,eagerState:null,next:null},id(s)){if(l)throw Error(r(479))}else l=oh(s,f,x,2),l!==null&&Mr(l,s,2)}function id(s){var l=s.alternate;return s===wt||l!==null&&l===wt}function s1(s,l){xa=Zu=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function o1(s,l,f){if((f&4194048)!==0){var x=l.lanes;x&=s.pendingLanes,f|=x,l.lanes=f,Gt(s,f)}}var Yl={readContext:dr,use:ed,useCallback:On,useContext:On,useEffect:On,useImperativeHandle:On,useLayoutEffect:On,useInsertionEffect:On,useMemo:On,useReducer:On,useRef:On,useState:On,useDebugValue:On,useDeferredValue:On,useTransition:On,useSyncExternalStore:On,useId:On,useHostTransitionStatus:On,useFormState:On,useActionState:On,useOptimistic:On,useMemoCache:On,useCacheRefresh:On};Yl.useEffectEvent=On;var a1={readContext:dr,use:ed,useCallback:function(s,l){return wr().memoizedState=[s,l===void 0?null:l],s},useContext:dr,useEffect:Ub,useImperativeHandle:function(s,l,f){f=f!=null?f.concat([s]):null,nd(4194308,4,Yb.bind(null,l,s),f)},useLayoutEffect:function(s,l){return nd(4194308,4,s,l)},useInsertionEffect:function(s,l){nd(4,2,s,l)},useMemo:function(s,l){var f=wr();l=l===void 0?null:l;var x=s();if(No){Ke(!0);try{s()}finally{Ke(!1)}}return f.memoizedState=[x,l],x},useReducer:function(s,l,f){var x=wr();if(f!==void 0){var b=f(l);if(No){Ke(!0);try{f(l)}finally{Ke(!1)}}}else b=l;return x.memoizedState=x.baseState=b,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:b},x.queue=s,s=s.dispatch=EA.bind(null,wt,s),[x.memoizedState,s]},useRef:function(s){var l=wr();return s={current:s},l.memoizedState=s},useState:function(s){s=Lh(s);var l=s.queue,f=i1.bind(null,wt,l);return l.dispatch=f,[s.memoizedState,f]},useDebugValue:Bh,useDeferredValue:function(s,l){var f=wr();return $h(f,s,l)},useTransition:function(){var s=Lh(!1);return s=Jb.bind(null,wt,s.queue,!0,!1),wr().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,l,f){var x=wt,b=wr();if(Bt){if(f===void 0)throw Error(r(407));f=f()}else{if(f=l(),mn===null)throw Error(r(349));(zt&127)!==0||Nb(x,l,f)}b.memoizedState=f;var j={value:f,getSnapshot:l};return b.queue=j,Ub(Tb.bind(null,x,j,s),[s]),x.flags|=2048,va(9,{destroy:void 0},Ib.bind(null,x,j,f,l),null),f},useId:function(){var s=wr(),l=mn.identifierPrefix;if(Bt){var f=Li,x=Oi;f=(x&~(1<<32-Ge(x)-1)).toString(32)+f,l="_"+l+"R_"+f,f=Qu++,0<\/script>",j=j.removeChild(j.firstChild);break;case"select":j=typeof x.is=="string"?F.createElement("select",{is:x.is}):F.createElement("select"),x.multiple?j.multiple=!0:x.size&&(j.size=x.size);break;default:j=typeof x.is=="string"?F.createElement(b,{is:x.is}):F.createElement(b)}}j[$e]=l,j[It]=x;e:for(F=l.child;F!==null;){if(F.tag===5||F.tag===6)j.appendChild(F.stateNode);else if(F.tag!==4&&F.tag!==27&&F.child!==null){F.child.return=F,F=F.child;continue}if(F===l)break e;for(;F.sibling===null;){if(F.return===null||F.return===l)break e;F=F.return}F.sibling.return=F.return,F=F.sibling}l.stateNode=j;e:switch(mr(j,b,x),b){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}x&&ls(l)}}return _n(l),rp(l,l.type,s===null?null:s.memoizedProps,l.pendingProps,f),null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==x&&ls(l);else{if(typeof x!="string"&&l.stateNode===null)throw Error(r(166));if(s=te.current,ua(l)){if(s=l.stateNode,f=l.memoizedProps,x=null,b=ur,b!==null)switch(b.tag){case 27:case 5:x=b.memoizedProps}s[$e]=l,s=!!(s.nodeValue===f||x!==null&&x.suppressHydrationWarning===!0||j_(s.nodeValue,f)),s||As(l,!0)}else s=wd(s).createTextNode(x),s[$e]=l,l.stateNode=s}return _n(l),null;case 31:if(f=l.memoizedState,s===null||s.memoizedState!==null){if(x=ua(l),f!==null){if(s===null){if(!x)throw Error(r(318));if(s=l.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(r(557));s[$e]=l}else _o(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;_n(l),s=!1}else f=mh(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=f),s=!0;if(!s)return l.flags&256?($r(l),l):($r(l),null);if((l.flags&128)!==0)throw Error(r(558))}return _n(l),null;case 13:if(x=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(b=ua(l),x!==null&&x.dehydrated!==null){if(s===null){if(!b)throw Error(r(318));if(b=l.memoizedState,b=b!==null?b.dehydrated:null,!b)throw Error(r(317));b[$e]=l}else _o(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;_n(l),b=!1}else b=mh(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=b),b=!0;if(!b)return l.flags&256?($r(l),l):($r(l),null)}return $r(l),(l.flags&128)!==0?(l.lanes=f,l):(f=x!==null,s=s!==null&&s.memoizedState!==null,f&&(x=l.child,b=null,x.alternate!==null&&x.alternate.memoizedState!==null&&x.alternate.memoizedState.cachePool!==null&&(b=x.alternate.memoizedState.cachePool.pool),j=null,x.memoizedState!==null&&x.memoizedState.cachePool!==null&&(j=x.memoizedState.cachePool.pool),j!==b&&(x.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),cd(l,l.updateQueue),_n(l),null);case 4:return fe(),s===null&&Cp(l.stateNode.containerInfo),_n(l),null;case 10:return is(l.type),_n(l),null;case 19:if(ee(Bn),x=l.memoizedState,x===null)return _n(l),null;if(b=(l.flags&128)!==0,j=x.rendering,j===null)if(b)Kl(x,!1);else{if(Ln!==0||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(j=Ku(s),j!==null){for(l.flags|=128,Kl(x,!1),s=j.updateQueue,l.updateQueue=s,cd(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)ib(f,s),f=f.sibling;return P(Bn,Bn.current&1|2),Bt&&ns(l,x.treeForkCount),l.child}s=s.sibling}x.tail!==null&&et()>hd&&(l.flags|=128,b=!0,Kl(x,!1),l.lanes=4194304)}else{if(!b)if(s=Ku(j),s!==null){if(l.flags|=128,b=!0,s=s.updateQueue,l.updateQueue=s,cd(l,s),Kl(x,!0),x.tail===null&&x.tailMode==="hidden"&&!j.alternate&&!Bt)return _n(l),null}else 2*et()-x.renderingStartTime>hd&&f!==536870912&&(l.flags|=128,b=!0,Kl(x,!1),l.lanes=4194304);x.isBackwards?(j.sibling=l.child,l.child=j):(s=x.last,s!==null?s.sibling=j:l.child=j,x.last=j)}return x.tail!==null?(s=x.tail,x.rendering=s,x.tail=s.sibling,x.renderingStartTime=et(),s.sibling=null,f=Bn.current,P(Bn,b?f&1|2:f&1),Bt&&ns(l,x.treeForkCount),s):(_n(l),null);case 22:case 23:return $r(l),jh(),x=l.memoizedState!==null,s!==null?s.memoizedState!==null!==x&&(l.flags|=8192):x&&(l.flags|=8192),x?(f&536870912)!==0&&(l.flags&128)===0&&(_n(l),l.subtreeFlags&6&&(l.flags|=8192)):_n(l),f=l.updateQueue,f!==null&&cd(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),x=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(x=l.memoizedState.cachePool.pool),x!==f&&(l.flags|=2048),s!==null&&ee(wo),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),is(Vn),_n(l),null;case 25:return null;case 30:return null}throw Error(r(156,l.tag))}function AA(s,l){switch(dh(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 3:return is(Vn),fe(),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return je(l),null;case 31:if(l.memoizedState!==null){if($r(l),l.alternate===null)throw Error(r(340));_o()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 13:if($r(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(r(340));_o()}return s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 19:return ee(Bn),null;case 4:return fe(),null;case 10:return is(l.type),null;case 22:case 23:return $r(l),jh(),s!==null&&ee(wo),s=l.flags,s&65536?(l.flags=s&-65537|128,l):null;case 24:return is(Vn),null;case 25:return null;default:return null}}function R1(s,l){switch(dh(l),l.tag){case 3:is(Vn),fe();break;case 26:case 27:case 5:je(l);break;case 4:fe();break;case 31:l.memoizedState!==null&&$r(l);break;case 13:$r(l);break;case 19:ee(Bn);break;case 10:is(l.type);break;case 22:case 23:$r(l),jh(),s!==null&&ee(wo);break;case 24:is(Vn)}}function Zl(s,l){try{var f=l.updateQueue,x=f!==null?f.lastEffect:null;if(x!==null){var b=x.next;f=b;do{if((f.tag&s)===s){x=void 0;var j=f.create,F=f.inst;x=j(),F.destroy=x}f=f.next}while(f!==b)}}catch(X){an(l,l.return,X)}}function Bs(s,l,f){try{var x=l.updateQueue,b=x!==null?x.lastEffect:null;if(b!==null){var j=b.next;x=j;do{if((x.tag&s)===s){var F=x.inst,X=F.destroy;if(X!==void 0){F.destroy=void 0,b=l;var ie=f,pe=X;try{pe()}catch(_e){an(b,ie,_e)}}}x=x.next}while(x!==j)}}catch(_e){an(l,l.return,_e)}}function A1(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;try{kb(l,f)}catch(x){an(s,s.return,x)}}}function M1(s,l,f){f.props=Io(s.type,s.memoizedProps),f.state=s.memoizedState;try{f.componentWillUnmount()}catch(x){an(s,l,x)}}function Ql(s,l){try{var f=s.ref;if(f!==null){switch(s.tag){case 26:case 27:case 5:var x=s.stateNode;break;case 30:x=s.stateNode;break;default:x=s.stateNode}typeof f=="function"?s.refCleanup=f(x):f.current=x}}catch(b){an(s,l,b)}}function zi(s,l){var f=s.ref,x=s.refCleanup;if(f!==null)if(typeof x=="function")try{x()}catch(b){an(s,l,b)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f=="function")try{f(null)}catch(b){an(s,l,b)}else f.current=null}function D1(s){var l=s.type,f=s.memoizedProps,x=s.stateNode;try{e:switch(l){case"button":case"input":case"select":case"textarea":f.autoFocus&&x.focus();break e;case"img":f.src?x.src=f.src:f.srcSet&&(x.srcset=f.srcSet)}}catch(b){an(s,s.return,b)}}function ip(s,l,f){try{var x=s.stateNode;e3(x,s.type,f,l),x[It]=l}catch(b){an(s,s.return,b)}}function O1(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&qs(s.type)||s.tag===4}function sp(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||O1(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&&qs(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 op(s,l,f){var x=s.tag;if(x===5||x===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=gi));else if(x!==4&&(x===27&&qs(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(op(s,l,f),s=s.sibling;s!==null;)op(s,l,f),s=s.sibling}function ud(s,l,f){var x=s.tag;if(x===5||x===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(x!==4&&(x===27&&qs(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(ud(s,l,f),s=s.sibling;s!==null;)ud(s,l,f),s=s.sibling}function L1(s){var l=s.stateNode,f=s.memoizedProps;try{for(var x=s.type,b=l.attributes;b.length;)l.removeAttributeNode(b[0]);mr(l,x,f),l[$e]=s,l[It]=f}catch(j){an(s,s.return,j)}}var cs=!1,qn=!1,ap=!1,z1=typeof WeakSet=="function"?WeakSet:Set,nr=null;function MA(s,l){if(s=s.containerInfo,Np=Rd,s=Xv(s),eh(s)){if("selectionStart"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var x=f.getSelection&&f.getSelection();if(x&&x.rangeCount!==0){f=x.anchorNode;var b=x.anchorOffset,j=x.focusNode;x=x.focusOffset;try{f.nodeType,j.nodeType}catch{f=null;break e}var F=0,X=-1,ie=-1,pe=0,_e=0,Ie=s,xe=null;t:for(;;){for(var ye;Ie!==f||b!==0&&Ie.nodeType!==3||(X=F+b),Ie!==j||x!==0&&Ie.nodeType!==3||(ie=F+x),Ie.nodeType===3&&(F+=Ie.nodeValue.length),(ye=Ie.firstChild)!==null;)xe=Ie,Ie=ye;for(;;){if(Ie===s)break t;if(xe===f&&++pe===b&&(X=F),xe===j&&++_e===x&&(ie=F),(ye=Ie.nextSibling)!==null)break;Ie=xe,xe=Ie.parentNode}Ie=ye}f=X===-1||ie===-1?null:{start:X,end:ie}}else f=null}f=f||{start:0,end:0}}else f=null;for(Ip={focusedElem:s,selectionRange:f},Rd=!1,nr=l;nr!==null;)if(l=nr,s=l.child,(l.subtreeFlags&1028)!==0&&s!==null)s.return=l,nr=s;else for(;nr!==null;){switch(l=nr,j=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"))),mr(j,x,f),j[$e]=s,Tt(j),x=j;break e;case"link":var F=V_("link","href",b).get(x+(f.href||""));if(F){for(var X=0;Xdn&&(F=dn,dn=ft,ft=F);var ce=Wv(X,ft),ae=Wv(X,dn);if(ce&&ae&&(ye.rangeCount!==1||ye.anchorNode!==ce.node||ye.anchorOffset!==ce.offset||ye.focusNode!==ae.node||ye.focusOffset!==ae.offset)){var he=Ie.createRange();he.setStart(ce.node,ce.offset),ye.removeAllRanges(),ft>dn?(ye.addRange(he),ye.extend(ae.node,ae.offset)):(he.setEnd(ae.node,ae.offset),ye.addRange(he))}}}}for(Ie=[],ye=X;ye=ye.parentNode;)ye.nodeType===1&&Ie.push({element:ye,left:ye.scrollLeft,top:ye.scrollTop});for(typeof X.focus=="function"&&X.focus(),X=0;Xf?32:f,H.T=null,f=hp,hp=null;var j=Vs,F=hs;if(Jn=0,wa=Vs=null,hs=0,(en&6)!==0)throw Error(r(331));var X=en;if(en|=4,Y1(j.current),G1(j,j.current,F,f),en=X,ic(0,!1),Re&&typeof Re.onPostCommitFiberRoot=="function")try{Re.onPostCommitFiberRoot(ke,j)}catch{}return!0}finally{V.p=b,H.T=x,f_(s,l)}}function h_(s,l,f){l=ni(f,l),l=Wh(s.stateNode,l,2),s=Ls(s,l,2),s!==null&&(pn(s,2),Pi(s))}function an(s,l,f){if(s.tag===3)h_(s,s,f);else for(;l!==null;){if(l.tag===3){h_(l,s,f);break}else if(l.tag===1){var x=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(Fs===null||!Fs.has(x))){s=ni(f,s),f=p1(2),x=Ls(l,f,2),x!==null&&(g1(f,x,l,s),pn(x,2),Pi(x));break}}l=l.return}}function yp(s,l,f){var x=s.pingCache;if(x===null){x=s.pingCache=new LA;var b=new Set;x.set(l,b)}else b=x.get(l),b===void 0&&(b=new Set,x.set(l,b));b.has(f)||(up=!0,b.add(f),s=HA.bind(null,s,l,f),l.then(s,s))}function HA(s,l,f){var x=s.pingCache;x!==null&&x.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,mn===s&&(zt&f)===f&&(Ln===4||Ln===3&&(zt&62914560)===zt&&300>et()-md?(en&2)===0&&Ca(s,0):dp|=f,Sa===zt&&(Sa=0)),Pi(s)}function p_(s,l){l===0&&(l=qe()),s=vo(s,l),s!==null&&(pn(s,l),Pi(s))}function FA(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),p_(s,f)}function VA(s,l){var f=0;switch(s.tag){case 31:case 13:var x=s.stateNode,b=s.memoizedState;b!==null&&(f=b.retryLane);break;case 19:x=s.stateNode;break;case 22:x=s.stateNode._retryCache;break;default:throw Error(r(314))}x!==null&&x.delete(l),p_(s,f)}function UA(s,l){return xt(s,l)}var bd=null,Ea=null,vp=!1,_d=!1,bp=!1,Gs=0;function Pi(s){s!==Ea&&s.next===null&&(Ea===null?bd=Ea=s:Ea=Ea.next=s),_d=!0,vp||(vp=!0,qA())}function ic(s,l){if(!bp&&_d){bp=!0;do for(var f=!1,x=bd;x!==null;){if(s!==0){var b=x.pendingLanes;if(b===0)var j=0;else{var F=x.suspendedLanes,X=x.pingedLanes;j=(1<<31-Ge(42|s)+1)-1,j&=b&~(F&~X),j=j&201326741?j&201326741|1:j?j|2:0}j!==0&&(f=!0,v_(x,j))}else j=zt,j=tn(x,x===mn?j:0,x.cancelPendingCommit!==null||x.timeoutHandle!==-1),(j&3)===0||Nt(x,j)||(f=!0,v_(x,j));x=x.next}while(f);bp=!1}}function GA(){g_()}function g_(){_d=vp=!1;var s=0;Gs!==0&&n3()&&(s=Gs);for(var l=et(),f=null,x=bd;x!==null;){var b=x.next,j=x_(x,l);j===0?(x.next=null,f===null?bd=b:f.next=b,b===null&&(Ea=f)):(f=x,(s!==0||(j&3)!==0)&&(_d=!0)),x=b}Jn!==0&&Jn!==5||ic(s),Gs!==0&&(Gs=0)}function x_(s,l){for(var f=s.suspendedLanes,x=s.pingedLanes,b=s.expirationTimes,j=s.pendingLanes&-62914561;0X)break;var _e=ie.transferSize,Ie=ie.initiatorType;_e&&E_(Ie)&&(ie=ie.responseEnd,F+=_e*(ie"u"?null:document;function B_(s,l,f){var x=Na;if(x&&typeof l=="string"&&l){var b=St(l);b='link[rel="'+s+'"][href="'+b+'"]',typeof f=="string"&&(b+='[crossorigin="'+f+'"]'),P_.has(b)||(P_.add(b),s={rel:s,crossOrigin:f,href:l},x.querySelector(b)===null&&(l=x.createElement("link"),mr(l,"link",s),Tt(l),x.head.appendChild(l)))}}function d3(s){ps.D(s),B_("dns-prefetch",s,null)}function f3(s,l){ps.C(s,l),B_("preconnect",s,l)}function m3(s,l,f){ps.L(s,l,f);var x=Na;if(x&&s&&l){var b='link[rel="preload"][as="'+St(l)+'"]';l==="image"&&f&&f.imageSrcSet?(b+='[imagesrcset="'+St(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(b+='[imagesizes="'+St(f.imageSizes)+'"]')):b+='[href="'+St(s)+'"]';var j=b;switch(l){case"style":j=Ia(s);break;case"script":j=Ta(s)}li.has(j)||(s=h({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:s,as:l},f),li.set(j,s),x.querySelector(b)!==null||l==="style"&&x.querySelector(lc(j))||l==="script"&&x.querySelector(cc(j))||(l=x.createElement("link"),mr(l,"link",s),Tt(l),x.head.appendChild(l)))}}function h3(s,l){ps.m(s,l);var f=Na;if(f&&s){var x=l&&typeof l.as=="string"?l.as:"script",b='link[rel="modulepreload"][as="'+St(x)+'"][href="'+St(s)+'"]',j=b;switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":j=Ta(s)}if(!li.has(j)&&(s=h({rel:"modulepreload",href:s},l),li.set(j,s),f.querySelector(b)===null)){switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(cc(j)))return}x=f.createElement("link"),mr(x,"link",s),Tt(x),f.head.appendChild(x)}}}function p3(s,l,f){ps.S(s,l,f);var x=Na;if(x&&s){var b=An(x).hoistableStyles,j=Ia(s);l=l||"default";var F=b.get(j);if(!F){var X={loading:0,preload:null};if(F=x.querySelector(lc(j)))X.loading=5;else{s=h({rel:"stylesheet",href:s,"data-precedence":l},f),(f=li.get(j))&&Lp(s,f);var ie=F=x.createElement("link");Tt(ie),mr(ie,"link",s),ie._p=new Promise(function(pe,_e){ie.onload=pe,ie.onerror=_e}),ie.addEventListener("load",function(){X.loading|=1}),ie.addEventListener("error",function(){X.loading|=2}),X.loading|=4,jd(F,l,x)}F={type:"stylesheet",instance:F,count:1,state:X},b.set(j,F)}}}function g3(s,l){ps.X(s,l);var f=Na;if(f&&s){var x=An(f).hoistableScripts,b=Ta(s),j=x.get(b);j||(j=f.querySelector(cc(b)),j||(s=h({src:s,async:!0},l),(l=li.get(b))&&zp(s,l),j=f.createElement("script"),Tt(j),mr(j,"link",s),f.head.appendChild(j)),j={type:"script",instance:j,count:1,state:null},x.set(b,j))}}function x3(s,l){ps.M(s,l);var f=Na;if(f&&s){var x=An(f).hoistableScripts,b=Ta(s),j=x.get(b);j||(j=f.querySelector(cc(b)),j||(s=h({src:s,async:!0,type:"module"},l),(l=li.get(b))&&zp(s,l),j=f.createElement("script"),Tt(j),mr(j,"link",s),f.head.appendChild(j)),j={type:"script",instance:j,count:1,state:null},x.set(b,j))}}function $_(s,l,f,x){var b=(b=te.current)?Cd(b):null;if(!b)throw Error(r(446));switch(s){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=Ia(f.href),f=An(b).hoistableStyles,x=f.get(l),x||(x={type:"style",instance:null,count:0,state:null},f.set(l,x)),x):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){s=Ia(f.href);var j=An(b).hoistableStyles,F=j.get(s);if(F||(b=b.ownerDocument||b,F={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},j.set(s,F),(j=b.querySelector(lc(s)))&&!j._p&&(F.instance=j,F.state.loading=5),li.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},li.set(s,f),j||y3(b,s,f,F.state))),l&&x===null)throw Error(r(528,""));return F}if(l&&x!==null)throw Error(r(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Ta(f),f=An(b).hoistableScripts,x=f.get(l),x||(x={type:"script",instance:null,count:0,state:null},f.set(l,x)),x):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,s))}}function Ia(s){return'href="'+St(s)+'"'}function lc(s){return'link[rel="stylesheet"]['+s+"]"}function H_(s){return h({},s,{"data-precedence":s.precedence,precedence:null})}function y3(s,l,f,x){s.querySelector('link[rel="preload"][as="style"]['+l+"]")?x.loading=1:(l=s.createElement("link"),x.preload=l,l.addEventListener("load",function(){return x.loading|=1}),l.addEventListener("error",function(){return x.loading|=2}),mr(l,"link",f),Tt(l),s.head.appendChild(l))}function Ta(s){return'[src="'+St(s)+'"]'}function cc(s){return"script[async]"+s}function F_(s,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var x=s.querySelector('style[data-href~="'+St(f.href)+'"]');if(x)return l.instance=x,Tt(x),x;var b=h({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return x=(s.ownerDocument||s).createElement("style"),Tt(x),mr(x,"style",b),jd(x,f.precedence,s),l.instance=x;case"stylesheet":b=Ia(f.href);var j=s.querySelector(lc(b));if(j)return l.state.loading|=4,l.instance=j,Tt(j),j;x=H_(f),(b=li.get(b))&&Lp(x,b),j=(s.ownerDocument||s).createElement("link"),Tt(j);var F=j;return F._p=new Promise(function(X,ie){F.onload=X,F.onerror=ie}),mr(j,"link",x),l.state.loading|=4,jd(j,f.precedence,s),l.instance=j;case"script":return j=Ta(f.src),(b=s.querySelector(cc(j)))?(l.instance=b,Tt(b),b):(x=f,(b=li.get(j))&&(x=h({},f),zp(x,b)),s=s.ownerDocument||s,b=s.createElement("script"),Tt(b),mr(b,"link",x),s.head.appendChild(b),l.instance=b);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(x=l.instance,l.state.loading|=4,jd(x,f.precedence,s));return l.instance}function jd(s,l,f){for(var x=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),b=x.length?x[x.length-1]:null,j=b,F=0;F title"):null)}function v3(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 G_(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function b3(s,l,f,x){if(f.type==="stylesheet"&&(typeof x.media!="string"||matchMedia(x.media).matches!==!1)&&(f.state.loading&4)===0){if(f.instance===null){var b=Ia(x.href),j=l.querySelector(lc(b));if(j){l=j._p,l!==null&&typeof l=="object"&&typeof l.then=="function"&&(s.count++,s=Nd.bind(s),l.then(s,s)),f.state.loading|=4,f.instance=j,Tt(j);return}j=l.ownerDocument||l,x=H_(x),(b=li.get(b))&&Lp(x,b),j=j.createElement("link"),Tt(j);var F=j;F._p=new Promise(function(X,ie){F.onload=X,F.onerror=ie}),mr(j,"link",x),f.instance=j}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(f,l),(l=f.state.preload)&&(f.state.loading&3)===0&&(s.count++,f=Nd.bind(s),l.addEventListener("load",f),l.addEventListener("error",f))}}var Pp=0;function _3(s,l){return s.stylesheets&&s.count===0&&Td(s,s.stylesheets),0Pp?50:800)+l);return s.unsuspend=f,function(){s.unsuspend=null,clearTimeout(x),clearTimeout(b)}}:null}function Nd(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Td(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var Id=null;function Td(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,Id=new Map,l.forEach(k3,s),Id=null,Nd.call(s))}function k3(s,l){if(!(l.state.loading&4)){var f=Id.get(s);if(f)var x=f.get(null);else{f=new Map,Id.set(s,f);for(var b=s.querySelectorAll("link[data-precedence],style[data-precedence]"),j=0;j"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Wp.exports=P3(),Wp.exports}var $3=B3();const H3=2e3,F3=3e4,V3=20,U3=100,G3=3e4,q3=1e4,W3=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","session_update_config","session_delete","session_detail","session_stop","session_resume","session_complete","session_update_title","secretary_send","project_index","recovery_action","comms_state","comms_read_message"]);class Y3{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}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.handlers.onStatus?.("disconnected"),this.ws=null,this.closedByUser||this.scheduleReconnect()}}disconnect(){this.closedByUser=!0,this.stopHeartbeat(),this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws?.close(),this.ws=null}send(t){if(!this.ensureProjectScope(t))return;const n=JSON.stringify(t);if(!this.ws||this.ws.readyState!==WebSocket.OPEN){this.pendingQueue.length{!this.ws||this.ws.readyState!==WebSocket.OPEN||(this.ws.send(JSON.stringify({type:"ping"})),this.pongTimer=window.setTimeout(()=>{this.pongTimer=null,this.ws?.close()},q3))},G3)}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>=V3){this.handlers.onStatus?.("error","max reconnect attempts reached");return}const t=Math.min(H3*Math.pow(2,this.reconnectAttempt),F3);this.reconnectAttempt++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}}var X3=R3();const Gr=Zo(X3),R=32,zn=20,Wr=25,p0=2,pk=3,K3=zn*pk+p0*(pk-1),Z3=Wr,Zp=K3,gc=Z3,Lc=R*8,Ga=R*4,Ya=R*20,wj=1.8,Q3=wj,J3=wj,eM=30,tM=8,nM=-2,rM=.22,iM=5,sM=23;function oM(){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 r=n.indexOf("?");if(r>=0&&(t=e(n.slice(r+1)),t))return t;const i=n.replace(/^#/,"");return i.includes("=")&&(t=e(i),t)?t:null}function zc(e=new Date){if(typeof window<"u")try{const n=oM();if(n==="day")return!0;if(n==="night")return!1;const r=window.localStorage?.getItem("opc_outdoor_override");if(r==="day")return!0;if(r==="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>=iM&&t<=sM}const gk=11064556,xk=3228986,aM=200,lM=100,cM=60,ff=2,mf=20,Cj=3,jj=6,Aa=2.5,uM=8,dM=15,yk=5,vk=10,fM=5,bk=3,_k=2;function mM(e){const t=e.clientWidth||window.innerWidth-380,n=e.clientHeight||window.innerHeight-48,r=zc()?"#a8d4ec":"#31453a";return{type:Gr.CANVAS,parent:e,width:t,height:n,pixelArt:!0,backgroundColor:r,physics:{default:"arcade",arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:Gr.Scale.RESIZE,autoCenter:Gr.Scale.NONE,parent:e},render:{antialias:!1,pixelArt:!0}}}const hM=16,pM=32,kk=6;class gM extends Gr.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 r=0;r0)return t}}catch{}return Nj()}function dm(e){localStorage.setItem(Ej,JSON.stringify(e))}function xM(e,t){const n=Pn(),r=n.find(i=>i.id===e);r&&(r.name=t,dm(n))}function Qp(e,t){const n=Pn();for(const i of n)i.assignedAgents=i.assignedAgents.filter(o=>o!==t);const r=n.find(i=>i.id===e);r&&r.assignedAgents.push(t),dm(n)}function yM(e){const t=Pn();for(const n of t)n.assignedAgents=n.assignedAgents.filter(r=>r!==e);dm(t)}function vM(e){return Pn().find(t=>t.assignedAgents.includes(e))}function bM(e,t,n){const r=Pn(),i=r.find(o=>o.id===e);i&&(i.mapStr=t,i.seats=n,dm(r))}function Ij(e){const t=[];for(let n=0;n0?e[e.length-1].offsetCol+zn:zn,n=[];for(let r=0;rt.map(n=>n===0?".":"#").join(""))}function vr(e,t,n,r,i=t+r){return{x:Math.round(e*R),y:Math.round(t*R),w:Math.round(n*R),h:Math.round(r*R),depthY:Math.round(i*R)}}const _M=[vr(8,4,4.3,3.35,7.15),vr(2.3,8.65,5.35,1.95,10.55),vr(11.1,8.55,3.1,1.7,10.45),vr(14.15,8.55,4.95,2,10.95),vr(2.1,11.45,3.05,1.8,12.95),vr(5.25,11.45,3.05,1.8,12.95),vr(8.45,11.45,3.05,1.8,12.95),vr(2.1,14.55,3.05,1.85,16.1),vr(5.25,14.55,3.05,1.85,16.1),vr(8.45,14.55,3.05,1.85,16.1),vr(14,12.15,4.85,3,15.3),vr(1,19.55,3.05,1.15,20.7),vr(4.45,20.45,3.35,1.35,21.8),vr(14.1,20.5,3.15,1.85,22.3),vr(8.05,23.1,4.2,1,24.1),vr(17,23.1,2.1,1,24.1)];class jf{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 r=n.offsetCol*R;for(const i of _M){const o=t.add.image(r,0,"office-bg");o.setOrigin(0,0),o.setCrop(i.x,i.y,i.w,i.h),o.setDepth(i.depthY),this.foregroundSprites.push(o)}}addPixelLabel(t,n,r,i,o,a="#f5efe3",u="10px"){const d=t.add.text(n,r,i,{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,r,i,o=1){const a=t.add.image(n,r,"office-tileset-32",i);return a.setOrigin(0,0),a.setScale(o),a.setDepth(-92),this.decor.push(a),a}getOutdoorMetrics(t,n){const r=n+R*10.1,i=R*4.1,o=r+i+R*.15,a=o+R*1.1;return{gateCenterX:t/2,roadY:r,roadHeight:i,waterTopY:o,dockY:a,bottomY:n+Ya}}paintStylizedParkingCar(t,n,r,i,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=(y,v,w,S,_,k=1)=>{t.fillStyle(_,k);const C=i?-y-w:y;t.fillRect(Math.round(n+C),Math.round(r+v),w,S)};t.fillStyle(988175,.28),t.fillEllipse(n,r+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,p=-30,h=7,g=9;for(const y of[m,p])d(-22,y,h,g,u.tire),d(15,y,h,g,u.tire),d(-22,y,1,g,u.tireOuter),d(15+h-1,y,1,g,u.tireOuter);for(const y of[m,p])d(-18,y+1,4,g-2,u.bodyDark),d(14,y+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,r,i,o,a){const u=t.add.graphics();u.setDepth(-320);const d=-Lc,m=-Ga,p=n+Lc*2,h=r+Ga+Ya,g=d+p,y=r+Ya,v=m+R*6.2,w=r+R*.35,S=r+R*4.25,_=r+R*5.9,{gateCenterX:k,roadY:C,roadHeight:N,waterTopY:L,dockY:I}=this.getOutdoorMetrics(n,r),D=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(D.skyTop,1),u.fillRect(d,m,p,R*8.2),u.fillStyle(D.skyBand,1),u.fillRect(d,m+R*6.15,p,R*2.05),o){u.fillStyle(16775400,.45);for(let me=0;me<5;me++){const Oe=d+p*(.12+me*.19)+me*17%40,it=m+R*(1.4+me%3*.35);u.fillEllipse(Oe,it,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(D.towerFar,1);for(let me=d-R;meR*1.9&&u.fillRect(me+nt-8,Ae+4,3,3));u.fillStyle(D.facadeColor,D.facadeAlpha),u.fillRect(me+nt*.5,ve+R*.4,2,de-R*.8),u.fillStyle(D.towerNear,1)}u.fillStyle(D.bridgeColor,D.bridgeAlpha);for(let me=d+R*6;me(me.offsetCol+2.95)*R),M=R*.9,A=n-R*1.8,$=6,Y=R*1.7,B=r+R*.08,G=R*2.05,H=B+G,V=R*9.4,W=k-V/2,Z=H-2,q=R*3.1,U=Z+q,ee=R*2.3;u.fillStyle(12428667,1),u.fillRect(k-R*4.25,U,R*8.5,C-U),u.fillStyle(14141089,.95);for(let me=U+R*.35;meK&&u.fillRect(K,B,Oe-K,$),u.fillStyle(8415310,1),u.fillRect(Oe-4,B,4,R*.62),u.fillRect(Oe+Y,B,4,R*.62),u.fillStyle(11045217,1),u.fillRect(Oe,B,Y,4),u.fillStyle(15920612,1),K=Oe+Y}Kk-R*5.4&&me=0&&this.decor.splice(me,1),this.outdoorParking.destroy(),this.outdoorParking=null}const Ce=t.add.graphics();Ce.setDepth(-300);const He=4080460,We=15262424,Ye=[{x:d+R*2.2,count:5},{x:g-R*11.4,count:5}];Ce.lineStyle(0,0,0),Ce.fillStyle(He,1);for(const me of Ye)Ce.fillRect(me.x,_,R*12.8,R*3.8);Ce.lineStyle(1,We,.95);for(const me of Ye)for(let Oe=0;Oek-R;for(let it=0;it=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,i,o,r,n,{skipLabels:!0})}buildBoundaryDecor(t,n,r){const i=t.add.graphics();i.setDepth(-140);const o=t.add.graphics();o.setDepth(-95);const a=((n[n.length-1]?.offsetCol??0)+zn)*R,u=Wr*R,d=zn*R,m=R*2,p=R*20;this.buildOutdoorBackdrop(t,a,u,n,r),i.fillStyle(2498844,1),i.fillRect(-R,0,a+R*2,u),i.fillStyle(3221794,1),i.fillRect(0,0,a,u),i.fillStyle(6048831,1),i.fillRect(0,0,a,8),i.fillRect(0,u-8,a,8),i.fillRect(0,0,8,u),i.fillRect(a-8,0,8,u),i.fillStyle(2367001,1),i.fillRect(8,8,a-16,3),i.fillRect(8,u-11,a-16,3),i.fillStyle(1709844,1),i.fillRect(0,0,a,m),i.fillStyle(4931637,1),i.fillRect(0,m-5,a,5),i.fillStyle(4208173,1),i.fillRect(0,m,a,u-m),i.fillStyle(4865588,1),i.fillRect(0,R*8,a,R*4),i.fillStyle(3813416,1),i.fillRect(0,p,a,u-p),i.lineStyle(1,5917503,.32);for(let h=0;h<=a;h+=R)i.beginPath(),i.moveTo(h,m),i.lineTo(h,u),i.strokePath();for(let h=m;h<=u;h+=R)i.beginPath(),i.moveTo(0,h),i.lineTo(a,h),i.strokePath();for(let h=R*3;hA.id===h.id);i.fillStyle(5785659,1),i.fillRect(g-10,0,d+20,u),i.fillStyle(2301208,1),i.fillRect(g-4,0,d+8,u),i.lineStyle(2,8087640,.9),i.strokeRect(g-10,0,d+20,u),i.lineStyle(2,10982014,.34),i.strokeRect(g-4,0,d+8,u),i.fillStyle(1578259,1),i.fillRect(g-4,0,d+8,R),i.fillStyle(7166796,1),i.fillRect(g+R*5.5,R*.55,R*9,5),i.fillStyle(9074018,1),i.fillRect(g-10,0,8,8),i.fillRect(g+d+2,0,8,8),i.fillRect(g-10,u-8,8,8),i.fillRect(g+d+2,u-8,8,8),i.fillStyle(3221536,1),i.fillRect(g-4,p,d+8,6);const v=g+R*.7,w=g+R*14.65,S=R*1.05,_=R*4.45,k=R*6.4,C=S+k+R*.35,N=R*.55,L=y%2===0?6115909:5069382,I=y%2===0?4609113:5984070,D=y%2===0?5205640:7297908,T=y%2===0?5666919:9073231,O=y%2===0?7045045:10119803,M=y%2===0?6196089:10979160;i.fillStyle(2827295,1),i.fillRect(g+R*.58,C,d-R*1.16,R*.44),i.fillStyle(7692879,1),i.fillRect(g+R*.92,C+2,d-R*1.84,2),i.fillRect(g+R*4.3,C-R*.2,4,R*.84),i.fillRect(g+d-R*4.3,C-R*.2,4,R*.84),o.fillStyle(1906966,1),o.fillRect(v,S,_,k),o.fillRect(w,S,_,k),o.fillStyle(3090722,1),o.fillRect(v+4,S+4,_-8,k-8),o.fillRect(w+4,S+4,_-8,k-8),o.fillStyle(L,1),o.fillRect(v+4,S+4,_-8,R*.7),o.fillStyle(I,1),o.fillRect(w+4,S+4,_-8,R*.7),o.fillStyle(D,.95),o.fillRect(v+4,S+R*1.15,_-8,k-R*1.45),o.fillStyle(T,.95),o.fillRect(w+4,S+R*1.15,_-8,k-R*1.45),o.fillStyle(15127204,.16),o.fillRect(v+10,S+10,_-20,2),o.fillRect(w+10,S+10,_-20,2),o.lineStyle(1,6181444,.28);for(let A=v+12;A","#2d241c","#e8d5b6","8px"),this.decor.push(i,o)}buildMap(t,n=zc()){this.clearSceneDecor();const r=Pn(),i=((r[r.length-1]?.offsetCol??0)+zn)*R,o=Wr*R,a=this.getOutdoorMetrics(i,o);this.buildBoundaryDecor(t,r,n);for(const m of r){const p=(m.offsetCol+zn/2)*R,h=t.add.image(m.offsetCol*R,0,"office-bg");h.setOrigin(0,0),h.setDepth(-100),this.bgSprites.push(h),this.addForegroundOccluders(t,m);const g=t.add.text(p,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=Tj(r),d=jf.buildWallBodies(t,u);return console.log("[OfficeMapBuilder] Composite map ready —",r.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 r=this.nameLabels.find(i=>i.getData("officeId")===t);r&&r.setText(n)}static buildWallBodies(t,n){const r=n.length,i=r>0?n[0].length:0,o=t.physics.add.staticGroup();for(let a=0;a=0){const p=d-u,h=t.add.rectangle(u*R+p*R/2,a*R+R/2,p*R,R);h.setVisible(!1),o.add(h),u=-1}}}return o}static buildWallBodiesForRegion(t,n,r,i){const o=n.length,a=o>0?n[0].length:0;for(let u=0;u=0){const h=m-d,g=t.add.rectangle((i+d)*R+h*R/2,u*R+R/2,h*R,R);g.setVisible(!1),r.add(g),d=-1}}}}}const at={IDLE:"idle",WALK:"walk",TYPE:"type",THINK:"think",CELEBRATE:"celebrate",COFFEE:"coffee",CHAT:"chat",PRACTICE:"practice",REFLECT:"reflect",SLEEP:"sleep",PRESENT:"present"},Ma={DOWN:"down",LEFT:"left",RIGHT:"right",UP:"up"};function xy(e,t){return e+Math.random()*(t-e)}function kM(e,t){return Math.floor(xy(e,t+1))}class SM extends Gr.GameObjects.Container{constructor(t,n,r,i,o,a){const u=o*R+R/2,d=a*R+R/2;super(t,u,d),this.officeId="office-0",this.agentState=at.IDLE,this.dir=Ma.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=r,this.palette=i%6,this.wanderTimer=xy(.5,2.5),this.wanderLimit=kM(Cj,jj);const m=`char_${this.palette}`;this.shadow=t.add.ellipse(0,nM,eM,tM,1382432,rM),this.shadow.setOrigin(.5,.5),this.add(this.shadow),this.sprite=t.add.sprite(0,0,m),this.sprite.setScale(Q3,J3),this.sprite.setOrigin(.5,1),this.add(this.sprite),t.add.existing(this),t.physics.world.enable(this);const p=Math.min(12,R-4),h=Math.min(6,R/2);this.body.setSize(p,h),this.body.setOffset(-p/2,-h),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,r=n===Ma.LEFT;this.sprite.setFlipX(r);const i=r?"right":n;switch(this.agentState){case at.WALK:this.sprite.play(`${t}_walk_${i}`,!0);break;case at.CELEBRATE:this.sprite.play(`${t}_celebrate_${i}`,!0);break;case at.TYPE:case at.PRESENT:case at.PRACTICE:this.sprite.play(`${t}_type_${i}`,!0);break;case at.THINK:case at.REFLECT:this.sprite.play(`${t}_read_${i}`,!0);break;case at.COFFEE:case at.CHAT:this.sprite.play(`${t}_coffee_${i}`,!0);break;case at.SLEEP:case at.IDLE:default:this.sprite.play(`${t}_idle_${i}`,!0);break}}async walkTo(t,n,r){if(!this.pathfinder||!this.sprite?.anims)return!1;const i=this.getTilePos(),o=await this.pathfinder.findPath(i,{x:t,y:n});return o.length===0?!1:(this.currentPath=o,this.pathIndex=0,this.arrivalCallback=r??null,this.setAgentState(at.WALK),!0)}stopMovement(){this.currentPath=[],this.pathIndex=0,this.arrivalCallback=null,this.body?.setVelocity(0,0)}get isMoving(){return this.agentState===at.WALK&&this.currentPath.length>0}getWalkSpeed(){switch(this.urgency){case"urgent":return aM;case"normal":return lM;default:return cM}}showBubble(t,n=fM){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 r=this.scene.add.graphics(),i=n.width+8,o=n.height+4;r.fillStyle(16777215,.95),r.fillRoundedRect(-i/2,-o,i,o,4),r.lineStyle(1,6710886,.5),r.strokeRoundedRect(-i/2,-o,i,o,4),t.add([r,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===at.CELEBRATE&&this.setAgentState(at.IDLE),this.agentState===at.COFFEE&&(this.setAgentState(at.IDLE),this.wanderTimer=xy(ff,mf)),this.agentState===at.CHAT&&this.setAgentState(at.IDLE))),this.agentState===at.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],r=n.x*R+R/2,i=n.y*R+R/2,o=r-this.x,a=i-this.y,u=Math.sqrt(o*o+a*a),m=this.getWalkSpeed()*t;if(u<=m+.5){this.x=r,this.y=i,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?Ma.RIGHT:Ma.LEFT):this.setDirection(a>0?Ma.DOWN:Ma.UP)}arriveAtDestination(){this.currentPath=[],this.pathIndex=0,this.body.setVelocity(0,0);const t=this.arrivalCallback;this.arrivalCallback=null,t?t():this.agentState===at.WALK&&this.setAgentState(at.IDLE)}destroy(t){this.clearBubble(),super.destroy(t)}}var eg,wk;function wM(){return wk||(wk=1,eg=function(){this.pointsToAvoid={},this.startX,this.callback,this.startY,this.endX,this.endY,this.nodeHash={},this.openList}),eg}var tg,Ck;function CM(){return Ck||(Ck=1,tg=function(e,t,n,r,i){this.parent=e,this.x=t,this.y=n,this.costSoFar=r,this.simpleDistanceToTarget=i,this.bestGuessDistance=function(){return this.costSoFar+this.simpleDistanceToTarget}}),tg}var hf={exports:{}},jM=hf.exports,jk;function EM(){return jk||(jk=1,(function(e,t){(function(){var n,r,i,o,a,u,d,m,p,h,g,y,v,w,S;i=Math.floor,h=Math.min,r=function(_,k){return _k?1:0},p=function(_,k,C,N,L){var I;if(C==null&&(C=0),L==null&&(L=r),C<0)throw new Error("lo must be non-negative");for(N==null&&(N=_.length);CM;0<=M?O++:O--)T.push(O);return T}).apply(this).reverse(),D=[],N=0,L=I.length;NA;0<=A?++T:--T)$.push(a(_,C));return $},w=function(_,k,C,N){var L,I,D;for(N==null&&(N=r),L=_[C];C>k;){if(D=C-1>>1,I=_[D],N(L,I)<0){_[C]=I,C=D;continue}break}return _[C]=L},S=function(_,k,C){var N,L,I,D,T;for(C==null&&(C=r),L=_.length,T=k,I=_[k],N=2*k+1;Nh[0].length-1||Y>h.length-1||B>h[0].length-1||G>h.length-1)throw new Error("Your start or end point is outside the scope of your grid.");if($===B&&Y===G){V([]);return}for(var W=h[G][B],Z=!1,q=0;q"u"){k.shift();continue}if(Y.openList.size()===0){Y.callback(null),delete _[$],k.shift();continue}var B=Y.openList.pop();if(Y.endX===B.x&&Y.endY===B.y){var G=[];G.push({x:B.x,y:B.y});for(var H=B.parent;H!=null;)G.push({x:H.x,y:H.y}),H=H.parent;G.reverse();var V=G;Y.callback(V),delete _[$],k.shift();continue}B.list=i,B.y>0&&I(Y,B,0,-1,u*O(B.x,B.y-1)),B.x0&&I(Y,B,-1,0,u*O(B.x-1,B.y)),L&&(B.x>0&&B.y>0&&(w||D(h,N,B.x,B.y-1,B)&&D(h,N,B.x-1,B.y,B))&&I(Y,B,-1,-1,d*O(B.x-1,B.y-1)),B.x0&&(w||D(h,N,B.x,B.y-1,B)&&D(h,N,B.x+1,B.y,B))&&I(Y,B,1,-1,d*O(B.x+1,B.y-1)),B.x>0&&B.y[...n]),this.gridRows=this.grid.length,this.gridCols=this.gridRows>0?this.grid[0].length:0,this.easystar=new TM.js,this.easystar.setGrid(this.grid),this.easystar.setAcceptableTiles([0]),this.easystar.setIterationsPerCalculation(800)}findPath(t,n){return new Promise(r=>{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){r([]);return}if(this.grid[n.y]?.[n.x]===1){const i=this.findNearestWalkable(n.x,n.y);if(!i){r([]);return}n=i}if(this.grid[t.y]?.[t.x]===1){const i=this.findNearestWalkable(t.x,t.y);if(!i){r([]);return}t=i}this.easystar.findPath(t.x,t.y,n.x,n.y,i=>{r(i??[])}),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=i&&e=o&&tAM(`${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 r={};for(const[i,o]of e.seats){const a=DM(i,o),u=`${e.id}-${a}`;if(!n[u])continue;r[u]=(r[u]??0)+1;const d=r[u],m=a==="workspace"?"desk":a==="meetingRoom"?"meeting":a==="breakRoom"?"break":a==="leaderOffice"?"leader":"lobby",p=MM(i,o,a);n[u].seats.push(RM(`${e.id}-${m}-${d}`,i+t,o,p))}return n}function Aj(e){const t=e??Pn(),n={};for(const r of t)Object.assign(n,OM(r));return n}let ao=Aj();function LM(e){ao=Aj(e)}function Mj(e){const t=ao[`${e}-workspace`]?.seats??[],n=ao[`${e}-leaderOffice`]?.seats??[];return[...t,...n]}function Tk(){return Object.values(ao).flatMap(e=>e.seats)}function zM(e){const t=ao[e];if(!t)return null;const{x:n,y:r,w:i,h:o}=t.bounds,a=e.split("-").slice(0,2).join("-"),d=Pn().find(g=>g.id===a);if(!d)return{x:n+1,y:r+1};const m=Ij(d.mapStr),p=d.offsetCol,h=[];for(let g=r;g=0&&v({x:n.tileX,y:n.tileY})):[]}function Oo(e,t){return e+Math.random()*(t-e)}function PM(e,t){return Math.floor(Oo(e,t+1))}function Bi(e,t){return e.length>t?e.slice(0,t)+"...":e}function Ak(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 BM{constructor(t){this.pendingDespawn=new Set,this.scene=t}applyEvent(t){const n=t.data??{},r=t.agent_id||"openopc-main";if(r==="user")return;const i=r.startsWith("subagent-"),o=i?typeof n.parent_agent_id=="string"?n.parent_agent_id:"openopc-main":null,a=i?`Sub ${r.slice(-4)}`:void 0,u=this.scene.ensureAgent(r,a,i,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,r,o);break;case"subagent_done":this.onSubagentDone(u,r);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,r,n);break;case"delegation_done":this.onDelegationDone(u,n);break;case"agent_spawned":this.onAgentSpawned(u,r,n);break;case"agent_removed":this.onAgentRemoved(u,r);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,r,n);break;case"mycelium_crystallize":this.onMyceliumCrystallize(u,r,n);break;case"mycelium_spore":this.onMyceliumSpore(u,r,n);break;case"mycelium_decompose":this.onMyceliumDecompose(u,r,n);break;case"mycelium_unit_created":this.onMyceliumUnitCreated(u,n);break;case"mycelium_germinate":this.onMyceliumGerminate(u,r,n);break;case"hyphal_strengthen":this.onHyphalStrengthen(r,n);break;case"hyphal_weaken":this.onHyphalWeaken(r,n);break}}onToolStart(t,n){const r=typeof n.tool_name=="string"?n.tool_name:"tool",i=Ak(r);t.urgency="urgent",t.currentTool=r,t.isActive=!0,t.showBubble(`${i}...`),this.sendToSeat(t)}onToolDone(t,n){const r=typeof n.tool_name=="string"?n.tool_name:t.currentTool,i=Ak(r);t.currentTool=null,t.setAgentState(at.CELEBRATE),t.stateTimer=Aa,t.isActive=!1,t.showBubble(`${i} 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",at.COFFEE);n||t.setAgentState(at.IDLE),n&&(t.stateTimer=Oo(uM,dM))}onReflectStart(t){t.urgency="normal",t.isActive=!1,t.currentTool="Reflect",this.moveToZone(t,"meetingRoom",at.REFLECT)||t.setAgentState(at.REFLECT),t.stateTimer=30,t.showBubble("Reflecting...")}onReflectDone(t){t.currentTool=null,t.setAgentState(at.CELEBRATE),t.stateTimer=Aa,t.showBubble("Insight!")}onSkillSynthesized(t,n){const r=Bi(String(n.skill_name??"new"),20);t.setAgentState(at.PRESENT),t.showBubble(`New Skill: ${r}`)}onSubagentSpawn(t,n,r){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 r=typeof n.content_preview=="string"?n.content_preview:"";r&&(t.taskSummary=r);const i=r?Bi(r,30):"New task";t.showBubble(i),t.isActive=!0,this.sendToSeat(t)}onMessageOut(t,n){const r=typeof n.content_preview=="string"?n.content_preview:"";r&&(t.taskSummary=r);const i=r?Bi(r,30):"Reply sent";t.showBubble(`Reply: ${i}`)}onPracticeStart(t,n){t.urgency="normal";const r=typeof n.target_domain=="string"?n.target_domain:"Practice";t.showBubble(`Practicing: ${Bi(r,20)}`),t.isActive=!1,t.currentTool="Practice",this.moveToZone(t,"meetingRoom",at.PRACTICE)||t.setAgentState(at.PRACTICE)}onPracticeDone(t){t.currentTool=null,t.setAgentState(at.CELEBRATE),t.stateTimer=Aa,t.showBubble("Practice done!")}onTaskRouted(t,n){t.urgency="urgent";const r=typeof n.method=="string"?n.method:"auto";t.isActive=!0,this.sendToSeat(t),t.showBubble(`Assigned (${r})`)}onTaskDelegated(t,n,r){t.urgency="normal",t.stateTimer=Oo(yk,vk);const i=typeof r.target=="string"?r.target:"?";t.setAgentState(at.CHAT),t.showBubble(`Delegating to ${i}...`);const o=this.scene.getAgent(i);o&&(o.parentAgentId=n,o.showBubble("Receiving task..."))}onDelegationDone(t,n){const r=typeof n.target=="string"?n.target:"";if(t.setAgentState(at.IDLE),t.showBubble("Delegation complete"),r){const i=this.scene.getAgent(r);i&&(i.parentAgentId=null)}}onAgentSpawned(t,n,r){const i=typeof r.role_name=="string"?r.role_name:n;t.displayName=i,this.placeAtDoorway(t),this.sendToSeat(t),t.showBubble(`${i} 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=Oo(yk,vk),this.moveToZone(t,"meetingRoom",at.CHAT),t.showBubble("Collaborating...")}onCollabEnded(t){t.stateTimer=Aa,t.setAgentState(at.CELEBRATE),t.showBubble("Collaboration done!")}onSkillPublished(t,n){const r=Bi(String(n.skill_name??"skill"),20);t.setAgentState(at.CELEBRATE),t.stateTimer=Aa,t.showBubble(`Published: ${r}`)}onSkillAdopted(t,n){const r=Bi(String(n.skill_name??"skill"),20);t.showBubble(`Adopted: ${r}`)}onMyceliumTransport(t,n,r){const i=typeof r.source=="string"?r.source:n,o=typeof r.target=="string"?r.target:null,a=typeof r.domain=="string"?Bi(r.domain,15):"?",u=this.scene.ensureAgent(i);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,r){const i=Array.isArray(r.corroborating_agents)?r.corroborating_agents:[],o=Bi(String(r.content_preview??"Knowledge"),22),a=Array.from(new Set([n,...i])),u=`${t.officeId}-meetingRoom`,d=ao[u]?.seats??[];for(let m=0;m{h.setDirection(y.facing),h.setAgentState(at.CHAT)}),h.showBubble(p===n?`Crystal: ${o}`:"Crystal!")}}onMyceliumSpore(t,n,r){const i=Bi(String(r.content_preview??"Breakthrough"),20);t.myceliumEffect="spore_send",t.myceliumEffectTimer=4,t.setAgentState(at.PRESENT),t.showBubble(`Breakthrough! ${i}`),this.moveToZone(t,"breakRoom")}onMyceliumDecompose(t,n,r){const i=Bi(String(r.humus_preview??"Lesson learned"),22);t.myceliumEffect="decompose",t.myceliumEffectTimer=4,t.setAgentState(at.REFLECT),t.showBubble(`Learning: ${i}`),this.moveToZone(t,"meetingRoom")}onMyceliumUnitCreated(t,n){const r=String(n.nutrient_type??"insight").slice(0,1).toUpperCase();t.showBubble(`[${r}]...`,2)}onMyceliumGerminate(t,n,r){const i=typeof r.target_agent=="string"?r.target_agent:n,o=this.scene.ensureAgent(i);o.myceliumEffect=null,o.setAgentState(at.CELEBRATE),o.stateTimer=Aa,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===at.TYPE&&!n.isActive){n.seatTimer>0?(n.seatTimer-=t,n.seatTimer<=0&&(n.seatTimer=0,n.setAgentState(at.IDLE),n.wanderCount=0,n.wanderLimit=PM(Cj,jj),n.wanderTimer=Oo(ff,mf))):n.setAgentState(at.IDLE);continue}if(n.agentState===at.IDLE){if(n.isActive){if(n.urgency="urgent",!n.seatId){n.setAgentState(at.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=Oo(ff,mf);continue}const r=this.scene.getWalkableTilesForOffice(n.officeId);if(r.length>0){n.urgency="relaxed";const i=r[Math.floor(Math.random()*r.length)];n.walkTo(i.x,i.y),n.wanderCount++}n.wanderTimer=Oo(ff,mf)}}}}sendToSeat(t){if(!t.seatId)return;const n=this.scene.getSeatById(t.seatId);n&&t.walkTo(n.tileX,n.tileY,()=>{t.setAgentState(at.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=bk+Math.random()*_k)}).then(r=>{r||(t.setAgentState(at.TYPE),t.setDirection(n.facing),t.isActive||(t.seatTimer=bk+Math.random()*_k))})}moveToZone(t,n,r){const i=`${t.officeId}-${n}`,o=ao[i];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 p=m.getTilePos();u.add(`${p.x},${p.y}`)}for(const m of this.scene.agents.values()){if(m===t||!m.isMoving)continue;const p=m.currentPath;if(p?.length){const h=p[p.length-1];u.add(`${h.x},${h.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),r?t.setAgentState(r):t.setAgentState(at.IDLE)}),!0}const a=zM(i);return a?(t.walkTo(a.x,a.y,()=>{r?t.setAgentState(r):t.setAgentState(at.IDLE)}),!0):!1}moveToDoorway(t){const n=Rk(t.officeId);if(n.length===0)return!1;const r=n[Math.floor(Math.random()*n.length)];return t.walkTo(r.x,r.y),!0}placeAtDoorway(t){const n=Rk(t.officeId);if(n.length>0){const r=n[Math.floor(Math.random()*n.length)];t.setPosition(r.x*R+R/2,r.y*R+R/2)}}}class $M extends Gr.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=zc();this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?gk:xk),this.mapBuilder=new jf,this.mapData=this.mapBuilder.buildMap(this,t),this.pathfinder=new Ik(this.mapData.collisionGrid),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),this.seats=Tk().map(d=>({...d})),this.behavior=new BM(this);const n=Zp*R,r=gc*R,i=-Lc,o=-Ga,a=n+Lc*2,u=r+Ga+Ya;this.physics.world.setBounds(i,o,a,u),this.cameras.main.setBounds(i,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,p=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 h=this.cameras.main;h.stopFollow(),h.scrollX-=m/h.zoom,h.scrollY-=p/h.zoom,this.dragState.lastX=d.x,this.dragState.lastY=d.y}),this.input.on("wheel",(d,m,p,h)=>{const g=this.cameras.main,y=this.input.activePointer,v=g.getWorldPoint(y.x,y.y),w=this.getMinCameraZoom(g),S=Gr.Math.Clamp(g.zoom-h*.0015,w,3);g.setZoom(S);const _=g.getWorldPoint(y.x,y.y);g.scrollX+=v.x-_.x,g.scrollY+=v.y-_.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 p=this.cameras.main.getWorldPoint(d.x,d.y);let h=null,g=1/0;for(const y of this.agents.values()){const v=Gr.Math.Distance.Between(p.x,p.y,y.x,y.y);v<24&&vthis.add.circle(W,5,2.1,14284031,.95));G.add(H),G.setDepth(-250),G.setAlpha(0),G.setRotation(-.04),G.setScale(o),this.tweens.add({targets:[h,g,y],scaleX:{from:.85,to:1.2},alpha:{from:.5,to:.2},duration:900,yoyo:!0,repeat:-1});const V=()=>{G.setPosition(u,a),G.setAlpha(0),G.setRotation(-.04),h.setAlpha(.55),g.setAlpha(.42),y.setAlpha(.24),this.tweens.add({targets:G,x:d,alpha:1,rotation:.015,duration:7200,ease:"Sine.InOut",onComplete:()=>{h.setAlpha(.22),g.setAlpha(.14),y.setAlpha(.08),this.tweens.add({targets:G,x:d+4,y:a+R*.12,duration:1400,yoyo:!0,repeat:2,ease:"Sine.InOut"}),this.time.delayedCall(3600,()=>{h.setAlpha(.48),g.setAlpha(.32),y.setAlpha(.18),this.tweens.add({targets:G,x:m,alpha:0,rotation:-.055,duration:7600,ease:"Sine.InOut",onComplete:()=>{this.time.delayedCall(2400,V)}})})}})};V()}buildWalkableTilesByOffice(){this.walkableTilesByOffice.clear();const t=Pn();for(const n of t){const r=[];for(const i of this.walkableTiles)i.x>=n.offsetCol&&i.xm.id===t);if(!r)return;const i=(r.offsetCol+zn/2)*R,o=gc/2*R,a=this.cameras.main,u=this.getMinCameraZoom(a),d=Gr.Math.Clamp(Math.min(this.scale.width/((zn+4)*R),this.scale.height/((gc-4)*R)),u,Math.max(1.5,u));a.stopFollow(),this.tweens.add({targets:a,zoom:d,duration:380,ease:"Cubic.Out"}),a.pan(i,o,380,"Cubic.Out")}resolveOfficeForAgent(t){const n=vM(t);if(n)return n.id;const r=Pn();let i=null,o=-1;for(const u of r){const d=Mj(u.id),m=u.assignedAgents.length,p=d.length-m;p>o&&(i=u,o=p)}const a=i?.id??r[0]?.id??"office-0";return Qp(a,t),a}addAgent(t,n,r=!1,i=null,o,a,u){if(this.agents.has(t))return this.agents.get(t);const d=n??t,m=a??this.agents.size%6,p=o?(Qp(o,t),o):this.resolveOfficeForAgent(t),h=u?this.seats.find(C=>C.id===u&&!C.assigned)??this.findFreeSeatInOffice(p):this.findFreeSeatInOffice(p),v=(Pn().find(C=>C.id===p)?.offsetCol??0)+5,w=20;let S=v,_=w;h&&(S=h.tileX,_=h.tileY,h.assigned=!0,h.assignedTo=t);const k=new SM(this,t,d,m,S,_);return k.officeId=p,k.setPathfinder(this.pathfinder),k.seatId=h?.id??null,k.isSubagent=r,k.parentAgentId=i,h&&(k.setAgentState(at.TYPE),k.setDirection(h.facing),k.seatTimer=10),this.agents.set(t,k),k}removeAgent(t){const n=this.agents.get(t);if(n){if(n.seatId){const r=this.seats.find(i=>i.id===n.seatId);r&&(r.assigned=!1,r.assignedTo=null)}n.destroy(),this.agents.delete(t);try{const{unassignAgent:r}=require("../map/OfficeStore");r(t)}catch{}}}getAgent(t){return this.agents.get(t)}ensureAgent(t,n,r=!1,i=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,r,i,o,a,u)}findFreeSeatInOffice(t){const n=this.seats.filter(r=>r.id.startsWith(`${t}-desk-`)).find(r=>!r.assigned);return n||(this.seats.filter(r=>r.id.startsWith(`${t}-leader-`)).find(r=>!r.assigned)??null)}getSeatById(t){return this.seats.find(n=>n.id===t)}reassignAgent(t,n){const r=this.agents.get(t);if(!r)return;if(r.seatId){const m=this.seats.find(p=>p.id===r.seatId);m&&(m.assigned=!1,m.assignedTo=null)}r.stopMovement(),Qp(n,t),r.officeId=n;const i=this.findFreeSeatInOffice(n),u=(Pn().find(m=>m.id===n)?.offsetCol??0)+5,d=20;i?(i.assigned=!0,i.assignedTo=t,r.seatId=i.id,r.setPosition(i.tileX*R+R/2,i.tileY*R+R/2),r.setAgentState(at.TYPE),r.setDirection(i.facing),r.seatTimer=10):(r.seatId=null,r.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 r=this.agents.get(t);if(!r)return;if(r.seatId){const o=this.seats.find(a=>a.id===r.seatId);o&&(o.assigned=!1,o.assignedTo=null)}const i=this.seats.find(o=>o.id===n);!i||i.assigned&&i.assignedTo!==t||(i.assigned=!0,i.assignedTo=t,r.seatId=n,r.stopMovement(),r.setPosition(i.tileX*R+R/2,i.tileY*R+R/2),r.setAgentState(at.TYPE),r.setDirection(i.facing),r.seatTimer=10)}rebuildOfficeCollision(t,n,r){bM(t,n,r),this.mapData.wallBodies&&this.mapData.wallBodies.clear(!0,!0);const i=Pn(),o=Tj(i),a=jf.buildWallBodies(this,o);this.mapData={...this.mapData,wallBodies:a,collisionGrid:o},this.pathfinder=new Ik(o),this.walkableTiles=this.pathfinder.getWalkableTiles(),this.buildWalkableTilesByOffice(),LM(i),this.seats=Tk().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){xM(t,n),this.mapBuilder.updateLabel(t,n)}checkOutdoorDayNight(){this.applyOutdoorLighting(zc())}syncOutdoorLighting(){this.applyOutdoorLighting(zc())}applyOutdoorLighting(t){t!==this.outdoorIsDay&&(this.outdoorIsDay=t,this.cameras.main.setBackgroundColor(t?gk:xk),this.mapBuilder.refreshOutdoorDayNight(this,t))}getWorldSize(){const t=Zp*R,n=gc*R;return{worldW:t+Lc*2,worldH:n+Ga+Ya}}getMinCameraZoom(t){const{worldW:n,worldH:r}=this.getWorldSize();return Math.max(t.width/n,t.height/r)}}function HM({bridge:e}){const t=E.useRef(null),n=E.useRef(null),r=E.useRef(null);return E.useEffect(()=>{if(!t.current||!n.current||r.current)return;const i=t.current,o=n.current;o.style.width=`${i.clientWidth}px`,o.style.height=`${i.clientHeight}px`;const a=o.clientWidth||window.innerWidth-400,u=o.clientHeight||window.innerHeight-48;(a<50||u<50)&&(console.warn("[PhaserGame] Container too small:",a,u,"— using fallback size"),o.style.width=`${window.innerWidth-400}px`,o.style.height=`${window.innerHeight-48}px`),console.log("[PhaserGame] Creating Phaser game",o.clientWidth,"×",o.clientHeight);const d=mM(o);d.scene=[gM,$M];const m=new Gr.Game(d);m.registry.set("bridge",e),r.current=m;const p=()=>{!i||!m||(o.style.width=`${i.clientWidth}px`,o.style.height=`${i.clientHeight}px`,m.scale.resize(i.clientWidth,i.clientHeight))};return window.addEventListener("resize",p),()=>{window.removeEventListener("resize",p),m.destroy(!0),r.current=null}},[e]),c.jsx("div",{ref:t,style:{width:"100%",height:"100%"},children:c.jsx("div",{ref:n})})}class FM extends Gr.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);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.push(t);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 r=this.scene.getAgent(t);r&&(r.isActive=n)}setAgentBubble(t,n){if(!this.scene)return;const r=this.scene.getAgent(t);r&&(n?r.showBubble(n):r.clearBubble())}ensureAgent(t,n,r,i,o){this.scene&&this.scene.ensureAgent(t,n,!1,null,r,i,o)}getCharacterCards(){return this.scene?this.scene.getCharacterCards():[]}getOffices(){return Pn()}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,r){this.scene&&this.scene.rebuildOfficeCollision(t,n,r)}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 r of t){const i=this.scene.getAgent(r);i&&(i.showBubble(n.slice(0,30)),setTimeout(()=>i.clearBubble(),4e3))}}triggerCrossOfficeMeeting(t){if(this.scene)for(const n of t){const r=this.scene.getAgent(n);r&&this.scene.behavior.moveToZone(r,"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 r=t.timeline??[];for(const o of r)this.scene.behavior.applyEvent(o);const i=Object.entries(t.agents??{});console.log("[GameBridge] applySnapshot — adding",i.length,"agents:",i.map(([o])=>o));for(const[o,a]of i){const u=a,d=u.name||u.role_name||o,m=u.office_id,p=u.appearance?.palette,h=u.appearance?.desk_id;try{const g=this.scene.ensureAgent(o,d,!1,null,m,p,h),y=u.runtime_status||u.status;y==="tool_active"?(g.currentTool=u.current_tool??null,g.isActive=!0,g.setAgentState(at.TYPE)):y==="reflecting"&&(g.currentTool=u.current_tool??"Reflect",g.isActive=!1,g.setAgentState(at.REFLECT)),console.log(`[GameBridge] ✓ ensured ${o} in ${m} palette=${p}`)}catch(g){console.error(`[GameBridge] ✗ ensureAgent failed for ${o}:`,g)}}r.length===0&&i.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 VM="assets/office-bg.png";function UM({bridge:e}){const t=E.useRef(null),n=E.useRef(null),r=E.useRef(!1),[i,o]=E.useState(()=>Pn()),[a,u]=E.useState(()=>Pn()[0]?.id??"office-0"),d=i.find(te=>te.id===a)??i[0],[m,p]=E.useState(()=>Jp(d?.mapStr??Pc,zn,Wr)),[h,g]=E.useState(()=>[...d?.seats??Bc]),[y,v]=E.useState("wall"),[w,S]=E.useState(!1),[_,k]=E.useState(!1),[C,N]=E.useState(!1),[L,I]=E.useState(1),[D,T]=E.useState(!0),O=zn,M=Wr,A=te=>{const re=Pn();o(re),u(te);const oe=re.find(fe=>fe.id===te);oe&&(p(Jp(oe.mapStr,zn,Wr)),g([...oe.seats])),N(!1)};E.useEffect(()=>{const te=new Image;te.crossOrigin="anonymous",te.onload=()=>{n.current=te,S(!0)},te.onerror=()=>{n.current=null,S(!0)},te.src=VM},[]);const $=E.useCallback(()=>{const te=t.current;if(!te)return;const re=te.getContext("2d");if(!re)return;const oe=O*R,fe=M*R;te.width=oe,te.height=fe,re.clearRect(0,0,oe,fe),n.current?re.drawImage(n.current,0,0,oe,fe):(re.fillStyle="#3d3d3d",re.fillRect(0,0,oe,fe));for(let se=0;se{$()},[$]);const Y=te=>{const re=t.current;if(!re)return null;const oe=re.getBoundingClientRect(),fe=re.width/oe.width,se=re.height/oe.height,je=Math.floor((te.clientX-oe.left)*fe/R),Se=Math.floor((te.clientY-oe.top)*se/R);return je<0||je>=O||Se<0||Se>=M?null:{c:je,r:Se}},B=E.useCallback((te,re)=>{if(N(!1),y==="seat")g(oe=>{const fe=oe.findIndex(([se,je])=>se===te&&je===re);return fe>=0?oe.filter((se,je)=>je!==fe):[...oe,[te,re]]}),p(oe=>{if(oe[re]?.[te]===1){const fe=oe.map(se=>[...se]);return fe[re][te]=0,fe}return oe});else{const oe=y==="wall"?1:0;p(fe=>{if(fe[re]?.[te]===oe)return fe;const se=fe.map(je=>[...je]);return se[re][te]=oe,se}),y==="wall"&&g(fe=>fe.filter(([se,je])=>!(se===te&&je===re)))}},[y]),G=te=>{if(te.button!==0)return;r.current=!0;const re=Y(te);re&&B(re.c,re.r)},H=te=>{if(!r.current||y==="seat")return;const re=Y(te);re&&B(re.c,re.r)},V=()=>{r.current=!1},W=()=>{const te=Sk(m);e.rebuildOfficeCollision(a,te,h),N(!0),o(Pn()),setTimeout(()=>N(!1),2e3)},Z=()=>k(te=>!te),q=()=>{p(Jp(Pc,zn,Wr)),g([...Bc]),N(!1)},U=(()=>{const re=Sk(m).map((fe,se)=>` '${fe}', // ${se}`).join(` -`),oe=h.map(([fe,se])=>` [${fe}, ${se}],`).join(` -`);return`const MAP_STR: string[] = [ -${re} -] - -const SEATS: [number, number][] = [ -${oe} -]`})(),ee=()=>I(te=>Math.min(te+.25,3)),P=()=>I(te=>Math.max(te-.25,.5)),K=m.flat().filter(te=>te===1).length,J=m.flat().filter(te=>te===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:te=>A(te.target.value),children:i.map(te=>c.jsx("option",{value:te.id,children:te.name},te.id))})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsxs("button",{className:`ce-mode-btn ${y==="wall"?"active wall":""}`,onClick:()=>v("wall"),children:[c.jsx("span",{className:"ce-mode-dot wall"})," Wall"]}),c.jsxs("button",{className:`ce-mode-btn ${y==="floor"?"active floor":""}`,onClick:()=>v("floor"),children:[c.jsx("span",{className:"ce-mode-dot floor"})," Floor"]}),c.jsxs("button",{className:`ce-mode-btn ${y==="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:P,children:"-"}),c.jsxs("span",{className:"ce-zoom-label",children:[Math.round(L*100),"%"]}),c.jsx("button",{className:"ce-btn",onClick:ee,children:"+"}),c.jsx("button",{className:`ce-btn${D?" active":""}`,onClick:()=>T(te=>!te),children:"Grid"})]}),c.jsxs("div",{className:"ce-toolbar-group",children:[c.jsx("button",{className:`ce-btn apply${C?" success":""}`,onClick:W,children:C?"Applied":"Apply"}),c.jsx("button",{className:`ce-btn${_?" active":""}`,onClick:Z,children:"Export"}),c.jsx("button",{className:"ce-btn danger",onClick:q,children:"Reset"})]}),c.jsxs("div",{className:"ce-toolbar-group ce-stats",children:[c.jsxs("span",{children:["Walls: ",K]}),c.jsxs("span",{children:["Floor: ",J]}),c.jsxs("span",{children:["Seats: ",h.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:O*R*L,height:M*R*L,imageRendering:"pixelated",cursor:y==="seat"?"crosshair":"cell"},onMouseDown:G,onMouseMove:H,onMouseUp:V,onMouseLeave:V})}),_&&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(U),children:"Copy"})]}),c.jsx("textarea",{className:"ce-export-textarea",value:U,readOnly:!0,rows:20})]})]})]})}let GM=0;function er(e,t,n={}){return{event_id:`test-${++GM}`,type:e,agent_id:t,data:n,timestamp:Date.now()/1e3}}function Cn(e){return new Promise(t=>setTimeout(t,e))}async function qM(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 A of[...n.agents.keys()])n.removeAgent(A);await Cn(100);const r=Pn();t.push({name:"offices-loaded",pass:r.length>=3,detail:`${r.length} offices loaded: ${r.map(A=>A.name).join(", ")}`});const i=["agent-A","agent-B","agent-C","agent-D","agent-E","agent-F"];for(const A of i)e.pushEvent(er("agent_active",A));await Cn(300);const o=new Set;let a=!1;for(const A of i){const $=n.getAgent(A);$&&$.seatId&&(o.has($.seatId)&&(a=!0),o.add($.seatId))}t.push({name:"desk-assignment-unique",pass:!a&&o.size===i.length,detail:`Assigned ${o.size} unique seats to ${i.length} agents. IDs: [${[...o].join(", ")}]`});const u=i.every(A=>n.getAgent(A)?.officeId!=null);t.push({name:"agents-have-officeId",pass:u,detail:i.map(A=>`${A}=${n.getAgent(A)?.officeId}`).join(", ")}),e.pushEvent(er("tool_start","agent-A",{tool_name:"shell"})),await Cn(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(er("tool_done","agent-A",{tool_name:"shell"})),await Cn(100),t.push({name:"tool_done-celebrate",pass:d.agentState==="celebrate",detail:`state=${d.agentState}`});for(let A=0;A<20&&d.agentState==="celebrate";A++)await Cn(500);t.push({name:"celebrate-to-idle",pass:d.agentState!=="celebrate",detail:`state=${d.agentState}`}),e.pushEvent(er("waiting","agent-B")),await Cn(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(er("reflect_start","agent-C")),await Cn(200);const p=n.getAgent("agent-C");t.push({name:"reflect_start-state",pass:p.currentTool==="Reflect"&&(p.agentState==="walk"||p.agentState==="reflect"),detail:`currentTool=${p.currentTool}, state=${p.agentState}`}),e.pushEvent(er("reflect_done","agent-C")),await Cn(100),t.push({name:"reflect_done-celebrate",pass:p.agentState==="celebrate",detail:`state=${p.agentState}`});const h=["agent-A","agent-B","agent-C","agent-D"];for(const A of h)e.pushEvent(er("collab_started",A));await Cn(4e3);const g=new Map;let y=!1;for(const A of h){const $=n.getAgent(A);if(!$)continue;const Y=$.getTilePos(),B=`${Y.x},${Y.y}`;g.has(B)&&(y=!0),g.set(B,A)}t.push({name:"collab-no-overlap",pass:!y,detail:`${h.length} agents, ${g.size} unique positions`});for(const A of h)e.pushEvent(er("collab_ended",A));await Cn(100);const v=h.every(A=>n.getAgent(A)?.agentState==="celebrate");t.push({name:"collab_ended-celebrate",pass:v,detail:h.map(A=>`${A}=${n.getAgent(A)?.agentState}`).join(", ")}),await Cn(3e3),e.pushEvent(er("practice_start","agent-E",{target_domain:"TypeScript"})),await Cn(200);const w=n.getAgent("agent-E");t.push({name:"practice_start-state",pass:w.currentTool==="Practice"&&(w.agentState==="walk"||w.agentState==="practice"),detail:`currentTool=${w.currentTool}, state=${w.agentState}`}),e.pushEvent(er("practice_done","agent-E")),await Cn(100),t.push({name:"practice_done-celebrate",pass:w.agentState==="celebrate",detail:`state=${w.agentState}`}),await Cn(3e3),e.pushEvent(er("task_delegated","agent-A",{target:"agent-B"})),await Cn(100),t.push({name:"task_delegated-chat",pass:d.agentState==="chat",detail:`state=${d.agentState}`}),e.pushEvent(er("delegation_done","agent-A",{target:"agent-B"})),await Cn(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(er("message_in","agent-F",{content_preview:"Hello test"})),await Cn(200),t.push({name:"message_in-active",pass:S.isActive===!0,detail:`isActive=${S.isActive}, state=${S.agentState}`}),e.pushEvent(er("message_out","agent-F",{content_preview:"Reply test"})),await Cn(100),t.push({name:"message_out-bubble",pass:S.bubbleText?.includes("Reply")===!0,detail:`bubble="${S.bubbleText}"`}),e.pushEvent(er("subagent_spawn","subagent-test-1",{parent_agent_id:"agent-A"})),await Cn(200);const _=n.getAgent("subagent-test-1");t.push({name:"subagent_spawn-created",pass:_!=null&&_.isSubagent===!0,detail:`created=${!!_}, isSubagent=${_?.isSubagent}`}),e.pushEvent(er("subagent_done","subagent-test-1")),await Cn(5e3),t.push({name:"subagent_done-removed",pass:n.getAgent("subagent-test-1")==null,detail:`still exists=${!!n.getAgent("subagent-test-1")}`}),e.pushEvent(er("task_routed","agent-E",{method:"auto"})),await Cn(200),t.push({name:"task_routed-active",pass:w.isActive===!0,detail:`isActive=${w.isActive}, state=${w.agentState}`}),e.pushEvent(er("agent_removed","agent-F")),await Cn(5e3),t.push({name:"agent_removed-destroyed",pass:n.getAgent("agent-F")==null,detail:`still exists=${!!n.getAgent("agent-F")}`}),e.pushEvent(er("mycelium_crystallize","agent-A",{corroborating_agents:["agent-B","agent-C"],content_preview:"Shared knowledge"})),await Cn(4e3);const k=new Map;let C=!1;for(const A of["agent-A","agent-B","agent-C"]){const $=n.getAgent(A);if(!$)continue;const Y=$.getTilePos(),B=`${Y.x},${Y.y}`;k.has(B)&&(C=!0),k.set(B,A)}t.push({name:"crystal-no-overlap",pass:!C,detail:`3 agents, ${k.size} unique positions`});const N=new Map;let L=!1;for(const A of n.agents.values())A.seatId&&(N.has(A.seatId)&&(L=!0),N.set(A.seatId,A.agentId));t.push({name:"desk-seat-no-conflict",pass:!L,detail:`${N.size} desk seats assigned, conflict=${L}`});const I=n.getAgent("agent-D");if(I){const A=I.officeId,$=r.find(B=>B.id!==A)??r[1];e.assignAgentToOffice("agent-D",$.id),await Cn(300);const Y=I.officeId;t.push({name:"reassign-office",pass:Y===$.id&&Y!==A,detail:`${A} → ${Y} (expected ${$.id})`})}else t.push({name:"reassign-office",pass:!1,detail:"agent-D not found"});const D=new Map;let T=!1;for(const A of n.agents.values())A.seatId&&(D.has(A.seatId)&&(T=!0),D.set(A.seatId,A.agentId));t.push({name:"cross-office-seat-unique",pass:!T,detail:`${D.size} seats, conflict=${T}`});const O=t.filter(A=>A.pass).length,M=t.filter(A=>!A.pass).length;console.log(""),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold"),console.log(`%c[EventTest] Results: ${O} passed, ${M} failed, ${t.length} total`,`color: ${M>0?"#f87171":"#34d399"}; font-weight: bold`),console.log("%c[EventTest] ═══════════════════════════════════════","color: #6366f1; font-weight: bold");for(const A of t){const $=A.pass?"✅":"❌",Y=A.pass?"color: #34d399":"color: #f87171; font-weight: bold";console.log(`%c ${$} ${A.name}: ${A.detail}`,Y)}return t}function WM(e){window.__runEventTests=()=>qM(e),window.__bridge=e,console.log("%c[EventTest] Test runner ready. Run: window.__runEventTests()","color: #fbbf24; font-weight: bold")}const YM={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 XM(e){return e?YM[e]??"todo":"todo"}function KM(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function ZM(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 QM(e,t){return t.type==="SET"?t.columns:e}function JM(e,t){const n=Date.now();switch(t.type){case"SET":return t.tasks;case"ADD":return e.some(r=>r.id===t.task.id)?e:[...e,t.task];case"UPDATE":return e.map(r=>r.id===t.id?{...r,...t.partial,updatedAt:n}:r);case"DELETE":return e.filter(r=>r.id!==t.id);case"MOVE":return e.map(r=>r.id===t.id?{...r,columnId:t.columnId,sortOrder:t.sortOrder,updatedAt:n}:r);case"ASSIGN":return e.map(r=>r.id===t.taskId?{...r,assigneeIds:t.agentIds,updatedAt:n}:r);case"REMOVE_ASSIGNEE":return e.map(r=>r.assigneeIds.includes(t.agentId)?{...r,assigneeIds:r.assigneeIds.filter(i=>i!==t.agentId),updatedAt:n}:r);default:return e}}function e4(){const[e,t]=E.useReducer(ZM,[]),[n,r]=E.useReducer(QM,[]),[i,o]=E.useReducer(JM,[]),[a,u]=E.useState(null),[d,m]=E.useState("default"),p=E.useMemo(()=>e.find(D=>D.id===a)??null,[e,a]),h=E.useMemo(()=>n.filter(D=>D.boardId===a).sort((D,T)=>D.sortOrder-T.sortOrder),[n,a]),g=E.useMemo(()=>{const D=i.filter(O=>O.boardId===a),T={};for(const O of h)T[O.id]=[];for(const O of D){const M=O.phase?XM(O.phase):O.columnId;T[M]&&T[M].push(O)}for(const O of Object.keys(T))T[O].sort((M,A)=>M.sortOrder-A.sortOrder);return T},[i,a,h]),y=E.useCallback(D=>{const T=e.find($=>$.id===D.boardId),O=T?.nextTaskNum??1,M=T?.prefix??"T",A={id:D.taskId??`task-${KM()}`,displayId:D.displayId??`${M}-${String(O).padStart(3,"0")}`,boardId:D.boardId,columnId:D.columnId,title:D.title,description:D.description,priority:D.priority??null,assigneeIds:D.assigneeIds??[],tags:D.tags??[],sortOrder:O,createdAt:Date.now(),updatedAt:Date.now()};return o({type:"ADD",task:A}),A},[e]),v=E.useCallback((D,T)=>o({type:"UPDATE",id:D,partial:T}),[]),w=E.useCallback(D=>o({type:"DELETE",id:D}),[]),S=E.useCallback((D,T,O)=>o({type:"MOVE",id:D,columnId:T,sortOrder:O}),[]),_=E.useCallback((D,T)=>o({type:"ASSIGN",taskId:D,agentIds:T}),[]),k=E.useCallback(()=>{const D=new Set(n.filter(T=>T.isTerminal).map(T=>T.id));return i.filter(T=>!D.has(T.columnId)).length},[i,n]),C=E.useCallback(D=>{o({type:"REMOVE_ASSIGNEE",agentId:D})},[]),N=E.useCallback((D,T,O,M,A)=>{const $=D||"default",Y=$!==d,B=!Y&&!!A?.preserveTasksWhenIncomingEmpty&&M.length===0;m($),t({type:"SET",boards:T}),r({type:"SET",columns:O}),o({type:"SET",tasks:B?i:M}),u(G=>!Y&&G&&T.some(H=>H.id===G)?G:null)},[d,i]),L=E.useCallback(D=>{u(D)},[]),I=E.useCallback((D,T)=>{t({type:"UPDATE_NAME",boardId:D,name:T})},[]);return E.useMemo(()=>({scopeProjectId:d,boards:e,columns:n,tasks:i,activeBoardId:a,activeBoard:p,activeBoardColumns:h,tasksByColumn:g,setActiveBoard:L,createTask:y,updateTask:v,deleteTask:w,moveTask:S,assignTask:_,dispatchTask:o,getOpenTaskCount:k,removeAssignee:C,initFromBackend:N,updateBoardName:I}),[d,e,n,i,a,p,h,g,L,y,v,w,S,_,o,k,C,N,I])}const Mk={done:"✓",failed:"✗",pending:"○",blocked:"■",cancelled:"—",running:"▶"},Dk={done:"var(--green, #27ae60)",failed:"var(--red, #e74c3c)",pending:"var(--text-secondary, #888)",blocked:"var(--yellow, #f39c12)",cancelled:"var(--text-dim, #555)",running:"var(--accent, #3498db)"};function t4({data:e,onResume:t,onCancel:n}){const[r,i]=E.useState(new Set);if(!e.interrupted.length&&!e.active_recoveries.length)return null;const o=e.interrupted.filter(a=>!r.has(a.parent_task_id));return!o.length&&!e.active_recoveries.length?null:c.jsx("div",{className:"wfr-panel",children:o.map(a=>{const u=e.active_recoveries.includes(a.parent_task_id),d=a.work_items.filter(p=>p.status==="done").length,m=a.work_items.filter(p=>p.interrupted||p.status==="failed").length;return c.jsxs("div",{className:"wfr-card",children:[c.jsxs("div",{className:"wfr-header",children:[c.jsx("span",{className:"wfr-icon",children:"⚠"}),c.jsxs("div",{className:"wfr-header-text",children:[c.jsxs("span",{className:"wfr-title",children:["Interrupted: ",a.title]}),c.jsxs("span",{className:"wfr-subtitle",children:[d,"/",a.work_items.length," work items done, ",m," interrupted",a.profile&&c.jsxs(c.Fragment,{children:[" · ",a.profile]})]})]})]}),c.jsx("div",{className:"wfr-work-items",children:a.work_items.map(p=>c.jsxs("div",{className:`wfr-work-item wfr-work-item--${p.status}`,children:[c.jsx("span",{className:"wfr-work-item-icon",style:{color:Dk[p.status]||Dk.pending},children:Mk[p.status]||Mk.pending}),c.jsx("span",{className:"wfr-work-item-title",children:p.title}),p.interrupted&&c.jsx("span",{className:"wfr-work-item-badge",children:"interrupted"})]},p.work_item_projection_id))}),c.jsx("div",{className:"wfr-actions",children:u?c.jsxs("span",{className:"wfr-recovering",children:[c.jsx("span",{className:"spinner-inline"})," Recovering..."]}):c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"wfr-btn wfr-btn--resume",onClick:()=>t(a.parent_task_id),children:"Resume"}),c.jsx("button",{className:"wfr-btn wfr-btn--cancel",onClick:()=>n(a.parent_task_id),children:"Cancel"}),c.jsx("button",{className:"wfr-btn wfr-btn--dismiss",onClick:()=>i(p=>new Set(p).add(a.parent_task_id)),children:"Dismiss"})]})})]},a.parent_task_id)})})}var fm=Sj();const n4=Zo(fm);function Da(e,t,n){let r=n.initialDeps??[],i,o=!0;function a(){var u,d,m;let p;n.key&&((u=n.debug)!=null&&u.call(n))&&(p=Date.now());const h=e();if(!(h.length!==r.length||h.some((v,w)=>r[w]!==v)))return i;r=h;let y;if(n.key&&((d=n.debug)!=null&&d.call(n))&&(y=Date.now()),i=t(...h),n.key&&((m=n.debug)!=null&&m.call(n))){const v=Math.round((Date.now()-p)*100)/100,w=Math.round((Date.now()-y)*100)/100,S=w/16,_=(k,C)=>{for(k=String(k);k.length{r=u},a}function Ok(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const r4=(e,t)=>Math.abs(e-t)<1.01,i4=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},Lk=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},s4=e=>e,o4=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let i=t;i<=n;i++)r.push(i);return r},a4=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const i=a=>{const{width:u,height:d}=a;t({width:Math.round(u),height:Math.round(d)})};if(i(Lk(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(a=>{const u=()=>{const d=a[0];if(d?.borderBoxSize){const m=d.borderBoxSize[0];if(m){i({width:m.inlineSize,height:m.blockSize});return}}i(Lk(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(u):u()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},zk={passive:!0},Pk=typeof window>"u"?!0:"onscrollend"in window,l4=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let i=0;const o=e.options.useScrollendEvent&&Pk?()=>{}:i4(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),a=p=>()=>{const{horizontal:h,isRtl:g}=e.options;i=h?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(i,p)},u=a(!0),d=a(!1);n.addEventListener("scroll",u,zk);const m=e.options.useScrollendEvent&&Pk;return m&&n.addEventListener("scrollend",d,zk),()=>{n.removeEventListener("scroll",u),m&&n.removeEventListener("scrollend",d)}},c4=(e,t,n)=>{if(t?.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},u4=(e,{adjustments:t=0,behavior:n},r)=>{var i,o;const a=e+t;(o=(i=r.scrollElement)==null?void 0:i.scrollTo)==null||o.call(i,{[r.options.horizontal?"left":"top"]:a,behavior:n})};class d4{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,r,i;return((i=(r=(n=this.targetWindow)==null?void 0:n.performance)==null?void 0:r.now)==null?void 0:i.call(r))??Date.now()},this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(i=>{i.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 i;(i=r())==null||i.disconnect(),n=null},observe:i=>{var o;return(o=r())==null?void 0:o.observe(i,{box:"border-box"})},unobserve:i=>{var o;return(o=r())==null?void 0:o.unobserve(i)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,i])=>{typeof i>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:s4,rangeExtractor:o4,onChange:()=>{},measureElement:c4,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 r,i;(i=(r=this.options).onChange)==null||i.call(r,this,n)},this.maybeNotify=Da(()=>(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 r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,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(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,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,r)=>{const i=new Map,o=new Map;for(let a=r-1;a>=0;a--){const u=n[a];if(i.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=Da(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(n,r,i,o,a,u)=>(this.prevLanes!==void 0&&this.prevLanes!==u&&(this.lanesChangedFlag=!0),this.prevLanes=u,this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:i,getItemKey:o,enabled:a,lanes:u}),{key:!1}),this.getMeasurements=Da(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:i,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 p=this.measurementsCache.slice(0,m),h=new Array(u).fill(void 0);for(let g=0;g1){w=v;const N=h[w],L=N!==void 0?p[N]:void 0;S=L?L.end+this.options.gap:r+i}else{const N=this.options.lanes===1?p[g-1]:this.getFurthestMeasurement(p,g);S=N?N.end+this.options.gap:r+i,w=N?N.lane:g%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(g,w)}const _=d.get(y),k=typeof _=="number"?_:this.options.estimateSize(g),C=S+k;p[g]={index:g,start:S,size:k,end:C,key:y,lane:w},h[w]=g}return this.measurementsCache=p,p},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Da(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,i,o)=>this.range=n.length>0&&r>0?f4({measurements:n,outerSize:r,scrollOffset:i,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Da(()=>{let n=null,r=null;const i=this.calculateRange();return i&&(n=i.startIndex,r=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,i,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:r,count:i}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,i=n.getAttribute(r);return i?parseInt(i,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=n=>{var r;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const i=this.scrollState.index??((r=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:r.index);if(i!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),a=Math.max(0,i-o),u=Math.min(this.options.count-1,i+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 r=this.indexFromElement(n),i=this.options.getItemKey(r),o=this.elementsCache.get(i);o!==n&&(o&&this.observer.unobserve(o),this.observer.observe(n),this.elementsCache.set(i,n)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(n,void 0,this))},this.resizeItem=(n,r)=>{var i;const o=this.measurementsCache[n];if(!o)return;const a=this.itemSizeCache.get(o.key)??o.size,u=r-a;u!==0&&(((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,u,this):o.start[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const i=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Ok(r[Dj(0,r.length-1,i=>Ok(r[i]).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,r,i=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),a=this.getScrollOffset();r==="auto"&&(r=n>=a+o?"end":"start"),r==="center"?n+=(i-o)/2:r==="end"&&(n-=o);const u=this.getMaxScrollOffset();return Math.max(Math.min(u,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const i=this.getSize(),o=this.getScrollOffset(),a=this.measurementsCache[n];if(!a)return;if(r==="auto")if(a.end>=o+i-this.options.scrollPaddingEnd)r="end";else if(a.start<=o+this.options.scrollPaddingStart)r="start";else return[o,r];if(r==="end"&&n===this.options.count-1)return[this.getMaxScrollOffset(),r];const u=r==="end"?a.end+this.options.scrollPaddingEnd:a.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(u,r,a.size),r]},this.scrollToOffset=(n,{align:r="start",behavior:i="auto"}={})=>{const o=this.getOffsetForAlignment(n,r),a=this.now();this.scrollState={index:null,align:r,behavior:i,startedAt:a,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollToIndex=(n,{align:r="auto",behavior:i="auto"}={})=>{n=Math.max(0,Math.min(n,this.options.count-1));const o=this.getOffsetForIndex(n,r);if(!o)return;const[a,u]=o,d=this.now();this.scrollState={index:n,align:u,behavior:i,startedAt:d,lastTargetOffset:a,stableFrames:0},this._scrollToOffset(a,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollBy=(n,{behavior:r="auto"}={})=>{const i=this.getScrollOffset()+n,o=this.now();this.scrollState={index:null,align:"start",behavior:r,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let i;if(r.length===0)i=this.options.paddingStart;else if(this.options.lanes===1)i=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=r.length-1;for(;a>=0&&o.some(u=>u===null);){const u=r[a];o[u.lane]===null&&(o[u.lane]=u.end),a--}i=Math.max(...o.filter(u=>u!==null))}return Math.max(i-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:i})=>{this.options.scrollToFn(n,{behavior:i,adjustments:r},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 r=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,i=r?r[0]:this.scrollState.lastTargetOffset,o=1,a=i!==this.scrollState.lastTargetOffset;if(!a&&r4(i,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.scrollState=null;return}}else this.scrollState.stableFrames=0,a&&(this.scrollState.lastTargetOffset=i,this.scrollState.behavior="auto",this._scrollToOffset(i,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const Dj=(e,t,n,r)=>{for(;e<=t;){const i=(e+t)/2|0,o=n(i);if(or)t=i-1;else return i}return e>0?e-1:0};function f4({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const i=e.length-1,o=d=>e[d].start;if(e.length<=r)return{startIndex:0,endIndex:i};let a=Dj(0,i,o,n),u=a;if(r===1)for(;u1){const d=Array(r).fill(0);for(;up=0&&m.some(p=>p>=n);){const p=e[a];m[p.lane]=p.start,a--}a=Math.max(0,a-a%r),u=Math.min(i,u+(r-1-u%r))}return{startIndex:a,endIndex:u}}const Bk=typeof document<"u"?E.useLayoutEffect:E.useEffect;function m4({useFlushSync:e=!0,...t}){const n=E.useReducer(()=>({}),{})[1],r={...t,onChange:(o,a)=>{var u;e&&a?fm.flushSync(n):n(),(u=t.onChange)==null||u.call(t,o,a)}},[i]=E.useState(()=>new d4(r));return i.setOptions(r),Bk(()=>i._didMount(),[]),Bk(()=>i._willUpdate()),i}function Oj(e){return m4({observeElementRect:a4,observeElementOffset:l4,scrollToFn:u4,...e})}function h4(){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 mm(){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 Lj(){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 p4(){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 hm(){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 g4(){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 _s({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 y4(){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 g0(){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 v4(){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 b4(){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 zj(){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 Kc(){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 Po(){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 Pj(){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 _4(){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 $k(){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 k4(){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 S4(){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 xc(){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 Ef(){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 nl(){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 gm(){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 Hk({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 w4({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 C4({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 j4({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 Fa=new Set(["done","failed","cancelled"]),E4=new Set(["company","org","custom"]),N4=new Set(["idle","done","failed","cancelled"]);function xm(e){return Fa.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 qi(e){return xm(e)!=="idle"}function I4(e){if(!e)return!1;const t=String(e.execMode??"").trim().toLowerCase(),n=t==="task";return E4.has(t)||!!e.isCompanyRuntime||!!e.parentSessionId||!!e.orgId||!!e.workItemProjectionId||!!e.roleWorkItems||!!e.executorRoleWorkItems||!!e.companyProfile&&!n}function T4(e,t){if(!I4(e))return{};const n=String(t??"").trim().toLowerCase();if(n==="running")return{runtimeControlState:"running",canStop:!0,canResume:!1};if(N4.has(n)){const r=e?.runtimeControlState;return r==="suspending"||r==="suspended"?{}:{runtimeControlState:"idle",canStop:!1,canResume:!1}}return{}}function ig(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e}function Fk(e){return Math.max(0,Math.min(Math.round(e),100))}function Bj(e){const t=ig(e?.contextTokens),n=ig(e?.contextWindow),r=ig(e?.contextRemainingPct),i=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 r=="number"?Fk(r):void 0;if(typeof i=="number"&&typeof o=="number"){const u=Math.min(i,o),d=Fk(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 i=="number"?{usedTokens:i}:{}}const R4=/(\d[\d,]*)\s*\/\s*(\d[\d,]*)\s+tokens/i,A4=/(\d{1,3})%\s*used/i,M4=/(\d{1,3})%\s*remaining/i;function D4(e){return e.replace(/\s+/g," ").trim()}function O4(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function yy(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 L4(e){if(yy(e)<=0)return"";const t=D4(O4(e.content)).slice(0,2e3);return t?`result:${t}`:""}function Pd(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 Vk(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.max(0,Math.min(Math.round(e),100))}function rl(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 r=Object.values(e.executorRoleWorkItems??e.roleWorkItems??{});if(r.length===0)return;const i=r.map(o=>o.aggregatedStatus);if(i.some(o=>o==="active"))return"running";if(i.some(o=>o==="waiting")||i.some(o=>o==="pending"))return"pending";if(i.every(o=>o==="failed"))return"failed";if(i.every(o=>o==="done")||i.some(o=>o==="done"))return"done"}function z4(e){const t={};for(const n of e??[]){const r=`${n.summary??""} ${n.detail??""}`.trim();if(!r)continue;const i=R4.exec(r);if(i){const u=Pd(i[1]),d=Pd(i[2]);typeof u=="number"&&(t.contextTokens=u),typeof d=="number"&&d>0&&(t.contextWindow=d)}const o=M4.exec(r);if(o){t.contextRemainingPct=Vk(Pd(o[1]));continue}const a=A4.exec(r);if(a){const u=Vk(Pd(a[1]));typeof u=="number"&&(t.contextRemainingPct=100-u)}}return t}function Nf(e){const t=z4(e.progressLog),n=e.contextTokens??t.contextTokens,r=e.contextWindow??t.contextWindow,i=e.contextRemainingPct??t.contextRemainingPct;return n===e.contextTokens&&r===e.contextWindow&&i===e.contextRemainingPct?e:{...e,contextTokens:n,contextWindow:r,contextRemainingPct:i}}function $j(e){const t=new Set,n=[];for(const r of e)t.has(r.taskId)||(t.add(r.taskId),n.push(r));return n}function P4(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 r=String(e.originTaskId??e.taskId??"").trim(),i=new Map;for(const u of e.workItemLog??[]){const d=u.executionTurnId||u.runtimeTaskId;d&&!i.has(d)&&i.set(d,i.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=i.has(u.taskId),p=!!r&&String(u.originTaskId??"").trim()===r;return!d&&!m&&!p?!1:(o.add(u.taskId),!0)}).sort((u,d)=>{const m=i.get(u.taskId),p=i.get(d.taskId);return m!=null&&p!=null&&m!==p?m-p:m!=null&&p==null?-1:m==null&&p!=null?1:d.updatedAt-u.updatedAt})}function Uk(e,t){const n=pf(e,t);return!e||e.mode==="child"||!P4(e)?n:$j([e,...n])}function If(e,t){if(!e||e.mode==="child")return[];const n=String(e.sessionId??"").trim();if(!n)return[];const r=new Set;return t.filter(i=>i.taskId===e.taskId||r.has(i.taskId)||String(i.sessionId??"").trim()!==n?!1:(r.add(i.taskId),!0)).sort((i,o)=>o.updatedAt-i.updatedAt)}function B4(e){const t=String(e?.execMode??"").trim();return t==="company"||t==="org"||t==="custom"}function Gk(e){const t=qi(e)?1e9:0,n=String(e.draftAssistantText??"").trim()?1e10:0,r=Math.max(0,e.messageCount??0)*1e4,i=(e.progressLog?.length??0)*100;return n+t+r+i+e.updatedAt}function qk(e){const t=Bj(e),n=qi(e)?1e11:0,r=String(e.draftAssistantText??"").trim()?1e10:0,i=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+r+i+o+a+u}function Tf(e,t){if(!e)return{timelineSessions:[],displaySession:null,runtimeSession:null,projectedFromChild:!1};const n=Nf(e);if(e.mode==="child"||t.length===0)return{timelineSessions:[n],displaySession:n,runtimeSession:n,projectedFromChild:!1};const r=t.map(Nf),i=r.filter(h=>h.status!=="cancelled"),o=i.length>0?i:r,a=$j([n,...o]),u=B4(e),d=[...a].sort((h,g)=>Gk(g)-Gk(h))[0]??n,m=u?n:d,p=[...a].sort((h,g)=>qk(g)-qk(h))[0]??m;return{timelineSessions:a,displaySession:m,runtimeSession:p,projectedFromChild:!u&&m.taskId!==e.taskId}}function Wk(e,t,n){if(!e)return null;const r=Nf(e),i=t??r,o=rl(i)??rl(r),a=Rf(n.length>0?n:[r]);return{...r,status:o??(i.status||r.status),assigneeIds:i.assigneeIds.length>0?i.assigneeIds:r.assigneeIds,agentStatus:i.agentStatus??r.agentStatus,currentTool:i.currentTool??r.currentTool,displayTool:i.displayTool??i.currentTool??r.displayTool??r.currentTool,toolElapsedMs:i.toolElapsedMs??r.toolElapsedMs,lastToolSummary:i.lastToolSummary??r.lastToolSummary,contextTokens:i.contextTokens??r.contextTokens,contextWindow:i.contextWindow??r.contextWindow,contextRemainingPct:i.contextRemainingPct??r.contextRemainingPct,inputTokens:i.inputTokens??r.inputTokens,outputTokens:i.outputTokens??r.outputTokens,totalTokens:i.totalTokens??r.totalTokens,turnCostUsd:i.turnCostUsd??r.turnCostUsd,sessionCostUsd:i.sessionCostUsd??r.sessionCostUsd,pendingPermissionCount:i.pendingPermissionCount??r.pendingPermissionCount,drainMode:i.drainMode??r.drainMode,workItemProjectionId:i.workItemProjectionId??r.workItemProjectionId,workItemTurnType:i.workItemTurnType??r.workItemTurnType,companyProfile:r.companyProfile??i.companyProfile,workItemRoleId:r.workItemRoleId??i.workItemRoleId,workItemRoleName:r.workItemRoleName??i.workItemRoleName,workItemGate:r.workItemGate??i.workItemGate,employeeAssignment:r.employeeAssignment??i.employeeAssignment,selectedExecutionAgent:i.selectedExecutionAgent??r.selectedExecutionAgent,draftAssistantText:i.draftAssistantText??r.draftAssistantText,draftUpdatedAt:i.draftUpdatedAt??r.draftUpdatedAt,draftIteration:i.draftIteration??r.draftIteration,draftTurnId:i.draftTurnId??r.draftTurnId,runtimeControlState:i.runtimeControlState??r.runtimeControlState,canStop:i.canStop??r.canStop,canResume:i.canResume??r.canResume,resumeParentTaskId:i.resumeParentTaskId??r.resumeParentTaskId,resumeParentSessionId:i.resumeParentSessionId??r.resumeParentSessionId,pendingRuntimeCheckpointId:i.pendingRuntimeCheckpointId??r.pendingRuntimeCheckpointId,stopIntentId:i.stopIntentId??r.stopIntentId,updatedAt:Math.max(r.updatedAt,i.updatedAt),messageCount:Math.max(r.messageCount??0,i.messageCount??0,a),isCompanyRuntime:!!(r.isCompanyRuntime||i.isCompanyRuntime),workItemLog:(r.workItemLog?.length??0)>0?r.workItemLog:i.workItemLog,roleWorkItems:r.roleWorkItems??i.roleWorkItems,executorRoleWorkItems:r.executorRoleWorkItems??i.executorRoleWorkItems,activeSubagents:r.activeSubagents??i.activeSubagents,permissionRequests:r.permissionRequests??i.permissionRequests}}function $4(e,t,n){if(!e)return null;const r=Nf(e),i=t??r,o=rl(i)??rl(r),a=Rf(n.length>0?n:[r]);return{...r,status:o??(i.status||r.status),agentStatus:i.agentStatus??r.agentStatus,currentTool:i.currentTool??r.currentTool,displayTool:i.displayTool??i.currentTool??r.displayTool??r.currentTool,toolElapsedMs:i.toolElapsedMs??r.toolElapsedMs,lastToolSummary:i.lastToolSummary??r.lastToolSummary,contextTokens:i.contextTokens??r.contextTokens,contextWindow:i.contextWindow??r.contextWindow,contextRemainingPct:i.contextRemainingPct??r.contextRemainingPct,inputTokens:i.inputTokens??r.inputTokens,outputTokens:i.outputTokens??r.outputTokens,totalTokens:i.totalTokens??r.totalTokens,turnCostUsd:i.turnCostUsd??r.turnCostUsd,sessionCostUsd:i.sessionCostUsd??r.sessionCostUsd,pendingPermissionCount:i.pendingPermissionCount??r.pendingPermissionCount,drainMode:i.drainMode??r.drainMode,selectedExecutionAgent:i.selectedExecutionAgent??r.selectedExecutionAgent,runtimeControlState:i.runtimeControlState??r.runtimeControlState,canStop:i.canStop??r.canStop,canResume:i.canResume??r.canResume,resumeParentTaskId:i.resumeParentTaskId??r.resumeParentTaskId,resumeParentSessionId:i.resumeParentSessionId??r.resumeParentSessionId,pendingRuntimeCheckpointId:i.pendingRuntimeCheckpointId??r.pendingRuntimeCheckpointId,stopIntentId:i.stopIntentId??r.stopIntentId,updatedAt:Math.max(r.updatedAt,i.updatedAt),messageCount:Math.max(r.messageCount??0,i.messageCount??0,a)}}function Yk(e){const t=new Set,n=new Map,r=[];for(const i of e)for(const o of i){const a=o.metadata??{},u=typeof a.ui_message_id=="string"?a.ui_message_id.trim():"",d=L4(o);if(d){const p=n.get(d);if(p!==void 0){yy(o)>yy(r[p])&&(r[p]=o);continue}n.set(d,r.length)}const m=d||u||`${o.sender}:${o.replyToId??""}:${o.timestamp}:${o.content.trim()}`;t.has(m)||(t.add(m),r.push(o))}return r.sort((i,o)=>i.timestamp===o.timestamp?i.id.localeCompare(o.id):i.timestamp-o.timestamp)}function Xk(e){const t=new Set,n=[];for(const r of e)for(const i of r.progressLog??[]){const o=`${i.timestamp}:${i.type}:${i.summary}:${i.detail??""}`;t.has(o)||(t.add(o),n.push(i))}return n.sort((r,i)=>r.timestamp-i.timestamp)}function Rf(e){return e.reduce((t,n)=>t+Math.max(0,n.messageCount??0),0)}const H4={idle:"status-idle",done:"status-done",pending:"status-pending",failed:"status-failed",cancelled:"status-cancelled",blocked:"status-blocked"};function F4(e){const t=rl(e)??e.status,n=xm({...e,status:t});return n==="tool_active"?"status-tool-active":n==="reflecting"?"status-reflecting":t==="running"?"status-running-idle":H4[t]??"status-pending"}function V4(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 U4(e){const t=new Date,n=new Date(e),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=new Date(r.getTime()-864e5);return n>=r?"Today":n>=i?"Yesterday":"Earlier"}function G4(e){const t=new Map,n=[];for(const r of e)if(r.mode==="child"&&r.parentSessionId){const i=t.get(r.parentSessionId)??[];i.push(r),t.set(r.parentSessionId,i)}else n.push(r);return n.map(r=>({session:r,children:Array.from(new Map([...r.sessionId?t.get(r.sessionId)??[]:[],...t.get(r.taskId)??[]].map(i=>[i.taskId,i])).values())}))}function Bd({session:e,isActive:t,isChild:n,isLast:r,unreadCount:i,onSelect:o,onDelete:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(!1),h=e.assigneeIds.length>0?e.assigneeIds[0].replace(/^agent-/,""):null,g=rl(e)??e.status;return E.useEffect(()=>{if(!m)return;const y=setTimeout(()=>p(!1),3e3);return()=>clearTimeout(y)},[m]),c.jsxs("button",{className:`session-item${t?" active":""}${n?" session-item-child":""}`,onClick:o,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[n&&c.jsx("span",{className:`session-tree-line${r?" last":""}`}),c.jsx("span",{className:`session-dot ${F4(e)}`}),c.jsxs("div",{className:"session-item-content",children:[c.jsxs("span",{className:"session-item-title",children:[n&&h&&c.jsx("span",{className:"session-agent-tag",children:h}),!n&&e.isCompanyRuntime&&c.jsx("span",{className:"session-runtime-badge",title:"Company runtime",children:c.jsx(pm,{})}),e.title]}),c.jsxs("span",{className:"session-item-meta",children:[g," · ",V4(e.updatedAt)]})]}),!!i&&i>0&&c.jsx("span",{className:"session-unread-badge",children:i>99?"99+":i}),u&&!n&&!m&&c.jsx("button",{className:"session-delete-btn",onClick:y=>{y.stopPropagation(),p(!0)},title:"Delete",children:c.jsx(v4,{})}),m&&c.jsxs("span",{className:"session-confirm-delete",onClick:y=>y.stopPropagation(),children:[c.jsx("button",{className:"session-confirm-yes",onClick:()=>{p(!1),a()},children:"Delete"}),c.jsx("button",{className:"session-confirm-no",onClick:()=>p(!1),children:"Cancel"})]})]})}function q4({sessions:e,activeSessionId:t,activeChannel:n,secretaryChannelId:r,unreadCounts:i,onSelect:o,onCreateSession:a,onDeleteSession:u,onSelectSecretary:d}){const[m,p]=E.useState(""),[h,g]=E.useState(new Set),y=e.some(T=>T.isCompanyRuntime||T.mode==="child"||T.execMode==="company"||T.execMode==="org"||T.execMode==="custom"),v=E.useCallback(T=>{g(O=>{const M=new Set(O);return M.has(T)?M.delete(T):M.add(T),M})},[]),w=E.useMemo(()=>{if(!m.trim())return e;const T=m.toLowerCase();return e.filter(O=>O.title.toLowerCase().includes(T))},[e,m]),S=E.useMemo(()=>G4(w),[w]),_=E.useMemo(()=>{const T={Today:[],Yesterday:[],Earlier:[]};for(const O of S){const M=U4(O.session.createdAt);T[M]?.push(O)}return T},[S]),k=E.useMemo(()=>{const T=[];for(const O of["Today","Yesterday","Earlier"]){const M=_[O];if(!(!M||M.length===0)){T.push({kind:"group",group:O});for(const A of M){T.push({kind:"primary",node:A});const $=A.children.length>0,Y=h.has(A.session.taskId);$&&Y?T.push({kind:"child-count",node:A}):$&&A.children.forEach((B,G)=>{T.push({kind:"child",parentTaskId:A.session.taskId,child:B,childIndex:G,childCount:A.children.length})})}}}return T},[h,_]),C=k.length>120,N=E.useRef(null),L=Oj({count:k.length,getScrollElement:()=>N.current,estimateSize:T=>{const O=k[T];return O?.kind==="group"?26:O?.kind==="child-count"?30:54},overscan:8}),I=E.useCallback(T=>{const O=T.children.length>0,M=h.has(T.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${M?" collapsed":""}`,onClick:A=>{A.stopPropagation(),v(T.session.taskId)},"aria-label":M?"Expand":"Collapse"}),c.jsx(Bd,{session:T.session,isActive:T.session.taskId===t,unreadCount:i?.[T.session.channelId],onSelect:()=>o(T.session.taskId),onDelete:()=>u(T.session.taskId)})]})})},[t,h,u,o,v,i]),D=E.useCallback(T=>T.kind==="group"?c.jsx("div",{className:"session-group-label",children:y?`${T.group} Runtime Sessions`:T.group}):T.kind==="primary"?I(T.node):T.kind==="child-count"?c.jsxs("button",{className:"session-child-count",onClick:()=>v(T.node.session.taskId),children:[T.node.children.length," sub-task",T.node.children.length>1?"s":""]}):c.jsx("div",{className:"session-children",children:c.jsx(Bd,{session:T.child,isActive:T.child.taskId===t,isChild:!0,isLast:T.childIndex===T.childCount-1,unreadCount:i?.[T.child.channelId],onSelect:()=>o(T.child.taskId),onDelete:()=>u(T.child.taskId)})}),[t,y,u,o,I,v,i]);return c.jsxs("div",{className:"session-sidebar",children:[c.jsxs("button",{className:"session-new-btn",onClick:a,children:[c.jsx(y4,{}),c.jsx("span",{children:"New Chat"})]}),d&&c.jsxs("button",{className:`session-nav-btn${n===r?" active":""}`,onClick:d,children:[c.jsx(Kc,{}),c.jsx("span",{children:"Secretary"}),!!(r&&i?.[r])&&i[r]>0&&c.jsx("span",{className:"session-unread-badge",children:i[r]>99?"99+":i[r]})]}),c.jsxs("div",{className:"session-search-wrap",children:[c.jsx(g0,{}),c.jsx("input",{className:"session-search",placeholder:"Search...",value:m,onChange:T=>p(T.target.value)})]}),c.jsxs("div",{ref:N,className:`session-list${C?" session-list-virtualized":""}`,children:[C?c.jsx("div",{style:{height:L.getTotalSize(),width:"100%",position:"relative"},children:L.getVirtualItems().map(T=>c.jsx("div",{"data-index":T.index,ref:L.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${T.start}px)`},children:D(k[T.index])},T.key))}):["Today","Yesterday","Earlier"].map(T=>{const O=_[T];return!O||O.length===0?null:c.jsxs("div",{className:"session-group",children:[c.jsx("div",{className:"session-group-label",children:y?`${T} Runtime Sessions`:T}),O.map(M=>{const A=M.children.length>0,$=h.has(M.session.taskId);return c.jsxs("div",{className:"session-tree-node",children:[c.jsxs("div",{className:"session-tree-primary",children:[A&&c.jsx("button",{className:`session-expand-btn${$?" collapsed":""}`,onClick:Y=>{Y.stopPropagation(),v(M.session.taskId)},"aria-label":$?"Expand":"Collapse"}),c.jsx(Bd,{session:M.session,isActive:M.session.taskId===t,unreadCount:i?.[M.session.channelId],onSelect:()=>o(M.session.taskId),onDelete:()=>u(M.session.taskId)})]}),A&&!$&&c.jsx("div",{className:"session-children",children:M.children.map((Y,B)=>c.jsx(Bd,{session:Y,isActive:Y.taskId===t,isChild:!0,isLast:B===M.children.length-1,unreadCount:i?.[Y.channelId],onSelect:()=>o(Y.taskId),onDelete:()=>u(Y.taskId)},Y.taskId))}),A&&$&&c.jsxs("button",{className:"session-child-count",onClick:()=>v(M.session.taskId),children:[M.children.length," sub-task",M.children.length>1?"s":""]})]},M.session.taskId)})]},T)}),w.length===0&&c.jsx("div",{className:"session-empty",children:"No sessions yet"})]}),c.jsxs("button",{className:`session-nav-btn session-activity-btn${t===null&&n!==r?" active":""}`,onClick:()=>o(null),children:[c.jsx(zj,{}),c.jsx("span",{children:"Activity"})]})]})}const W4=new Set(["company_work_item_gate","company_delivery_feedback","company_staffing_selection","company_recruitment_confirmation","company_reorg_pending","human_escalation","task_user_input"]),Y4=new Set(["responded","resolved","timeout","timed_out","expired","stale","superseded","ignored","cancelled","canceled","invalid"]);function X4(e){return W4.has(String(e??"").trim())}function Zc(e){return!(!X4(e?.checkpoint_type)||e?.self_evolution_completed||String(e?.kind??"").trim()==="company_self_evolution_result")}function K4(e){const t=String(e?.checkpoint_status??"").trim().toLowerCase();return Y4.has(t)?!0:!!String(e?.checkpoint_response_message_id??"").trim()}function x0(e){const t=String(e?.checkpoint_id??"").trim();if(!t)return;const n=String(e?.checkpoint_type??"").trim(),r=String(e?.escalation_id??"").trim();return{response_to_checkpoint_id:t,response_to_checkpoint_type:n||void 0,response_to_escalation_id:r||void 0}}function Hj(e){const t=String(e?.response_to_checkpoint_type??"").trim();if(!(t==="company_delivery_feedback"||t==="human_escalation"))return e}function y0(e){const t=new Set,n=new Set,r=new Set;let i;const o=new Map,a=new Map,u=new Set;for(let d=0;dd,w=g==="human_escalation"&&!!y&&(a.get(y)??-1)>d;if(K4(p)||v||w){n.add(m.id);continue}t.add(m.id),i=x0(p)??i}return{pendingMessageIds:t,respondedMessageIds:n,duplicateMessageIds:r,latestPendingReplyMetadata:i}}function jr(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 Z4=typeof Symbol=="function"&&Symbol.observable||"@@observable",Kk=Z4,Zk=()=>Math.random().toString(36).substring(7).split("").join("."),Q4={INIT:`@@redux/INIT${Zk()}`,REPLACE:`@@redux/REPLACE${Zk()}`},Qk=Q4;function J4(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 Fj(e,t,n){if(typeof e!="function")throw new Error(jr(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(jr(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(jr(1));return n(Fj)(e,t)}let r=e,i=t,o=new Map,a=o,u=0,d=!1;function m(){a===o&&(a=new Map,o.forEach((S,_)=>{a.set(_,S)}))}function p(){if(d)throw new Error(jr(3));return i}function h(S){if(typeof S!="function")throw new Error(jr(4));if(d)throw new Error(jr(5));let _=!0;m();const k=u++;return a.set(k,S),function(){if(_){if(d)throw new Error(jr(6));_=!1,m(),a.delete(k),o=null}}}function g(S){if(!J4(S))throw new Error(jr(7));if(typeof S.type>"u")throw new Error(jr(8));if(typeof S.type!="string")throw new Error(jr(17));if(d)throw new Error(jr(9));try{d=!0,i=r(i,S)}finally{d=!1}return(o=a).forEach(k=>{k()}),S}function y(S){if(typeof S!="function")throw new Error(jr(10));r=S,g({type:Qk.REPLACE})}function v(){const S=h;return{subscribe(_){if(typeof _!="object"||_===null)throw new Error(jr(11));function k(){const N=_;N.next&&N.next(p())}return k(),{unsubscribe:S(k)}},[Kk](){return this}}}return g({type:Qk.INIT}),{dispatch:g,subscribe:h,getState:p,replaceReducer:y,[Kk]:v}}function Jk(e,t){return function(...n){return t(e.apply(this,n))}}function eS(e,t){if(typeof e=="function")return Jk(e,t);if(typeof e!="object"||e===null)throw new Error(jr(16));const n={};for(const r in e){const i=e[r];typeof i=="function"&&(n[r]=Jk(i,t))}return n}function Vj(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function e5(...e){return t=>(n,r)=>{const i=t(n,r);let o=()=>{throw new Error(jr(15))};const a={getState:i.getState,dispatch:(d,...m)=>o(d,...m)},u=e.map(d=>d(a));return o=Vj(...u)(i.dispatch),{...i,dispatch:o}}}var sg={exports:{}},og={};var tS;function t5(){if(tS)return og;tS=1;var e=yl();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,r=e.useSyncExternalStore,i=e.useRef,o=e.useEffect,a=e.useMemo,u=e.useDebugValue;return og.useSyncExternalStoreWithSelector=function(d,m,p,h,g){var y=i(null);if(y.current===null){var v={hasValue:!1,value:null};y.current=v}else v=y.current;y=a(function(){function S(L){if(!_){if(_=!0,k=L,L=h(L),g!==void 0&&v.hasValue){var I=v.value;if(g(I,L))return C=I}return C=L}if(I=C,n(k,L))return I;var D=h(L);return g!==void 0&&g(I,D)?(k=L,I):(k=L,C=D)}var _=!1,k,C,N=p===void 0?null:p;return[function(){return S(m())},N===null?void 0:function(){return S(N())}]},[m,p,h,g]);var w=r(d,y[0],y[1]);return o(function(){v.hasValue=!0,v.value=w},[w]),u(w),w},og}var nS;function n5(){return nS||(nS=1,sg.exports=t5()),sg.exports}n5();var r5=E.version.startsWith("19"),i5=Symbol.for(r5?"react.transitional.element":"react.element"),s5=Symbol.for("react.portal"),o5=Symbol.for("react.fragment"),a5=Symbol.for("react.strict_mode"),l5=Symbol.for("react.profiler"),c5=Symbol.for("react.consumer"),u5=Symbol.for("react.context"),Uj=Symbol.for("react.forward_ref"),d5=Symbol.for("react.suspense"),f5=Symbol.for("react.suspense_list"),v0=Symbol.for("react.memo"),m5=Symbol.for("react.lazy"),h5=Uj,p5=v0;function g5(e){if(typeof e=="object"&&e!==null){const{$$typeof:t}=e;switch(t){case i5:switch(e=e.type,e){case o5:case l5:case a5:case d5:case f5:return e;default:switch(e=e&&e.$$typeof,e){case u5:case Uj:case m5:case v0:return e;case c5:return e;default:return t}}case s5:return t}}}function x5(e){return g5(e)===v0}function y5(e,t,n,r,{areStatesEqual:i,areOwnPropsEqual:o,areStatePropsEqual:a}){let u=!1,d,m,p,h,g;function y(k,C){return d=k,m=C,p=e(d,m),h=t(r,m),g=n(p,h,m),u=!0,g}function v(){return p=e(d,m),t.dependsOnOwnProps&&(h=t(r,m)),g=n(p,h,m),g}function w(){return e.dependsOnOwnProps&&(p=e(d,m)),t.dependsOnOwnProps&&(h=t(r,m)),g=n(p,h,m),g}function S(){const k=e(d,m),C=!a(k,p);return p=k,C&&(g=n(p,h,m)),g}function _(k,C){const N=!o(C,m),L=!i(k,d,C,m);return d=k,m=C,N&&L?v():N?w():L?S():g}return function(C,N){return u?_(C,N):y(C,N)}}function v5(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:r,...i}){const o=t(e,i),a=n(e,i),u=r(e,i);return y5(o,a,u,e,i)}function b5(e,t){const n={};for(const r in e){const i=e[r];typeof i=="function"&&(n[r]=(...o)=>t(i(...o)))}return n}function vy(e){return function(n){const r=e(n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function rS(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function Gj(e,t){return function(r,{displayName:i}){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=rS(e);let m=o(u,d);return typeof m=="function"&&(o.mapToProps=m,o.dependsOnOwnProps=rS(m),m=o(u,d)),m},o}}function b0(e,t){return(n,r)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function _5(e){return e&&typeof e=="object"?vy(t=>b5(e,t)):e?typeof e=="function"?Gj(e):b0(e,"mapDispatchToProps"):vy(t=>({dispatch:t}))}function k5(e){return e?typeof e=="function"?Gj(e):b0(e,"mapStateToProps"):vy(()=>({}))}function S5(e,t,n){return{...n,...e,...t}}function w5(e){return function(n,{displayName:r,areMergedPropsEqual:i}){let o=!1,a;return function(d,m,p){const h=e(d,m,p);return o?i(h,a)||(a=h):(o=!0,a=h),a}}}function C5(e){return e?typeof e=="function"?w5(e):b0(e,"mergeProps"):()=>S5}function j5(e){e()}function E5(){let e=null,t=null;return{clear(){e=null,t=null},notify(){j5(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var iS={notify(){},get:()=>[]};function qj(e,t){let n,r=iS,i=0,o=!1;function a(w){p();const S=r.subscribe(w);let _=!1;return()=>{_||(_=!0,S(),h())}}function u(){r.notify()}function d(){v.onStateChange&&v.onStateChange()}function m(){return o}function p(){i++,n||(n=t?t.addNestedSub(d):e.subscribe(d),r=E5())}function h(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=iS)}function g(){o||(o=!0,p())}function y(){o&&(o=!1,h())}const v={addNestedSub:a,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:m,trySubscribe:g,tryUnsubscribe:y,getListeners:()=>r};return v}var N5=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",I5=N5(),T5=()=>typeof navigator<"u"&&navigator.product==="ReactNative",R5=T5(),A5=()=>I5||R5?E.useLayoutEffect:E.useEffect,Af=A5();function sS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function ag(e,t){if(sS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i=0;ie(...t),n)}function q5(e,t,n,r,i,o){e.current=r,n.current=!1,i.current&&(i.current=null,o())}function W5(e,t,n,r,i,o,a,u,d,m,p){if(!e)return()=>{};let h=!1,g=null;const y=()=>{if(h||!u.current)return;const w=t.getState();let S,_;try{S=r(w,i.current)}catch(k){_=k,g=k}_||(g=null),S===o.current?a.current||m():(o.current=S,d.current=S,a.current=!0,p())};return n.onStateChange=y,n.trySubscribe(),y(),()=>{if(h=!0,n.tryUnsubscribe(),n.onStateChange=null,g)throw g}}function Y5(e,t){return e===t}function X5(e,t,n,{pure:r,areStatesEqual:i=Y5,areOwnPropsEqual:o=ag,areStatePropsEqual:a=ag,areMergedPropsEqual:u=ag,forwardRef:d=!1,context:m=Yj}={}){const p=m,h=k5(e),g=_5(t),y=C5(n),v=!!e;return S=>{const _=S.displayName||S.name||"Component",k=`Connect(${_})`,C={shouldHandleStateChanges:v,displayName:k,wrappedComponentName:_,WrappedComponent:S,initMapStateToProps:h,initMapDispatchToProps:g,initMergeProps:y,areStatesEqual:i,areStatePropsEqual:a,areOwnPropsEqual:o,areMergedPropsEqual:u};function N(D){const[T,O,M]=E.useMemo(()=>{const{reactReduxForwardedRef:Se,...Ce}=D;return[D.context,Se,Ce]},[D]),A=E.useMemo(()=>{let Se=p;return T?.Consumer,Se},[T,p]),$=E.useContext(A),Y=!!D.store&&!!D.store.getState&&!!D.store.dispatch,B=!!$&&!!$.store,G=Y?D.store:$.store,H=B?$.getServerState:G.getState,V=E.useMemo(()=>v5(G.dispatch,C),[G]),[W,Z]=E.useMemo(()=>{if(!v)return U5;const Se=qj(G,Y?void 0:$.subscription),Ce=Se.notifyNestedSubs.bind(Se);return[Se,Ce]},[G,Y,$]),q=E.useMemo(()=>Y?$:{...$,subscription:W},[Y,$,W]),U=E.useRef(void 0),ee=E.useRef(M),P=E.useRef(void 0),K=E.useRef(!1),J=E.useRef(!1),te=E.useRef(void 0);Af(()=>(J.current=!0,()=>{J.current=!1}),[]);const re=E.useMemo(()=>()=>P.current&&M===ee.current?P.current:V(G.getState(),M),[G,M]),oe=E.useMemo(()=>Ce=>W?W5(v,G,W,V,ee,U,K,J,P,Z,Ce):()=>{},[W]);G5(q5,[ee,U,K,M,P,Z]);let fe;try{fe=E.useSyncExternalStore(oe,re,H?()=>V(H(),M):re)}catch(Se){throw te.current&&(Se.message+=` -The error may be correlated with this previous error: -${te.current.stack} - -`),Se}Af(()=>{te.current=void 0,P.current=void 0,U.current=fe});const se=E.useMemo(()=>E.createElement(S,{...fe,ref:O}),[O,S,fe]);return E.useMemo(()=>v?E.createElement(A.Provider,{value:q},se):se,[A,se,q])}const I=E.memo(N);if(I.WrappedComponent=S,I.displayName=N.displayName=k,d){const T=E.forwardRef(function(M,A){return E.createElement(I,{...M,reactReduxForwardedRef:A})});return T.displayName=k,T.WrappedComponent=S,by(T,S)}return by(I,S)}}var Xj=X5;function K5(e){const{children:t,context:n,serverState:r,store:i}=e,o=E.useMemo(()=>{const d=qj(i);return{store:i,subscription:d,getServerState:r?()=>r:void 0}},[i,r]),a=E.useMemo(()=>i.getState(),[i]);Af(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),a!==i.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,a]);const u=n||Yj;return E.createElement(u.Provider,{value:o},t)}var Z5=K5,Q5="Invariant failed";function J5(e,t){throw new Error(Q5)}var Ci=function(t){var n=t.top,r=t.right,i=t.bottom,o=t.left,a=r-o,u=i-n,d={top:n,right:r,bottom:i,left:o,width:a,height:u,x:o,y:n,center:{x:(r+o)/2,y:(i+n)/2}};return d},_0=function(t,n){return{top:t.top-n.top,left:t.left-n.left,bottom:t.bottom+n.bottom,right:t.right+n.right}},cS=function(t,n){return{top:t.top+n.top,left:t.left+n.left,bottom:t.bottom-n.bottom,right:t.right-n.right}},eD=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},k0=function(t){var n=t.borderBox,r=t.margin,i=r===void 0?lg:r,o=t.border,a=o===void 0?lg:o,u=t.padding,d=u===void 0?lg:u,m=Ci(_0(n,i)),p=Ci(cS(n,a)),h=Ci(cS(p,d));return{marginBox:m,borderBox:Ci(n),paddingBox:p,contentBox:h,margin:i,border:a,padding:d}},ci=function(t){var n=t.slice(0,-2),r=t.slice(-2);if(r!=="px")return 0;var i=Number(n);return isNaN(i)&&J5(),i},tD=function(){return{x:window.pageXOffset,y:window.pageYOffset}},Mf=function(t,n){var r=t.borderBox,i=t.border,o=t.margin,a=t.padding,u=eD(r,n);return k0({borderBox:u,border:i,margin:o,padding:a})},Df=function(t,n){return n===void 0&&(n=tD()),Mf(t,n)},Kj=function(t,n){var r={top:ci(n.marginTop),right:ci(n.marginRight),bottom:ci(n.marginBottom),left:ci(n.marginLeft)},i={top:ci(n.paddingTop),right:ci(n.paddingRight),bottom:ci(n.paddingBottom),left:ci(n.paddingLeft)},o={top:ci(n.borderTopWidth),right:ci(n.borderRightWidth),bottom:ci(n.borderBottomWidth),left:ci(n.borderLeftWidth)};return k0({borderBox:t,margin:r,padding:i,border:o})},Zj=function(t){var n=t.getBoundingClientRect(),r=window.getComputedStyle(t);return Kj(n,r)},Qc=function(t){var n=[],r=null,i=function(){for(var a=arguments.length,u=new Array(a),d=0;d{const o=nD(n,i.options);return e.addEventListener(i.eventName,i.fn,o),function(){e.removeEventListener(i.eventName,i.fn,o)}});return function(){r.forEach(o=>{o()})}}const rD="Invariant failed";class Lf extends Error{}Lf.prototype.toString=function(){return this.message};function Le(e,t){throw new Lf(rD)}let iD=class extends Ct.Component{constructor(...t){super(...t),this.callbacks=null,this.unbind=io,this.onWindowError=n=>{const r=this.getCallbacks();r.isDragging()&&r.tryAbort(),n.error instanceof Lf&&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=mi(window,[{eventName:"error",fn:this.onWindowError}])}componentDidCatch(t){if(t instanceof Lf){this.setState({});return}throw t}componentWillUnmount(){this.unbind()}render(){return this.props.children(this.setCallbacks)}};const sD=` - 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 -`,zf=e=>e+1,oD=e=>` - You have lifted an item in position ${zf(e.source.index)} -`,Jj=(e,t)=>{const n=e.droppableId===t.droppableId,r=zf(e.index),i=zf(t.index);return n?` - You have moved the item from position ${r} - to position ${i} - `:` - You have moved the item from position ${r} - in list ${e.droppableId} - to list ${t.droppableId} - in position ${i} - `},eE=(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} - `,aD=e=>{const t=e.destination;if(t)return Jj(e.source,t);const n=e.combine;return n?eE(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 ${zf(e.index)} -`,lD=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. - ${Jj(e.source,t)} - `:n?` - You have dropped the item. - ${eE(e.draggableId,e.source,n)} - `:` - The item has been dropped while not over a drop area. - ${uS(e.source)} - `},gf={dragHandleUsageInstructions:sD,onDragStart:oD,onDragUpdate:aD,onDragEnd:lD};function cD(e,t){return!!(e===t||Number.isNaN(e)&&Number.isNaN(t))}function tE(e,t){if(e.length!==t.length)return!1;for(let n=0;n({inputs:t,result:e()}))[0],r=E.useRef(!0),i=E.useRef(n),a=r.current||!!(t&&i.current.inputs&&tE(t,i.current.inputs))?i.current:{inputs:t,result:e()};return E.useEffect(()=>{r.current=!1,i.current=a},[a]),a.result}function ot(e,t){return Ht(()=>e,t)}const sr={x:0,y:0},hr=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),Yr=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),so=(e,t)=>e.x===t.x&&e.y===t.y,bl=e=>({x:e.x!==0?-e.x:0,y:e.y!==0?-e.y:0}),Fo=(e,t,n=0)=>e==="x"?{x:t,y:n}:{x:n,y:t},Jc=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2),dS=(e,t)=>Math.min(...t.map(n=>Jc(e,n))),nE=e=>t=>({x:e(t.x),y:e(t.y)});var uD=(e,t)=>{const n=Ci({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 yu=(e,t)=>({top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}),fS=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}],dD={top:0,right:0,bottom:0,left:0},fD=(e,t)=>t?yu(e,t.scroll.diff.displacement):e,mD=(e,t,n)=>n&&n.increasedBy?{...e,[t.end]:e[t.end]+n.increasedBy[t.line]}:e,hD=(e,t)=>t&&t.shouldClipSubject?uD(t.pageMarginBox,e):Ci(e);var il=({page:e,withPlaceholder:t,axis:n,frame:r})=>{const i=fD(e.marginBox,r),o=mD(i,n,t),a=hD(o,r);return{page:e,withPlaceholder:t,active:a}},S0=(e,t)=>{e.frame||Le();const n=e.frame,r=Yr(t,n.scroll.initial),i=bl(r),o={...n,scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:i},max:n.scroll.max}},a=il({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return{...e,frame:o,subject:a}};function ir(e,t=tE){let n=null;function r(...i){if(n&&n.lastThis===this&&t(i,n.lastArgs))return n.lastResult;const o=e.apply(this,i);return n={lastResult:o,lastArgs:i,lastThis:this},o}return r.clear=function(){n=null},r}const rE=ir(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),iE=ir(e=>e.reduce((t,n)=>(t[n.descriptor.id]=n,t),{})),ym=ir(e=>Object.values(e)),pD=ir(e=>Object.values(e));var _l=ir((e,t)=>pD(t).filter(r=>e===r.descriptor.droppableId).sort((r,i)=>r.descriptor.index-i.descriptor.index));function w0(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 bm=ir((e,t)=>t.filter(n=>n.descriptor.id!==e.descriptor.id)),gD=({isMovingForward:e,draggable:t,destination:n,insideDestination:r,previousImpact:i})=>{if(!n.isCombineEnabled||!w0(i))return null;function a(y){const v={type:"COMBINE",combine:{draggableId:y,droppableId:n.descriptor.id}};return{...i,at:v}}const u=i.displaced.all,d=u.length?u[0]:null;if(e)return d?a(d):null;const m=bm(t,r);if(!d){if(!m.length)return null;const y=m[m.length-1];return a(y.descriptor.id)}const p=m.findIndex(y=>y.descriptor.id===d);p===-1&&Le();const h=p-1;if(h<0)return null;const g=m[h];return a(g.descriptor.id)},kl=(e,t)=>e.descriptor.droppableId===t.descriptor.id;const sE={point:sr,value:0},eu={invisible:{},visible:{},all:[]},xD={displaced:eu,displacedBy:sE,at:null};var hi=(e,t)=>n=>e<=n&&n<=t,oE=e=>{const t=hi(e.top,e.bottom),n=hi(e.left,e.right);return r=>{if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;const o=t(r.top)||t(r.bottom),a=n(r.left)||n(r.right);if(o&&a)return!0;const d=r.tope.bottom,m=r.lefte.right;return d&&m?!0:d&&a||m&&o}},yD=e=>{const t=hi(e.top,e.bottom),n=hi(e.left,e.right);return r=>t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right)};const C0={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},aE={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"};var vD=e=>t=>{const n=hi(t.top,t.bottom),r=hi(t.left,t.right);return i=>e===C0?n(i.top)&&n(i.bottom):r(i.left)&&r(i.right)};const bD=(e,t)=>{const n=t.frame?t.frame.scroll.diff.displacement:sr;return yu(e,n)},_D=(e,t,n)=>t.subject.active?n(t.subject.active)(e):!1,kD=(e,t,n)=>n(t)(e),j0=({target:e,destination:t,viewport:n,withDroppableDisplacement:r,isVisibleThroughFrameFn:i})=>{const o=r?bD(e,t):e;return _D(o,t,i)&&kD(o,n,i)},SD=e=>j0({...e,isVisibleThroughFrameFn:oE}),lE=e=>j0({...e,isVisibleThroughFrameFn:yD}),wD=e=>j0({...e,isVisibleThroughFrameFn:vD(e.destination.axis)}),CD=(e,t,n)=>{if(typeof n=="boolean")return n;if(!t)return!0;const{invisible:r,visible:i}=t;if(r[e])return!1;const o=i[e];return o?o.shouldAnimate:!0};function jD(e,t){const n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return Ci(_0(n,r))}function tu({afterDragging:e,destination:t,displacedBy:n,viewport:r,forceShouldAnimate:i,last:o}){return e.reduce(function(u,d){const m=jD(d,n),p=d.descriptor.id;if(u.all.push(p),!SD({target:m,destination:t,viewport:r,withDroppableDisplacement:!0}))return u.invisible[d.descriptor.id]=!0,u;const g=CD(p,o,i),y={draggableId:p,shouldAnimate:g};return u.visible[p]=y,u},{all:[],visible:{},invisible:{}})}function ED(e,t){if(!e.length)return 0;const n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}function mS({insideDestination:e,inHomeList:t,displacedBy:n,destination:r}){const i=ED(e,{inHomeList:t});return{displaced:eu,displacedBy:n,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:i}}}}function Pf({draggable:e,insideDestination:t,destination:n,viewport:r,displacedBy:i,last:o,index:a,forceShouldAnimate:u}){const d=kl(e,n);if(a==null)return mS({insideDestination:t,inHomeList:d,displacedBy:i,destination:n});const m=t.find(v=>v.descriptor.index===a);if(!m)return mS({insideDestination:t,inHomeList:d,displacedBy:i,destination:n});const p=bm(e,t),h=t.indexOf(m),g=p.slice(h);return{displaced:tu({afterDragging:g,destination:n,displacedBy:i,last:o,viewport:r.frame,forceShouldAnimate:u}),displacedBy:i,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:a}}}}function lo(e,t){return!!t.effected[e]}var ND=({isMovingForward:e,destination:t,draggables:n,combine:r,afterCritical:i})=>{if(!t.isCombineEnabled)return null;const o=r.draggableId,u=n[o].descriptor.index;return lo(o,i)?e?u:u-1:e?u+1:u},ID=({isMovingForward:e,isInHomeList:t,insideDestination:n,location:r})=>{if(!n.length)return null;const i=r.index,o=e?i+1:i-1,a=n[0].descriptor.index,u=n[n.length-1].descriptor.index,d=t?u:u+1;return od?null:o},TD=({isMovingForward:e,isInHomeList:t,draggable:n,draggables:r,destination:i,insideDestination:o,previousImpact:a,viewport:u,afterCritical:d})=>{const m=a.at;if(m||Le(),m.type==="REORDER"){const h=ID({isMovingForward:e,isInHomeList:t,location:m.destination,insideDestination:o});return h==null?null:Pf({draggable:n,insideDestination:o,destination:i,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:h})}const p=ND({isMovingForward:e,destination:i,displaced:a.displaced,draggables:r,combine:m.combine,afterCritical:d});return p==null?null:Pf({draggable:n,insideDestination:o,destination:i,viewport:u,last:a.displaced,displacedBy:a.displacedBy,index:p})},RD=({displaced:e,afterCritical:t,combineWith:n,displacedBy:r})=>{const i=!!(e.visible[n]||e.invisible[n]);return lo(n,t)?i?sr:bl(r.point):i?r.point:sr},AD=({afterCritical:e,impact:t,draggables:n})=>{const r=vm(t);r||Le();const i=r.draggableId,o=n[i].page.borderBox.center,a=RD({displaced:t.displaced,afterCritical:e,combineWith:i,displacedBy:t.displacedBy});return hr(o,a)};const cE=(e,t)=>t.margin[e.start]+t.borderBox[e.size]/2,MD=(e,t)=>t.margin[e.end]+t.borderBox[e.size]/2,E0=(e,t,n)=>t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2,hS=({axis:e,moveRelativeTo:t,isMoving:n})=>Fo(e.line,t.marginBox[e.end]+cE(e,n),E0(e,t.marginBox,n)),pS=({axis:e,moveRelativeTo:t,isMoving:n})=>Fo(e.line,t.marginBox[e.start]-MD(e,n),E0(e,t.marginBox,n)),DD=({axis:e,moveInto:t,isMoving:n})=>Fo(e.line,t.contentBox[e.start]+cE(e,n),E0(e,t.contentBox,n));var OD=({impact:e,draggable:t,draggables:n,droppable:r,afterCritical:i})=>{const o=_l(r.descriptor.id,n),a=t.page,u=r.axis;if(!o.length)return DD({axis:u,moveInto:r.page,isMoving:a});const{displaced:d,displacedBy:m}=e,p=d.all[0];if(p){const g=n[p];if(lo(p,i))return pS({axis:u,moveRelativeTo:g.page,isMoving:a});const y=Mf(g.page,m.point);return pS({axis:u,moveRelativeTo:y,isMoving:a})}const h=o[o.length-1];if(h.descriptor.id===t.descriptor.id)return a.borderBox.center;if(lo(h.descriptor.id,i)){const g=Mf(h.page,bl(i.displacedBy.point));return hS({axis:u,moveRelativeTo:g,isMoving:a})}return hS({axis:u,moveRelativeTo:h.page,isMoving:a})},_y=(e,t)=>{const n=e.frame;return n?hr(t,n.scroll.diff.displacement):t};const LD=({impact:e,draggable:t,droppable:n,draggables:r,afterCritical:i})=>{const o=t.page.borderBox.center,a=e.at;return!n||!a?o:a.type==="REORDER"?OD({impact:e,draggable:t,draggables:r,droppable:n,afterCritical:i}):AD({impact:e,draggables:r,afterCritical:i})};var _m=e=>{const t=LD(e),n=e.droppable;return n?_y(n,t):t},uE=(e,t)=>{const n=Yr(t,e.scroll.initial),r=bl(n);return{frame:Ci({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:r}}}};function gS(e,t){return e.map(n=>t[n])}function zD(e,t){for(let n=0;n{const o=uE(t,hr(t.scroll.current,i)),a=n.frame?S0(n,hr(n.frame.scroll.current,i)):n,u=e.displaced,d=tu({afterDragging:gS(u.all,r),destination:n,displacedBy:e.displacedBy,viewport:o.frame,last:u,forceShouldAnimate:!1}),m=tu({afterDragging:gS(u.all,r),destination:a,displacedBy:e.displacedBy,viewport:t.frame,last:u,forceShouldAnimate:!1}),p={},h={},g=[u,d,m];return u.all.forEach(v=>{const w=zD(v,g);if(w){h[v]=w;return}p[v]=!0}),{...e,displaced:{all:u.all,invisible:p,visible:h}}},BD=(e,t)=>hr(e.scroll.diff.displacement,t),N0=({pageBorderBoxCenter:e,draggable:t,viewport:n})=>{const r=BD(n,e),i=Yr(r,t.page.borderBox.center);return hr(t.client.borderBox.center,i)},dE=({draggable:e,destination:t,newPageBorderBoxCenter:n,viewport:r,withDroppableDisplacement:i,onlyOnMainAxis:o=!1})=>{const a=Yr(n,e.page.borderBox.center),d={target:yu(e.page.borderBox,a),destination:t,withDroppableDisplacement:i,viewport:r};return o?wD(d):lE(d)},$D=({isMovingForward:e,draggable:t,destination:n,draggables:r,previousImpact:i,viewport:o,previousPageBorderBoxCenter:a,previousClientSelection:u,afterCritical:d})=>{if(!n.isEnabled)return null;const m=_l(n.descriptor.id,r),p=kl(t,n),h=gD({isMovingForward:e,draggable:t,destination:n,insideDestination:m,previousImpact:i})||TD({isMovingForward:e,isInHomeList:p,draggable:t,draggables:r,destination:n,insideDestination:m,previousImpact:i,viewport:o,afterCritical:d});if(!h)return null;const g=_m({impact:h,draggable:t,droppable:n,draggables:r,afterCritical:d});if(dE({draggable:t,destination:n,newPageBorderBoxCenter:g,viewport:o.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:N0({pageBorderBoxCenter:g,draggable:t,viewport:o}),impact:h,scrollJumpRequest:null};const v=Yr(g,a),w=PD({impact:h,viewport:o,destination:n,draggables:r,maxScrollChange:v});return{clientSelection:u,impact:w,scrollJumpRequest:v}};const Cr=e=>{const t=e.subject.active;return t||Le(),t};var HD=({isMovingForward:e,pageBorderBoxCenter:t,source:n,droppables:r,viewport:i})=>{const o=n.subject.active;if(!o)return null;const a=n.axis,u=hi(o[a.start],o[a.end]),d=ym(r).filter(p=>p!==n).filter(p=>p.isEnabled).filter(p=>!!p.subject.active).filter(p=>oE(i.frame)(Cr(p))).filter(p=>{const h=Cr(p);return e?o[a.crossAxisEnd]{const h=Cr(p),g=hi(h[a.start],h[a.end]);return u(h[a.start])||u(h[a.end])||g(o[a.start])||g(o[a.end])}).sort((p,h)=>{const g=Cr(p)[a.crossAxisStart],y=Cr(h)[a.crossAxisStart];return e?g-y:y-g}).filter((p,h,g)=>Cr(p)[a.crossAxisStart]===Cr(g[0])[a.crossAxisStart]);if(!d.length)return null;if(d.length===1)return d[0];const m=d.filter(p=>hi(Cr(p)[a.start],Cr(p)[a.end])(t[a.line]));return m.length===1?m[0]:m.length>1?m.sort((p,h)=>Cr(p)[a.start]-Cr(h)[a.start])[0]:d.sort((p,h)=>{const g=dS(t,fS(Cr(p))),y=dS(t,fS(Cr(h)));return g!==y?g-y:Cr(p)[a.start]-Cr(h)[a.start]})[0]};const xS=(e,t)=>{const n=e.page.borderBox.center;return lo(e.descriptor.id,t)?Yr(n,t.displacedBy.point):n},FD=(e,t)=>{const n=e.page.borderBox;return lo(e.descriptor.id,t)?yu(n,bl(t.displacedBy.point)):n};var VD=({pageBorderBoxCenter:e,viewport:t,destination:n,insideDestination:r,afterCritical:i})=>r.filter(a=>lE({target:FD(a,i),destination:n,viewport:t.frame,withDroppableDisplacement:!0})).sort((a,u)=>{const d=Jc(e,_y(n,xS(a,i))),m=Jc(e,_y(n,xS(u,i)));return d{const r=e.axis;if(e.descriptor.mode==="virtual")return Fo(r.line,t[r.line]);const i=e.subject.page.contentBox[r.size],d=_l(e.descriptor.id,n).reduce((m,p)=>m+p.client.marginBox[r.size],0)+t[r.line]-i;return d<=0?null:Fo(r.line,d)},fE=(e,t)=>({...e,scroll:{...e.scroll,max:t}}),mE=(e,t,n)=>{const r=e.frame;kl(t,e)&&Le(),e.subject.withPlaceholder&&Le();const i=vu(e.axis,t.displaceBy).point,o=UD(e,i,n),a={placeholderSize:i,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r){const p=il({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return{...e,subject:p}}const u=o?hr(r.scroll.max,o):r.scroll.max,d=fE(r,u),m=il({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:d});return{...e,subject:m,frame:d}},GD=e=>{const t=e.subject.withPlaceholder;t||Le();const n=e.frame;if(!n){const a=il({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return{...e,subject:a}}const r=t.oldFrameMaxScroll;r||Le();const i=fE(n,r),o=il({page:e.subject.page,axis:e.axis,frame:i,withPlaceholder:null});return{...e,subject:o,frame:i}};var qD=({previousPageBorderBoxCenter:e,moveRelativeTo:t,insideDestination:n,draggable:r,draggables:i,destination:o,viewport:a,afterCritical:u})=>{if(!t){if(n.length)return null;const h={displaced:eu,displacedBy:sE,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:0}}},g=_m({impact:h,draggable:r,droppable:o,draggables:i,afterCritical:u}),y=kl(r,o)?o:mE(o,r,i);return dE({draggable:r,destination:y,newPageBorderBoxCenter:g,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?h:null}const d=e[o.axis.line]<=t.page.borderBox.center[o.axis.line],m=(()=>{const h=t.descriptor.index;return t.descriptor.id===r.descriptor.id||d?h:h+1})(),p=vu(o.axis,r.displaceBy);return Pf({draggable:r,insideDestination:n,destination:o,viewport:a,displacedBy:p,last:eu,index:m})},WD=({isMovingForward:e,previousPageBorderBoxCenter:t,draggable:n,isOver:r,draggables:i,droppables:o,viewport:a,afterCritical:u})=>{const d=HD({isMovingForward:e,pageBorderBoxCenter:t,source:r,droppables:o,viewport:a});if(!d)return null;const m=_l(d.descriptor.id,i),p=VD({pageBorderBoxCenter:t,viewport:a,destination:d,insideDestination:m,afterCritical:u}),h=qD({previousPageBorderBoxCenter:t,destination:d,draggable:n,draggables:i,moveRelativeTo:p,insideDestination:m,viewport:a,afterCritical:u});if(!h)return null;const g=_m({impact:h,draggable:n,droppable:d,draggables:i,afterCritical:u});return{clientSelection:N0({pageBorderBoxCenter:g,draggable:n,viewport:a}),impact:h,scrollJumpRequest:null}},Xr=e=>{const t=e.at;return t?t.type==="REORDER"?t.destination.droppableId:t.combine.droppableId:null};const YD=(e,t)=>{const n=Xr(e);return n?t[n]:null};var XD=({state:e,type:t})=>{const n=YD(e.impact,e.dimensions.droppables),r=!!n,i=e.dimensions.droppables[e.critical.droppable.id],o=n||i,a=o.axis.direction,u=a==="vertical"&&(t==="MOVE_UP"||t==="MOVE_DOWN")||a==="horizontal"&&(t==="MOVE_LEFT"||t==="MOVE_RIGHT");if(u&&!r)return null;const d=t==="MOVE_DOWN"||t==="MOVE_RIGHT",m=e.dimensions.draggables[e.critical.draggable.id],p=e.current.page.borderBoxCenter,{draggables:h,droppables:g}=e.dimensions;return u?$D({isMovingForward:d,previousPageBorderBoxCenter:p,draggable:m,destination:o,draggables:h,viewport:e.viewport,previousClientSelection:e.current.client.selection,previousImpact:e.impact,afterCritical:e.afterCritical}):WD({isMovingForward:d,previousPageBorderBoxCenter:p,draggable:m,isOver:o,draggables:h,droppables:g,viewport:e.viewport,afterCritical:e.afterCritical})};function Lo(e){return e.phase==="DRAGGING"||e.phase==="COLLECTING"}function hE(e){const t=hi(e.top,e.bottom),n=hi(e.left,e.right);return function(i){return t(i.y)&&n(i.x)}}function KD(e,t){return e.leftt.left&&e.topt.top}function ZD({pageBorderBox:e,draggable:t,candidates:n}){const r=t.page.borderBox.center,i=n.map(o=>{const a=o.axis,u=Fo(o.axis.line,e.center[a.line],o.page.borderBox.center[a.crossAxisLine]);return{id:o.descriptor.id,distance:Jc(r,u)}}).sort((o,a)=>a.distance-o.distance);return i[0]?i[0].id:null}function QD({pageBorderBox:e,draggable:t,droppables:n}){const r=ym(n).filter(i=>{if(!i.isEnabled)return!1;const o=i.subject.active;if(!o||!KD(e,o))return!1;if(hE(o)(e.center))return!0;const a=i.axis,u=o.center[a.crossAxisLine],d=e[a.crossAxisStart],m=e[a.crossAxisEnd],p=hi(o[a.crossAxisStart],o[a.crossAxisEnd]),h=p(d),g=p(m);return!h&&!g?!0:h?du});return r.length?r.length===1?r[0].descriptor.id:ZD({pageBorderBox:e,draggable:t,candidates:r}):null}const pE=(e,t)=>Ci(yu(e,t));var JD=(e,t)=>{const n=e.frame;return n?pE(t,n.scroll.diff.value):t};function gE({displaced:e,id:t}){return!!(e.visible[t]||e.invisible[t])}function eO({draggable:e,closest:t,inHomeList:n}){return t?n&&t.descriptor.index>e.descriptor.index?t.descriptor.index-1:t.descriptor.index:null}var tO=({pageBorderBoxWithDroppableScroll:e,draggable:t,destination:n,insideDestination:r,last:i,viewport:o,afterCritical:a})=>{const u=n.axis,d=vu(n.axis,t.displaceBy),m=d.value,p=e[u.start],h=e[u.end],y=bm(t,r).find(w=>{const S=w.descriptor.id,_=w.page.borderBox.center[u.line],k=lo(S,a),C=gE({displaced:i,id:S});return k?C?h<=_:p<_-m:C?h<=_+m:p<_})||null,v=eO({draggable:t,closest:y,inHomeList:kl(t,n)});return Pf({draggable:t,insideDestination:r,destination:n,viewport:o,last:i,displacedBy:d,index:v})};const nO=4;var rO=({draggable:e,pageBorderBoxWithDroppableScroll:t,previousImpact:n,destination:r,insideDestination:i,afterCritical:o})=>{if(!r.isCombineEnabled)return null;const a=r.axis,u=vu(r.axis,e.displaceBy),d=u.value,m=t[a.start],p=t[a.end],g=bm(e,i).find(v=>{const w=v.descriptor.id,S=v.page.borderBox,k=S[a.size]/nO,C=lo(w,o),N=gE({displaced:n.displaced,id:w});return C?N?p>S[a.start]+k&&pS[a.start]-d+k&&mS[a.start]+d+k&&pS[a.start]+k&&m{const u=pE(t.page.borderBox,e),d=QD({pageBorderBox:u,draggable:t,droppables:r});if(!d)return xD;const m=r[d],p=_l(m.descriptor.id,n),h=JD(m,u);return rO({pageBorderBoxWithDroppableScroll:h,draggable:t,previousImpact:i,destination:m,insideDestination:p,afterCritical:a})||tO({pageBorderBoxWithDroppableScroll:h,draggable:t,destination:m,insideDestination:p,last:i.displaced,viewport:o,afterCritical:a})},I0=(e,t)=>({...e,[t.descriptor.id]:t});const iO=({previousImpact:e,impact:t,droppables:n})=>{const r=Xr(e),i=Xr(t);if(!r||r===i)return n;const o=n[r];if(!o.subject.withPlaceholder)return n;const a=GD(o);return I0(n,a)};var sO=({draggable:e,draggables:t,droppables:n,previousImpact:r,impact:i})=>{const o=iO({previousImpact:r,impact:i,droppables:n}),a=Xr(i);if(!a)return o;const u=n[a];if(kl(e,u)||u.subject.withPlaceholder)return o;const d=mE(u,e,t);return I0(o,d)},$c=({state:e,clientSelection:t,dimensions:n,viewport:r,impact:i,scrollJumpRequest:o})=>{const a=r||e.viewport,u=n||e.dimensions,d=t||e.current.client.selection,m=Yr(d,e.initial.client.selection),p={offset:m,selection:d,borderBoxCenter:hr(e.initial.client.borderBoxCenter,m)},h={selection:hr(p.selection,a.scroll.current),borderBoxCenter:hr(p.borderBoxCenter,a.scroll.current),offset:hr(p.offset,a.scroll.diff.value)},g={client:p,page:h};if(e.phase==="COLLECTING")return{...e,dimensions:u,viewport:a,current:g};const y=u.draggables[e.critical.draggable.id],v=i||xE({pageOffset:h.offset,draggable:y,draggables:u.draggables,droppables:u.droppables,previousImpact:e.impact,viewport:a,afterCritical:e.afterCritical}),w=sO({draggable:y,impact:v,previousImpact:e.impact,draggables:u.draggables,droppables:u.droppables});return{...e,current:g,dimensions:{draggables:u.draggables,droppables:w},impact:v,viewport:a,scrollJumpRequest:o||null,forceShouldAnimate:o?!1:null}};function oO(e,t){return e.map(n=>t[n])}var yE=({impact:e,viewport:t,draggables:n,destination:r,forceShouldAnimate:i})=>{const o=e.displaced,a=oO(o.all,n),u=tu({afterDragging:a,destination:r,displacedBy:e.displacedBy,viewport:t.frame,forceShouldAnimate:i,last:o});return{...e,displaced:u}},vE=({impact:e,draggable:t,droppable:n,draggables:r,viewport:i,afterCritical:o})=>{const a=_m({impact:e,draggable:t,draggables:r,droppable:n,afterCritical:o});return N0({pageBorderBoxCenter:a,draggable:t,viewport:i})},bE=({state:e,dimensions:t,viewport:n})=>{e.movementMode!=="SNAP"&&Le();const r=e.impact,i=n||e.viewport,o=t||e.dimensions,{draggables:a,droppables:u}=o,d=a[e.critical.draggable.id],m=Xr(r);m||Le();const p=u[m],h=yE({impact:r,viewport:i,destination:p,draggables:a}),g=vE({impact:h,draggable:d,droppable:p,draggables:a,viewport:i,afterCritical:e.afterCritical});return $c({impact:h,clientSelection:g,state:e,dimensions:o,viewport:i})},aO=e=>({index:e.index,droppableId:e.droppableId}),_E=({draggable:e,home:t,draggables:n,viewport:r})=>{const i=vu(t.axis,e.displaceBy),o=_l(t.descriptor.id,n),a=o.indexOf(e);a===-1&&Le();const u=o.slice(a+1),d=u.reduce((g,y)=>(g[y.descriptor.id]=!0,g),{}),m={inVirtualList:t.descriptor.mode==="virtual",displacedBy:i,effected:d};return{impact:{displaced:tu({afterDragging:u,destination:t,displacedBy:i,last:null,viewport:r.frame,forceShouldAnimate:!1}),displacedBy:i,at:{type:"REORDER",destination:aO(e.descriptor)}},afterCritical:m}},lO=(e,t)=>({draggables:e.draggables,droppables:I0(e.droppables,t)}),cO=({draggable:e,offset:t,initialWindowScroll:n})=>{const r=Mf(e.client,t),i=Df(r,n);return{...e,placeholder:{...e.placeholder,client:r},client:r,page:i}},uO=e=>{const t=e.frame;return t||Le(),t},dO=({additions:e,updatedDroppables:t,viewport:n})=>{const r=n.scroll.diff.value;return e.map(i=>{const o=i.descriptor.droppableId,a=t[o],d=uO(a).scroll.diff.value,m=hr(r,d);return cO({draggable:i,offset:m,initialWindowScroll:n.scroll.initial})})},fO=({state:e,published:t})=>{const n=t.modified.map(_=>{const k=e.dimensions.droppables[_.droppableId];return S0(k,_.scroll)}),r={...e.dimensions.droppables,...rE(n)},i=iE(dO({additions:t.additions,updatedDroppables:r,viewport:e.viewport})),o={...e.dimensions.draggables,...i};t.removals.forEach(_=>{delete o[_]});const a={droppables:r,draggables:o},u=Xr(e.impact),d=u?a.droppables[u]:null,m=a.draggables[e.critical.draggable.id],p=a.droppables[e.critical.droppable.id],{impact:h,afterCritical:g}=_E({draggable:m,home:p,draggables:o,viewport:e.viewport}),y=d&&d.isCombineEnabled?e.impact:h,v=xE({pageOffset:e.current.page.offset,draggable:a.draggables[e.critical.draggable.id],draggables:a.draggables,droppables:a.droppables,previousImpact:y,viewport:e.viewport,afterCritical:g}),w={...e,phase:"DRAGGING",impact:v,onLiftImpact:h,dimensions:a,afterCritical:g,forceShouldAnimate:!1};return e.phase==="COLLECTING"?w:{...w,phase:"DROP_PENDING",reason:e.reason,isWaiting:!1}};const ky=e=>e.movementMode==="SNAP",cg=(e,t,n)=>{const r=lO(e.dimensions,t);return!ky(e)||n?$c({state:e,dimensions:r}):bE({state:e,dimensions:r})};function ug(e){return e.isDragging&&e.movementMode==="SNAP"?{...e,scrollJumpRequest:null}:e}const yS={phase:"IDLE",completed:null,shouldFlush:!1};var mO=(e=yS,t)=>{if(t.type==="FLUSH")return{...yS,shouldFlush:!0};if(t.type==="INITIAL_PUBLISH"){e.phase!=="IDLE"&&Le();const{critical:n,clientSelection:r,viewport:i,dimensions:o,movementMode:a}=t.payload,u=o.draggables[n.draggable.id],d=o.droppables[n.droppable.id],m={selection:r,borderBoxCenter:u.client.borderBox.center,offset:sr},p={client:m,page:{selection:hr(m.selection,i.scroll.initial),borderBoxCenter:hr(m.selection,i.scroll.initial),offset:hr(m.selection,i.scroll.diff.value)}},h=ym(o.droppables).every(w=>!w.isFixedOnPage),{impact:g,afterCritical:y}=_E({draggable:u,home:d,draggables:o.draggables,viewport:i});return{phase:"DRAGGING",isDragging:!0,critical:n,movementMode:a,dimensions:o,initial:p,current:p,isWindowScrollAllowed:h,impact:g,afterCritical:y,onLiftImpact:g,viewport:i,scrollJumpRequest:null,forceShouldAnimate:null}}if(t.type==="COLLECTION_STARTING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"?e:(e.phase!=="DRAGGING"&&Le(),{...e,phase:"COLLECTING"});if(t.type==="PUBLISH_WHILE_DRAGGING")return e.phase==="COLLECTING"||e.phase==="DROP_PENDING"||Le(),fO({state:e,published:t.payload});if(t.type==="MOVE"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{client:n}=t.payload;return so(n,e.current.client.selection)?e:$c({state:e,clientSelection:n,impact:ky(e)?e.impact:null})}if(t.type==="UPDATE_DROPPABLE_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="COLLECTING")return ug(e);Lo(e)||Le();const{id:n,newScroll:r}=t.payload,i=e.dimensions.droppables[n];if(!i)return e;const o=S0(i,r);return cg(e,o,!1)}if(t.type==="UPDATE_DROPPABLE_IS_ENABLED"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{id:n,isEnabled:r}=t.payload,i=e.dimensions.droppables[n];i||Le(),i.isEnabled===r&&Le();const o={...i,isEnabled:r};return cg(e,o,!0)}if(t.type==="UPDATE_DROPPABLE_IS_COMBINE_ENABLED"){if(e.phase==="DROP_PENDING")return e;Lo(e)||Le();const{id:n,isCombineEnabled:r}=t.payload,i=e.dimensions.droppables[n];i||Le(),i.isCombineEnabled===r&&Le();const o={...i,isCombineEnabled:r};return cg(e,o,!0)}if(t.type==="MOVE_BY_WINDOW_SCROLL"){if(e.phase==="DROP_PENDING"||e.phase==="DROP_ANIMATING")return e;Lo(e)||Le(),e.isWindowScrollAllowed||Le();const n=t.payload.newScroll;if(so(e.viewport.scroll.current,n))return ug(e);const r=uE(e.viewport,n);return ky(e)?bE({state:e,viewport:r}):$c({state:e,viewport:r})}if(t.type==="UPDATE_VIEWPORT_MAX_SCROLL"){if(!Lo(e))return e;const n=t.payload.maxScroll;if(so(n,e.viewport.scroll.max))return e;const r={...e.viewport,scroll:{...e.viewport.scroll,max:n}};return{...e,viewport:r}}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"&&Le();const n=XD({state:e,type:t.type});return n?$c({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"&&Le(),{...e,phase:"DROP_PENDING",isWaiting:!0,reason:n}}if(t.type==="DROP_ANIMATE"){const{completed:n,dropDuration:r,newHomeClientOffset:i}=t.payload;return e.phase==="DRAGGING"||e.phase==="DROP_PENDING"||Le(),{phase:"DROP_ANIMATING",completed:n,dropDuration:r,newHomeClientOffset:i,dimensions:e.dimensions}}if(t.type==="DROP_COMPLETE"){const{completed:n}=t.payload;return{phase:"IDLE",completed:n,shouldFlush:!1}}return e};function rn(e,t){return e instanceof Object&&"type"in e&&e.type===t}const hO=e=>({type:"BEFORE_INITIAL_CAPTURE",payload:e}),pO=e=>({type:"LIFT",payload:e}),gO=e=>({type:"INITIAL_PUBLISH",payload:e}),xO=e=>({type:"PUBLISH_WHILE_DRAGGING",payload:e}),yO=()=>({type:"COLLECTION_STARTING",payload:null}),vO=e=>({type:"UPDATE_DROPPABLE_SCROLL",payload:e}),bO=e=>({type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}),_O=e=>({type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}),kE=e=>({type:"MOVE",payload:e}),kO=e=>({type:"MOVE_BY_WINDOW_SCROLL",payload:e}),SO=e=>({type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}),wO=()=>({type:"MOVE_UP",payload:null}),CO=()=>({type:"MOVE_DOWN",payload:null}),jO=()=>({type:"MOVE_RIGHT",payload:null}),EO=()=>({type:"MOVE_LEFT",payload:null}),T0=()=>({type:"FLUSH",payload:null}),NO=e=>({type:"DROP_ANIMATE",payload:e}),R0=e=>({type:"DROP_COMPLETE",payload:e}),SE=e=>({type:"DROP",payload:e}),IO=e=>({type:"DROP_PENDING",payload:e}),wE=()=>({type:"DROP_ANIMATION_FINISHED",payload:null});var TO=e=>({getState:t,dispatch:n})=>r=>i=>{if(!rn(i,"LIFT")){r(i);return}const{id:o,clientSelection:a,movementMode:u}=i.payload,d=t();d.phase==="DROP_ANIMATING"&&n(R0({completed:d.completed})),t().phase!=="IDLE"&&Le(),n(T0()),n(hO({draggableId:o,movementMode:u}));const p={draggableId:o,scrollOptions:{shouldPublishImmediately:u==="SNAP"}},{critical:h,dimensions:g,viewport:y}=e.startPublishing(p);n(gO({critical:h,dimensions:g,clientSelection:a,movementMode:u,viewport:y}))},RO=e=>()=>t=>n=>{rn(n,"INITIAL_PUBLISH")&&e.dragging(),rn(n,"DROP_ANIMATE")&&e.dropping(n.payload.completed.result.reason),(rn(n,"FLUSH")||rn(n,"DROP_COMPLETE"))&&e.resting(),t(n)};const A0={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},nu={opacity:{drop:0,combining:.7},scale:{drop:.75}},CE={outOfTheWay:.2,minDropTime:.33,maxDropTime:.55},Ao=`${CE.outOfTheWay}s ${A0.outOfTheWay}`,Hc={fluid:`opacity ${Ao}`,snap:`transform ${Ao}, opacity ${Ao}`,drop:e=>{const t=`${e}s ${A0.drop}`;return`transform ${t}, opacity ${t}`},outOfTheWay:`transform ${Ao}`,placeholder:`height ${Ao}, width ${Ao}, margin ${Ao}`},vS=e=>so(e,sr)?void 0:`translate(${e.x}px, ${e.y}px)`,Sy={moveTo:vS,drop:(e,t)=>{const n=vS(e);if(n)return t?`${n} scale(${nu.scale.drop})`:n}},{minDropTime:wy,maxDropTime:jE}=CE,AO=jE-wy,bS=1500,MO=.6;var DO=({current:e,destination:t,reason:n})=>{const r=Jc(e,t);if(r<=0)return wy;if(r>=bS)return jE;const i=r/bS,o=wy+AO*i,a=n==="CANCEL"?o*MO:o;return Number(a.toFixed(2))},OO=({impact:e,draggable:t,dimensions:n,viewport:r,afterCritical:i})=>{const{draggables:o,droppables:a}=n,u=Xr(e),d=u?a[u]:null,m=a[t.descriptor.droppableId],p=vE({impact:e,draggable:t,draggables:o,afterCritical:i,droppable:d||m,viewport:r});return Yr(p,t.client.borderBox.center)},LO=({draggables:e,reason:t,lastImpact:n,home:r,viewport:i,onLiftImpact:o})=>!n.at||t!=="DROP"?{impact:yE({draggables:e,impact:o,destination:r,viewport:i,forceShouldAnimate:!0}),didDropInsideDroppable:!1}:n.at.type==="REORDER"?{impact:n,didDropInsideDroppable:!0}:{impact:{...n,displaced:eu},didDropInsideDroppable:!0};const zO=({getState:e,dispatch:t})=>n=>r=>{if(!rn(r,"DROP")){n(r);return}const i=e(),o=r.payload.reason;if(i.phase==="COLLECTING"){t(IO({reason:o}));return}if(i.phase==="IDLE")return;i.phase==="DROP_PENDING"&&i.isWaiting&&Le(),i.phase==="DRAGGING"||i.phase==="DROP_PENDING"||Le();const u=i.critical,d=i.dimensions,m=d.draggables[i.critical.draggable.id],{impact:p,didDropInsideDroppable:h}=LO({reason:o,lastImpact:i.impact,afterCritical:i.afterCritical,onLiftImpact:i.onLiftImpact,home:i.dimensions.droppables[i.critical.droppable.id],viewport:i.viewport,draggables:i.dimensions.draggables}),g=h?w0(p):null,y=h?vm(p):null,v={index:u.draggable.index,droppableId:u.droppable.id},w={draggableId:m.descriptor.id,type:m.descriptor.type,source:v,reason:o,mode:i.movementMode,destination:g,combine:y},S=OO({impact:p,draggable:m,dimensions:d,viewport:i.viewport,afterCritical:i.afterCritical}),_={critical:i.critical,afterCritical:i.afterCritical,result:w,impact:p};if(!(!so(i.current.client.offset,S)||!!w.combine)){t(R0({completed:_}));return}const C=DO({current:i.current.client.offset,destination:S,reason:o});t(NO({newHomeClientOffset:S,dropDuration:C,completed:_}))};var EE=()=>({x:window.pageXOffset,y:window.pageYOffset});function PO(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:t=>{t.target!==window&&t.target!==window.document||e()}}}function BO({onWindowScroll:e}){function t(){e(EE())}const n=Qc(t),r=PO(n);let i=io;function o(){return i!==io}function a(){o()&&Le(),i=mi(window,[r])}function u(){o()||Le(),n.cancel(),i(),i=io}return{start:a,stop:u,isActive:o}}const $O=e=>rn(e,"DROP_COMPLETE")||rn(e,"DROP_ANIMATE")||rn(e,"FLUSH"),HO=e=>{const t=BO({onWindowScroll:n=>{e.dispatch(kO({newScroll:n}))}});return n=>r=>{!t.isActive()&&rn(r,"INITIAL_PUBLISH")&&t.start(),t.isActive()&&$O(r)&&t.stop(),n(r)}};var FO=e=>{let t=!1,n=!1;const r=setTimeout(()=>{n=!0}),i=o=>{t||n||(t=!0,e(o),clearTimeout(r))};return i.wasCalled=()=>t,i},VO=()=>{const e=[],t=i=>{const o=e.findIndex(u=>u.timerId===i);o===-1&&Le();const[a]=e.splice(o,1);a.callback()};return{add:i=>{const o=setTimeout(()=>t(o)),a={timerId:o,callback:i};e.push(a)},flush:()=>{if(!e.length)return;const i=[...e];e.length=0,i.forEach(o=>{clearTimeout(o.timerId),o.callback()})}}};const UO=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.droppableId===t.droppableId&&e.index===t.index,GO=(e,t)=>e==null&&t==null?!0:e==null||t==null?!1:e.draggableId===t.draggableId&&e.droppableId===t.droppableId,qO=(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,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r},yc=(e,t)=>{t()},$d=(e,t)=>({draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t});function dg(e,t,n,r){if(!e){n(r(t));return}const i=FO(n);e(t,{announce:i}),i.wasCalled()||n(r(t))}var WO=(e,t)=>{const n=VO();let r=null;const i=(h,g)=>{r&&Le(),yc("onBeforeCapture",()=>{const y=e().onBeforeCapture;y&&y({draggableId:h,mode:g})})},o=(h,g)=>{r&&Le(),yc("onBeforeDragStart",()=>{const y=e().onBeforeDragStart;y&&y($d(h,g))})},a=(h,g)=>{r&&Le();const y=$d(h,g);r={mode:g,lastCritical:h,lastLocation:y.source,lastCombine:null},n.add(()=>{yc("onDragStart",()=>dg(e().onDragStart,y,t,gf.onDragStart))})},u=(h,g)=>{const y=w0(g),v=vm(g);r||Le();const w=!qO(h,r.lastCritical);w&&(r.lastCritical=h);const S=!UO(r.lastLocation,y);S&&(r.lastLocation=y);const _=!GO(r.lastCombine,v);if(_&&(r.lastCombine=v),!w&&!S&&!_)return;const k={...$d(h,r.mode),combine:v,destination:y};n.add(()=>{yc("onDragUpdate",()=>dg(e().onDragUpdate,k,t,gf.onDragUpdate))})},d=()=>{r||Le(),n.flush()},m=h=>{r||Le(),r=null,yc("onDragEnd",()=>dg(e().onDragEnd,h,t,gf.onDragEnd))};return{beforeCapture:i,beforeStart:o,start:a,update:u,flush:d,drop:m,abort:()=>{if(!r)return;const h={...$d(r.lastCritical,r.mode),combine:null,destination:null,reason:"CANCEL"};m(h)}}},YO=(e,t)=>{const n=WO(e,t);return r=>i=>o=>{if(rn(o,"BEFORE_INITIAL_CAPTURE")){n.beforeCapture(o.payload.draggableId,o.payload.movementMode);return}if(rn(o,"INITIAL_PUBLISH")){const u=o.payload.critical;n.beforeStart(u,o.payload.movementMode),i(o),n.start(u,o.payload.movementMode);return}if(rn(o,"DROP_COMPLETE")){const u=o.payload.completed.result;n.flush(),i(o),n.drop(u);return}if(i(o),rn(o,"FLUSH")){n.abort();return}const a=r.getState();a.phase==="DRAGGING"&&n.update(a.critical,a.impact)}};const XO=e=>t=>n=>{if(!rn(n,"DROP_ANIMATION_FINISHED")){t(n);return}const r=e.getState();r.phase!=="DROP_ANIMATING"&&Le(),e.dispatch(R0({completed:r.completed}))},KO=e=>{let t=null,n=null;function r(){n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)}return i=>o=>{if((rn(o,"FLUSH")||rn(o,"DROP_COMPLETE")||rn(o,"DROP_ANIMATION_FINISHED"))&&r(),i(o),!rn(o,"DROP_ANIMATE"))return;const a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){e.getState().phase==="DROP_ANIMATING"&&e.dispatch(wE())}};n=requestAnimationFrame(()=>{n=null,t=mi(window,[a])})}};var ZO=e=>()=>t=>n=>{(rn(n,"DROP_COMPLETE")||rn(n,"FLUSH")||rn(n,"DROP_ANIMATE"))&&e.stopPublishing(),t(n)},QO=e=>{let t=!1;return()=>n=>r=>{if(rn(r,"INITIAL_PUBLISH")){t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),e.tryRestoreFocusRecorded();return}if(n(r),!!t){if(rn(r,"FLUSH")){t=!1,e.tryRestoreFocusRecorded();return}if(rn(r,"DROP_COMPLETE")){t=!1;const i=r.payload.completed.result;i.combine&&e.tryShiftRecord(i.draggableId,i.combine.draggableId),e.tryRestoreFocusRecorded()}}}};const JO=e=>rn(e,"DROP_COMPLETE")||rn(e,"DROP_ANIMATE")||rn(e,"FLUSH");var eL=e=>t=>n=>r=>{if(JO(r)){e.stop(),n(r);return}if(rn(r,"INITIAL_PUBLISH")){n(r);const i=t.getState();i.phase!=="DRAGGING"&&Le(),e.start(i);return}n(r),e.scroll(t.getState())};const tL=e=>t=>n=>{if(t(n),!rn(n,"PUBLISH_WHILE_DRAGGING"))return;const r=e.getState();r.phase==="DROP_PENDING"&&(r.isWaiting||e.dispatch(SE({reason:r.reason})))},nL=Vj;var rL=({dimensionMarshal:e,focusMarshal:t,styleMarshal:n,getResponders:r,announce:i,autoScroller:o})=>Fj(mO,nL(e5(RO(n),ZO(e),TO(e),zO,XO,KO,tL,eL(o),HO,QO(t),YO(r,i))));const fg=()=>({additions:{},removals:{},modified:{}});function iL({registry:e,callbacks:t}){let n=fg(),r=null;const i=()=>{r||(t.collectionStarting(),r=requestAnimationFrame(()=>{r=null;const{additions:d,removals:m,modified:p}=n,h=Object.keys(d).map(v=>e.draggable.getById(v).getDimension(sr)).sort((v,w)=>v.descriptor.index-w.descriptor.index),g=Object.keys(p).map(v=>{const S=e.droppable.getById(v).callbacks.getScrollWhileDragging();return{droppableId:v,scroll:S}}),y={additions:h,removals:Object.keys(m),modified:g};n=fg(),t.publish(y)}))};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],i()},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],i()},stop:()=>{r&&(cancelAnimationFrame(r),r=null,n=fg())}}}var NE=({scrollHeight:e,scrollWidth:t,height:n,width:r})=>{const i=Yr({x:t,y:e},{x:r,y:n});return{x:Math.max(0,i.x),y:Math.max(0,i.y)}},IE=()=>{const e=document.documentElement;return e||Le(),e},TE=()=>{const e=IE();return NE({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},sL=()=>{const e=EE(),t=TE(),n=e.y,r=e.x,i=IE(),o=i.clientWidth,a=i.clientHeight,u=r+o,d=n+a;return{frame:Ci({top:n,left:r,right:u,bottom:d}),scroll:{initial:e,current:e,max:t,diff:{value:sr,displacement:sr}}}},oL=({critical:e,scrollOptions:t,registry:n})=>{const r=sL(),i=r.scroll.current,o=e.droppable,a=n.droppable.getAllByType(o.type).map(p=>p.callbacks.getDimensionAndWatchScroll(i,t)),u=n.draggable.getAllByType(e.draggable.type).map(p=>p.getDimension(i));return{dimensions:{draggables:iE(u),droppables:rE(a)},critical:e,viewport:r}};function _S(e,t,n){return!(n.descriptor.id===t.id||n.descriptor.type!==t.type||e.droppable.getById(n.descriptor.droppableId).descriptor.mode!=="virtual")}var aL=(e,t)=>{let n=null;const r=iL({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),i=(g,y)=>{e.droppable.exists(g)||Le(),n&&t.updateDroppableIsEnabled({id:g,isEnabled:y})},o=(g,y)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableIsCombineEnabled({id:g,isCombineEnabled:y}))},a=(g,y)=>{n&&(e.droppable.exists(g)||Le(),t.updateDroppableScroll({id:g,newScroll:y}))},u=(g,y)=>{n&&e.droppable.getById(g).callbacks.scroll(y)},d=()=>{if(!n)return;r.stop();const g=n.critical.droppable;e.droppable.getAllByType(g.type).forEach(y=>y.callbacks.dragStopped()),n.unsubscribe(),n=null},m=g=>{n||Le();const y=n.critical.draggable;g.type==="ADDITION"&&_S(e,y,g.value)&&r.add(g.value),g.type==="REMOVAL"&&_S(e,y,g.value)&&r.remove(g.value)};return{updateDroppableIsEnabled:i,updateDroppableIsCombineEnabled:o,scrollDroppable:u,updateDroppableScroll:a,startPublishing:g=>{n&&Le();const y=e.draggable.getById(g.draggableId),v=e.droppable.getById(y.descriptor.droppableId),w={draggable:y.descriptor,droppable:v.descriptor},S=e.subscribe(m);return n={critical:w,unsubscribe:S},oL({critical:w,registry:e,scrollOptions:g.scrollOptions})},stopPublishing:d}},RE=(e,t)=>e.phase==="IDLE"?!0:e.phase!=="DROP_ANIMATING"||e.completed.result.draggableId===t?!1:e.completed.result.reason==="DROP",lL=e=>{window.scrollBy(e.x,e.y)};const cL=ir(e=>ym(e).filter(t=>!(!t.isEnabled||!t.frame))),uL=(e,t)=>cL(t).find(r=>(r.frame||Le(),hE(r.frame.pageMarginBox)(e)))||null;var dL=({center:e,destination:t,droppables:n})=>{if(t){const i=n[t];return i.frame?i:null}return uL(e,n)};const ru={startFromPercentage:.25,maxScrollAtPercentage:.05,maxPixelScroll:28,ease:e=>e**2,durationDampening:{stopDampeningAt:1200,accelerateAt:360},disabled:!1};var fL=(e,t,n=()=>ru)=>{const r=n(),i=e[t.size]*r.startFromPercentage,o=e[t.size]*r.maxScrollAtPercentage;return{startScrollingFrom:i,maxScrollValueAt:o}},AE=({startOfRange:e,endOfRange:t,current:n})=>{const r=t-e;return r===0?0:(n-e)/r},M0=1,mL=(e,t,n=()=>ru)=>{const r=n();if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return r.maxPixelScroll;if(e===t.startScrollingFrom)return M0;const o=1-AE({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),a=r.maxPixelScroll*r.ease(o);return Math.ceil(a)},hL=(e,t,n)=>{const r=n(),i=r.durationDampening.accelerateAt,o=r.durationDampening.stopDampeningAt,a=t,u=o,m=Date.now()-a;if(m>=o)return e;if(m{const o=mL(e,t,i);return o===0?0:r?Math.max(hL(o,n,i),M0):o},SS=({container:e,distanceToEdges:t,dragStartTime:n,axis:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=fL(e,r,o);return t[r.end]{const r=t.height>e.height,i=t.width>e.width;return!i&&!r?n:i&&r?null:{x:i?0:n.x,y:r?0:n.y}};const gL=nE(e=>e===0?0:e);var ME=({dragStartTime:e,container:t,subject:n,center:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a={top:r.y-t.top,right:t.right-r.x,bottom:t.bottom-r.y,left:r.x-t.left},u=SS({container:t,distanceToEdges:a,dragStartTime:e,axis:C0,shouldUseTimeDampening:i,getAutoScrollerOptions:o}),d=SS({container:t,distanceToEdges:a,dragStartTime:e,axis:aE,shouldUseTimeDampening:i,getAutoScrollerOptions:o}),m=gL({x:d,y:u});if(so(m,sr))return null;const p=pL({container:t,subject:n,proposedScroll:m});return p?so(p,sr)?null:p:null};const xL=nE(e=>e===0?0:e>0?1:-1),D0=(()=>{const e=(t,n)=>t<0?t:t>n?t-n:0;return({current:t,max:n,change:r})=>{const i=hr(t,r),o={x:e(i.x,n.x),y:e(i.y,n.y)};return so(o,sr)?null:o}})(),DE=({max:e,current:t,change:n})=>{const r={x:Math.max(t.x,e.x),y:Math.max(t.y,e.y)},i=xL(n),o=D0({max:r,current:t,change:i});return!o||i.x!==0&&o.x===0||i.y!==0&&o.y===0},O0=(e,t)=>DE({current:e.scroll.current,max:e.scroll.max,change:t}),yL=(e,t)=>{if(!O0(e,t))return null;const n=e.scroll.max,r=e.scroll.current;return D0({current:r,max:n,change:t})},L0=(e,t)=>{const n=e.frame;return n?DE({current:n.scroll.current,max:n.scroll.max,change:t}):!1},vL=(e,t)=>{const n=e.frame;return!n||!L0(e,t)?null:D0({current:n.scroll.current,max:n.scroll.max,change:t})};var bL=({viewport:e,subject:t,center:n,dragStartTime:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=ME({dragStartTime:r,container:e.frame,subject:t,center:n,shouldUseTimeDampening:i,getAutoScrollerOptions:o});return a&&O0(e,a)?a:null},_L=({droppable:e,subject:t,center:n,dragStartTime:r,shouldUseTimeDampening:i,getAutoScrollerOptions:o})=>{const a=e.frame;if(!a)return null;const u=ME({dragStartTime:r,container:a.pageMarginBox,subject:t,center:n,shouldUseTimeDampening:i,getAutoScrollerOptions:o});return u&&L0(e,u)?u:null},wS=({state:e,dragStartTime:t,shouldUseTimeDampening:n,scrollWindow:r,scrollDroppable:i,getAutoScrollerOptions:o})=>{const a=e.current.page.borderBoxCenter,d=e.dimensions.draggables[e.critical.draggable.id].page.marginBox;if(e.isWindowScrollAllowed){const h=e.viewport,g=bL({dragStartTime:t,viewport:h,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});if(g){r(g);return}}const m=dL({center:a,destination:Xr(e.impact),droppables:e.dimensions.droppables});if(!m)return;const p=_L({dragStartTime:t,droppable:m,subject:d,center:a,shouldUseTimeDampening:n,getAutoScrollerOptions:o});p&&i(m.descriptor.id,p)},kL=({scrollWindow:e,scrollDroppable:t,getAutoScrollerOptions:n=()=>ru})=>{const r=Qc(e),i=Qc(t);let o=null;const a=m=>{o||Le();const{shouldUseTimeDampening:p,dragStartTime:h}=o;wS({state:m,scrollWindow:r,scrollDroppable:i,dragStartTime:h,shouldUseTimeDampening:p,getAutoScrollerOptions:n})};return{start:m=>{o&&Le();const p=Date.now();let h=!1;const g=()=>{h=!0};wS({state:m,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:g,scrollDroppable:g,getAutoScrollerOptions:n}),o={dragStartTime:p,shouldUseTimeDampening:h},h&&a(m)},stop:()=>{o&&(r.cancel(),i.cancel(),o=null)},scroll:a}},SL=({move:e,scrollDroppable:t,scrollWindow:n})=>{const r=(u,d)=>{const m=hr(u.current.client.selection,d);e({client:m})},i=(u,d)=>{if(!L0(u,d))return d;const m=vL(u,d);if(!m)return t(u.descriptor.id,d),null;const p=Yr(d,m);return t(u.descriptor.id,p),Yr(d,p)},o=(u,d,m)=>{if(!u||!O0(d,m))return m;const p=yL(d,m);if(!p)return n(m),null;const h=Yr(m,p);return n(h),Yr(m,h)};return u=>{const d=u.scrollJumpRequest;if(!d)return;const m=Xr(u.impact);m||Le();const p=i(u.dimensions.droppables[m],d);if(!p)return;const h=u.viewport,g=o(u.isWindowScrollAllowed,h,p);g&&r(u,g)}},wL=({scrollDroppable:e,scrollWindow:t,move:n,getAutoScrollerOptions:r})=>{const i=kL({scrollWindow:t,scrollDroppable:e,getAutoScrollerOptions:r}),o=SL({move:n,scrollWindow:t,scrollDroppable:e});return{scroll:d=>{if(!(r().disabled||d.phase!=="DRAGGING")){if(d.movementMode==="FLUID"){i.scroll(d);return}d.scrollJumpRequest&&o(d)}},start:i.start,stop:i.stop}};const sl="data-rfd",ol=(()=>{const e=`${sl}-drag-handle`;return{base:e,draggableId:`${e}-draggable-id`,contextId:`${e}-context-id`}})(),Cy=(()=>{const e=`${sl}-draggable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),CL=(()=>{const e=`${sl}-droppable`;return{base:e,contextId:`${e}-context-id`,id:`${e}-id`}})(),CS={contextId:`${sl}-scroll-container-context-id`},jL=e=>t=>`[${t}="${e}"]`,vc=(e,t)=>e.map(n=>{const r=n.styles[t];return r?`${n.selector} { ${r} }`:""}).join(" "),EL="pointer-events: none;";var NL=e=>{const t=jL(e),n=(()=>{const u=` - cursor: -webkit-grab; - cursor: grab; - `;return{selector:t(ol.contextId),styles:{always:` - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - touch-action: manipulation; - `,resting:u,dragging:EL,dropAnimating:u}}})(),r=(()=>{const u=` - transition: ${Hc.outOfTheWay}; - `;return{selector:t(Cy.contextId),styles:{dragging:u,dropAnimating:u,userCancel:u}}})(),i={selector:t(CL.contextId),styles:{always:"overflow-anchor: none;"}},a=[r,n,i,{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 Kr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?E.useLayoutEffect:E.useEffect,mg=()=>{const e=document.querySelector("head");return e||Le(),e},jS=e=>{const t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function IL(e,t){const n=Ht(()=>NL(e),[e]),r=E.useRef(null),i=E.useRef(null),o=ot(ir(h=>{const g=i.current;g||Le(),g.textContent=h}),[]),a=ot(h=>{const g=r.current;g||Le(),g.textContent=h},[]);Kr(()=>{!r.current&&!i.current||Le();const h=jS(t),g=jS(t);return r.current=h,i.current=g,h.setAttribute(`${sl}-always`,e),g.setAttribute(`${sl}-dynamic`,e),mg().appendChild(h),mg().appendChild(g),a(n.always),o(n.resting),()=>{const y=v=>{const w=v.current;w||Le(),mg().removeChild(w),v.current=null};y(r),y(i)}},[t,a,o,n.always,n.resting,e]);const u=ot(()=>o(n.dragging),[o,n.dragging]),d=ot(h=>{if(h==="DROP"){o(n.dropAnimating);return}o(n.userCancel)},[o,n.dropAnimating,n.userCancel]),m=ot(()=>{i.current&&o(n.resting)},[o,n.resting]);return Ht(()=>({dragging:u,dropping:d,resting:m}),[u,d,m])}function OE(e,t){return Array.from(e.querySelectorAll(t))}var LE=e=>e&&e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;function km(e){return e instanceof LE(e).HTMLElement}function TL(e,t){const n=`[${ol.contextId}="${e}"]`,r=OE(document,n);if(!r.length)return null;const i=r.find(o=>o.getAttribute(ol.draggableId)===t);return!i||!km(i)?null:i}function RL(e){const t=E.useRef({}),n=E.useRef(null),r=E.useRef(null),i=E.useRef(!1),o=ot(function(g,y){const v={id:g,focus:y};return t.current[g]=v,function(){const S=t.current;S[g]!==v&&delete S[g]}},[]),a=ot(function(g){const y=TL(e,g);y&&y!==document.activeElement&&y.focus()},[e]),u=ot(function(g,y){n.current===g&&(n.current=y)},[]),d=ot(function(){r.current||i.current&&(r.current=requestAnimationFrame(()=>{r.current=null;const g=n.current;g&&a(g)}))},[a]),m=ot(function(g){n.current=null;const y=document.activeElement;y&&y.getAttribute(ol.draggableId)===g&&(n.current=g)},[]);return Kr(()=>(i.current=!0,function(){i.current=!1;const g=r.current;g&&cancelAnimationFrame(g)}),[]),Ht(()=>({register:o,tryRecordFocus:m,tryRestoreFocusRecorded:d,tryShiftRecord:u}),[o,m,d,u])}function AL(){const e={draggables:{},droppables:{}},t=[];function n(h){return t.push(h),function(){const y=t.indexOf(h);y!==-1&&t.splice(y,1)}}function r(h){t.length&&t.forEach(g=>g(h))}function i(h){return e.draggables[h]||null}function o(h){const g=i(h);return g||Le(),g}const a={register:h=>{e.draggables[h.descriptor.id]=h,r({type:"ADDITION",value:h})},update:(h,g)=>{const y=e.draggables[g.descriptor.id];y&&y.uniqueId===h.uniqueId&&(delete e.draggables[g.descriptor.id],e.draggables[h.descriptor.id]=h)},unregister:h=>{const g=h.descriptor.id,y=i(g);y&&h.uniqueId===y.uniqueId&&(delete e.draggables[g],e.droppables[h.descriptor.droppableId]&&r({type:"REMOVAL",value:h}))},getById:o,findById:i,exists:h=>!!i(h),getAllByType:h=>Object.values(e.draggables).filter(g=>g.descriptor.type===h)};function u(h){return e.droppables[h]||null}function d(h){const g=u(h);return g||Le(),g}const m={register:h=>{e.droppables[h.descriptor.id]=h},unregister:h=>{const g=u(h.descriptor.id);g&&h.uniqueId===g.uniqueId&&delete e.droppables[h.descriptor.id]},getById:d,findById:u,exists:h=>!!u(h),getAllByType:h=>Object.values(e.droppables).filter(g=>g.descriptor.type===h)};function p(){e.draggables={},e.droppables={},t.length=0}return{draggable:a,droppable:m,subscribe:n,clean:p}}function ML(){const e=Ht(AL,[]);return E.useEffect(()=>function(){e.clean()},[e]),e}var z0=Ct.createContext(null),Bf=()=>{const e=document.body;return e||Le(),e};const DL={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},OL=e=>`rfd-announcement-${e}`;function LL(e){const t=Ht(()=>OL(e),[e]),n=E.useRef(null);return E.useEffect(function(){const o=document.createElement("div");return n.current=o,o.id=t,o.setAttribute("aria-live","assertive"),o.setAttribute("aria-atomic","true"),Of(o.style,DL),Bf().appendChild(o),function(){setTimeout(function(){const d=Bf();d.contains(o)&&d.removeChild(o),o===n.current&&(n.current=null)})}},[t]),ot(i=>{const o=n.current;if(o){o.textContent=i;return}},[])}const zL={separator:"::"};function P0(e,t=zL){const n=Ct.useId();return Ht(()=>`${e}${t.separator}${n}`,[t.separator,e,n])}function PL({contextId:e,uniqueId:t}){return`rfd-hidden-text-${e}-${t}`}function BL({contextId:e,text:t}){const n=P0("hidden-text",{separator:"-"}),r=Ht(()=>PL({contextId:e,uniqueId:n}),[n,e]);return E.useEffect(function(){const o=document.createElement("div");return o.id=r,o.textContent=t,o.style.display="none",Bf().appendChild(o),function(){const u=Bf();u.contains(o)&&u.removeChild(o)}},[r,t]),r}var Sm=Ct.createContext(null);function zE(e){const t=E.useRef(e);return E.useEffect(()=>{t.current=e}),t}function $L(){let e=null;function t(){return!!e}function n(a){return a===e}function r(a){e&&Le();const u={abandon:a};return e=u,u}function i(){e||Le(),e=null}function o(){e&&(e.abandon(),i())}return{isClaimed:t,isActive:n,claim:r,release:i,tryAbandon:o}}function iu(e){return e.phase==="IDLE"||e.phase==="DROP_ANIMATING"?!1:e.isDragging}const HL=9,FL=13,B0=27,PE=32,VL=33,UL=34,GL=35,qL=36,WL=37,YL=38,XL=39,KL=40,ZL={[FL]:!0,[HL]:!0};var BE=e=>{ZL[e.keyCode]&&e.preventDefault()};const wm=(()=>{const e="visibilitychange";return typeof document>"u"?e:[e,`ms${e}`,`webkit${e}`,`moz${e}`,`o${e}`].find(r=>`on${r}`in document)||e})(),$E=0,ES=5;function QL(e,t){return Math.abs(t.x-e.x)>=ES||Math.abs(t.y-e.y)>=ES}const NS={type:"IDLE"};function JL({cancel:e,completed:t,getPhase:n,setPhase:r}){return[{eventName:"mousemove",fn:i=>{const{button:o,clientX:a,clientY:u}=i;if(o!==$E)return;const d={x:a,y:u},m=n();if(m.type==="DRAGGING"){i.preventDefault(),m.actions.move(d);return}m.type!=="PENDING"&&Le();const p=m.point;if(!QL(p,d))return;i.preventDefault();const h=m.actions.fluidLift(d);r({type:"DRAGGING",actions:h})}},{eventName:"mouseup",fn:i=>{const o=n();if(o.type!=="DRAGGING"){e();return}i.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"mousedown",fn:i=>{n().type==="DRAGGING"&&i.preventDefault(),e()}},{eventName:"keydown",fn:i=>{if(n().type==="PENDING"){e();return}if(i.keyCode===B0){i.preventDefault(),e();return}BE(i)}},{eventName:"resize",fn:e},{eventName:"scroll",options:{passive:!0,capture:!1},fn:()=>{n().type==="PENDING"&&e()}},{eventName:"webkitmouseforcedown",fn:i=>{const o=n();if(o.type==="IDLE"&&Le(),o.actions.shouldRespectForcePress()){e();return}i.preventDefault()}},{eventName:wm,fn:e}]}function e6(e){const t=E.useRef(NS),n=E.useRef(io),r=Ht(()=>({eventName:"mousedown",fn:function(h){if(h.defaultPrevented||h.button!==$E||h.ctrlKey||h.metaKey||h.shiftKey||h.altKey)return;const g=e.findClosestDraggableId(h);if(!g)return;const y=e.tryGetLock(g,a,{sourceEvent:h});if(!y)return;h.preventDefault();const v={x:h.clientX,y:h.clientY};n.current(),m(y,v)}}),[e]),i=Ht(()=>({eventName:"webkitmouseforcewillbegin",fn:p=>{if(p.defaultPrevented)return;const h=e.findClosestDraggableId(p);if(!h)return;const g=e.findOptionsForDraggable(h);g&&(g.shouldRespectForcePress||e.canGetLock(h)&&p.preventDefault())}}),[e]),o=ot(function(){const h={passive:!1,capture:!0};n.current=mi(window,[i,r],h)},[i,r]),a=ot(()=>{t.current.type!=="IDLE"&&(t.current=NS,n.current(),o())},[o]),u=ot(()=>{const p=t.current;a(),p.type==="DRAGGING"&&p.actions.cancel({shouldBlockNextClick:!0}),p.type==="PENDING"&&p.actions.abort()},[a]),d=ot(function(){const h={capture:!0,passive:!1},g=JL({cancel:u,completed:a,getPhase:()=>t.current,setPhase:y=>{t.current=y}});n.current=mi(window,g,h)},[u,a]),m=ot(function(h,g){t.current.type!=="IDLE"&&Le(),t.current={type:"PENDING",point:g,actions:h},d()},[d]);Kr(function(){return o(),function(){n.current()}},[o])}function t6(){}const n6={[UL]:!0,[VL]:!0,[qL]:!0,[GL]:!0};function r6(e,t){function n(){t(),e.cancel()}function r(){t(),e.drop()}return[{eventName:"keydown",fn:i=>{if(i.keyCode===B0){i.preventDefault(),n();return}if(i.keyCode===PE){i.preventDefault(),r();return}if(i.keyCode===KL){i.preventDefault(),e.moveDown();return}if(i.keyCode===YL){i.preventDefault(),e.moveUp();return}if(i.keyCode===XL){i.preventDefault(),e.moveRight();return}if(i.keyCode===WL){i.preventDefault(),e.moveLeft();return}if(n6[i.keyCode]){i.preventDefault();return}BE(i)}},{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 i6(e){const t=E.useRef(t6),n=Ht(()=>({eventName:"keydown",fn:function(o){if(o.defaultPrevented||o.keyCode!==PE)return;const a=e.findClosestDraggableId(o);if(!a)return;const u=e.tryGetLock(a,p,{sourceEvent:o});if(!u)return;o.preventDefault();let d=!0;const m=u.snapLift();t.current();function p(){d||Le(),d=!1,t.current(),r()}t.current=mi(window,r6(m,p),{capture:!0,passive:!1})}}),[e]),r=ot(function(){const o={passive:!1,capture:!0};t.current=mi(window,[n],o)},[n]);Kr(function(){return r(),function(){t.current()}},[r])}const hg={type:"IDLE"},s6=120,o6=.15;function a6({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===B0&&n.preventDefault(),e()}},{eventName:wm,fn:e}]}function l6({cancel:e,completed:t,getPhase:n}){return[{eventName:"touchmove",options:{capture:!1},fn:r=>{const i=n();if(i.type!=="DRAGGING"){e();return}i.hasMoved=!0;const{clientX:o,clientY:a}=r.touches[0],u={x:o,y:a};r.preventDefault(),i.actions.move(u)}},{eventName:"touchend",fn:r=>{const i=n();if(i.type!=="DRAGGING"){e();return}r.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),t()}},{eventName:"touchcancel",fn:r=>{if(n().type!=="DRAGGING"){e();return}r.preventDefault(),e()}},{eventName:"touchforcechange",fn:r=>{const i=n();i.type==="IDLE"&&Le();const o=r.touches[0];if(!o||!(o.force>=o6))return;const u=i.actions.shouldRespectForcePress();if(i.type==="PENDING"){u&&e();return}if(u){if(i.hasMoved){r.preventDefault();return}e();return}r.preventDefault()}},{eventName:wm,fn:e}]}function c6(e){const t=E.useRef(hg),n=E.useRef(io),r=ot(function(){return t.current},[]),i=ot(function(y){t.current=y},[]),o=Ht(()=>({eventName:"touchstart",fn:function(y){if(y.defaultPrevented)return;const v=e.findClosestDraggableId(y);if(!v)return;const w=e.tryGetLock(v,u,{sourceEvent:y});if(!w)return;const S=y.touches[0],{clientX:_,clientY:k}=S,C={x:_,y:k};n.current(),h(w,C)}}),[e]),a=ot(function(){const y={capture:!0,passive:!1};n.current=mi(window,[o],y)},[o]),u=ot(()=>{const g=t.current;g.type!=="IDLE"&&(g.type==="PENDING"&&clearTimeout(g.longPressTimerId),i(hg),n.current(),a())},[a,i]),d=ot(()=>{const g=t.current;u(),g.type==="DRAGGING"&&g.actions.cancel({shouldBlockNextClick:!0}),g.type==="PENDING"&&g.actions.abort()},[u]),m=ot(function(){const y={capture:!0,passive:!1},v={cancel:d,completed:u,getPhase:r},w=mi(window,l6(v),y),S=mi(window,a6(v),y);n.current=function(){w(),S()}},[d,r,u]),p=ot(function(){const y=r();y.type!=="PENDING"&&Le();const v=y.actions.fluidLift(y.point);i({type:"DRAGGING",actions:v,hasMoved:!1})},[r,i]),h=ot(function(y,v){r().type!=="IDLE"&&Le();const w=setTimeout(p,s6);i({type:"PENDING",point:v,actions:y,longPressTimerId:w}),m()},[m,r,i,p]);Kr(function(){return a(),function(){n.current();const v=r();v.type==="PENDING"&&(clearTimeout(v.longPressTimerId),i(hg))}},[r,a,i]),Kr(function(){return mi(window,[{eventName:"touchmove",fn:()=>{},options:{capture:!1,passive:!1}}])},[])}const u6=["input","button","textarea","select","option","optgroup","video","audio"];function HE(e,t){if(t==null)return!1;if(u6.includes(t.tagName.toLowerCase()))return!0;const r=t.getAttribute("contenteditable");return r==="true"||r===""?!0:t===e?!1:HE(e,t.parentElement)}function d6(e,t){const n=t.target;return km(n)?HE(e,n):!1}var f6=e=>Ci(e.getBoundingClientRect()).center;function m6(e){return e instanceof LE(e).Element}const h6=(()=>{const e="matches";return typeof document>"u"?e:[e,"msMatchesSelector","webkitMatchesSelector"].find(r=>r in Element.prototype)||e})();function FE(e,t){return e==null?null:e[h6](t)?e:FE(e.parentElement,t)}function p6(e,t){return e.closest?e.closest(t):FE(e,t)}function g6(e){return`[${ol.contextId}="${e}"]`}function x6(e,t){const n=t.target;if(!m6(n))return null;const r=g6(e),i=p6(n,r);return!i||!km(i)?null:i}function y6(e,t){const n=x6(e,t);return n?n.getAttribute(ol.draggableId):null}function v6(e,t){const n=`[${Cy.contextId}="${e}"]`,i=OE(document,n).find(o=>o.getAttribute(Cy.id)===t);return!i||!km(i)?null:i}function b6(e){e.preventDefault()}function Hd({expected:e,phase:t,isLockActive:n,shouldWarn:r}){return!(!n()||e!==t)}function VE({lockAPI:e,store:t,registry:n,draggableId:r}){if(e.isClaimed())return!1;const i=n.draggable.findById(r);return!(!i||!i.options.isEnabled||!RE(t.getState(),r))}function _6({lockAPI:e,contextId:t,store:n,registry:r,draggableId:i,forceSensorStop:o,sourceEvent:a}){if(!VE({lockAPI:e,store:n,registry:r,draggableId:i}))return null;const d=r.draggable.getById(i),m=v6(t,d.descriptor.id);if(!m||a&&!d.options.canDragInteractiveElements&&d6(m,a))return null;const p=e.claim(o||io);let h="PRE_DRAG";function g(){return d.options.shouldRespectForcePress}function y(){return e.isActive(p)}function v(L,I){Hd({expected:L,phase:h,isLockActive:y,shouldWarn:!0})&&n.dispatch(I())}const w=v.bind(null,"DRAGGING");function S(L){function I(){e.release(),h="COMPLETED"}h!=="PRE_DRAG"&&(I(),Le()),n.dispatch(pO(L.liftActionArgs)),h="DRAGGING";function D(T,O={shouldBlockNextClick:!1}){if(L.cleanup(),O.shouldBlockNextClick){const M=mi(window,[{eventName:"click",fn:b6,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(M)}I(),n.dispatch(SE({reason:T}))}return{isActive:()=>Hd({expected:"DRAGGING",phase:h,isLockActive:y,shouldWarn:!1}),shouldRespectForcePress:g,drop:T=>D("DROP",T),cancel:T=>D("CANCEL",T),...L.actions}}function _(L){const I=Qc(T=>{w(()=>kE({client:T}))});return{...S({liftActionArgs:{id:i,clientSelection:L,movementMode:"FLUID"},cleanup:()=>I.cancel(),actions:{move:I}}),move:I}}function k(){const L={moveUp:()=>w(wO),moveRight:()=>w(jO),moveDown:()=>w(CO),moveLeft:()=>w(EO)};return S({liftActionArgs:{id:i,clientSelection:f6(m),movementMode:"SNAP"},cleanup:io,actions:L})}function C(){Hd({expected:"PRE_DRAG",phase:h,isLockActive:y,shouldWarn:!0})&&e.release()}return{isActive:()=>Hd({expected:"PRE_DRAG",phase:h,isLockActive:y,shouldWarn:!1}),shouldRespectForcePress:g,fluidLift:_,snapLift:k,abort:C}}const k6=[e6,i6,c6];function S6({contextId:e,store:t,registry:n,customSensors:r,enableDefaultSensors:i}){const o=[...i?k6:[],...r||[]],a=E.useState(()=>$L())[0],u=ot(function(S,_){iu(S)&&!iu(_)&&a.tryAbandon()},[a]);Kr(function(){let S=t.getState();return t.subscribe(()=>{const k=t.getState();u(S,k),S=k})},[a,t,u]),Kr(()=>a.tryAbandon,[a.tryAbandon]);const d=ot(w=>VE({lockAPI:a,registry:n,store:t,draggableId:w}),[a,n,t]),m=ot((w,S,_)=>_6({lockAPI:a,registry:n,contextId:e,store:t,draggableId:w,forceSensorStop:S||null,sourceEvent:_&&_.sourceEvent?_.sourceEvent:null}),[e,a,n,t]),p=ot(w=>y6(e,w),[e]),h=ot(w=>{const S=n.draggable.findById(w);return S?S.options:null},[n.draggable]),g=ot(function(){a.isClaimed()&&(a.tryAbandon(),t.getState().phase!=="IDLE"&&t.dispatch(T0()))},[a,t]),y=ot(()=>a.isClaimed(),[a]),v=Ht(()=>({canGetLock:d,tryGetLock:m,findClosestDraggableId:p,findOptionsForDraggable:h,tryReleaseLock:g,isLockClaimed:y}),[d,m,p,h,g,y]);for(let w=0;w({onBeforeCapture:t=>{const n=()=>{e.onBeforeCapture&&e.onBeforeCapture(t)};fm.flushSync(n)},onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}),C6=e=>({...ru,...e.autoScrollerOptions,durationDampening:{...ru.durationDampening,...e.autoScrollerOptions}});function bc(e){return e.current||Le(),e.current}function j6(e){const{contextId:t,setCallbacks:n,sensors:r,nonce:i,dragHandleUsageInstructions:o}=e,a=E.useRef(null),u=zE(e),d=ot(()=>w6(u.current),[u]),m=ot(()=>C6(u.current),[u]),p=LL(t),h=BL({contextId:t,text:o}),g=IL(t,i),y=ot(M=>{bc(a).dispatch(M)},[]),v=Ht(()=>eS({publishWhileDragging:xO,updateDroppableScroll:vO,updateDroppableIsEnabled:bO,updateDroppableIsCombineEnabled:_O,collectionStarting:yO},y),[y]),w=ML(),S=Ht(()=>aL(w,v),[w,v]),_=Ht(()=>wL({scrollWindow:lL,scrollDroppable:S.scrollDroppable,getAutoScrollerOptions:m,...eS({move:kE},y)}),[S.scrollDroppable,y,m]),k=RL(t),C=Ht(()=>rL({announce:p,autoScroller:_,dimensionMarshal:S,focusMarshal:k,getResponders:d,styleMarshal:g}),[p,_,S,k,d,g]);a.current=C;const N=ot(()=>{const M=bc(a);M.getState().phase!=="IDLE"&&M.dispatch(T0())},[]),L=ot(()=>{const M=bc(a).getState();return M.phase==="DROP_ANIMATING"?!0:M.phase==="IDLE"?!1:M.isDragging},[]),I=Ht(()=>({isDragging:L,tryAbort:N}),[L,N]);n(I);const D=ot(M=>RE(bc(a).getState(),M),[]),T=ot(()=>Lo(bc(a).getState()),[]),O=Ht(()=>({marshal:S,focus:k,contextId:t,canLift:D,isMovementAllowed:T,dragHandleUsageInstructionsId:h,registry:w}),[t,S,h,k,D,T,w]);return S6({contextId:t,store:C,registry:w,customSensors:r||null,enableDefaultSensors:e.enableDefaultSensors!==!1}),E.useEffect(()=>N,[N]),Ct.createElement(Sm.Provider,{value:O},Ct.createElement(Z5,{context:z0,store:C},e.children))}function E6(){return Ct.useId()}function N6(e){const t=E6(),n=e.dragHandleUsageInstructions||gf.dragHandleUsageInstructions;return Ct.createElement(iD,null,r=>Ct.createElement(j6,{nonce:e.nonce,contextId:t,setCallbacks:r,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 IS={dragging:5e3,dropAnimating:4500},I6=(e,t)=>t?Hc.drop(t.duration):e?Hc.snap:Hc.fluid,T6=(e,t)=>{if(e)return t?nu.opacity.drop:nu.opacity.combining},R6=e=>e.forceShouldAnimate!=null?e.forceShouldAnimate:e.mode==="SNAP";function A6(e){const n=e.dimension.client,{offset:r,combineWith:i,dropping:o}=e,a=!!i,u=R6(e),d=!!o,m=d?Sy.drop(r,a):Sy.moveTo(r);return{position:"fixed",top:n.marginBox.top,left:n.marginBox.left,boxSizing:"border-box",width:n.borderBox.width,height:n.borderBox.height,transition:I6(u,o),transform:m,opacity:T6(a,d),zIndex:d?IS.dropAnimating:IS.dragging,pointerEvents:"none"}}function M6(e){return{transform:Sy.moveTo(e.offset),transition:e.shouldAnimateDisplacement?void 0:"none"}}function D6(e){return e.type==="DRAGGING"?A6(e):M6(e)}function O6(e,t,n=sr){const r=window.getComputedStyle(t),i=t.getBoundingClientRect(),o=Kj(i,r),a=Df(o,n),u={client:o,tagName:t.tagName.toLowerCase(),display:r.display},d={x:o.marginBox.width,y:o.marginBox.height};return{descriptor:e,placeholder:u,displaceBy:d,client:o,page:a}}function L6(e){const t=P0("draggable"),{descriptor:n,registry:r,getDraggableRef:i,canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}=e,d=Ht(()=>({canDragInteractiveElements:o,shouldRespectForcePress:a,isEnabled:u}),[o,u,a]),m=ot(y=>{const v=i();return v||Le(),O6(n,v,y)},[n,i]),p=Ht(()=>({uniqueId:t,descriptor:n,options:d,getDimension:m}),[n,m,d,t]),h=E.useRef(p),g=E.useRef(!0);Kr(()=>(r.draggable.register(h.current),()=>r.draggable.unregister(h.current)),[r.draggable]),Kr(()=>{if(g.current){g.current=!1;return}const y=h.current;h.current=p,r.draggable.update(p,y)},[p,r.draggable])}var $0=Ct.createContext(null);function $f(e){const t=E.useContext(e);return t||Le(),t}function z6(e){e.preventDefault()}const P6=e=>{const t=E.useRef(null),n=ot((I=null)=>{t.current=I},[]),r=ot(()=>t.current,[]),{contextId:i,dragHandleUsageInstructionsId:o,registry:a}=$f(Sm),{type:u,droppableId:d}=$f($0),m=Ht(()=>({id:e.draggableId,index:e.index,type:u,droppableId:d}),[e.draggableId,e.index,u,d]),{children:p,draggableId:h,isEnabled:g,shouldRespectForcePress:y,canDragInteractiveElements:v,isClone:w,mapped:S,dropAnimationFinished:_}=e;if(!w){const I=Ht(()=>({descriptor:m,registry:a,getDraggableRef:r,canDragInteractiveElements:v,shouldRespectForcePress:y,isEnabled:g}),[m,a,r,v,y,g]);L6(I)}const k=Ht(()=>g?{tabIndex:0,role:"button","aria-describedby":o,"data-rfd-drag-handle-draggable-id":h,"data-rfd-drag-handle-context-id":i,draggable:!1,onDragStart:z6}:null,[i,o,h,g]),C=ot(I=>{S.type==="DRAGGING"&&S.dropping&&I.propertyName==="transform"&&fm.flushSync(_)},[_,S]),N=Ht(()=>{const I=D6(S),D=S.type==="DRAGGING"&&S.dropping?C:void 0;return{innerRef:n,draggableProps:{"data-rfd-draggable-context-id":i,"data-rfd-draggable-id":h,style:I,onTransitionEnd:D},dragHandleProps:k}},[i,k,h,S,C,n]),L=Ht(()=>({draggableId:m.id,type:m.type,source:{index:m.index,droppableId:m.droppableId}}),[m.droppableId,m.id,m.index,m.type]);return Ct.createElement(Ct.Fragment,null,p(N,S.snapshot,L))};var UE=(e,t)=>e===t,GE=e=>{const{combine:t,destination:n}=e;return n?n.droppableId:t?t.droppableId:null};const B6=e=>e.combine?e.combine.draggableId:null,$6=e=>e.at&&e.at.type==="COMBINE"?e.at.combine.draggableId:null;function H6(){const e=ir((i,o)=>({x:i,y:o})),t=ir((i,o,a=null,u=null,d=null)=>({isDragging:!0,isClone:o,isDropAnimating:!!d,dropAnimation:d,mode:i,draggingOver:a,combineWith:u,combineTargetFor:null})),n=ir((i,o,a,u,d=null,m=null,p=null)=>({mapped:{type:"DRAGGING",dropping:null,draggingOver:d,combineWith:m,mode:o,offset:i,dimension:a,forceShouldAnimate:p,snapshot:t(o,u,d,m,null)}}));return(i,o)=>{if(iu(i)){if(i.critical.draggable.id!==o.draggableId)return null;const a=i.current.client.offset,u=i.dimensions.draggables[o.draggableId],d=Xr(i.impact),m=$6(i.impact),p=i.forceShouldAnimate;return n(e(a.x,a.y),i.movementMode,u,o.isClone,d,m,p)}if(i.phase==="DROP_ANIMATING"){const a=i.completed;if(a.result.draggableId!==o.draggableId)return null;const u=o.isClone,d=i.dimensions.draggables[o.draggableId],m=a.result,p=m.mode,h=GE(m),g=B6(m),v={duration:i.dropDuration,curve:A0.drop,moveTo:i.newHomeClientOffset,opacity:g?nu.opacity.drop:null,scale:g?nu.scale.drop:null};return{mapped:{type:"DRAGGING",offset:i.newHomeClientOffset,dimension:d,dropping:v,draggingOver:h,combineWith:g,mode:p,forceShouldAnimate:null,snapshot:t(p,u,h,g,v)}}}return null}}function qE(e=null){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}const F6={mapped:{type:"SECONDARY",offset:sr,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:qE(null)}};function V6(){const e=ir((a,u)=>({x:a,y:u})),t=ir(qE),n=ir((a,u=null,d)=>({mapped:{type:"SECONDARY",offset:a,combineTargetFor:u,shouldAnimateDisplacement:d,snapshot:t(u)}})),r=a=>a?n(sr,a,!0):null,i=(a,u,d,m)=>{const p=d.displaced.visible[a],h=!!(m.inVirtualList&&m.effected[a]),g=vm(d),y=g&&g.draggableId===a?u:null;if(!p){if(!h)return r(y);if(d.displaced.invisible[a])return null;const S=bl(m.displacedBy.point),_=e(S.x,S.y);return n(_,y,!0)}if(h)return r(y);const v=d.displacedBy.point,w=e(v.x,v.y);return n(w,y,p.shouldAnimate)};return(a,u)=>{if(iu(a))return a.critical.draggable.id===u.draggableId?null:i(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:i(u.draggableId,d.result.draggableId,d.impact,d.afterCritical)}return null}}const U6=()=>{const e=H6(),t=V6();return(r,i)=>e(r,i)||t(r,i)||F6},G6={dropAnimationFinished:wE},q6=Xj(U6,G6,null,{context:z0,areStatePropsEqual:UE})(P6);function WE(e){return $f($0).isUsingCloneFor===e.draggableId&&!e.isClone?null:Ct.createElement(q6,e)}function W6(e){const t=typeof e.isDragDisabled=="boolean"?!e.isDragDisabled:!0,n=!!e.disableInteractiveElementBlocking,r=!!e.shouldRespectForcePress;return Ct.createElement(WE,Of({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}const YE=e=>t=>e===t,Y6=YE("scroll"),X6=YE("auto"),TS=(e,t)=>t(e.overflowX)||t(e.overflowY),K6=e=>{const t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return TS(n,Y6)||TS(n,X6)},Z6=()=>!1,XE=e=>e==null?null:e===document.body?Z6()?e:null:e===document.documentElement?null:K6(e)?e:XE(e.parentElement);var jy=e=>({x:e.scrollLeft,y:e.scrollTop});const KE=e=>e?window.getComputedStyle(e).position==="fixed"?!0:KE(e.parentElement):!1;var Q6=e=>{const t=XE(e),n=KE(e);return{closestScrollable:t,isFixedOnPage:n}},J6=({descriptor:e,isEnabled:t,isCombineEnabled:n,isFixedOnPage:r,direction:i,client:o,page:a,closest:u})=>{const d=(()=>{if(!u)return null;const{scrollSize:g,client:y}=u,v=NE({scrollHeight:g.scrollHeight,scrollWidth:g.scrollWidth,height:y.paddingBox.height,width:y.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:y,scrollSize:g,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:v,diff:{value:sr,displacement:sr}}}})(),m=i==="vertical"?C0:aE,p=il({page:a,withPlaceholder:null,axis:m,frame:d});return{descriptor:e,isCombineEnabled:n,isFixedOnPage:r,axis:m,isEnabled:t,client:o,page:a,frame:d,subject:p}};const e8=(e,t)=>{const n=Zj(e);if(!t||e!==t)return n;const r=n.paddingBox.top-t.scrollTop,i=n.paddingBox.left-t.scrollLeft,o=r+t.scrollHeight,a=i+t.scrollWidth,d=_0({top:r,right:a,bottom:o,left:i},n.border);return k0({borderBox:d,margin:n.margin,border:n.border,padding:n.padding})};var t8=({ref:e,descriptor:t,env:n,windowScroll:r,direction:i,isDropDisabled:o,isCombineEnabled:a,shouldClipSubject:u})=>{const d=n.closestScrollable,m=e8(e,d),p=Df(m,r),h=(()=>{if(!d)return null;const y=Zj(d),v={scrollHeight:d.scrollHeight,scrollWidth:d.scrollWidth};return{client:y,page:Df(y,r),scroll:jy(d),scrollSize:v,shouldClipSubject:u}})();return J6({descriptor:t,isEnabled:!o,isCombineEnabled:a,isFixedOnPage:n.isFixedOnPage,direction:i,client:m,page:p,closest:h})};const n8={passive:!1},r8={passive:!0};var RS=e=>e.shouldPublishImmediately?n8:r8;const Fd=e=>e&&e.env.closestScrollable||null;function i8(e){const t=E.useRef(null),n=$f(Sm),r=P0("droppable"),{registry:i,marshal:o}=n,a=zE(e),u=Ht(()=>({id:e.droppableId,type:e.type,mode:e.mode}),[e.droppableId,e.mode,e.type]),d=E.useRef(u),m=Ht(()=>ir((N,L)=>{t.current||Le();const I={x:N,y:L};o.updateDroppableScroll(u.id,I)}),[u.id,o]),p=ot(()=>{const N=t.current;return!N||!N.env.closestScrollable?sr:jy(N.env.closestScrollable)},[]),h=ot(()=>{const N=p();m(N.x,N.y)},[p,m]),g=Ht(()=>Qc(h),[h]),y=ot(()=>{const N=t.current,L=Fd(N);if(N&&L||Le(),N.scrollOptions.shouldPublishImmediately){h();return}g()},[g,h]),v=ot((N,L)=>{t.current&&Le();const I=a.current,D=I.getDroppableRef();D||Le();const T=Q6(D),O={ref:D,descriptor:u,env:T,scrollOptions:L};t.current=O;const M=t8({ref:D,descriptor:u,env:T,windowScroll:N,direction:I.direction,isDropDisabled:I.isDropDisabled,isCombineEnabled:I.isCombineEnabled,shouldClipSubject:!I.ignoreContainerClipping}),A=T.closestScrollable;return A&&(A.setAttribute(CS.contextId,n.contextId),A.addEventListener("scroll",y,RS(O.scrollOptions))),M},[n.contextId,u,y,a]),w=ot(()=>{const N=t.current,L=Fd(N);return N&&L||Le(),jy(L)},[]),S=ot(()=>{const N=t.current;N||Le();const L=Fd(N);t.current=null,L&&(g.cancel(),L.removeAttribute(CS.contextId),L.removeEventListener("scroll",y,RS(N.scrollOptions)))},[y,g]),_=ot(N=>{const L=t.current;L||Le();const I=Fd(L);I||Le(),I.scrollTop+=N.y,I.scrollLeft+=N.x},[]),k=Ht(()=>({getDimensionAndWatchScroll:v,getScrollWhileDragging:w,dragStopped:S,scroll:_}),[S,v,w,_]),C=Ht(()=>({uniqueId:r,descriptor:u,callbacks:k}),[k,u,r]);Kr(()=>(d.current=C.descriptor,i.droppable.register(C),()=>{t.current&&S(),i.droppable.unregister(C)}),[k,u,S,C,o,i.droppable]),Kr(()=>{t.current&&o.updateDroppableIsEnabled(d.current.id,!e.isDropDisabled)},[e.isDropDisabled,o]),Kr(()=>{t.current&&o.updateDroppableIsCombineEnabled(d.current.id,e.isCombineEnabled)},[e.isCombineEnabled,o])}function pg(){}const AS={width:0,height:0,margin:dD},s8=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>e||n==="close"?AS:{height:t.client.borderBox.height,width:t.client.borderBox.width,margin:t.client.margin},o8=({isAnimatingOpenOnMount:e,placeholder:t,animate:n})=>{const r=s8({isAnimatingOpenOnMount:e,placeholder:t,animate:n});return{display:t.display,boxSizing:"border-box",width:r.width,height:r.height,marginTop:r.margin.top,marginRight:r.margin.right,marginBottom:r.margin.bottom,marginLeft:r.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:n!=="none"?Hc.placeholder:null}},a8=e=>{const t=E.useRef(null),n=ot(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]),{animate:r,onTransitionEnd:i,onClose:o,contextId:a}=e,[u,d]=E.useState(e.animate==="open");E.useEffect(()=>u?r!=="open"?(n(),d(!1),pg):t.current?pg:(t.current=setTimeout(()=>{t.current=null,d(!1)}),n):pg,[r,u,n]);const m=ot(h=>{h.propertyName==="height"&&(i(),r==="close"&&o())},[r,o,i]),p=o8({isAnimatingOpenOnMount:u,animate:e.animate,placeholder:e.placeholder});return Ct.createElement(e.placeholder.tagName,{style:p,"data-rfd-placeholder-context-id":a,onTransitionEnd:m,ref:e.innerRef})};var l8=Ct.memo(a8);class c8 extends Ct.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 u8=e=>{const t=E.useContext(Sm);t||Le();const{contextId:n,isMovementAllowed:r}=t,i=E.useRef(null),o=E.useRef(null),{children:a,droppableId:u,type:d,mode:m,direction:p,ignoreContainerClipping:h,isDropDisabled:g,isCombineEnabled:y,snapshot:v,useClone:w,updateViewportMaxScroll:S,getContainerForClone:_}=e,k=ot(()=>i.current,[]),C=ot((A=null)=>{i.current=A},[]);ot(()=>o.current,[]);const N=ot((A=null)=>{o.current=A},[]),L=ot(()=>{r()&&S({maxScroll:TE()})},[r,S]);i8({droppableId:u,type:d,mode:m,direction:p,isDropDisabled:g,isCombineEnabled:y,ignoreContainerClipping:h,getDroppableRef:k});const I=Ht(()=>Ct.createElement(c8,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},({onClose:A,data:$,animate:Y})=>Ct.createElement(l8,{placeholder:$,onClose:A,innerRef:N,animate:Y,contextId:n,onTransitionEnd:L})),[n,L,e.placeholder,e.shouldAnimatePlaceholder,N]),D=Ht(()=>({innerRef:C,placeholder:I,droppableProps:{"data-rfd-droppable-id":u,"data-rfd-droppable-context-id":n}}),[n,u,I,C]),T=w?w.dragging.draggableId:null,O=Ht(()=>({droppableId:u,type:d,isUsingCloneFor:T}),[u,T,d]);function M(){if(!w)return null;const{dragging:A,render:$}=w,Y=Ct.createElement(WE,{draggableId:A.draggableId,index:A.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(B,G)=>$(B,G,A));return n4.createPortal(Y,_())}return Ct.createElement($0.Provider,{value:O},a(D,v),M())};function d8(){return document.body||Le(),document.body}const MS={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:d8},ZE=e=>{let t={...e},n;for(n in MS)e[n]===void 0&&(t={...t,[n]:MS[n]});return t},gg=(e,t)=>e===t.droppable.type,DS=(e,t)=>t.draggables[e.draggable.id],f8=()=>{const e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t={...e,shouldAnimatePlaceholder:!1},n=ir(o=>({draggableId:o.id,type:o.type,source:{index:o.index,droppableId:o.droppableId}})),r=ir((o,a,u,d,m,p)=>{const h=m.descriptor.id;if(m.descriptor.droppableId===o){const v=p?{render:p,dragging:n(m.descriptor)}:null,w={isDraggingOver:u,draggingOverWith:u?h:null,draggingFromThisWith:h,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!1,snapshot:w,useClone:v}}if(!a)return t;if(!d)return e;const y={isDraggingOver:u,draggingOverWith:h,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:m.placeholder,shouldAnimatePlaceholder:!0,snapshot:y,useClone:null}});return(o,a)=>{const u=ZE(a),d=u.droppableId,m=u.type,p=!u.isDropDisabled,h=u.renderClone;if(iu(o)){const g=o.critical;if(!gg(m,g))return t;const y=DS(g,o.dimensions),v=Xr(o.impact)===d;return r(d,p,v,v,y,h)}if(o.phase==="DROP_ANIMATING"){const g=o.completed;if(!gg(m,g.critical))return t;const y=DS(g.critical,o.dimensions);return r(d,p,GE(g.result)===d,Xr(g.impact)===d,y,h)}if(o.phase==="IDLE"&&o.completed&&!o.shouldFlush){const g=o.completed;if(!gg(m,g.critical))return t;const y=Xr(g.impact)===d,v=!!(g.impact.at&&g.impact.at.type==="COMBINE"),w=g.critical.droppable.id===d;return y?v?e:t:w?e:t}return t}},m8={updateViewportMaxScroll:SO},h8=Xj(f8,m8,(e,t,n)=>({...ZE(n),...e,...t}),{context:z0,areStatePropsEqual:UE})(u8),Hf={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:"▽"}},Ff={idle:"Idle",reflecting:"Thinking...",tool_active:"Running tool"};function H0(e){const t=(e??"").trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function al(e){const t=(e.workItemRoleName??"").trim();return t||H0(e.workItemRoleId)}function p8(e){return(e.employeeAssignment?.name??"").trim()}function xg(e){const t=al(e),n=p8(e);return t&&n?`${t} · ${n}`:t||n}function Xa(e){return typeof e=="string"?e.trim():""}function to(e){if(!e)return"";const t=e;return Xa(t.executionTurnId)||Xa(t.runtimeTaskId)||Xa(t.taskId)}function Cm(e){return Xa(e?.workItemId)?Xa(e?.executionTurnId)||Xa(e?.runtimeTaskId):""}const g8={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 x8({task:e,index:t,agents:n,officeMap:r,companyMode:i,isSelected:o,onClick:a,onStart:u}){const d=e.assigneeIds.map(I=>n.find(D=>D.agent_id===I)).filter(Boolean),m=e.priority?Hf[e.priority]:null,p=r&&d.length>1&&new Set(d.map(I=>r[I.agent_id]).filter(Boolean)).size>1,h=e.agentStatus&&e.agentStatus!=="idle",g=e.dependencies?.length??0,y=e.phase,v=!h&&y&&y!=="ready"?g8[y]??null:null,w=e.employeeAssignment,S=al(e),_=e.workItemGate,k=H0(e.managerRoleId),C=(e.blockedReason??"").trim(),N=(e.reworkFeedback??"").trim(),L=Cm(e);return c.jsx(W6,{draggableId:e.id,index:t,isDragDisabled:!!i,children:(I,D)=>c.jsxs("div",{ref:I.innerRef,...I.draggableProps,...I.dragHandleProps,className:`kanban-card${D.isDragging?" is-dragging":""}${h?" is-active":""}${o?" is-selected":""}`,"data-task-id":e.id,onMouseUp:T=>{T.button===0&&!D.isDragging&&a(e)},children:[c.jsxs("div",{className:"kanban-card-top",children:[c.jsx("span",{className:"kanban-card-id",children:e.displayId}),v&&c.jsxs("span",{className:"kanban-status-badge",style:{color:v.color},children:[c.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:v.color,marginRight:3}}),v.label]}),g>0&&c.jsxs("span",{className:"kanban-dep-badge",title:`${g} upstream dep(s)`,children:[g," dep"]}),p&&c.jsx("span",{className:"kanban-cross-badge",title:"Cross-office",children:"⇄"}),u&&c.jsx("button",{className:"kanban-start-btn",title:i?"Start Work Item":"Start task",onClick:T=>{T.stopPropagation(),u(e.id)},children:"▶"})]}),c.jsx("p",{className:"kanban-card-title",children:e.title}),(S||w?.name||_?.type||e.originChannel||e.workItemProjectionId)&&c.jsxs("div",{className:"kanban-card-meta-row",children:[S&&c.jsx("span",{className:"kanban-meta-badge kanban-role-badge",title:`Role: ${S}`,children:S}),w?.name&&c.jsxs("span",{className:"kanban-meta-badge kanban-employee-badge",title:`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:`Projection: ${e.workItemProjectionId}`,children:e.workItemProjectionId}),_?.type&&c.jsxs("span",{className:`kanban-meta-badge kanban-gate-badge kanban-gate-${_.type}`,title:`Gate: ${_.type}${_.reviewerRole?` by ${_.reviewerRole}`:""}`,children:[_.type==="review"?"✉":_.type==="approval"?"✓":"✋",_.type]}),e.originChannel&&c.jsxs("span",{className:"kanban-meta-badge kanban-origin-badge",title:`Origin: ${e.originChannel}`,children:["#",e.originChannel]}),k&&c.jsx("span",{className:"kanban-meta-badge",title:`Manager: ${k}`,children:k})]}),(C||N||L)&&c.jsxs("div",{className:"kanban-card-tags",children:[C&&c.jsx("span",{className:"kanban-tag",children:C}),N&&c.jsx("span",{className:"kanban-tag",children:N}),L&&c.jsx("span",{className:"kanban-tag",title:`Execution Turn: ${L}`,children:"Runtime"})]}),h&&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:Ff[e.agentStatus]??e.agentStatus})]}),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))}),(m||d.length>0)&&c.jsxs("div",{className:"kanban-card-footer",children:[c.jsx("div",{className:"kanban-card-footer-left",children:m&&c.jsx("span",{className:"kanban-priority",style:{color:m.color},title:m.label,children:m.symbol})}),c.jsxs("div",{className:"kanban-assignee-group",children:[d.slice(0,3).map(T=>c.jsx("span",{className:"kanban-assignee-badge",title:T.name,children:T.name.charAt(0).toUpperCase()},T.agent_id)),d.length>3&&c.jsxs("span",{className:"kanban-assignee-badge kanban-assignee-more",children:["+",d.length-3]})]})]})]})})}function y8({column:e,tasks:t,agents:n,officeMap:r,companyMode:i,selectedTaskId:o,onCardClick:a,onStartTask:u,onQuickCreate:d}){const[m,p]=E.useState(!1),[h,g]=E.useState(""),y=E.useRef(!1),v=E.useCallback(()=>{if(y.current)return;y.current=!0;const w=h.trim();w&&d&&d(w),g(""),p(!1)},[h,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:e.name}),c.jsx("span",{className:"kanban-col-count",children:t.length}),d&&c.jsx("button",{className:"kanban-col-add",title:"Add task",onClick:()=>{y.current=!1,p(!0)},children:"+"})]}),m&&c.jsx("div",{className:"kanban-quick-add",children:c.jsx("input",{className:"kanban-quick-input",value:h,onChange:w=>g(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),v()),w.key==="Escape"&&(y.current=!0,g(""),p(!1))},onBlur:v,placeholder:"Task title...",autoFocus:!0})}),c.jsx(h8,{droppableId:e.id,isDropDisabled:!!i,children:w=>c.jsxs("div",{ref:w.innerRef,...w.droppableProps,className:"kanban-col-body",children:[t.length===0&&!m&&c.jsx("div",{className:"kanban-empty",children:c.jsx("span",{className:"kanban-empty-icon",children:"·"})}),t.map((S,_)=>c.jsx(x8,{task:S,index:_,agents:n,officeMap:r,companyMode:i,isSelected:S.id===o,onClick:a,onStart:u},S.id)),w.placeholder]})})]})}function v8({columns:e,tasksByColumn:t,agents:n,officeMap:r,store:i,companyMode:o,selectedTaskId:a,onCardClick:u,onStartTask:d,onQuickCreate:m,onMoveTask:p}){const h=g=>{if(o||!g.destination)return;const y=g.source.droppableId,v=g.destination.droppableId;if(y!==v)return;const w=g.destination.index,S=g.draggableId,_=[...t[v]??[]].filter(C=>C.id!==S),k=(t[v]??[]).find(C=>C.id===S);k&&_.splice(w,0,k),_.forEach((C,N)=>{i.moveTask(C.id,v,N)})};return c.jsx(N6,{onDragEnd:h,children:c.jsx("div",{className:"kanban-board",children:e.map(g=>c.jsx(y8,{column:g,tasks:t[g.id]??[],agents:n,officeMap:r,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 b8({agents:e,tasks:t}){const n=E.useMemo(()=>{const i=new Map(t.map(o=>[o.id,o]));return e.map(o=>{const a=t.find(d=>d.assigneeIds.includes(o.agent_id)&&d.agentStatus&&d.agentStatus!=="idle"),u=o.current_task_id?i.get(o.current_task_id):void 0;return{agent:o,status:a?.agentStatus??o.runtime_status??"idle",currentTool:a?.currentTool??o.current_tool,taskDisplayId:a?.displayId??u?.displayId}})},[e,t]);if(e.length===0)return null;const r=n.filter(i=>i.status!=="idle").length;return c.jsxs("div",{className:"agent-status-bar",children:[c.jsx("span",{className:"agent-status-summary",children:r>0?`${r}/${e.length} active`:`${e.length} agent${e.length!==1?"s":""}`}),c.jsx("div",{className:"agent-status-chips",children:n.map(({agent:i,status:o,currentTool:a,taskDisplayId:u})=>c.jsxs("div",{className:`agent-status-chip status-${o}`,title:`${i.name}: ${o==="tool_active"&&a?a:Ff[o]}${u?` (${u})`:""}`,children:[c.jsx("span",{className:"agent-status-avatar",children:i.name.charAt(0).toUpperCase()}),c.jsx("span",{className:"agent-status-name",children:i.name}),o!=="idle"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"kanban-runtime-dot"}),c.jsx("span",{className:"agent-status-detail",children:o==="tool_active"&&a?a:Ff[o]})]}),u&&c.jsx("span",{className:"agent-status-task",children:u})]},i.agent_id))})]})}function _8({boards:e,activeBoardId:t,onSelect:n}){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}}),r.name]},r.id))})})}function pr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function vs(e){return Array.isArray(e)?e.filter(pr):[]}function ll(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function k8(e){return pr(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:ll(e.member_role_ids),seat_ids:ll(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 w8(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:ll(e.background_work_item_ids),manager_role_ids:ll(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:pr(e.latest_notification)?e.latest_notification:void 0,manager_digest:pr(e.manager_digest)?e.manager_digest:void 0,status:String(e.status??"cold")}}function C8(e){const t=pr(e.metadata)?e.metadata:void 0,n=pr(e.adaptive)?e.adaptive:t&&pr(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 j8(e){if(pr(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:pr(e.recovery_pointer)?e.recovery_pointer:void 0}}function E8(e){if(pr(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:vs(e.architecture_decisions),completed_work_items:vs(e.completed_work_items),open_issues:ll(e.open_issues),verification_summary:typeof e.verification_summary=="string"?e.verification_summary:void 0,artifact_index:vs(e.artifact_index),handoff_summaries:vs(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 N8(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:pr(e.current_work_item)?e.current_work_item:void 0,latest_notification:pr(e.latest_notification)?e.latest_notification:void 0,manager_digest:pr(e.manager_digest)?e.manager_digest:void 0}}function I8(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:pr(e.metadata)?e.metadata:void 0,created_at:typeof e.created_at=="string"?e.created_at:void 0}}function QE(e){const t=pr(e)?e:{},n=vs(t.runtime_teams).map(S8),r=vs(t.runtime_seats).map(w8),i=vs(t.work_items).map(C8);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:ll(t.top_level_role_ids),runtime_teams:n,runtime_seats:r,work_items:i,frontier:k8(t.frontier),project_run:j8(t.project_run),project_dossier:E8(t.project_dossier),seat_digests:vs(t.seat_digests).map(N8),revision_links:vs(t.revision_links).map(I8),project_recovery:pr(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:pr(t.runtime_policy)?t.runtime_policy:void 0}}function jm(e){const t=QE(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 T8({state:e,message:t,onRefresh:n,onReadMessage:r,pollIntervalMs:i=8e3,embedded:o=!1}){const[a,u]=E.useState(null);E.useEffect(()=>{if(!i)return;n();const h=window.setInterval(()=>n(),i);return()=>window.clearInterval(h)},[i]);const d=E.useMemo(()=>e?.roles?e.roles.reduce((h,g)=>h+g.unread_count,0):0,[e?.roles]),m=h=>{u(h),r(h)},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"}),d>0&&c.jsxs(su,{color:"var(--accent, #3498db)",children:[d," 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(xf,{children:"No communications yet. They will appear once agents start collaborating."}):c.jsx(R8,{state:e,selectedPath:a,onSelectMessage:m}):c.jsxs(xf,{children:["Not available",e.reason?`: ${e.reason}`:""]}):c.jsx(xf,{children:"Loading communications..."}),t&&c.jsx(D8,{message:t,onClose:()=>u(null)})]})}function R8({state:e,selectedPath:t,onSelectMessage:n}){const r=(e.roles?.length??0)>0,i=(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}`))}),r&&c.jsx(yg,{title:`Inboxes (${e.roles.length})`,children:e.roles.map(a=>c.jsx(A8,{role:a,selectedPath:t,onSelectMessage:n},a.role_id))}),i&&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(su,{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))}),!r&&!i&&!o&&c.jsx(xf,{children:"No communication activity yet."})]})}function A8({role:e,selectedPath:t,onSelectMessage:n}){const[r,i]=E.useState(!0),o=e.unread_count>0||(e.recent_seen?.length??0)>0||(e.recent_outbox?.length??0)>0,[a,u]=E.useState(e.unread_count>0?"unread":"history"),d=E.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,p=>p.toUpperCase());return c.jsxs("div",{style:{marginBottom:2},children:[c.jsxs("div",{onClick:()=>i(p=>!p),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",cursor:"pointer",userSelect:"none",background:r?"var(--surface-hover, rgba(255,255,255,0.03))":"transparent",borderRadius:4},children:[c.jsx("span",{style:{fontSize:10,width:10},children:r?"▼":"▶"}),c.jsx("span",{style:{flex:1,fontWeight:600,fontSize:12},children:m}),e.has_blocking&&c.jsx(su,{color:"var(--red, #e74c3c)",children:"BLOCKING"}),e.unread_count>0&&c.jsxs(su,{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"]})]}),r&&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(vg,{active:a==="unread",onClick:()=>u("unread"),children:["Unread (",e.unread_count,")"]}),c.jsxs(vg,{active:a==="history",onClick:()=>u("history"),children:["Read (",e.recent_seen?.length??0,")"]}),c.jsxs(vg,{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(p=>c.jsx(M8,{message:p,selected:p.path===t,onClick:()=>n(p.path)},p.message_id))})]})]})}function M8({message:e,selected:t,onClick:n}){const i=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:i})," ",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 D8({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(su,{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 su({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 vg({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 xf({children:e}){return c.jsx("div",{style:{padding:"20px 16px",fontSize:12,color:"var(--text-secondary, #888)",textAlign:"center"},children:e})}function Oa(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function La(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&!Array.isArray(t)):[]}function di(e,t="Pending"){return String(e??"").trim()||t}function _c(e,t="Team"){const n=String(e??"").trim();return n?n.replace(/[_-]+/g," ").replace(/\b\w/g,r=>r.toUpperCase()):t}function OS(e){return di(e,"idle").toLowerCase().replace(/[\s_]+/g,"-")}function O8({orgInfoData:e,recoveryStatus:t,commsState:n,onStopRun:r,embedded:i=!1}){const o=E.useMemo(()=>jm(e??null),[e]),a=o.projectRun,u=o.seatDigests,d=u.reduce((_,k)=>{const C=Oa(k.manager_digest);return _+La(C.pending_decisions).length},0),m=u.reduce((_,k)=>_+La(Oa(k.manager_digest).actionable_chat).length,0),p=u.reduce((_,k)=>_+La(Oa(k.manager_digest).protocol_backlog).length,0),h=u.reduce((_,k)=>_+La(Oa(k.manager_digest).notification_backlog).length,0),g=m+p+h,y=Array.isArray(t?.interrupted)?t.interrupted.length:0,v=[{label:"Actionable",value:m},{label:"Protocol",value:p},{label:"Notifications",value:h},{label:"Meetings",value:n?.meetings?.length??0},{label:"Failures",value:n?.recent_failures?.length??0}],w=E.useMemo(()=>{const _=new Map;for(const N of u){const L=String(N.seat_id??"").trim();L&&_.set(L,Oa(N.manager_digest))}const k=o.runtimeTeams.map(N=>{const L=[String(N.cell_id??"").trim(),String(N.team_id??"").trim(),String(N.team_instance_id??"").trim()].filter(Boolean),I=o.runtimeSeats.filter(O=>L.includes(String(O.team_id??"").trim())||L.includes(String(O.team_instance_id??"").trim())),D=I.reduce((O,M)=>{const A=_.get(String(M.seat_id??"").trim())??{};return O+La(A.pending_decisions).length},0),T=I.map(O=>di(O.latest_notification?.subject??O.latest_notification?.summary,"")).find(Boolean);return{key:String(N.cell_id??N.team_id??N.team_instance_id??N.manager_role_id??"team"),label:_c(N.team_id??N.cell_id,"Team"),managerLabel:_c(N.manager_role_id,"Unassigned manager"),status:di(N.status,"idle"),seatCount:I.length||N.member_role_ids.length,pendingApprovals:D,latestAlert:T,seats:I.map(O=>({key:String(O.seat_id??O.role_session_id??O.role_id),roleLabel:_c(O.role_id,"Seat"),seatLabel:di(O.seat_id??O.role_session_id,"Seat"),status:di(O.resident_status??O.status,"idle")}))}}),C=new Set(k.flatMap(N=>N.seats.map(L=>L.key)));for(const N of o.runtimeSeats){const L=String(N.seat_id??N.role_session_id??N.role_id).trim();if(!L||C.has(L))continue;const I=String(N.team_id??N.team_instance_id??"unassigned").trim()||"unassigned";let D=k.find(O=>O.key===I);D||(D={key:I,label:_c(I,"Unassigned Team"),managerLabel:"Unassigned manager",status:di(N.status,"idle"),seatCount:0,pendingApprovals:0,seats:[]},k.push(D));const T=_.get(String(N.seat_id??"").trim())??{};D.pendingApprovals+=La(T.pending_decisions).length,D.latestAlert||(D.latestAlert=di(N.latest_notification?.subject??N.latest_notification?.summary,"")),D.seats.push({key:L,roleLabel:_c(N.role_id,"Seat"),seatLabel:di(N.seat_id??N.role_session_id,"Seat"),status:di(N.resident_status??N.status,"idle")}),D.seatCount=D.seats.length}return k.sort((N,L)=>N.label.localeCompare(L.label))},[o.runtimeTeams,o.runtimeSeats,u]),S=w.map(_=>_.latestAlert).find(Boolean)||"No current alerts";return!a?.run_id&&w.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:di(a?.run_id,"Runtime Team Status")}),r&&c.jsx("button",{className:"project-cockpit-stop-btn",onClick:r,title:"Stop this run",children:"Stop"})]}),c.jsxs("div",{className:"project-cockpit-metrics",children:[c.jsx("span",{children:di(a?.lifecycle_status,"active")}),c.jsxs("span",{children:["Teams ",w.length]}),c.jsxs("span",{children:["Seats ",o.runtimeSeats.length]}),c.jsxs("span",{children:["Approvals ",d]}),c.jsxs("span",{children:["Unread ",g]}),c.jsxs("span",{children:["Recovery ",y>0?`${y} interrupted`:di(Oa(a?.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:v.length})]}),c.jsxs("div",{className:"project-cockpit-summary",children:[v.map(_=>c.jsxs("span",{children:[_.label," ",_.value]},_.label)),c.jsx("div",{className:"project-cockpit-inline-text",children:S})]})]}),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:w.length})]}),c.jsx("div",{className:"project-cockpit-team-grid",children:w.map(_=>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:_.label}),c.jsx("span",{children:_.managerLabel})]}),c.jsx("span",{className:`project-cockpit-team-status status-${OS(_.status)}`,children:_.status})]}),c.jsxs("div",{className:"project-cockpit-team-meta",children:[c.jsxs("span",{children:["Seats ",_.seatCount]}),c.jsxs("span",{children:["Approvals ",_.pendingApprovals]}),_.latestAlert&&c.jsx("span",{children:_.latestAlert})]}),c.jsx("div",{className:"project-cockpit-seat-list",children:_.seats.length>0?_.seats.map(k=>c.jsxs("div",{className:"project-cockpit-seat-row",children:[c.jsx("span",{className:"project-cockpit-seat-role",children:k.roleLabel}),c.jsx("span",{className:"project-cockpit-seat-id",children:k.seatLabel}),c.jsx("span",{className:`project-cockpit-seat-status status-${OS(k.status)}`,children:k.status})]},k.key)):c.jsx("div",{className:"project-cockpit-inline-text",children:"No seats assigned yet"})})]},_.key))})]})]})]})}function L8(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 LS={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"}},z8=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]),zS={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function P8({session:e,agents:t,onTitleChange:n,onViewOnBoard:r,onStop:i,onComplete:o,onResume:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(e.title),h=E.useRef(null);E.useEffect(()=>{u||p(e.title)},[e.title,u]);const g=E.useCallback(()=>{const U=m.trim();U&&U!==e.title?n(e.taskId,U):p(e.title),d(!1)},[m,e.title,e.taskId,n]),y=E.useCallback(()=>{p(e.title),d(!0),setTimeout(()=>h.current?.select(),0)},[e.title]),v=e.assigneeIds.map(U=>t.find(ee=>ee.agent_id===U)).filter(Boolean),w=String(e.execMode??"").trim().toLowerCase(),S=w==="company"||w==="org"||w==="custom"||!!e.isCompanyRuntime||!!e.workItemProjectionId||!!e.workItemRoleId||!!e.workItemRoleName,_=v.length>0&&!S,k=e.runtimeControlState??(e.status==="running"?"running":"idle"),C=k==="suspending",N=k==="resuming",L=k==="suspended",I=e.status==="running"&&!C&&!L&&!N,D=z8.has(e.status),T=(e.canStop??e.status==="running")&&!C&&!L&&!N,O=(e.canResume??(L||!D&&!I&&e.status!=="done"&&e.status!=="pending"))&&!C&&!N,M=LS[e.status]??LS.pending,A=C?"Stopping":L?"Suspended":N?"Resuming":M.label,$=al(e),Y=xm(e),B=qi(e),G=e.displayTool||e.currentTool,[H,V]=E.useState(G||void 0);E.useEffect(()=>{if(!I){V(void 0);return}G&&V(G)},[I,G]);const W=typeof e.pendingPermissionCount=="number"&&e.pendingPermissionCount>0,Z=W,q=C?"var(--yellow)":L?"var(--text-secondary)":Y==="tool_active"?"var(--green)":Y==="reflecting"?"var(--yellow)":M.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:h,className:"task-title-input",value:m,onChange:U=>p(U.target.value),onBlur:g,onKeyDown:U=>{U.key==="Enter"&&g(),U.key==="Escape"&&(p(e.title),d(!1))}}):c.jsx("span",{className:"task-title",onClick:y,title:"Click to edit",children:e.title}),c.jsxs("span",{className:"task-status-pill","data-status":e.status,"data-working":B?"true":"false",children:[c.jsx("span",{className:"task-status-dot",style:{background:q}}),A]}),I&&H&&c.jsxs("span",{className:"task-tool-pill",children:[c.jsx(mm,{}),c.jsx("code",{children:H}),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: ${zS[e.selectedExecutionAgent]??e.selectedExecutionAgent}`,children:[c.jsx("span",{className:"task-agent-icon",children:"⚙"}),zS[e.selectedExecutionAgent]??e.selectedExecutionAgent]})]}),c.jsxs("div",{className:"task-header-right",children:[_&&c.jsx("div",{className:"task-header-avatars",children:v.slice(0,3).map(U=>c.jsx("span",{className:"task-header-avatar",title:U.name,children:U.name.charAt(0).toUpperCase()},U.agent_id))}),c.jsx("span",{className:"task-header-time",title:new Date(e.createdAt).toLocaleString(),children:L8(e.createdAt)}),(T||C)&&i&&c.jsxs("button",{className:"task-stop-btn",onClick:i,title:"Stop task",disabled:!T,children:[c.jsx(Lj,{}),c.jsx("span",{children:C?"Stopping...":"Stop"})]}),O&&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"})]}),r&&c.jsx("button",{className:"task-board-btn",onClick:r,title:"View on Board",children:c.jsx(b4,{})})]})]}),Z&&c.jsx("div",{className:"task-header-metrics",children:W&&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 ki(e){return String(e??"").trim().replace(/\s+/g," ").slice(0,96)}function JE(e,t=0){const n=e.itemId||e.streamId||e.toolCallId||e.permissionGroupKey;return n?`${e.type}:${ki(e.turnId)}:${ki(n)}`:e.type==="thinking"?`thinking:${ki(e.turnId)||ki(e.executionMode)||ki(e.summary)||"stream"}:${t}`:e.type==="tool_call"&&e.turnId?`tool:${ki(e.turnId)}:${ki(e.summary)||"tool"}:${t}`:e.turnId&&typeof e.seq=="number"?`${e.type}:${ki(e.turnId)}:seq:${e.seq}`:[e.type,ki(e.turnId),Number.isFinite(e.timestamp)?e.timestamp:"",ki(e.summary),ki(e.detail),t].join(":")}const B8=new Set(["done","failed","cancelled"]),PS=new Set(["thinking","tool_call","autonomy","needs_input","verification"]),Vf={thinking:{icon:c.jsx(h4,{}),color:"var(--accent)",label:"Thinking"},tool_call:{icon:c.jsx(mm,{}),color:"var(--green)",label:"Tool"},autonomy:{icon:c.jsx(Kc,{}),color:"var(--yellow)",label:"Autonomy"},handoff:{icon:c.jsx(Pj,{}),color:"var(--accent)",label:"Handoff"},gate_result:{icon:c.jsx(_4,{}),color:"var(--green)",label:"Gate"},status_change:{icon:c.jsx($k,{}),color:"var(--text-secondary)",label:"Status"},work_item_started:{icon:c.jsx(pm,{}),color:"var(--accent)",label:"Work item"},gate_approved:{icon:c.jsx(k4,{}),color:"var(--green)",label:"Gate Passed"},gate_rejected:{icon:c.jsx(S4,{}),color:"var(--red)",label:"Rejected"},awaiting_manager_review:{icon:c.jsx(xc,{}),color:"var(--yellow)",label:"Awaiting Manager Review"},awaiting_human:{icon:c.jsx(xc,{}),color:"var(--yellow)",label:"Awaiting Human Review"},awaiting_review:{icon:c.jsx(xc,{}),color:"var(--yellow)",label:"Awaiting Review"},awaiting_peer:{icon:c.jsx(xc,{}),color:"var(--yellow)",label:"Awaiting Peer"},work_item_failed:{icon:c.jsx($k,{}),color:"var(--red)",label:"Failed"},deadlock:{icon:c.jsx(Ef,{}),color:"var(--red)",label:"Deadlock"},needs_input:{icon:c.jsx(xc,{}),color:"var(--yellow)",label:"Needs Input"},verification:{icon:c.jsx(Kc,{}),color:"var(--accent)",label:"Verification"}},bg=5;function kc(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 yf(e){if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return yf(JSON.parse(t))}catch{return e}return e}return Array.isArray(e)?e.map(yf):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,yf(n)])):e}function $8(e){const t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.stringify(yf(JSON.parse(t)),null,2)}catch{return e}}function Vo({entries:e,agentStatus:t,currentTool:n,toolElapsedMs:r,lastToolSummary:i,sessionStatus:o,expandedByDefault:a}){const[u,d]=E.useState(!!a),m=!!o&&B8.has(o),p=!m&&t==="reflecting",h=!m&&t==="tool_active",g=p||h,y=E.useMemo(()=>e,[e]),v=E.useMemo(()=>u||y.length<=bg?y:y.slice(-bg),[y,u]),w=y.length-v.length;return y.length===0&&!g&&!m?null:c.jsxs("div",{className:"ptl-block",children:[g&&c.jsxs("div",{className:`ptl-live ${h?"ptl-live-tool":"ptl-live-think"}`,children:[c.jsx("span",{className:"ptl-live-icon",children:h?c.jsx(mm,{}):c.jsx(Po,{})}),c.jsx("span",{className:"ptl-live-text",children:h?"Running":"Thinking"}),h&&n&&c.jsx("code",{className:"ptl-live-tool-name",children:n}),h&&typeof r=="number"&&r>0&&c.jsx("span",{className:"ptl-live-elapsed",children:r<1e3?`${r}ms`:`${(r/1e3).toFixed(1)}s`}),c.jsx("span",{className:"ptl-live-shimmer"})]}),i&&!h&&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:i})]}),w>0&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!0),children:[c.jsx(_s,{}),c.jsxs("span",{children:[w," earlier step",w>1?"s":""]})]}),v.length>0&&c.jsx("div",{className:"ptl-timeline",children:v.map((S,_)=>{const k=_===v.length-1,C=Vf[S.type]||Vf.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:C.color},children:C.icon}),!k&&c.jsx("div",{className:"ptl-line"})]}),c.jsx("div",{className:"ptl-content",children:c.jsx(eN,{entry:S})})]},JE(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&&y.length>bg&&c.jsxs("button",{className:"ptl-expand",onClick:()=>d(!1),children:[c.jsx(_s,{down:!0}),c.jsx("span",{children:"Show less"})]})]})}const eN=Ct.memo(function({entry:t}){const[n,r]=E.useState(!1),i=Vf[t.type]||Vf.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&&r(a=>!a)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:kc(t.timestamp)}),o&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{down:n})})]}),n&&t.detail&&c.jsx("pre",{className:"ptl-tool-card-detail",children:$8(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&&r(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("code",{className:"ptl-tool-badge",children:t.summary}),c.jsx("span",{className:"ptl-time",children:kc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{down:n})})]}),n&&t.detail&&c.jsx("div",{className:"ptl-tool-card-detail ptl-autonomy-detail",children:t.detail})]})}if(t.type==="thinking")return c.jsxs("div",{className:"ptl-tool-card",children:[c.jsxs("button",{className:"ptl-row ptl-tool-toggle clickable",onClick:()=>r(a=>!a),type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:kc(t.timestamp)}),c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{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&&r(u=>!u)},type:"button",children:[c.jsx("span",{className:"ptl-label",style:{color:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary||"Verification"}),c.jsx("span",{className:"ptl-time",children:kc(t.timestamp)}),a&&c.jsx("span",{className:"ptl-tool-chevron",children:c.jsx(_s,{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:i.color},children:i.label}),c.jsx("span",{className:"ptl-summary",children:t.summary}),c.jsx("span",{className:"ptl-time",children:kc(t.timestamp)})]}),t.detail&&c.jsx("div",{className:"ptl-detail",children:t.detail})]})});function H8(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const F8=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,V8=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,U8={};function BS(e,t){return(U8.jsx?V8:F8).test(e)}const G8=/[ \t\n\f\r]/g;function q8(e){return typeof e=="object"?e.type==="text"?$S(e.value):!1:$S(e)}function $S(e){return e.replace(G8,"")===""}class bu{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}bu.prototype.normal={};bu.prototype.property={};bu.prototype.space=void 0;function tN(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new bu(n,r,t)}function Ey(e){return e.toLowerCase()}class Lr{constructor(t,n){this.attribute=n,this.property=t}}Lr.prototype.attribute="";Lr.prototype.booleanish=!1;Lr.prototype.boolean=!1;Lr.prototype.commaOrSpaceSeparated=!1;Lr.prototype.commaSeparated=!1;Lr.prototype.defined=!1;Lr.prototype.mustUseProperty=!1;Lr.prototype.number=!1;Lr.prototype.overloadedBoolean=!1;Lr.prototype.property="";Lr.prototype.spaceSeparated=!1;Lr.prototype.space=void 0;let W8=0;const Et=Qo(),Wn=Qo(),Ny=Qo(),De=Qo(),gn=Qo(),Ka=Qo(),Ur=Qo();function Qo(){return 2**++W8}const Iy=Object.freeze(Object.defineProperty({__proto__:null,boolean:Et,booleanish:Wn,commaOrSpaceSeparated:Ur,commaSeparated:Ka,number:De,overloadedBoolean:Ny,spaceSeparated:gn},Symbol.toStringTag,{value:"Module"})),_g=Object.keys(Iy);class F0 extends Lr{constructor(t,n,r,i){let o=-1;if(super(t,n),HS(this,"space",i),typeof r=="number")for(;++o<_g.length;){const a=_g[o];HS(this,_g[o],(r&Iy[a])===Iy[a])}}}F0.prototype.defined=!0;function HS(e,t,n){n&&(e[t]=n)}function Sl(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const o=new F0(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),t[r]=o,n[Ey(r)]=r,n[Ey(o.attribute)]=r}return new bu(t,n,e.space)}const nN=Sl({properties:{ariaActiveDescendant:null,ariaAtomic:Wn,ariaAutoComplete:null,ariaBusy:Wn,ariaChecked:Wn,ariaColCount:De,ariaColIndex:De,ariaColSpan:De,ariaControls:gn,ariaCurrent:null,ariaDescribedBy:gn,ariaDetails:null,ariaDisabled:Wn,ariaDropEffect:gn,ariaErrorMessage:null,ariaExpanded:Wn,ariaFlowTo:gn,ariaGrabbed:Wn,ariaHasPopup:null,ariaHidden:Wn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:gn,ariaLevel:De,ariaLive:null,ariaModal:Wn,ariaMultiLine:Wn,ariaMultiSelectable:Wn,ariaOrientation:null,ariaOwns:gn,ariaPlaceholder:null,ariaPosInSet:De,ariaPressed:Wn,ariaReadOnly:Wn,ariaRelevant:null,ariaRequired:Wn,ariaRoleDescription:gn,ariaRowCount:De,ariaRowIndex:De,ariaRowSpan:De,ariaSelected:Wn,ariaSetSize:De,ariaSort:null,ariaValueMax:De,ariaValueMin:De,ariaValueNow:De,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function rN(e,t){return t in e?e[t]:t}function iN(e,t){return rN(e,t.toLowerCase())}const Y8=Sl({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ka,acceptCharset:gn,accessKey:gn,action:null,allow:null,allowFullScreen:Et,allowPaymentRequest:Et,allowUserMedia:Et,alt:null,as:null,async:Et,autoCapitalize:null,autoComplete:gn,autoFocus:Et,autoPlay:Et,blocking:gn,capture:null,charSet:null,checked:Et,cite:null,className:gn,cols:De,colSpan:null,content:null,contentEditable:Wn,controls:Et,controlsList:gn,coords:De|Ka,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Et,defer:Et,dir:null,dirName:null,disabled:Et,download:Ny,draggable:Wn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Et,formTarget:null,headers:gn,height:De,hidden:Ny,high:De,href:null,hrefLang:null,htmlFor:gn,httpEquiv:gn,id:null,imageSizes:null,imageSrcSet:null,inert:Et,inputMode:null,integrity:null,is:null,isMap:Et,itemId:null,itemProp:gn,itemRef:gn,itemScope:Et,itemType:gn,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Et,low:De,manifest:null,max:null,maxLength:De,media:null,method:null,min:null,minLength:De,multiple:Et,muted:Et,name:null,nonce:null,noModule:Et,noValidate:Et,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Et,optimum:De,pattern:null,ping:gn,placeholder:null,playsInline:Et,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Et,referrerPolicy:null,rel:gn,required:Et,reversed:Et,rows:De,rowSpan:De,sandbox:gn,scope:null,scoped:Et,seamless:Et,selected:Et,shadowRootClonable:Et,shadowRootDelegatesFocus:Et,shadowRootMode:null,shape:null,size:De,sizes:null,slot:null,span:De,spellCheck:Wn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:De,step:null,style:null,tabIndex:De,target:null,title:null,translate:null,type:null,typeMustMatch:Et,useMap:null,value:Wn,width:De,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:gn,axis:null,background:null,bgColor:null,border:De,borderColor:null,bottomMargin:De,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Et,declare:Et,event:null,face:null,frame:null,frameBorder:null,hSpace:De,leftMargin:De,link:null,longDesc:null,lowSrc:null,marginHeight:De,marginWidth:De,noResize:Et,noHref:Et,noShade:Et,noWrap:Et,object:null,profile:null,prompt:null,rev:null,rightMargin:De,rules:null,scheme:null,scrolling:Wn,standby:null,summary:null,text:null,topMargin:De,valueType:null,version:null,vAlign:null,vLink:null,vSpace:De,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Et,disableRemotePlayback:Et,prefix:null,property:null,results:De,security:null,unselectable:null},space:"html",transform:iN}),X8=Sl({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Ur,accentHeight:De,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:De,amplitude:De,arabicForm:null,ascent:De,attributeName:null,attributeType:null,azimuth:De,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:De,by:null,calcMode:null,capHeight:De,className:gn,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:De,diffuseConstant:De,direction:null,display:null,dur:null,divisor:De,dominantBaseline:null,download:Et,dx:null,dy:null,edgeMode:null,editable:null,elevation:De,enableBackground:null,end:null,event:null,exponent:De,externalResourcesRequired:null,fill:null,fillOpacity:De,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Ka,g2:Ka,glyphName:Ka,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:De,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:De,horizOriginX:De,horizOriginY:De,id:null,ideographic:De,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:De,k:De,k1:De,k2:De,k3:De,k4:De,kernelMatrix:Ur,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:De,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:De,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:De,overlineThickness:De,paintOrder:null,panose1:null,path:null,pathLength:De,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:gn,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:De,pointsAtY:De,pointsAtZ:De,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Ur,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Ur,rev:Ur,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Ur,requiredFeatures:Ur,requiredFonts:Ur,requiredFormats:Ur,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:De,specularExponent:De,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:De,strikethroughThickness:De,string:null,stroke:null,strokeDashArray:Ur,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:De,strokeOpacity:De,strokeWidth:null,style:null,surfaceScale:De,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Ur,tabIndex:De,tableValues:null,target:null,targetX:De,targetY:De,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Ur,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:De,underlineThickness:De,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:De,values:null,vAlphabetic:De,vMathematical:De,vectorEffect:null,vHanging:De,vIdeographic:De,version:null,vertAdvY:De,vertOriginX:De,vertOriginY:De,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:De,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:rN}),sN=Sl({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),oN=Sl({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:iN}),aN=Sl({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),K8={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},Z8=/[A-Z]/g,FS=/-[a-z]/g,Q8=/^data[-\w.:]+$/i;function J8(e,t){const n=Ey(t);let r=t,i=Lr;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Q8.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(FS,tz);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!FS.test(o)){let a=o.replace(Z8,ez);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}i=F0}return new i(r,t)}function ez(e){return"-"+e.toLowerCase()}function tz(e){return e.charAt(1).toUpperCase()}const nz=tN([nN,Y8,sN,oN,aN],"html"),V0=tN([nN,X8,sN,oN,aN],"svg");function rz(e){return e.join(" ").trim()}var za={},kg,VS;function iz(){if(VS)return kg;VS=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,u=/^\s+|\s+$/g,d=` -`,m="/",p="*",h="",g="comment",y="declaration";function v(S,_){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];_=_||{};var k=1,C=1;function N(B){var G=B.match(t);G&&(k+=G.length);var H=B.lastIndexOf(d);C=~H?B.length-H:C+B.length}function L(){var B={line:k,column:C};return function(G){return G.position=new I(B),O(),G}}function I(B){this.start=B,this.end={line:k,column:C},this.source=_.source}I.prototype.content=S;function D(B){var G=new Error(_.source+":"+k+":"+C+": "+B);if(G.reason=B,G.filename=_.source,G.line=k,G.column=C,G.source=S,!_.silent)throw G}function T(B){var G=B.exec(S);if(G){var H=G[0];return N(H),S=S.slice(H.length),G}}function O(){T(n)}function M(B){var G;for(B=B||[];G=A();)G!==!1&&B.push(G);return B}function A(){var B=L();if(!(m!=S.charAt(0)||p!=S.charAt(1))){for(var G=2;h!=S.charAt(G)&&(p!=S.charAt(G)||m!=S.charAt(G+1));)++G;if(G+=2,h===S.charAt(G-1))return D("End of comment missing");var H=S.slice(2,G-2);return C+=2,N(H),S=S.slice(G),C+=2,B({type:g,comment:H})}}function $(){var B=L(),G=T(r);if(G){if(A(),!T(i))return D("property missing ':'");var H=T(o),V=B({type:y,property:w(G[0].replace(e,h)),value:H?w(H[0].replace(e,h)):h});return T(a),V}}function Y(){var B=[];M(B);for(var G;G=$();)G!==!1&&(B.push(G),M(B));return B}return O(),Y()}function w(S){return S?S.replace(u,h):h}return kg=v,kg}var US;function sz(){if(US)return za;US=1;var e=za&&za.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(za,"__esModule",{value:!0}),za.default=n;const t=e(iz());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const a=(0,t.default)(r),u=typeof i=="function";return a.forEach(d=>{if(d.type!=="declaration")return;const{property:m,value:p}=d;u?i(m,p,d):p&&(o=o||{},o[m]=p)}),o}return za}var Sc={},GS;function oz(){if(GS)return Sc;GS=1,Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(m){return!m||n.test(m)||e.test(m)},a=function(m,p){return p.toUpperCase()},u=function(m,p){return"".concat(p,"-")},d=function(m,p){return p===void 0&&(p={}),o(m)?m:(m=m.toLowerCase(),p.reactCompat?m=m.replace(i,u):m=m.replace(r,u),m.replace(t,a))};return Sc.camelCase=d,Sc}var wc,qS;function az(){if(qS)return wc;qS=1;var e=wc&&wc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(sz()),n=oz();function r(i,o){var a={};return!i||typeof i!="string"||(0,t.default)(i,function(u,d){u&&d&&(a[(0,n.camelCase)(u,o)]=d)}),a}return r.default=r,wc=r,wc}var lz=az();const cz=Zo(lz),lN=cN("end"),U0=cN("start");function cN(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function uz(e){const t=U0(e),n=lN(e);if(t&&n)return{start:t,end:n}}function Fc(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?WS(e.position):"start"in e||"end"in e?WS(e):"line"in e||"column"in e?Ty(e):""}function Ty(e){return YS(e&&e.line)+":"+YS(e&&e.column)}function WS(e){return Ty(e&&e.start)+"-"+Ty(e&&e.end)}function YS(e){return e&&typeof e=="number"?e:1}class kr extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",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"?i=t:!o.cause&&t&&(a=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const d=r.indexOf(":");d===-1?o.ruleId=r:(o.source=r.slice(0,d),o.ruleId=r.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=i,this.line=u?u.line:void 0,this.name=Fc(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}}kr.prototype.file="";kr.prototype.name="";kr.prototype.reason="";kr.prototype.message="";kr.prototype.stack="";kr.prototype.column=void 0;kr.prototype.line=void 0;kr.prototype.ancestors=void 0;kr.prototype.cause=void 0;kr.prototype.fatal=void 0;kr.prototype.place=void 0;kr.prototype.ruleId=void 0;kr.prototype.source=void 0;const G0={}.hasOwnProperty,dz=new Map,fz=/[A-Z]/g,mz=new Set(["table","tbody","thead","tfoot","tr"]),hz=new Set(["td","th"]),uN="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pz(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Sz(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");r=kz(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?V0:nz,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=dN(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function dN(e,t,n){if(t.type==="element")return gz(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return xz(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return vz(e,t,n);if(t.type==="mdxjsEsm")return yz(e,t);if(t.type==="root")return bz(e,t,n);if(t.type==="text")return _z(e,t)}function gz(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=V0,e.schema=i),e.ancestors.push(t);const o=mN(e,t.tagName,!1),a=wz(e,t);let u=W0(e,t);return mz.has(t.tagName)&&(u=u.filter(function(d){return typeof d=="string"?!q8(d):!0})),fN(e,a,o,t),q0(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}function xz(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ou(e,t.position)}function yz(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ou(e,t.position)}function vz(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=V0,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:mN(e,t.name,!0),a=Cz(e,t),u=W0(e,t);return fN(e,a,o,t),q0(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}function bz(e,t,n){const r={};return q0(r,W0(e,t)),e.create(t,e.Fragment,r,n)}function _z(e,t){return t.value}function fN(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function q0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function kz(e,t,n){return r;function r(i,o,a,u){const m=Array.isArray(a.children)?n:t;return u?m(o,a,u):m(o,a)}}function Sz(e,t){return n;function n(r,i,o,a){const u=Array.isArray(o.children),d=U0(r);return t(i,o,a,u,{columnNumber:d?d.column-1:void 0,fileName:e,lineNumber:d?d.line:void 0},void 0)}}function wz(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&G0.call(t.properties,i)){const o=jz(e,i,t.properties[i]);if(o){const[a,u]=o;e.tableCellAlignToStyle&&a==="align"&&typeof u=="string"&&hz.has(t.tagName)?r=u:n[a]=u}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Cz(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.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 ou(e,t.position);else{const i=r.name;let o;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const u=r.value.data.estree.body[0];u.type,o=e.evaluater.evaluateExpression(u.expression)}else ou(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function W0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:dz;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);o0?(Zr(e,e.length,0,t),e):t}const ZS={}.hasOwnProperty;function pN(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 Ni(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Er=uo(/[A-Za-z]/),_r=uo(/[\dA-Za-z]/),Oz=uo(/[#-'*+\--9=?A-Z^-~]/);function Uf(e){return e!==null&&(e<32||e===127)}const Ry=uo(/\d/),Lz=uo(/[\dA-Fa-f]/),zz=uo(/[!-/:-@[-`{-~]/);function ut(e){return e!==null&&e<-2}function hn(e){return e!==null&&(e<0||e===32)}function Lt(e){return e===-2||e===-1||e===32}const Em=uo(new RegExp("\\p{P}|\\p{S}","u")),Uo=uo(/\s/);function uo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function wl(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const u=e.charCodeAt(n+1);o<56320&&u>56319&&u<57344?(a=String.fromCharCode(o,u),i=1):a="�"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ft(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return a;function a(d){return Lt(d)?(e.enter(n),u(d)):t(d)}function u(d){return Lt(d)&&o++a))return;const D=t.events.length;let T=D,O,M;for(;T--;)if(t.events[T][0]==="exit"&&t.events[T][1].type==="chunkFlow"){if(O){M=t.events[T][1].end;break}O=!0}for(_(r),I=D;IC;){const L=n[N];t.containerState=L[1],L[0].exit.call(t,e)}n.length=C}function k(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Fz(e,t,n){return Ft(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function cl(e){if(e===null||hn(e)||Uo(e))return 1;if(Em(e))return 2}function Nm(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[r][1].end},g={...e[n][1].start};JS(h,-d),JS(g,d),a={type:d>1?"strongSequence":"emphasisSequence",start:h,end:{...e[r][1].end}},u={type:d>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:d>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:d>1?"strong":"emphasis",start:{...a.start},end:{...u.end}},e[r][1].end={...a.start},e[n][1].start={...u.end},m=[],e[r][1].end.offset-e[r][1].start.offset&&(m=fi(m,[["enter",e[r][1],t],["exit",e[r][1],t]])),m=fi(m,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",o,t]]),m=fi(m,Nm(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),m=fi(m,[["exit",o,t],["enter",u,t],["exit",u,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,m=fi(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,Zr(e,r-1,n-r+3,m),n=r+m.length-p-2;break}}for(n=-1;++n0&&Lt(I)?Ft(e,k,"linePrefix",o+1)(I):k(I)}function k(I){return I===null||ut(I)?e.check(ew,w,N)(I):(e.enter("codeFlowValue"),C(I))}function C(I){return I===null||ut(I)?(e.exit("codeFlowValue"),k(I)):(e.consume(I),C)}function N(I){return e.exit("codeFenced"),t(I)}function L(I,D,T){let O=0;return M;function M(G){return I.enter("lineEnding"),I.consume(G),I.exit("lineEnding"),A}function A(G){return I.enter("codeFencedFence"),Lt(G)?Ft(I,$,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(G):$(G)}function $(G){return G===u?(I.enter("codeFencedFenceSequence"),Y(G)):T(G)}function Y(G){return G===u?(O++,I.consume(G),Y):O>=a?(I.exit("codeFencedFenceSequence"),Lt(G)?Ft(I,B,"whitespace")(G):B(G)):T(G)}function B(G){return G===null||ut(G)?(I.exit("codeFencedFence"),D(G)):T(G)}}}function eP(e,t,n){const r=this;return i;function i(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const wg={name:"codeIndented",tokenize:nP},tP={partial:!0,tokenize:rP};function nP(e,t,n){const r=this;return i;function i(m){return e.enter("codeIndented"),Ft(e,o,"linePrefix",5)(m)}function o(m){const p=r.events[r.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?a(m):n(m)}function a(m){return m===null?d(m):ut(m)?e.attempt(tP,a,d)(m):(e.enter("codeFlowValue"),u(m))}function u(m){return m===null||ut(m)?(e.exit("codeFlowValue"),a(m)):(e.consume(m),u)}function d(m){return e.exit("codeIndented"),t(m)}}function rP(e,t,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):ut(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):Ft(e,o,"linePrefix",5)(a)}function o(a){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?t(a):ut(a)?i(a):n(a)}}const iP={name:"codeText",previous:oP,resolve:sP,tokenize:aP};function sP(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw 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-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Cc(this.left,r),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),Cc(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Cc(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(r.parser.constructs.flow,n,t)(a)}}function _N(e,t,n,r,i,o,a,u,d){const m=d||Number.POSITIVE_INFINITY;let p=0;return h;function h(_){return _===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(_),e.exit(o),g):_===null||_===32||_===41||Uf(_)?n(_):(e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),w(_))}function g(_){return _===62?(e.enter(o),e.consume(_),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),y(_))}function y(_){return _===62?(e.exit("chunkString"),e.exit(u),g(_)):_===null||_===60||ut(_)?n(_):(e.consume(_),_===92?v:y)}function v(_){return _===60||_===62||_===92?(e.consume(_),y):y(_)}function w(_){return!p&&(_===null||_===41||hn(_))?(e.exit("chunkString"),e.exit(u),e.exit(a),e.exit(r),t(_)):p999||y===null||y===91||y===93&&!d||y===94&&!u&&"_hiddenFootnoteSupport"in a.parser.constructs?n(y):y===93?(e.exit(o),e.enter(i),e.consume(y),e.exit(i),e.exit(r),t):ut(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===null||y===91||y===93||ut(y)||u++>999?(e.exit("chunkString"),p(y)):(e.consume(y),d||(d=!Lt(y)),y===92?g:h)}function g(y){return y===91||y===92||y===93?(e.consume(y),u++,h):h(y)}}function SN(e,t,n,r,i,o){let a;return u;function u(g){return g===34||g===39||g===40?(e.enter(r),e.enter(i),e.consume(g),e.exit(i),a=g===40?41:g,d):n(g)}function d(g){return g===a?(e.enter(i),e.consume(g),e.exit(i),e.exit(r),t):(e.enter(o),m(g))}function m(g){return g===a?(e.exit(o),d(a)):g===null?n(g):ut(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Ft(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(g))}function p(g){return g===a||g===null||ut(g)?(e.exit("chunkString"),m(g)):(e.consume(g),g===92?h:p)}function h(g){return g===a||g===92?(e.consume(g),p):p(g)}}function Vc(e,t){let n;return r;function r(i){return ut(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Lt(i)?Ft(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const pP={name:"definition",tokenize:xP},gP={partial:!0,tokenize:yP};function xP(e,t,n){const r=this;let i;return o;function o(y){return e.enter("definition"),a(y)}function a(y){return kN.call(r,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function u(y){return i=Ni(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),d):n(y)}function d(y){return hn(y)?Vc(e,m)(y):m(y)}function m(y){return _N(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function p(y){return e.attempt(gP,h,h)(y)}function h(y){return Lt(y)?Ft(e,g,"whitespace")(y):g(y)}function g(y){return y===null||ut(y)?(e.exit("definition"),r.parser.defined.push(i),t(y)):n(y)}}function yP(e,t,n){return r;function r(u){return hn(u)?Vc(e,i)(u):n(u)}function i(u){return SN(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function o(u){return Lt(u)?Ft(e,a,"whitespace")(u):a(u)}function a(u){return u===null||ut(u)?t(u):n(u)}}const vP={name:"hardBreakEscape",tokenize:bP};function bP(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return ut(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const _P={name:"headingAtx",resolve:kP,tokenize:SP};function kP(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Zr(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function SP(e,t,n){let r=0;return i;function i(p){return e.enter("atxHeading"),o(p)}function o(p){return e.enter("atxHeadingSequence"),a(p)}function a(p){return p===35&&r++<6?(e.consume(p),a):p===null||hn(p)?(e.exit("atxHeadingSequence"),u(p)):n(p)}function u(p){return p===35?(e.enter("atxHeadingSequence"),d(p)):p===null||ut(p)?(e.exit("atxHeading"),t(p)):Lt(p)?Ft(e,u,"whitespace")(p):(e.enter("atxHeadingText"),m(p))}function d(p){return p===35?(e.consume(p),d):(e.exit("atxHeadingSequence"),u(p))}function m(p){return p===null||p===35||hn(p)?(e.exit("atxHeadingText"),u(p)):(e.consume(p),m)}}const wP=["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"],nw=["pre","script","style","textarea"],CP={concrete:!0,name:"htmlFlow",resolveTo:NP,tokenize:IP},jP={partial:!0,tokenize:RP},EP={partial:!0,tokenize:TP};function NP(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 IP(e,t,n){const r=this;let i,o,a,u,d;return m;function m(P){return p(P)}function p(P){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(P),h}function h(P){return P===33?(e.consume(P),g):P===47?(e.consume(P),o=!0,w):P===63?(e.consume(P),i=3,r.interrupt?t:q):Er(P)?(e.consume(P),a=String.fromCharCode(P),S):n(P)}function g(P){return P===45?(e.consume(P),i=2,y):P===91?(e.consume(P),i=5,u=0,v):Er(P)?(e.consume(P),i=4,r.interrupt?t:q):n(P)}function y(P){return P===45?(e.consume(P),r.interrupt?t:q):n(P)}function v(P){const K="CDATA[";return P===K.charCodeAt(u++)?(e.consume(P),u===K.length?r.interrupt?t:$:v):n(P)}function w(P){return Er(P)?(e.consume(P),a=String.fromCharCode(P),S):n(P)}function S(P){if(P===null||P===47||P===62||hn(P)){const K=P===47,J=a.toLowerCase();return!K&&!o&&nw.includes(J)?(i=1,r.interrupt?t(P):$(P)):wP.includes(a.toLowerCase())?(i=6,K?(e.consume(P),_):r.interrupt?t(P):$(P)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(P):o?k(P):C(P))}return P===45||_r(P)?(e.consume(P),a+=String.fromCharCode(P),S):n(P)}function _(P){return P===62?(e.consume(P),r.interrupt?t:$):n(P)}function k(P){return Lt(P)?(e.consume(P),k):M(P)}function C(P){return P===47?(e.consume(P),M):P===58||P===95||Er(P)?(e.consume(P),N):Lt(P)?(e.consume(P),C):M(P)}function N(P){return P===45||P===46||P===58||P===95||_r(P)?(e.consume(P),N):L(P)}function L(P){return P===61?(e.consume(P),I):Lt(P)?(e.consume(P),L):C(P)}function I(P){return P===null||P===60||P===61||P===62||P===96?n(P):P===34||P===39?(e.consume(P),d=P,D):Lt(P)?(e.consume(P),I):T(P)}function D(P){return P===d?(e.consume(P),d=null,O):P===null||ut(P)?n(P):(e.consume(P),D)}function T(P){return P===null||P===34||P===39||P===47||P===60||P===61||P===62||P===96||hn(P)?L(P):(e.consume(P),T)}function O(P){return P===47||P===62||Lt(P)?C(P):n(P)}function M(P){return P===62?(e.consume(P),A):n(P)}function A(P){return P===null||ut(P)?$(P):Lt(P)?(e.consume(P),A):n(P)}function $(P){return P===45&&i===2?(e.consume(P),H):P===60&&i===1?(e.consume(P),V):P===62&&i===4?(e.consume(P),U):P===63&&i===3?(e.consume(P),q):P===93&&i===5?(e.consume(P),Z):ut(P)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(jP,ee,Y)(P)):P===null||ut(P)?(e.exit("htmlFlowData"),Y(P)):(e.consume(P),$)}function Y(P){return e.check(EP,B,ee)(P)}function B(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),G}function G(P){return P===null||ut(P)?Y(P):(e.enter("htmlFlowData"),$(P))}function H(P){return P===45?(e.consume(P),q):$(P)}function V(P){return P===47?(e.consume(P),a="",W):$(P)}function W(P){if(P===62){const K=a.toLowerCase();return nw.includes(K)?(e.consume(P),U):$(P)}return Er(P)&&a.length<8?(e.consume(P),a+=String.fromCharCode(P),W):$(P)}function Z(P){return P===93?(e.consume(P),q):$(P)}function q(P){return P===62?(e.consume(P),U):P===45&&i===2?(e.consume(P),q):$(P)}function U(P){return P===null||ut(P)?(e.exit("htmlFlowData"),ee(P)):(e.consume(P),U)}function ee(P){return e.exit("htmlFlow"),t(P)}}function TP(e,t,n){const r=this;return i;function i(a){return ut(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):n(a)}function o(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function RP(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(_u,t,n)}}const AP={name:"htmlText",tokenize:MP};function MP(e,t,n){const r=this;let i,o,a;return u;function u(q){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(q),d}function d(q){return q===33?(e.consume(q),m):q===47?(e.consume(q),L):q===63?(e.consume(q),C):Er(q)?(e.consume(q),T):n(q)}function m(q){return q===45?(e.consume(q),p):q===91?(e.consume(q),o=0,v):Er(q)?(e.consume(q),k):n(q)}function p(q){return q===45?(e.consume(q),y):n(q)}function h(q){return q===null?n(q):q===45?(e.consume(q),g):ut(q)?(a=h,V(q)):(e.consume(q),h)}function g(q){return q===45?(e.consume(q),y):h(q)}function y(q){return q===62?H(q):q===45?g(q):h(q)}function v(q){const U="CDATA[";return q===U.charCodeAt(o++)?(e.consume(q),o===U.length?w:v):n(q)}function w(q){return q===null?n(q):q===93?(e.consume(q),S):ut(q)?(a=w,V(q)):(e.consume(q),w)}function S(q){return q===93?(e.consume(q),_):w(q)}function _(q){return q===62?H(q):q===93?(e.consume(q),_):w(q)}function k(q){return q===null||q===62?H(q):ut(q)?(a=k,V(q)):(e.consume(q),k)}function C(q){return q===null?n(q):q===63?(e.consume(q),N):ut(q)?(a=C,V(q)):(e.consume(q),C)}function N(q){return q===62?H(q):C(q)}function L(q){return Er(q)?(e.consume(q),I):n(q)}function I(q){return q===45||_r(q)?(e.consume(q),I):D(q)}function D(q){return ut(q)?(a=D,V(q)):Lt(q)?(e.consume(q),D):H(q)}function T(q){return q===45||_r(q)?(e.consume(q),T):q===47||q===62||hn(q)?O(q):n(q)}function O(q){return q===47?(e.consume(q),H):q===58||q===95||Er(q)?(e.consume(q),M):ut(q)?(a=O,V(q)):Lt(q)?(e.consume(q),O):H(q)}function M(q){return q===45||q===46||q===58||q===95||_r(q)?(e.consume(q),M):A(q)}function A(q){return q===61?(e.consume(q),$):ut(q)?(a=A,V(q)):Lt(q)?(e.consume(q),A):O(q)}function $(q){return q===null||q===60||q===61||q===62||q===96?n(q):q===34||q===39?(e.consume(q),i=q,Y):ut(q)?(a=$,V(q)):Lt(q)?(e.consume(q),$):(e.consume(q),B)}function Y(q){return q===i?(e.consume(q),i=void 0,G):q===null?n(q):ut(q)?(a=Y,V(q)):(e.consume(q),Y)}function B(q){return q===null||q===34||q===39||q===60||q===61||q===96?n(q):q===47||q===62||hn(q)?O(q):(e.consume(q),B)}function G(q){return q===47||q===62||hn(q)?O(q):n(q)}function H(q){return q===62?(e.consume(q),e.exit("htmlTextData"),e.exit("htmlText"),t):n(q)}function V(q){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(q),e.exit("lineEnding"),W}function W(q){return Lt(q)?Ft(e,Z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(q):Z(q)}function Z(q){return e.enter("htmlTextData"),a(q)}}const K0={name:"labelEnd",resolveAll:zP,resolveTo:PP,tokenize:BP},DP={tokenize:$P},OP={tokenize:HP},LP={tokenize:FP};function zP(e){let t=-1;const n=[];for(;++t=3&&(m===null||ut(m))?(e.exit("thematicBreak"),t(m)):n(m)}function d(m){return m===i?(e.consume(m),r++,d):(e.exit("thematicBreakSequence"),Lt(m)?Ft(e,u,"whitespace")(m):u(m))}}const Dr={continuation:{tokenize:QP},exit:eB,name:"list",tokenize:ZP},XP={partial:!0,tokenize:tB},KP={partial:!0,tokenize:JP};function ZP(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return u;function u(y){const v=r.containerState.type||(y===42||y===43||y===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!r.containerState.marker||y===r.containerState.marker:Ry(y)){if(r.containerState.type||(r.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),y===42||y===45?e.check(vf,n,m)(y):m(y);if(!r.interrupt||y===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),d(y)}return n(y)}function d(y){return Ry(y)&&++a<10?(e.consume(y),d):(!r.interrupt||a<2)&&(r.containerState.marker?y===r.containerState.marker:y===41||y===46)?(e.exit("listItemValue"),m(y)):n(y)}function m(y){return e.enter("listItemMarker"),e.consume(y),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||y,e.check(_u,r.interrupt?n:p,e.attempt(XP,g,h))}function p(y){return r.containerState.initialBlankLine=!0,o++,g(y)}function h(y){return Lt(y)?(e.enter("listItemPrefixWhitespace"),e.consume(y),e.exit("listItemPrefixWhitespace"),g):n(y)}function g(y){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(y)}}function QP(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(_u,i,o);function i(u){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ft(e,t,"listItemIndent",r.containerState.size+1)(u)}function o(u){return r.containerState.furtherBlankLines||!Lt(u)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(u)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(KP,t,a)(u))}function a(u){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ft(e,e.attempt(Dr,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u)}}function JP(e,t,n){const r=this;return Ft(e,i,"listItemIndent",r.containerState.size+1);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(o):n(o)}}function eB(e){e.exit(this.containerState.type)}function tB(e,t,n){const r=this;return Ft(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const a=r.events[r.events.length-1];return!Lt(o)&&a&&a[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const rw={name:"setextUnderline",resolveTo:nB,tokenize:rB};function nB(e,t){let n=e.length,r,i,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",a,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function rB(e,t,n){const r=this;let i;return o;function o(m){let p=r.events.length,h;for(;p--;)if(r.events[p][1].type!=="lineEnding"&&r.events[p][1].type!=="linePrefix"&&r.events[p][1].type!=="content"){h=r.events[p][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||h)?(e.enter("setextHeadingLine"),i=m,a(m)):n(m)}function a(m){return e.enter("setextHeadingLineSequence"),u(m)}function u(m){return m===i?(e.consume(m),u):(e.exit("setextHeadingLineSequence"),Lt(m)?Ft(e,d,"lineSuffix")(m):d(m))}function d(m){return m===null||ut(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const iB={tokenize:sB};function sB(e){const t=this,n=e.attempt(_u,r,e.attempt(this.parser.constructs.flowInitial,i,Ft(e,e.attempt(this.parser.constructs.flow,i,e.attempt(uP,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const oB={resolveAll:CN()},aB=wN("string"),lB=wN("text");function wN(e){return{resolveAll:CN(e==="text"?cB:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,a,u);return a;function a(p){return m(p)?o(p):u(p)}function u(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),d}function d(p){return m(p)?(n.exit("data"),o(p)):(n.consume(p),d)}function m(p){if(p===null)return!0;const h=i[p];let g=-1;if(h)for(;++g-1){const u=a[0];typeof u=="string"?a[0]=u.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}function kB(e,t){let n=-1;const r=[];let i;for(;++n0){const vt=Ae.tokenStack[Ae.tokenStack.length-1];(vt[1]||sw).call(Ae,void 0,vt[0])}for(ve.position={start:Qs(de.length>0?de[0][1].start:{line:1,column:1,offset:0}),end:Qs(de.length>0?de[de.length-2][1].end:{line:1,column:1,offset:0})},Fe=-1;++Fe0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,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 LB(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zB(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function PB(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=wl(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let a,u=e.footnoteCounts.get(r);u===void 0?(u=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=o+1,u+=1,e.footnoteCounts.set(r,u);const d={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(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 BB(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 $B(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function NN(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift({type:"text",value:"["});const a=i[i.length-1];return a&&a.type==="text"?a.value+=r:i.push({type:"text",value:r}),i}function HB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return NN(e,t);const i={src:wl(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)}function FB(e,t){const n={src:wl(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 r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function VB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function UB(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return NN(e,t);const i={href:wl(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function GB(e,t){const n={href:wl(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function qB(e,t,n){const r=e.all(t),i=n?WB(n):IN(t),o={},a=[];if(typeof t.checked=="boolean"){const p=r[0];let h;p&&p.type==="element"&&p.tagName==="p"?h=p:(h={type:"element",tagName:"p",properties:{},children:[]},r.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.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 YB(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},u=U0(t.children[1]),d=lN(t.children[t.children.length-1]);u&&d&&(a.position={start:u,end:d}),i.push(a)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)}function JB(e,t,n){const r=n?n.children:void 0,o=(r?r.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),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(lw(t.slice(i),i>0,!1)),o.join("")}function lw(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===ow||o===aw;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===ow||o===aw;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function n9(e,t){const n={type:"text",value:t9(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function r9(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const i9={blockquote:MB,break:DB,code:OB,delete:LB,emphasis:zB,footnoteReference:PB,heading:BB,html:$B,imageReference:HB,image:FB,inlineCode:VB,linkReference:UB,link:GB,listItem:qB,list:YB,paragraph:XB,root:KB,strong:ZB,table:QB,tableCell:e9,tableRow:JB,text:n9,thematicBreak:r9,toml:Vd,yaml:Vd,definition:Vd,footnoteDefinition:Vd};function Vd(){}const TN=-1,Im=0,Uc=1,Gf=2,Z0=3,Q0=4,J0=5,ev=6,RN=7,AN=8,cw=typeof self=="object"?self:globalThis,s9=(e,t)=>{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,a]=t[i];switch(o){case Im:case TN:return n(a,i);case Uc:{const u=n([],i);for(const d of a)u.push(r(d));return u}case Gf:{const u=n({},i);for(const[d,m]of a)u[r(d)]=r(m);return u}case Z0:return n(new Date(a),i);case Q0:{const{source:u,flags:d}=a;return n(new RegExp(u,d),i)}case J0:{const u=n(new Map,i);for(const[d,m]of a)u.set(r(d),r(m));return u}case ev:{const u=n(new Set,i);for(const d of a)u.add(r(d));return u}case RN:{const{name:u,message:d}=a;return n(new cw[u](d),i)}case AN:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);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 cw[o](a),i)};return r},uw=e=>s9(new Map,e)(0),Pa="",{toString:o9}={},{keys:a9}=Object,jc=e=>{const t=typeof e;if(t!=="object"||!e)return[Im,t];const n=o9.call(e).slice(8,-1);switch(n){case"Array":return[Uc,Pa];case"Object":return[Gf,Pa];case"Date":return[Z0,Pa];case"RegExp":return[Q0,Pa];case"Map":return[J0,Pa];case"Set":return[ev,Pa];case"DataView":return[Uc,n]}return n.includes("Array")?[Uc,n]:n.includes("Error")?[RN,n]:[Gf,n]},Ud=([e,t])=>e===Im&&(t==="function"||t==="symbol"),l9=(e,t,n,r)=>{const i=(a,u)=>{const d=r.push(a)-1;return n.set(u,d),d},o=a=>{if(n.has(a))return n.get(a);let[u,d]=jc(a);switch(u){case Im:{let p=a;switch(d){case"bigint":u=AN,p=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+d);p=null;break;case"undefined":return i([TN],a)}return i([u,p],a)}case Uc:{if(d){let g=a;return d==="DataView"?g=new Uint8Array(a.buffer):d==="ArrayBuffer"&&(g=new Uint8Array(a)),i([d,[...g]],a)}const p=[],h=i([u,p],a);for(const g of a)p.push(o(g));return h}case Gf:{if(d)switch(d){case"BigInt":return i([d,a.toString()],a);case"Boolean":case"Number":case"String":return i([d,a.valueOf()],a)}if(t&&"toJSON"in a)return o(a.toJSON());const p=[],h=i([u,p],a);for(const g of a9(a))(e||!Ud(jc(a[g])))&&p.push([o(g),o(a[g])]);return h}case Z0:return i([u,a.toISOString()],a);case Q0:{const{source:p,flags:h}=a;return i([u,{source:p,flags:h}],a)}case J0:{const p=[],h=i([u,p],a);for(const[g,y]of a)(e||!(Ud(jc(g))||Ud(jc(y))))&&p.push([o(g),o(y)]);return h}case ev:{const p=[],h=i([u,p],a);for(const g of a)(e||!Ud(jc(g)))&&p.push(o(g));return h}}const{message:m}=a;return i([u,{name:d,message:m}],a)};return o},dw=(e,{json:t,lossy:n}={})=>{const r=[];return l9(!(t||n),!!t,new Map,r)(e),r},qf=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?uw(dw(e,t)):structuredClone(e):(e,t)=>uw(dw(e,t));function c9(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 d9(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||c9,r=e.options.footnoteBackLabel||u9,i=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,y);typeof k=="string"&&(k={type:"text",value:k}),v.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(y>1?"-"+y:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(d,y),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}const S=p[p.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 p.push(...v);const _={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(p,!0)};e.patch(m,_),u.push(_)}if(u.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...qf(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:` -`}]}}const Tm=(function(e){if(e==null)return p9;if(typeof e=="function")return Rm(e);if(typeof e=="object")return Array.isArray(e)?f9(e):m9(e);if(typeof e=="string")return h9(e);throw new Error("Expected function, string, or object as test")});function f9(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let y=MN,v,w,S;if((!t||o(d,m,p[p.length-1]||void 0))&&(y=v9(n(d,p)),y[0]===My))return y;if("children"in d&&d.children){const _=d;if(_.children&&y[0]!==y9)for(w=(r?_.children.length:-1)+a,S=p.concat(_);w>-1&&w<_.children.length;){const k=_.children[w];if(v=u(k,w,S)(),v[0]===My)return v;w=typeof v[1]=="number"?v[1]:w+a}}return y}}}function v9(e){return Array.isArray(e)?e:typeof e=="number"?[x9,e]:e==null?MN:[e]}function tv(e,t,n,r){let i,o,a;typeof t=="function"&&typeof n!="function"?(o=void 0,a=t,i=n):(o=t,a=n,i=r),DN(e,o,u,i);function u(d,m){const p=m[m.length-1],h=p?p.children.indexOf(d):void 0;return a(d,h,p)}}const Dy={}.hasOwnProperty,b9={};function _9(e,t){const n=t||b9,r=new Map,i=new Map,o=new Map,a={...i9,...n.handlers},u={all:m,applyData:S9,definitionById:r,footnoteById:i,footnoteCounts:o,footnoteOrder:[],handlers:a,one:d,options:n,patch:k9,wrap:C9};return tv(e,function(p){if(p.type==="definition"||p.type==="footnoteDefinition"){const h=p.type==="definition"?r:i,g=String(p.identifier).toUpperCase();h.has(g)||h.set(g,p)}}),u;function d(p,h){const g=p.type,y=u.handlers[g];if(Dy.call(u.handlers,g)&&y)return y(u,p,h);if(u.options.passThrough&&u.options.passThrough.includes(g)){if("children"in p){const{children:w,...S}=p,_=qf(S);return _.children=u.all(p),_}return qf(p)}return(u.options.unknownHandler||w9)(u,p,h)}function m(p){const h=[];if("children"in p){const g=p.children;let y=-1;for(;++y0&&n.push({type:"text",value:` -`}),n}function fw(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function mw(e,t){const n=_9(e,t),r=n.one(e,void 0),i=d9(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:` -`},i),o}function j9(e,t){return e&&"run"in e?async function(n,r){const i=mw(n,{file:r,...t});await e.run(i,r)}:function(n,r){return mw(n,{file:r,...e||t})}}function hw(e){if(e)throw e}var jg,pw;function E9(){if(pw)return jg;pw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=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 p=e.call(m,"constructor"),h=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!p&&!h)return!1;var g;for(g in m);return typeof g>"u"||e.call(m,g)},a=function(m,p){n&&p.name==="__proto__"?n(m,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):m[p.name]=p.newValue},u=function(m,p){if(p==="__proto__")if(e.call(m,p)){if(r)return r(m,p).value}else return;return m[p]};return jg=function d(){var m,p,h,g,y,v,w=arguments[0],S=1,_=arguments.length,k=!1;for(typeof w=="boolean"&&(k=w,w=arguments[1]||{},S=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});S<_;++S)if(m=arguments[S],m!=null)for(p in m)h=u(w,p),g=u(m,p),w!==g&&(k&&g&&(o(g)||(y=i(g)))?(y?(y=!1,v=h&&i(h)?h:[]):v=h&&o(h)?h:{},a(w,{name:p,newValue:d(k,v,g)})):typeof g<"u"&&a(w,{name:p,newValue:g}));return w},jg}var N9=E9();const Eg=Zo(N9);function Oy(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function I9(){const e=[],t={run:n,use:r};return t;function n(...i){let o=-1;const a=i.pop();if(typeof a!="function")throw new TypeError("Expected function as last argument, not "+a);u(null,...i);function u(d,...m){const p=e[++o];let h=-1;if(d){a(d);return}for(;++ha.length;let d;u&&a.push(i);try{d=e.apply(this,a)}catch(m){const p=m;if(u&&n)throw p;return i(p)}u||(d&&d.then&&typeof d.then=="function"?d.then(o,i):d instanceof Error?i(d):o(d))}function i(a,...u){n||(n=!0,t(a,...u))}function o(a){i(null,a)}}const $i={basename:R9,dirname:A9,extname:M9,join:D9,sep:"/"};function R9(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');ku(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,u=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else a<0&&(o=!0,a=i+1),u>-1&&(e.codePointAt(i)===t.codePointAt(u--)?u<0&&(r=i):(u=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function A9(e){if(ku(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function M9(e){ku(e);let t=e.length,n=-1,r=0,i=-1,o=0,a;for(;t--;){const u=e.codePointAt(t);if(u===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),u===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function D9(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function L9(e,t){let n="",r=0,i=-1,o=0,a=-1,u,d;for(;++a<=e.length;){if(a2){if(d=n.lastIndexOf("/"),d!==n.length-1){d<0?(n="",r=0):(n=n.slice(0,d),r=n.length-1-n.lastIndexOf("/")),i=a,o=0;continue}}else if(n.length>0){n="",r=0,i=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,a):n=e.slice(i+1,a),r=a-i-1;i=a,o=0}else u===46&&o>-1?o++:o=-1}return n}function ku(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const z9={cwd:P9};function P9(){return"/"}function Ly(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function B9(e){if(typeof e=="string")e=new URL(e);else if(!Ly(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 $9(e)}function $9(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[y,...v]=p;const w=r[g][1];Oy(w)&&Oy(y)&&(y=Eg(!0,w,y)),r[g]=[m,y,...v]}}}}const U9=new nv().freeze();function Rg(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Ag(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Mg(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 xw(e){if(!Oy(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function yw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Gd(e){return G9(e)?e:new ON(e)}function G9(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function q9(e){return typeof e=="string"||W9(e)}function W9(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y9="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",vw=[],bw={allowDangerousHtml:!0},X9=/^(https?|ircs?|mailto|xmpp)$/i,K9=[{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 Z9(e){const t=Q9(e),n=J9(e);return e$(t.runSync(t.parse(n),n),e)}function Q9(e){const t=e.rehypePlugins||vw,n=e.remarkPlugins||vw,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...bw}:bw;return U9().use(AB).use(n).use(j9,r).use(t)}function J9(e){const t=e.children||"",n=new ON;return typeof t=="string"&&(n.value=t),n}function e$(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,u=t.unwrapDisallowed,d=t.urlTransform||t$;for(const p of K9)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+Y9+p.id,void 0);return tv(e,m),pz(e,{Fragment:c.Fragment,components:i,ignoreInvalidStyle:!0,jsx:c.jsx,jsxs:c.jsxs,passKeys:!0,passNode:!0});function m(p,h,g){if(p.type==="raw"&&g&&typeof h=="number")return a?g.children.splice(h,1):g.children[h]={type:"text",value:p.value},h;if(p.type==="element"){let y;for(y in Sg)if(Object.hasOwn(Sg,y)&&Object.hasOwn(p.properties,y)){const v=p.properties[y],w=Sg[y];(w===null||w.includes(p.tagName))&&(p.properties[y]=d(String(v||""),y,p))}}if(p.type==="element"){let y=n?!n.includes(p.tagName):o?o.includes(p.tagName):!1;if(!y&&r&&typeof h=="number"&&(y=!r(p,h,g)),y&&g&&typeof h=="number")return u&&p.children?g.children.splice(h,1,...p.children):g.children.splice(h,1),h}}}function t$(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X9.test(e.slice(0,t))?e:""}function _w(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function n$(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function r$(e,t,n){const i=Tm((n||{}).ignore||[]),o=i$(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+C[0].length,_=!0),!g.global)break;C=g.exec(m.value)}return _?(v?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=_w(e,"(");let o=_w(e,")");for(;r!==-1&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}function LN(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Uo(n)||Em(n))&&(!t||n!==47)}zN.peek=E$;function v$(){this.buffer()}function b$(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _$(){this.buffer()}function k$(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function S$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ni(this.sliceSerialize(e)).toLowerCase(),n.label=t}function w$(e){this.exit(e)}function C$(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ni(this.sliceSerialize(e)).toLowerCase(),n.label=t}function j$(e){this.exit(e)}function E$(){return"["}function zN(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),u(),a(),o+=i.move("]"),o}function N$(){return{enter:{gfmFootnoteCallString:v$,gfmFootnoteCall:b$,gfmFootnoteDefinitionLabelString:_$,gfmFootnoteDefinition:k$},exit:{gfmFootnoteCallString:S$,gfmFootnoteCall:w$,gfmFootnoteDefinitionLabelString:C$,gfmFootnoteDefinition:j$}}}function I$(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:zN},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,o,a){const u=o.createTracker(a);let d=u.move("[^");const m=o.enter("footnoteDefinition"),p=o.enter("label");return d+=u.move(o.safe(o.associationId(r),{before:d,after:"]"})),p(),d+=u.move("]:"),r.children&&r.children.length>0&&(u.shift(4),d+=u.move((t?` -`:" ")+o.indentLines(o.containerFlow(r,u.current()),t?PN:T$))),m(),d}}function T$(e,t,n){return t===0?e:PN(e,t,n)}function PN(e,t,n){return(n?"":" ")+e}const R$=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];BN.peek=L$;function A$(){return{canContainEols:["delete"],enter:{strikethrough:D$},exit:{strikethrough:O$}}}function M$(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:R$}],handlers:{delete:BN}}}function D$(e){this.enter({type:"delete",children:[]},e)}function O$(e){this.exit(e)}function BN(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let a=i.move("~~");return a+=n.containerPhrasing(e,{...i.current(),before:a,after:"~"}),a+=i.move("~~"),o(),a}function L$(){return"~"}function z$(e){return e.length}function P$(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||z$,o=[],a=[],u=[],d=[];let m=0,p=-1;for(;++pm&&(m=e[p].length);++_d[_])&&(d[_]=C)}w.push(k)}a[p]=w,u[p]=S}let h=-1;if(typeof r=="object"&&"length"in r)for(;++hd[h]&&(d[h]=k),y[h]=k),g[h]=C}a.splice(1,0,g),u.splice(1,0,y),p=-1;const v=[];for(;++p "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),H$);return i(),a}function H$(e,t,n){return">"+(n?"":" ")+e}function F$(e,t){return Sw(e,t.inConstruct,!0)&&!Sw(e,t.notInConstruct,!1)}function Sw(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ra&&(a=o):o=1,i=r+t.length,r=n.indexOf(t,i);return a}function U$(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 G$(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 q$(e,t,n,r){const i=G$(n),o=e.value||"",a=i==="`"?"GraveAccent":"Tilde";if(U$(e,n)){const h=n.enter("codeIndented"),g=n.indentLines(o,W$);return h(),g}const u=n.createTracker(r),d=i.repeat(Math.max(V$(o,i)+1,3)),m=n.enter("codeFenced");let p=u.move(d);if(e.lang){const h=n.enter(`codeFencedLang${a}`);p+=u.move(n.safe(e.lang,{before:p,after:" ",encode:["`"],...u.current()})),h()}if(e.lang&&e.meta){const h=n.enter(`codeFencedMeta${a}`);p+=u.move(" "),p+=u.move(n.safe(e.meta,{before:p,after:` -`,encode:["`"],...u.current()})),h()}return p+=u.move(` -`),o&&(p+=u.move(o+` -`)),p+=u.move(d),m(),p}function W$(e,t,n){return(n?"":" ")+e}function rv(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 Y$(e,t,n,r){const i=rv(n),o=i==='"'?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const d=n.createTracker(r);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(" "+i),m+=d.move(n.safe(e.title,{before:m,after:i,...d.current()})),m+=d.move(i),u()),a(),m}function X$(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 au(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Wf(e,t,n){const r=cl(e),i=cl(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}$N.peek=K$;function $N(e,t,n,r){const i=X$(n),o=n.enter("emphasis"),a=n.createTracker(r),u=a.move(i);let d=a.move(n.containerPhrasing(e,{after:i,before:u,...a.current()}));const m=d.charCodeAt(0),p=Wf(r.before.charCodeAt(r.before.length-1),m,i);p.inside&&(d=au(m)+d.slice(1));const h=d.charCodeAt(d.length-1),g=Wf(r.after.charCodeAt(0),h,i);g.inside&&(d=d.slice(0,-1)+au(h));const y=a.move(i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},u+d+y}function K$(e,t,n){return n.options.emphasis||"*"}function Z$(e,t){let n=!1;return tv(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,My}),!!((!e.depth||e.depth<3)&&Y0(e)&&(t.options.setext||n))}function Q$(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(Z$(e,n)){const p=n.enter("headingSetext"),h=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` -`,after:` -`});return h(),p(),g+` -`+(i===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` -`))+1))}const a="#".repeat(i),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=au(m.charCodeAt(0))+m.slice(1)),m=m?a+" "+m:a,n.options.closeAtx&&(m+=" "+a),d(),u(),m}HN.peek=J$;function HN(e){return e.value||""}function J$(){return"<"}FN.peek=e7;function FN(e,t,n,r){const i=rv(n),o=i==='"'?"Quote":"Apostrophe",a=n.enter("image");let u=n.enter("label");const d=n.createTracker(r);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(" "+i),m+=d.move(n.safe(e.title,{before:m,after:i,...d.current()})),m+=d.move(i),u()),m+=d.move(")"),a(),m}function e7(){return"!"}VN.peek=t7;function VN(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(r);let d=u.move("![");const m=n.safe(e.alt,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const p=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=p,o(),i==="full"||!m||m!==h?d+=u.move(h+"]"):i==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function t7(){return"!"}UN.peek=n7;function UN(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}qN.peek=r7;function qN(e,t,n,r){const i=rv(n),o=i==='"'?"Quote":"Apostrophe",a=n.createTracker(r);let u,d;if(GN(e,n)){const p=n.stack;n.stack=[],u=n.enter("autolink");let h=a.move("<");return h+=a.move(n.containerPhrasing(e,{before:h,after:">",...a.current()})),h+=a.move(">"),u(),n.stack=p,h}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(" "+i),m+=a.move(n.safe(e.title,{before:m,after:i,...a.current()})),m+=a.move(i),d()),m+=a.move(")"),u(),m}function r7(e,t,n){return GN(e,n)?"<":"["}WN.peek=i7;function WN(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(r);let d=u.move("[");const m=n.containerPhrasing(e,{before:d,after:"]",...u.current()});d+=u.move(m+"]["),a();const p=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:d,after:"]",...u.current()});return a(),n.stack=p,o(),i==="full"||!m||m!==h?d+=u.move(h+"]"):i==="shortcut"?d=d.slice(0,-1):d+=u.move("]"),d}function i7(){return"["}function iv(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 s7(e){const t=iv(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 o7(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 YN(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 a7(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?o7(n):iv(n);const u=e.ordered?a==="."?")":".":s7(n);let d=t&&n.bulletLastUsed?a===n.bulletLastUsed:!1;if(!e.ordered){const p=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&p&&(!p.children||!p.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),YN(n)===a&&p){let h=-1;for(;++h-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);const u=n.createTracker(r);u.move(o+" ".repeat(a-o.length)),u.shift(a);const d=n.enter("listItem"),m=n.indentLines(n.containerFlow(e,u.current()),p);return d(),m;function p(h,g,y){return g?(y?"":" ".repeat(a))+h:(y?o:o+" ".repeat(a-o.length))+h}}function u7(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,r);return o(),i(),a}const d7=Tm(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function f7(e,t,n,r){return(e.children.some(function(a){return d7(a)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function m7(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}XN.peek=h7;function XN(e,t,n,r){const i=m7(n),o=n.enter("strong"),a=n.createTracker(r),u=a.move(i+i);let d=a.move(n.containerPhrasing(e,{after:i,before:u,...a.current()}));const m=d.charCodeAt(0),p=Wf(r.before.charCodeAt(r.before.length-1),m,i);p.inside&&(d=au(m)+d.slice(1));const h=d.charCodeAt(d.length-1),g=Wf(r.after.charCodeAt(0),h,i);g.inside&&(d=d.slice(0,-1)+au(h));const y=a.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},u+d+y}function h7(e,t,n){return n.options.strong||"*"}function p7(e,t,n,r){return n.safe(e.value,r)}function g7(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 x7(e,t,n){const r=(YN(n)+(n.options.ruleSpaces?" ":"")).repeat(g7(n));return n.options.ruleSpaces?r.slice(0,-1):r}const KN={blockquote:$$,break:ww,code:q$,definition:Y$,emphasis:$N,hardBreak:ww,heading:Q$,html:HN,image:FN,imageReference:VN,inlineCode:UN,link:qN,linkReference:WN,list:a7,listItem:c7,paragraph:u7,root:f7,strong:XN,text:p7,thematicBreak:x7};function y7(){return{enter:{table:v7,tableData:Cw,tableHeader:Cw,tableRow:_7},exit:{codeText:k7,table:b7,tableData:zg,tableHeader:zg,tableRow:zg}}}function v7(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 b7(e){this.exit(e),this.data.inTable=void 0}function _7(e){this.enter({type:"tableRow",children:[]},e)}function zg(e){this.exit(e)}function Cw(e){this.enter({type:"tableCell",children:[]},e)}function k7(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,S7));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function S7(e,t){return t==="|"?t:e}function w7(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=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(y,v,w,S){return m(p(y,w,S),y.align)}function u(y,v,w,S){const _=h(y,w,S),k=m([_]);return k.slice(0,k.indexOf(` -`))}function d(y,v,w,S){const _=w.enter("tableCell"),k=w.enter("phrasing"),C=w.containerPhrasing(y,{...S,before:o,after:o});return k(),_(),C}function m(y,v){return P$(y,{align:v,alignDelimiters:r,padding:n,stringLength:i})}function p(y,v,w){const S=y.children;let _=-1;const k=[],C=v.enter("table");for(;++_0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const F7={tokenize:K7,partial:!0};function V7(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W7,continuation:{tokenize:Y7},exit:X7}},text:{91:{name:"gfmFootnoteCall",tokenize:q7},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:U7,resolveTo:G7}}}}function U7(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;i--;){const d=r.events[i][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=Ni(r.sliceSerialize({start:a.end,end:r.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 G7(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 r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},i.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",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",o,t],["enter",a,t],["exit",a,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...u),e}function q7(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o=0,a;return u;function u(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),d}function d(h){return h!==94?n(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",m)}function m(h){if(o>999||h===93&&!a||h===null||h===91||hn(h))return n(h);if(h===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return i.includes(Ni(r.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(h)}return hn(h)||(a=!0),o++,e.consume(h),h===92?p:m}function p(h){return h===91||h===92||h===93?(e.consume(h),o++,m):m(h)}}function W7(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.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",p):n(v)}function p(v){if(a>999||v===93&&!u||v===null||v===91||hn(v))return n(v);if(v===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return o=Ni(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return hn(v)||(u=!0),a++,e.consume(v),v===92?h:p}function h(v){return v===91||v===92||v===93?(e.consume(v),a++,p):p(v)}function g(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),i.includes(o)||i.push(o),Ft(e,y,"gfmFootnoteDefinitionWhitespace")):n(v)}function y(v){return t(v)}}function Y7(e,t,n){return e.check(_u,t,e.attempt(F7,t,n))}function X7(e){e.exit("gfmFootnoteDefinition")}function K7(e,t,n){const r=this;return Ft(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function Z7(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:o,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(a,u){let d=-1;for(;++d1?d(v):(a.consume(v),h++,y);if(h<2&&!n)return d(v);const S=a.exit("strikethroughSequenceTemporary"),_=cl(v);return S._open=!_||_===2&&!!w,S._close=!w||w===2&&!!_,u(v)}}}class Q7{constructor(){this.map=[]}add(t,n,r){J7(this,t,n,r)}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 r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function J7(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const B=r.events[A][1].type;if(B==="lineEnding"||B==="linePrefix")A--;else break}const $=A>-1?r.events[A][1].type:null,Y=$==="tableHead"||$==="tableRow"?I:d;return Y===I&&r.parser.lazy[r.now().line]?n(M):Y(M)}function d(M){return e.enter("tableHead"),e.enter("tableRow"),m(M)}function m(M){return M===124||(a=!0,o+=1),p(M)}function p(M){return M===null?n(M):ut(M)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),y):n(M):Lt(M)?Ft(e,p,"whitespace")(M):(o+=1,a&&(a=!1,i+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),a=!0,p):(e.enter("data"),h(M)))}function h(M){return M===null||M===124||hn(M)?(e.exit("data"),p(M)):(e.consume(M),M===92?g:h)}function g(M){return M===92||M===124?(e.consume(M),h):h(M)}function y(M){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(M):(e.enter("tableDelimiterRow"),a=!1,Lt(M)?Ft(e,v,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):v(M))}function v(M){return M===45||M===58?S(M):M===124?(a=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),w):L(M)}function w(M){return Lt(M)?Ft(e,S,"whitespace")(M):S(M)}function S(M){return M===58?(o+=1,a=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),_):M===45?(o+=1,_(M)):M===null||ut(M)?N(M):L(M)}function _(M){return M===45?(e.enter("tableDelimiterFiller"),k(M)):L(M)}function k(M){return M===45?(e.consume(M),k):M===58?(a=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),C):(e.exit("tableDelimiterFiller"),C(M))}function C(M){return Lt(M)?Ft(e,N,"whitespace")(M):N(M)}function N(M){return M===124?v(M):M===null||ut(M)?!a||i!==o?L(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(M)):L(M)}function L(M){return n(M)}function I(M){return e.enter("tableRow"),D(M)}function D(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),D):M===null||ut(M)?(e.exit("tableRow"),t(M)):Lt(M)?Ft(e,D,"whitespace")(M):(e.enter("data"),T(M))}function T(M){return M===null||M===124||hn(M)?(e.exit("data"),D(M)):(e.consume(M),M===92?O:T)}function O(M){return M===92||M===124?(e.consume(M),T):T(M)}}function rH(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],a=[0,0,0,0],u=!1,d=0,m,p,h;const g=new Q7;for(;++nn[2]+1){const v=n[2]+1,w=n[3]-n[2]-1;e.add(v,w,[])}}e.add(n[3]+1,0,[["exit",h,t]])}return i!==void 0&&(o.end=Object.assign({},Va(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Ew(e,t,n,r,i){const o=[],a=Va(t.events,n);i&&(i.end=Object.assign({},a),o.push(["exit",i,t])),r.end=Object.assign({},a),o.push(["exit",r,t]),e.add(n+1,0,o)}function Va(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const iH={name:"tasklistCheck",tokenize:oH};function sH(){return{text:{91:iH}}}function oH(e,t,n){const r=this;return i;function i(d){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),o)}function o(d){return hn(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 ut(d)?t(d):Lt(d)?e.check({tokenize:aH},t,n)(d):n(d)}}function aH(e,t,n){return Ft(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function lH(e){return pN([M7(),V7(),Z7(e),tH(),sH()])}const cH={};function uH(e){const t=this,n=e||cH,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),a=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(lH(n)),o.push(I7()),a.push(T7(n))}const dH=30,Pg=10;function fH({className:e,children:t}){const[n,r]=E.useState(!1),[i,o]=E.useState(!1),a=String(t).replace(/\n$/,""),u=e?.replace("language-","")||"",d=a.split(` -`),m=d.length>dH,p=m?d.length-Pg*2:0,h=E.useCallback(()=>{navigator.clipboard.writeText(a),r(!0),setTimeout(()=>r(!1),1500)},[a]);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:[u||"code",m?` (${d.length} lines)`:""]}),c.jsx("button",{className:"code-block-copy",onClick:h,children:n?c.jsxs(c.Fragment,{children:[c.jsx(vl,{})," ",c.jsx("span",{children:"Copied"})]}):c.jsxs(c.Fragment,{children:[c.jsx(hm,{})," ",c.jsx("span",{children:"Copy"})]})})]}),c.jsx("pre",{children:c.jsx("code",{className:e,children:m&&!i?c.jsxs(c.Fragment,{children:[d.slice(0,Pg).join(` -`)+` -`,c.jsxs("span",{className:"code-block-omitted",onClick:()=>o(!0),children:["... +",p," lines (click to expand)"]}),` -`+d.slice(-Pg).join(` -`)]}):a})}),m&&i&&c.jsxs("button",{className:"code-block-collapse-btn",onClick:()=>o(!1),children:["Collapse (",d.length," lines)"]})]})}const mH={code({className:e,children:t,...n}){return e?.startsWith("language-")?c.jsx(fH,{className:e,children:t}):c.jsx("code",{className:e,...n,children:t})}},hH=3e3,pH=60,Bg=800;function Nw(e){if(e.length>hH)return!0;let t=0;for(let n=0;n=pH)return!0;return!1}function gH(e){const t=e.lastIndexOf(` -`,Bg);return e.slice(0,t>Bg/2?t:Bg)}const rr=Ct.memo(function({content:t,className:n="msg-content-agent",collapseMode:r="auto"}){const i=r!=="never"&&Nw(t),[o,a]=E.useState(i);E.useEffect(()=>{a(r!=="never"&&Nw(t))},[r,t]);const u=o?gH(t):t,d=t.split(` -`).length,m=t.length;return c.jsxs("div",{className:n,children:[c.jsx(Z9,{remarkPlugins:[uH],components:mH,children:u}),i&&o&&c.jsxs("button",{className:"msg-collapse-toggle",onClick:()=>a(!1),children:["Show more (",d," lines, ",(m/1e3).toFixed(1),"k chars)"]}),i&&!o&&c.jsx("button",{className:"msg-collapse-toggle",onClick:()=>a(!0),children:"Show less"})]})}),Iw={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},lu="codex",$g="native",xH=["codex","native","claude_code","cursor","opencode"],yH=["native","codex","claude_code","cursor","opencode"];function sI(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 oI(e){const t=sI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function vH(e,t,n){const r=String(e.role_id??"").trim(),i=String(e.role_label??"").trim(),o=`${r} ${i} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(m=>String(m??"").trim()).filter(Boolean)),u=t.map(m=>{const p=String(m.employee_id??"").trim(),h=String(m.employee_name??p).trim()||p,g=String(m.role_id??"").trim(),y=String(m.category??"").trim(),v=[g,y].filter(Boolean).join(" · ")||p;return{kind:"employee",id:p,name:h,subtitle:v,category:y,searchText:`${p} ${h} ${g} ${y} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(p)||g===r?0:2}}).filter(m=>m.id).sort((m,p)=>m.rank-p.rank||m.name.localeCompare(p.name)),d=n.map(m=>{const p=String(m.template_id??"").trim(),h=String(m.template_name??p).trim()||p,g=String(m.category??"").trim(),y=[g,p].filter(Boolean).join(" · ")||p,v=`${p} ${h} ${g} ${(m.domains??[]).join(" ")} ${(m.tags??[]).join(" ")}`.toLowerCase(),w=o.split(/[^a-z0-9]+/).filter(S=>S.length>=3).reduce((S,_)=>S+(v.includes(_)?1:0),0);return{kind:"template",id:p,name:h,subtitle:y,category:g,searchText:v,rank:w}}).filter(m=>m.id).sort((m,p)=>p.rank-m.rank||m.name.localeCompare(p.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 bH(e,t){const n=oI(t);return e.find(r=>`${r.kind}:${r.id}`===n)??e[0]}function _H(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(r=>e.searchText.includes(r))}function kH(e){return e.map(t=>{const n=String(t.role_id??"").trim(),r=String(t.existing_employee?.employee_id??"").trim(),i=String(t.candidate?.template_id??"").trim(),o=r?{kind:"employee",id:r}:i?{kind:"template",id:i}:{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??lu,selected_agent:t.selected_agent??t.default_agent??lu,default_source:"recruitment"}}).filter(t=>t.role_id)}function SH(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 Tw(e,t){const n={},r=e.staffing_selections??{};for(const i of t){const o=String(i.role_id??"").trim();o&&(n[o]=sI(r[o]??i.default_selection))}return n}function Rw(e,t){const n=e.recruitment_role_agents??{},r={};for(const i of t){const o=String(i.role_id??"").trim();o&&(r[o]=n[o]??i.selected_agent??i.default_agent??lu)}return r}function wH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.checkpoint_reply_kind??"").trim())}const aI=Ct.memo(function({meta:t,onReply:n,responded:r}){const i=t.proposals??[],o=E.useMemo(()=>{const O={};for(const M of i){const A=String(M.role_id??"").trim();A&&(O[A]=M)}return O},[i]),a=E.useMemo(()=>t.staffing_roles?.length?t.staffing_roles:kH(i),[t.staffing_roles,i]),u=t.staffing_pool?.employees??[],d=t.staffing_pool?.templates??[],m=t.recruitment_rationales??[],p=E.useMemo(()=>{const O={};for(const M of a){const A=String(M.role_id??"").trim();A&&(O[A]=vH(M,u,d))}return O},[u,a,d]),[h,g]=E.useState({}),[y,v]=E.useState(""),[w,S]=E.useState(()=>Tw(t,a)),[_,k]=E.useState(()=>Rw(t,a)),[C,N]=E.useState(t.recruitment_agent??$g),L=r;E.useEffect(()=>{!L||!wH(t)||(S(Tw(t,a)),k(Rw(t,a)),N(t.recruitment_agent??$g))},[L,t,a]),E.useEffect(()=>{N(t.recruitment_agent??$g)},[t.recruitment_agent]);const I=E.useCallback(O=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Recruitment checkpoint reply requires checkpoint_id metadata.");const A=String(t.checkpoint_type??"").trim();return{response_to_checkpoint_id:M,response_to_checkpoint_type:A||"company_recruitment_confirmation",checkpoint_reply_kind:O,staffing_selections:w,recruitment_agent:C,recruitment_role_agents:a.reduce(($,Y)=>{const B=String(Y.role_id??"").trim();return B&&($[B]=_[B]??Y.selected_agent??Y.default_agent??lu),$},{})}},[t.checkpoint_id,t.checkpoint_type,C,_,a,w]),D=E.useCallback(()=>{L||n("approve",I("approve"))},[I,L,n]),T=E.useCallback(()=>{L||!y.trim()||(n(y.trim(),I("feedback")),v(""))},[I,L,y,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"}),L&&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:C,onChange:O=>N(O.target.value),disabled:L,children:yH.map(O=>c.jsx("option",{value:O,children:Iw[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 M=String(O.role_id??"").trim(),A=p[M]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],$=bH(A,w[M]),Y=o[M],B=h[M]??"",G=A.filter(H=>_H(H,B)).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:M}),c.jsx("span",{className:`ckpt-badge ckpt-badge-${$.kind}`,children:$.kind})]}),O.role_label&&O.role_label!==M&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:O.role_label})}),c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:SH(Y,$)}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:$.category}),c.jsx("span",{className:"ckpt-domain-tag",children:$.subtitle})]})]}),c.jsx("input",{className:"ckpt-staffing-search",value:B,onChange:H=>g(V=>({...V,[M]:H.target.value})),placeholder:"Search employees or templates...",disabled:L}),c.jsx("div",{className:"ckpt-staffing-options",children:G.map(H=>{const V=`${H.kind}:${H.id}`===oI(w[M]);return c.jsxs("button",{className:`ckpt-staffing-option${V?" active":""}`,onClick:()=>S(W=>({...W,[M]:{kind:H.kind,id:H.id}})),disabled:L,title:H.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:H.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:H.name})]},`${H.kind}:${H.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`recruit-agent-${t.checkpoint_id}-${M}`,children:"Execution Agent"}),c.jsx("select",{id:`recruit-agent-${t.checkpoint_id}-${M}`,className:"ckpt-agent-select",value:_[M]??O.selected_agent??O.default_agent??lu,onChange:H=>k(V=>({...V,[M]:H.target.value})),disabled:L,children:xH.map(H=>c.jsx("option",{value:H,children:Iw[H]},H))})]})]},M)})}),!L&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:D,children:"Approve"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback to refine recruitment...",value:y,onChange:O=>v(O.target.value),rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:T,disabled:!y.trim(),children:"Send Feedback"})]})]})}),Aw={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},Py="codex",Hg="native",CH=["codex","native","claude_code","cursor","opencode"],jH=["native","codex","claude_code","cursor","opencode"];function lI(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 cI(e){const t=lI(e);return t.kind==="fallback"?"fallback:":`${t.kind}:${t.id??""}`}function EH(e,t,n){const r=String(e.role_id??"").trim(),i=String(e.role_label??"").trim(),o=`${r} ${i} ${e.role_responsibility??""}`.toLowerCase(),a=new Set((e.same_role_employee_ids??[]).map(p=>String(p??"").trim()).filter(Boolean)),u=p=>{const h=`${p.template_id??""} ${p.template_name??""} ${p.category??""} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),g=String(p.category??"").toLowerCase();let y=0;for(const v of o.split(/[^a-z0-9]+/).filter(w=>w.length>=3))(h.includes(v)||g&&v.includes(g))&&(y+=1);return(h.includes(r.replace(/_/g,"-"))||h.includes(r.replace(/_/g," ")))&&(y+=2),y},d=t.map(p=>{const h=String(p.employee_id??"").trim(),g=String(p.employee_name??h).trim()||h,y=String(p.role_id??"").trim(),v=String(p.category??"").trim(),w=[y,v].filter(Boolean).join(" · ")||h;return{kind:"employee",id:h,name:g,subtitle:w,category:v,searchText:`${h} ${g} ${y} ${v} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),rank:a.has(h)||y===r?0:2}}).filter(p=>p.id).sort((p,h)=>p.rank-h.rank||p.name.localeCompare(h.name)),m=n.map(p=>{const h=String(p.template_id??"").trim(),g=String(p.template_name??h).trim()||h,y=String(p.category??"").trim(),v=[y,h].filter(Boolean).join(" · ")||h;return{kind:"template",id:h,name:g,subtitle:v,category:y,searchText:`${h} ${g} ${y} ${(p.domains??[]).join(" ")} ${(p.tags??[]).join(" ")}`.toLowerCase(),rank:u(p)}}).filter(p=>p.id).sort((p,h)=>h.rank-p.rank||p.name.localeCompare(h.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 NH(e,t){const n=cI(t);return e.find(r=>`${r.kind}:${r.id}`===n)??e[0]}function IH(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?!0:n.every(r=>e.searchText.includes(r))}function Mw(e,t){const n={},r=e.staffing_selections??{};for(const i of t){const o=String(i.role_id??"").trim();o&&(n[o]=lI(r[o]??i.default_selection))}return n}function Dw(e,t){const n=e.recruitment_role_agents??{},r={};for(const i of t){const o=String(i.role_id??"").trim();o&&(r[o]=n[o]??i.selected_agent??i.default_agent??Py)}return r}function TH(e){return!!(String(e.checkpoint_response_message_id??"").trim()||String(e.checkpoint_responded_at??"").trim()||String(e.staffing_action??"").trim())}const uI=Ct.memo(function({meta:t,onReply:n,responded:r}){const i=E.useMemo(()=>t.staffing_roles??[],[t.staffing_roles]),o=t.staffing_pool?.employees??[],a=t.staffing_pool?.templates??[],u=E.useMemo(()=>{const L={};for(const I of i){const D=String(I.role_id??"").trim();D&&(L[D]=EH(I,o,a))}return L},[o,i,a]),[d,m]=E.useState({}),[p,h]=E.useState(()=>Mw(t,i)),[g,y]=E.useState(()=>Dw(t,i)),[v,w]=E.useState(t.recruitment_agent??Hg),S=r,_=t.recommended_action==="auto_recruit"&&a.length>0;E.useEffect(()=>{!S||!TH(t)||(h(Mw(t,i)),y(Dw(t,i)),w(t.recruitment_agent??Hg))},[S,t,i]),E.useEffect(()=>{w(t.recruitment_agent??Hg)},[t.recruitment_agent]);const k=E.useCallback(L=>{const I=String(t.checkpoint_id??"").trim();if(!I)throw new Error("Staffing checkpoint reply requires checkpoint_id metadata.");return{response_to_checkpoint_id:I,response_to_checkpoint_type:"company_staffing_selection",staffing_action:L,staffing_selections:p,recruitment_agent:v,recruitment_role_agents:i.reduce((D,T)=>{const O=String(T.role_id??"").trim();return O&&(D[O]=g[O]??T.selected_agent??T.default_agent??Py),D},{})}},[t.checkpoint_id,v,g,i,p]),C=E.useCallback(()=>{S||n("approve",k("manual_approve"))},[k,S,n]),N=E.useCallback(()=>{S||n("auto recruit",k("auto_recruit"))},[k,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"}),_&&!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:L=>w(L.target.value),disabled:S,children:jH.map(L=>c.jsx("option",{value:L,children:Aw[L]},L))})]}),c.jsx("div",{className:"ckpt-staffing-grid",children:i.map(L=>{const I=String(L.role_id??"").trim(),D=u[I]??[{kind:"fallback",id:"",name:"Fallback role-only",subtitle:"No employee override",category:"fallback",searchText:"fallback role only no employee override"}],T=NH(D,p[I]),O=d[I]??"",M=D.filter(A=>IH(A,O)).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:I}),c.jsx("span",{className:`ckpt-badge ckpt-badge-${T.kind}`,children:T.kind})]}),L.role_label&&L.role_label!==I&&c.jsx("div",{className:"ckpt-role-labels",children:c.jsx("span",{className:"ckpt-field-tag",children:L.role_label})}),c.jsxs("div",{className:"ckpt-staffing-selected",children:[c.jsx("div",{className:"ckpt-cand-name",children:T.name}),c.jsxs("div",{className:"ckpt-cand-meta",children:[c.jsx("span",{className:"ckpt-cand-category",children:T.category}),c.jsx("span",{className:"ckpt-domain-tag",children:T.subtitle})]})]}),c.jsx("input",{className:"ckpt-staffing-search",value:O,onChange:A=>m($=>({...$,[I]:A.target.value})),placeholder:"Search employees or templates...",disabled:S}),c.jsx("div",{className:"ckpt-staffing-options",children:M.map(A=>{const $=`${A.kind}:${A.id}`===cI(p[I]);return c.jsxs("button",{className:`ckpt-staffing-option${$?" active":""}`,onClick:()=>h(Y=>({...Y,[I]:{kind:A.kind,id:A.id}})),disabled:S,title:A.subtitle,children:[c.jsx("span",{className:"ckpt-staffing-option-kind",children:A.kind}),c.jsx("span",{className:"ckpt-staffing-option-name",children:A.name})]},`${A.kind}:${A.id}`)})}),c.jsxs("div",{className:"ckpt-agent-picker",children:[c.jsx("label",{className:"ckpt-agent-label",htmlFor:`staffing-agent-${t.checkpoint_id}-${I}`,children:"Execution Agent"}),c.jsx("select",{id:`staffing-agent-${t.checkpoint_id}-${I}`,className:"ckpt-agent-select",value:g[I]??L.selected_agent??L.default_agent??Py,onChange:A=>y($=>({...$,[I]:A.target.value})),disabled:S,children:CH.map(A=>c.jsx("option",{value:A,children:Aw[A]},A))})]})]},I)})}),!S&&c.jsx("div",{className:"ckpt-actions",children:_?c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:N,children:"Auto Recruit"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:C,children:"Approve Selections"})]}):c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:C,children:"Approve Selections"}),a.length>0&&c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:N,children:"Auto Recruit"})]})})]})}),RH={task_adjustment:"Task Adjustment",runtime_replan:"Runtime Replan",org_mutation:"Org Mutation"},Ow={low:"var(--green)",medium:"var(--yellow)",high:"var(--red)"},dI=Ct.memo(function({meta:t,onReply:n,responded:r}){const i=r,o=E.useCallback(()=>{i||n("approve")},[i,n]),a=E.useCallback(()=>{i||n("deny")},[i,n]),u=t.role_changes??[],d=t.work_item_projection_changes??[],m=t.scope||"org_mutation",p=t.risk_level||"medium",h=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"}),i&&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:RH[m]||m}),c.jsxs("span",{className:"ckpt-badge",style:{color:Ow[p]||"var(--text-secondary)",borderColor:Ow[p]||"var(--border)"},children:["Risk: ",p.charAt(0).toUpperCase()+p.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,y)=>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})]},y))]}),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,y)=>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})]},y))]}),Object.keys(h).length>0&&c.jsxs("div",{className:"ckpt-impact",children:[h.affected_tasks!=null&&c.jsxs("span",{children:["Tasks affected: ",h.affected_tasks]}),h.affected_roles!=null&&c.jsxs("span",{children:["Roles affected: ",h.affected_roles]}),h.migration_count!=null&&c.jsxs("span",{children:["Migrations: ",h.migration_count]})]}),!i&&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 AH(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function MH(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"resolved":return"Resolved";default:return"Responded"}}const Yf=Ct.memo(function({meta:t,onReply:n,responded:r}){const i=r,o=String(t.checkpoint_status??"").trim().toLowerCase(),a=MH(o),u=String(t.prompt??t.summary??""),d=E.useMemo(()=>u.split(` -`).map(k=>k.trim()).filter(Boolean),[u]),m=AH(u).replace(/^\[[^\]]+\]\s*/,"")||"Action Required",p=d.slice(1).join(` -`).trim(),h=String(t.summary??"").trim(),g=(t.options??[]).filter(k=>!!k?.id),y=E.useMemo(()=>(t.active_subagents??[]).filter(k=>!!k&&typeof k=="object"),[t.active_subagents]),v=E.useMemo(()=>(t.permission_requests??[]).filter(k=>!!k&&typeof k=="object"),[t.permission_requests]),w=String(t.worktree_path??"").trim(),S=y.length>0||v.length>0||!!w,_=E.useCallback(k=>{i||n(k.label||k.id)},[i,n]);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:m}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.escalation_type??"decision_needed").replace(/_/g," ")}),i&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:a})]}),h&&h!==m&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(rr,{content:h,className:"ckpt-markdown"})]}),p&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),c.jsx(rr,{content:p,className:"ckpt-markdown"})]}),S&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[w&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:w})]}),y.length>0&&c.jsxs("div",{children:["Active subagents: ",y.length]}),v.length>0&&c.jsxs("div",{children:["Pending permission records: ",v.length]})]})]}),!i&&g.length>0&&c.jsx("div",{className:"ckpt-actions ckpt-escalation-actions",children:g.map(k=>c.jsx("button",{className:`ckpt-btn ${k.id.includes("deny")?"ckpt-btn-deny":"ckpt-btn-approve"}`,onClick:()=>_(k),children:k.label||k.id},k.id))}),!i&&t.default_action&&c.jsxs("div",{className:"ckpt-escalation-hint",children:["Default on timeout: ",c.jsx("code",{children:t.default_action})]})]})});function DH(e){return e.split(` -`).map(t=>t.trim()).find(Boolean)??e}function OH(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 fI=Ct.memo(function({meta:t,onReply:n,responded:r}){const i=r,[o,a]=E.useState(""),[u,d]=E.useState(null),m=String(t.checkpoint_status??"").trim().toLowerCase(),p=OH(m),h=String(t.prompt??t.summary??"").trim(),y=`${String(t.work_item_projection_title??DH(h)??"Human Review").trim()||"Human Review"} (for self-evolution)`,v=String(t.summary??"").trim(),w=E.useMemo(()=>(t.active_subagents??[]).filter(T=>!!T&&typeof T=="object"),[t.active_subagents]),S=E.useMemo(()=>(t.permission_requests??[]).filter(T=>!!T&&typeof T=="object"),[t.permission_requests]),_=String(t.worktree_path??"").trim(),k=w.length>0||S.length>0||!!_,C=i||u!==null,N=E.useCallback((T,O="")=>{const M=String(t.checkpoint_id??"").trim();if(!M)throw new Error("Delivery self-evolution reply requires checkpoint_id metadata.");const A={response_to_checkpoint_id:M,response_to_checkpoint_type:"company_delivery_feedback",checkpoint_reply_kind:T};return(T==="approve"||T==="feedback")&&(A.self_evolution_trigger=!0,A.human_feedback_text=O),A},[t.checkpoint_id]),L=E.useCallback(()=>{if(C)return;const T=N("approve");d("approve"),n("I fully agree with this delivery.",T)},[C,N,n]),I=E.useCallback(()=>{const T=o.trim();if(C||!T)return;const O=N("feedback",T);d("feedback"),n(T,O),a("")},[C,N,o,n]),D=E.useCallback(()=>{if(C)return;const T=N("ignore");d("ignore"),n("Ignore this self-evolution review.",T)},[C,N,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:y}),c.jsx("span",{className:"ckpt-badge ckpt-badge-scope",children:String(t.feedback_scope??"final").replace(/_/g," ")}),i&&c.jsx("span",{className:"ckpt-badge ckpt-badge-responded",children:p})]}),v&&v!==y&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(rr,{content:v,className:"ckpt-markdown"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Review Request"}),c.jsx(rr,{content:h,className:"ckpt-markdown"})]}),k&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[_&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:_})]}),w.length>0&&c.jsxs("div",{children:["Active subagents: ",w.length]}),S.length>0&&c.jsxs("div",{children:["Pending permission records: ",S.length]})]})]}),!i&&c.jsxs("div",{className:"ckpt-actions ckpt-actions-inline-feedback",children:[c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:L,disabled:C,children:"Fully Agree"}),c.jsx("button",{className:"ckpt-btn ckpt-btn-cancel",onClick:D,disabled:C,children:"Ignore"}),c.jsx("textarea",{className:"ckpt-feedback-input ckpt-feedback-inline-input",placeholder:"Feedback for self-evolution...",value:o,onChange:T=>a(T.target.value),disabled:C,rows:2}),c.jsx("button",{className:"ckpt-btn ckpt-btn-feedback",onClick:I,disabled:C||!o.trim(),children:"Send Feedback"})]})]})}),Wd="__other__",LH=["A","B","C"];function Hi(e){return String(e??"").trim()}function zH(e,t){const n=Hi(e.question),r=Hi(e.header);if(!n&&!r)return null;const i=(e.options??[]).slice(0,3).map((o,a)=>({id:Hi(o.id)||String.fromCharCode(97+a),label:Hi(o.label),description:Hi(o.description)})).filter(o=>o.label);return{id:Hi(e.id)||`question_${t+1}`,header:r,question:n||r,options:i,allow_freeform:e.allow_freeform!==!1,required:e.required!==!1}}const mI=Ct.memo(function({meta:t,onReply:n,responded:r}){const[i,o]=E.useState(""),[a,u]=E.useState({}),d=r,m=String(t.work_item_projection_title??t.work_item_projection_id??"Input Needed").trim()||"Input Needed",p=String(t.summary??"").trim(),h=String(t.prompt??"").trim(),g=String(t.context_note??"").trim(),y=String(t.resume_hint??"").trim(),v=E.useMemo(()=>(t.questions??[]).map(V=>String(V).trim()).filter(Boolean),[t.questions]),w=E.useMemo(()=>(t.input_questions??[]).map((V,W)=>zH(V,W)).filter(V=>V!==null),[t.input_questions]),S=w.some(V=>(V.options??[]).length>0),_=E.useMemo(()=>(t.required_fields??[]).map(V=>String(V).trim()).filter(Boolean),[t.required_fields]),k=E.useMemo(()=>(t.active_subagents??[]).filter(V=>!!V&&typeof V=="object"),[t.active_subagents]),C=E.useMemo(()=>(t.permission_requests??[]).filter(V=>!!V&&typeof V=="object"),[t.permission_requests]),N=String(t.worktree_path??"").trim(),L=String(t.requesting_role_id??"").trim(),I=String(t.requesting_task_id??"").trim(),D=String(t.requesting_work_item_id??"").trim(),T=String(t.seat_id??"").trim(),M=!!L||!!I||!!D||!!T||k.length>0||C.length>0||!!N,A=E.useCallback((V,W)=>{u(Z=>({...Z,[V]:{freeformText:Z[V]?.freeformText??"",selectedOptionId:W}}))},[]),$=E.useCallback((V,W)=>{u(Z=>({...Z,[V]:{selectedOptionId:Z[V]?.selectedOptionId,freeformText:W}}))},[]),Y=E.useCallback(V=>{if(V.required===!1)return!0;const W=a[V.id],Z=W?.selectedOptionId;return!!(Z&&Z!==Wd||V.allow_freeform!==!1&&Hi(W?.freeformText))},[a]),B=S&&w.every(Y),G=E.useCallback(()=>{const V=i.trim();d||!V||n(V)},[d,n,i]),H=E.useCallback(()=>{if(d||!B)return;const V={},W=[];w.forEach(Z=>{const q=a[Z.id]??{freeformText:""},U=(Z.options??[]).find(te=>te.id===q.selectedOptionId),ee=Hi(q.freeformText),K=[U?.label??"",ee].filter(Boolean).join("; ");V[Z.id]={question_id:Z.id,question:Z.question,...U?{selected_option_id:U.id,selected_label:U.label}:{},...ee?{freeform_text:ee}:{},answer_text:K};const J=Hi(Z.header)||Hi(Z.question)||Z.id;W.push(`- ${J}: ${K||"(no answer)"}`)}),n(W.join(` -`),{user_input_answers:V})},[a,B,w,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"})]}),p&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Summary"}),c.jsx(rr,{content:p,className:"ckpt-markdown"})]}),h&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Request"}),c.jsx(rr,{content:h,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:w.map(V=>{const W=a[V.id]??{freeformText:""},Z=V.options??[],q=V.allow_freeform!==!1,U=q&&(Z.length===0||W.selectedOptionId===Wd);return c.jsxs("div",{className:"ckpt-choice-question",children:[V.header&&c.jsx("div",{className:"ckpt-question-header",children:V.header}),c.jsx(rr,{content:V.question,className:"ckpt-markdown"}),Z.length>0&&c.jsxs("div",{className:"ckpt-choice-grid",children:[Z.map((ee,P)=>{const K=W.selectedOptionId===ee.id;return c.jsxs("button",{className:`ckpt-choice-option${K?" is-selected":""}`,onClick:()=>A(V.id,ee.id),children:[c.jsx("span",{className:"ckpt-choice-letter",children:LH[P]??"?"}),c.jsxs("span",{className:"ckpt-choice-copy",children:[c.jsx("span",{className:"ckpt-choice-label",children:ee.label}),ee.description&&c.jsx("span",{className:"ckpt-choice-desc",children:ee.description})]})]},ee.id)}),q&&c.jsxs("button",{className:`ckpt-choice-option${W.selectedOptionId===Wd?" is-selected":""}`,onClick:()=>A(V.id,Wd),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"})]})]})]}),U&&c.jsx("textarea",{className:"ckpt-feedback-input ckpt-other-field",placeholder:"Type your answer...",value:W.freeformText,onChange:ee=>$(V.id,ee.target.value),rows:3})]},V.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(V=>c.jsx("li",{children:V},V))})]}),_.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:_.map(V=>c.jsx("span",{className:"ckpt-field-tag",children:V},V))})]}),g&&c.jsxs("div",{className:"ckpt-section",children:[c.jsx("div",{className:"ckpt-section-title",children:"Context"}),c.jsx(rr,{content:g,className:"ckpt-markdown ckpt-markdown-muted"})]}),y&&c.jsx("div",{className:"ckpt-escalation-hint",children:y}),M&&c.jsxs("details",{className:"ckpt-runtime-details",children:[c.jsx("summary",{children:"Runtime State"}),c.jsxs("div",{className:"ckpt-runtime-body",children:[L&&c.jsxs("div",{children:["Requester: ",c.jsx("code",{children:L})]}),D&&c.jsxs("div",{children:["Work item: ",c.jsx("code",{children:D})]}),I&&c.jsxs("div",{children:["Task: ",c.jsx("code",{children:I})]}),T&&c.jsxs("div",{children:["Seat: ",c.jsx("code",{children:T})]}),N&&c.jsxs("div",{children:["Worktree: ",c.jsx("code",{children:N})]}),k.length>0&&c.jsxs("div",{children:["Active subagents: ",k.length]}),C.length>0&&c.jsxs("div",{children:["Pending permission records: ",C.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:i,onChange:V=>o(V.target.value),rows:3}),c.jsx("div",{className:"ckpt-feedback-btns",children:c.jsx("button",{className:"ckpt-btn ckpt-btn-approve",onClick:S?H:G,disabled:S?!B:!i.trim(),children:"Send Reply"})})]})]})}),By={todo:"To do",in_progress:"In progress",in_review:"In review",done:"Done"};function Fg(e,t){if(t&&t in By)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 Yd(e){return By[e]??By.todo}const Lw={active:0,waiting:1,failed:2,done:3,pending:4};function PH(e){if(e.length===0)return"pending";let t=e[0],n=Lw[t]??99;for(const r of e){const i=Lw[r]??99;i12&&/^[0-9a-f-]+$/i.test(e.replace(/_/g,""))}function Za(e){return typeof e=="string"?e.trim():""}function Vg(...e){for(const t of e){const n=Za(t);if(n)return n}return""}function $H(e){const t=Za(e);return t?BH[t]??H0(t):""}function HH(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 FH={active:"active",waiting:"waiting",pending:"pending",done:"done",failed:"failed"};function VH(e){return e?e==="in-progress"?"in_progress":e==="in-review"?"in_review":e:"todo"}function UH(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 GH(e){const t=Za(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 $y({workItemLog:e,roleWorkItems:t,executorRoleWorkItems:n,childSessions:r,isCompanyRuntime:i=!1,onWorkItemClick:o}){const a=E.useMemo(()=>{const v=new Map;for(const w of r??[]){v.set(w.taskId,w);const S=to(w);S&&v.set(S,w)}return v},[r]),u=E.useMemo(()=>{const v=new Map,w=[];for(const S of e){const _=to(S),k=S.workItemProjectionId??_??"";if(!k)continue;if(!v.has(k)){w.push(k);const N=S.workItemProjectionTitle??k,L=S.roleName||(zw(N)?"Agent":N);v.set(k,{projectionId:k,title:L,roleName:S.roleName,status:"pending",executionTurnId:_})}const C=v.get(k);switch(S.roleName?(C.roleName=S.roleName,C.title=S.roleName):S.workItemProjectionTitle&&!zw(S.workItemProjectionTitle)&&(C.title=S.workItemProjectionTitle),_&&(C.executionTurnId=_),S.type){case"work_item_started":C.status="active";break;case"gate_approved":C.status="done";break;case"gate_rejected":C.status="active";break;case"awaiting_manager_review":case"awaiting_human":case"awaiting_review":case"awaiting_peer":C.status="waiting";break;case"work_item_failed":case"deadlock":C.status="failed";break}}for(const S of v.values()){if(!S.executionTurnId)continue;const _=a.get(S.executionTurnId);if(!_)continue;const k=xg(_);k&&(S.title=k),_.workItemRoleName&&(S.roleName=_.workItemRoleName),_.status==="done"?S.status="done":_.status==="failed"&&(S.status="failed")}return w.map(S=>v.get(S))},[e,a]),d=E.useMemo(()=>{const v=new Map;for(const w of e){const S=to(w);S&&!v.has(S)&&v.set(S,v.size)}return v},[e]),m=n??t,p=E.useMemo(()=>{if(!m)return[];const v=[];for(const w of Object.values(m)){if(!w||!Array.isArray(w.workItems)||w.workItems.length===0)continue;const _=[...w.workItems].sort((I,D)=>I.createdAt-D.createdAt).map(I=>{const D=VH(I.kanbanColumn),T=UH(I.phase);return{executionTurnId:I.executionTurnId??"",title:Za(I.title)||Za(I.executorRoleName)||Za(I.executorRoleId)||"Work item",status:T,statusLabel:Yd(D),columnId:D,updatedAt:I.updatedAt,workItemId:I.workItemId,progressLog:I.progressLog,activitySections:I.activitySections??[],isReviewTarget:I.isReviewTarget}}),k=FH[w.aggregatedStatus]??"pending",C=Fg(k),N=_[_.length-1],L=[..._].reverse().find(I=>!!I.executionTurnId)?.executionTurnId??"";v.push({roleKey:w.roleKey,executionTurnId:N.executionTurnId||L,title:w.roleName||w.roleId,status:k,statusLabel:Yd(C),roleName:w.roleName,updatedAt:_.reduce((I,D)=>Math.max(I,D.updatedAt),0),turns:_,runtimeStatus:w.runtimeStatus})}return v.sort((w,S)=>{const _=w.turns[0]?.updatedAt??Number.POSITIVE_INFINITY,k=S.turns[0]?.updatedAt??Number.POSITIVE_INFINITY;return _-k}),v},[m]),h=E.useMemo(()=>{const v=[...r??[]];if(v.length===0)return[];const w=new Map,S=[];for(const k of v){const C=Vg(k.workItemRoleId,k.assigneeIds[0],k.taskId);w.has(C)||(w.set(C,[]),S.push(C)),w.get(C).push(k)}S.sort((k,C)=>{const N=w.get(k)??[],L=w.get(C)??[],I=Math.min(...N.map(M=>d.get(to(M)||M.taskId)??Number.POSITIVE_INFINITY)),D=Math.min(...L.map(M=>d.get(to(M)||M.taskId)??Number.POSITIVE_INFINITY));if(I!==D)return I-D;const T=Math.min(...N.map(M=>M.updatedAt)),O=Math.min(...L.map(M=>M.updatedAt));return T-O});const _=[];for(const k of S){const C=w.get(k)??[];if(C.length===0)continue;const N=C.slice().sort((M,A)=>M.updatedAt-A.updatedAt).map(M=>{const A=GH(M),$=to(M),Y=Fg(A,String(M.columnId??"").trim()||void 0);return{executionTurnId:$||M.taskId,title:Vg(xg(M),M.title,M.workItemRoleName,M.workItemRoleId,"Turn"),status:A,statusLabel:Yd(Y),columnId:Y,updatedAt:M.updatedAt}}),L=N[N.length-1],I=PH(N.map(M=>M.status)),D=Fg(I),T=C[0],O=Vg(T.workItemRoleName,T.workItemRoleId,T.assigneeIds[0],xg(T),T.title,"Agent");_.push({roleKey:k,executionTurnId:L.executionTurnId,title:O,status:I,statusLabel:Yd(D),executionAgent:$H(T.selectedExecutionAgent??T.preferredAgent),roleName:T.workItemRoleName,updatedAt:Math.max(...C.map(M=>M.updatedAt)),turns:N})}return _},[r,d]),g=E.useMemo(()=>p.length>0?p:i?[]:h,[i,p,h]),y=E.useMemo(()=>g.length>0?g.map(v=>({projectionId:v.roleKey,title:v.title,roleName:v.roleName,status:v.status,executionTurnId:v.executionTurnId})):i?[]:u,[i,g,u]);return i&&g.length===0||e.length===0&&y.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"})]}),y.length>0&&c.jsx("div",{className:"wi-progress-pipeline",children:y.map((v,w)=>c.jsxs("div",{className:"wi-projection-group",children:[c.jsxs("button",{type:"button",className:`wi-projection-chip wi-projection-${v.status}`,onClick:()=>o?.(v.executionTurnId||""),title:`Open Runtime Session${v.roleName?`: ${v.title} (${v.roleName})`:`: ${v.title}`}`,children:[c.jsx("span",{className:"wi-projection-label",children:v.title}),HH(v.status)]}),wu.mime_type?.startsWith("image/")),r=e.filter(u=>u.mime_type?.startsWith("video/")),i=e.filter(u=>!u.mime_type?.startsWith("image/")&&!u.mime_type?.startsWith("video/")),o=n.length===1?"":(n.length<=3," cols-2"),a=r.length===1?"":(r.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)})}),r.length>0&&c.jsx("div",{className:`msg-attachment-grid${a}`,children:r.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)})}),i.length>0&&c.jsx("div",{className:"msg-attachment-files",children:i.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 Pw=["#F59E0B","#10B981","#3B82F6","#8B5CF6","#EC4899","#06B6D4","#F97316","#6366F1"],Bw=new Map;function ov(e){const t=Bw.get(e);if(t)return t;let n=0;for(let i=0;id.toUpperCase());let a="●",u="active";return i.includes("gate passed")||i.includes("approved")||i.includes("completed")?(a="✓",u="passed"):i.includes("rejected")||i.includes("reworking")?(a="↻",u="rejected"):i.includes("failed")||i.includes("timed out")?(a="✗",u="failed"):i.includes("awaiting")&&(a="⏳",u="waiting"),{projectionId:n,workItemName:o,action:r,icon:a,statusClass:u}}const XH={session:{icon:c.jsx(g4,{}),title:"New Conversation",hint:"Send a message to start working with your OPC system"},activity:{icon:c.jsx(zj,{}),title:"Activity Feed",hint:"Agent activity across all sessions will appear here."},secretary:{icon:c.jsx(Kc,{}),title:"Secretary",hint:"Manage policies, rules, and preferences for your agents."}},KH=5*6e4,$w=200,Ug=200,ZH=96,QH=1,JH=700;function Hw(e){return e.scrollHeight-e.scrollTop-e.clientHeight"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 nF(e,t){return t==="full"?!0:String(e.metadata?.detail_visibility??"summary").trim()!=="full"}function rF(e){return String(e.metadata?.transcript_kind??"").trim()==="runtime_v2_user_turn"}function Gc(e){return e.replace(/\s+/g," ").trim()}function iF(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function sF(e){const t=String(e.metadata?.transcript_kind??e.metadata?.kind??"").trim();return!!(["runtime_v2_assistant","runtime_v2_company_assistant","top_level_reply","company_role_result","company_role_result_retry","child_task_result","child_task_result_retry","child_result"].includes(t)||String(e.metadata?.kind??"").trim()==="worker_notification")}function Fw(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 oF(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")&&t.endsWith("}")){const u=Fw(t);return u?{obj:u}:null}const n=t.indexOf("{"),r=t.lastIndexOf("}");if(n<=0||r<=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=Fw(t.slice(n,r+1));return a?{obj:a,title:o||void 0}:null}function Qa(e){return typeof e=="string"?e.trim():""}function Vw(e,t=4){if(!Array.isArray(e))return[];const n=[];for(const r of e){const i=typeof r=="string"?r.trim():r&&typeof r=="object"&&"summary"in r?Qa(r.summary):"";if(i&&n.push(i),n.length>=t)break}return n}function aF(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||typeof n!="object")continue;const r=n,i=Qa(r.path),o=Qa(r.name)||i.split("/").filter(Boolean).pop()||"Artifact";t.push({name:o,path:i,status:Qa(r.status)||void 0})}return t}function lF(e){if(!Array.isArray(e))return;const t=e.filter(r=>r&&typeof r=="object").length;return t?`${e.filter(r=>r.met===!0).length}/${t} acceptance checks met`:void 0}function hI(e){const t=oF(e);if(!t)return null;const{obj:n,title:r}=t,i=Qa(n.summary),o=Qa(n.review_verdict),a=aF(n.deliverables),u=Vw(n.risks),d=Vw(n.next_actions),m=lF(n.acceptance_status);return!i&&!o&&a.length===0&&!m?null:{kind:o?"review":a.length>0||m?"report":"update",title:r,summary:i,verdict:o||void 0,deliverables:a,risks:u,nextActions:d,acceptanceSummary:m}}const cF=Ct.memo(function({entry:t,showDate:n,dateStr:r,compact:i=!1}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-row agent msg-row-inline-progress${i?" compact":""}`,children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body msg-inline-progress-body",children:c.jsx("div",{className:"msg-inline-progress-shell",children:c.jsx(eN,{entry:t})})})]})]})}),uF=Ct.memo(function({msg:t,showDate:n,dateStr:r}){const i=YH(t.content);return i?c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`work-item-divider work-item-divider-${i.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:i.icon}),i.workItemName,c.jsx("span",{className:"work-item-divider-action",children:i.action})]}),c.jsx("div",{className:"work-item-divider-line"})]})]}):null}),dF=Ct.memo(function({msg:t,showDate:n,dateStr:r}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsx("div",{className:"msg-system",children:c.jsx("span",{children:t.content})})]})}),fF=Ct.memo(function({msg:t,showDate:n,dateStr:r}){return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),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(Kc,{})}),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(rr,{content:t.content})]})})]})]})}),mF=Ct.memo(function({text:t,timestamp:n,iteration:r,showDate:i,dateStr:o}){return c.jsxs("div",{children:[i&&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(Po,{})}),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:Wi(n),children:Ss(n)})]}),c.jsxs("div",{className:"msg-content-agent-card msg-draft-card",children:[r?c.jsxs("div",{className:"msg-draft-label",children:["Turn ",r]}):null,c.jsx(rr,{content:t,collapseMode:"never"})]})]})]})]})}),hF=Ct.memo(function({msg:t,showDate:n,dateStr:r,isGrouped:i,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:r})}),c.jsx("div",{className:`msg-row user${i?" grouped":""}`,children:c.jsxs("div",{className:"msg-body msg-body-user",children:[c.jsx("div",{className:"msg-content-user",children:d?c.jsx(rr,{content:t.content,className:"msg-content-user-markdown"}):t.content}),c.jsx(qH,{refs:t.metadata?.attachment_refs,onImageClick:u}),c.jsxs("div",{className:"msg-meta-user",children:[c.jsx("span",{className:"msg-time",title:Wi(t.timestamp),children:Ss(t.timestamp)}),c.jsx("button",{className:"msg-action-btn",onClick:()=>a(t.id,t.content),title:"Copy",children:o?c.jsx(vl,{}):c.jsx(hm,{})})]})]})})]})});function pI(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=([^|]+?)(?:\||$)/),p=m?m[1].trim():"";return{kind:"delegation",label:`Delegating to ${d}`,summary:p,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 r=t.match(/^\[External inbox\]\s*(.+)$/i);if(r)return{kind:"external_status",label:"External inbox",summary:Gc(r[1]),tone:"info"};const i=t.match(/^\[External status\]\s*(.+)$/i);if(i)return{kind:"external_status",label:"External status",summary:i[1].split(/\(|;/)[0].trim()||i[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",p=o[2].trim(),h=p.toLowerCase(),g=h.includes("completed")||h.includes("done")?"success":h.includes("blocked")||h.includes("failed")?"warning":"info";return{kind:"company_event",label:`${m.toUpperCase()} · ${d[1]??""}`.replace(/ · $/,""),summary:p,tone:g}}const a=t.match(/^(Review needed|Status digest|Blocked|Completion):\s*(.+)$/i);if(a){const d=a[1].replace(/\b\w/g,p=>p.toUpperCase()),m=Gc(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:Gc(u[1]).slice(0,180),tone:"info"}:null}function pF(e,t){const{isCompanyRuntime:n,detailMode:r}=t;if(!n||r==="full"||Zc(e.metadata))return null;const i=pI(e.content);if(!i)return null;const o=e.sender==="system"||e.metadata?.type==="system",a=i.kind==="company_event"||e.content.startsWith("[Company:");return!o&&!a?null:{msg:e,classification:i}}function gF(e,t={}){const{isCompanyRuntime:n=!1,detailMode:r="summary"}=t,i=[];let o=[],a=0;const u=new Set,d=new Set,m=()=>{if(o.length===0)return;const p=o[0].msg,h=o[o.length-1].msg;i.push({kind:"ops-bundle",id:`ops:${p.id}:${o.length}:${h.id}`,timestamp:p.timestamp,events:o,sortOrder:a}),o=[]};return e.forEach((p,h)=>{const g=h*2+1,y=pF(p,{isCompanyRuntime:n,detailMode:r});if(y){o.length===0&&(a=g),o.push(y);return}const v=r==="summary"?hI(p.content):null;if(v){const w=[p.sender,Math.round(p.timestamp/1e3),v.kind,Gc(v.summary||v.acceptanceSummary||"").slice(0,500),v.verdict??"",v.deliverables.map(S=>`${S.name}:${S.path}`).join("|").slice(0,800)].join("");if(u.has(w))return;u.add(w)}if(r==="summary"){const w=Gc(iF(p.content)).slice(0,1200);if(w){const S=sF(p)?["result",w].join(""):[p.sender,Math.round(p.timestamp/1e3),w].join("");if(d.has(S))return;d.add(S)}}m(),i.push({kind:"message",id:p.id,timestamp:p.timestamp,msg:p,sortOrder:g})}),m(),i}const xF=Ct.memo(function({msg:t,showDate:n,dateStr:r,classification:i}){const[o,a]=E.useState(!1),u=t.content.trim()!==`[${i.label}] ${i.summary}`.trim()&&t.content.trim().length>i.summary.length+4;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-ops-row msg-ops-tone-${i.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:i.label}),i.summary&&c.jsx("span",{className:"msg-ops-summary",title:i.summary,children:i.summary}),c.jsx("span",{className:"msg-ops-time",title:Wi(t.timestamp),children:Ss(t.timestamp)}),u&&c.jsx("span",{className:`msg-ops-chevron${o?" open":""}`,"aria-hidden":"true",children:c.jsx(_s,{down:o})})]}),u&&o&&c.jsx("div",{className:"msg-ops-details",children:c.jsx("pre",{className:"msg-ops-details-pre",children:t.content})})]})}),yF=Ct.memo(function({events:t,showDate:n,dateStr:r}){const[i,o]=E.useState(!1);if(t.length===0)return null;const a=t[0].msg,u=t[t.length-1].msg,d=t.reduce((h,g)=>{const y=g.classification.kind==="company_event"?"company":g.classification.kind.startsWith("external")?"runtime":"delegation";return h[y]=(h[y]??0)+1,h},{}),m=Object.entries(d).map(([h,g])=>`${g} ${h}`).join(" · "),p=`${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:r})}),c.jsxs("button",{type:"button",className:`msg-ops-bundle${i?" expanded":""}`,onClick:()=>o(h=>!h),title:`${Wi(a.timestamp)} - ${Wi(u.timestamp)}`,children:[c.jsx("span",{className:"msg-ops-bundle-dot"}),c.jsx("span",{className:"msg-ops-bundle-title",children:p}),c.jsx("span",{className:"msg-ops-bundle-summary",children:m}),c.jsx("span",{className:"msg-ops-bundle-time",children:Ss(a.timestamp)}),c.jsx("span",{className:"msg-ops-bundle-chevron",children:c.jsx(_s,{down:i})})]}),i&&c.jsx("div",{className:"msg-ops-bundle-details",children:t.map(({msg:h,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:Wi(h.timestamp),children:Ss(h.timestamp)})]},h.id))})]})});function vF(e){return e.kind==="review"?`Review · ${e.verdict?e.verdict.replace(/_/g," "):"review"}`:e.kind==="report"?"Report":"Update"}const bF=Ct.memo(function({msg:t,payload:n,showDate:r,dateStr:i,isCopied:o,onCopy:a}){const u=ov(t.sender==="system"?t.senderName||"OPC":t.sender),d=t.senderDeleted?"[Deleted]":t.senderName,m=vF(n),p=n.summary||n.acceptanceSummary||m;return c.jsxs("div",{children:[r&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:i})}),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:Wi(t.timestamp),children:Ss(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(rr,{content:p,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((h,g)=>c.jsxs("div",{className:"msg-project-update-artifact",children:[c.jsx("span",{className:"msg-project-update-artifact-name",children:h.name}),h.status&&c.jsx("span",{className:"msg-project-update-artifact-status",children:h.status}),h.path&&c.jsx("code",{className:"msg-project-update-artifact-path",children:h.path})]},`${h.path||h.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((h,g)=>c.jsx("li",{children:h},`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((h,g)=>c.jsx("li",{children:h},`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(hm,{})," ",c.jsx("span",{children:"Copy raw"})]})})})]})]})]})]})}),_F=Ct.memo(function({msg:t,showDate:n,dateStr:r,isGrouped:i,isCopied:o,isCheckpointResponded:a,suppressCheckpointPanel:u,onCopy:d,onSend:m}){const p=!!t.senderDeleted,h=p?"[Deleted]":t.senderName,g=ov(t.sender==="system"?t.senderName||"OPC":t.sender),y=t.channelId.startsWith("session:")?t.channelId.slice(8):t.metadata?.taskId??t.metadata?.task_id,v=String(t.metadata?.checkpoint_type??"").trim(),w=x0(t.metadata),S=Zc(t.metadata)&&!u;return c.jsxs("div",{children:[n&&c.jsx("div",{className:"msg-date-sep",children:c.jsx("span",{children:r})}),c.jsxs("div",{className:`msg-row agent${i?" grouped":""}${p?" deleted-sender":""}`,children:[i?c.jsx("div",{className:"msg-avatar-spacer"}):c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:g},children:h.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[!i&&c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:`msg-sender${p?" deleted":""}`,style:{color:g},children:h}),c.jsx("span",{className:"msg-time",title:Wi(t.timestamp),children:Ss(t.timestamp)})]}),t.replyToId&&c.jsx("div",{className:"msg-reply-indicator",children:"Replying to previous message"}),S?c.jsxs(c.Fragment,{children:[v==="company_recruitment_confirmation"&&c.jsx(aI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k),responded:a}),v==="company_staffing_selection"&&c.jsx(uI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k),responded:a}),v==="company_work_item_gate"&&c.jsx(Yf,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="company_delivery_feedback"&&c.jsx(fI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,k??w),responded:a}),v==="company_reorg_pending"&&c.jsx(dI,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="human_escalation"&&c.jsx(Yf,{meta:t.metadata,onReply:_=>m?.(_,y,w),responded:a}),v==="task_user_input"&&c.jsx(mI,{meta:t.metadata,onReply:(_,k)=>m?.(_,y,{...w,...k}),responded:a})]}):c.jsxs("div",{className:"msg-content-agent-card",style:{borderLeftColor:g},children:[c.jsx(rr,{content:t.content}),c.jsxs("div",{className:"msg-card-actions",children:[c.jsx("button",{className:"msg-action-btn",onClick:()=>d(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(hm,{})," ",c.jsx("span",{children:"Copy"})]})}),i&&c.jsx("span",{className:"msg-time msg-time-inline",title:Wi(t.timestamp),children:Ss(t.timestamp)})]})]})]})]})]})}),Ua=Ct.memo(function({messages:t,channelName:n,viewKind:r="session",detailMode:i="summary",agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,progressLog:m,draftAssistantText:p,draftUpdatedAt:h,draftIteration:g,draftTurnId:y,isCompanyRuntime:v,workItemLog:w,childSessions:S,roleWorkItems:_,executorRoleWorkItems:k,onSend:C,onWorkItemClick:N,onWorkItemOpenSession:L,onMarkRead:I,hasOlderHistory:D=!1,totalMessageCount:T,onLoadOlderHistory:O,loadingOlderHistory:M=!1,autoScroll:A=!0,initialScrollToBottom:$=!0,showWorkItemRuntimeCard:Y=!0,showRuntimeProgress:B=!0,renderUserMarkdown:G=!1}){const H=E.useRef(null),[V,W]=E.useState(null),[Z,q]=E.useState(null),[U,ee]=E.useState($w),P=E.useRef(o),K=E.useRef(A),J=E.useRef($),te=E.useRef(!1),re=E.useRef(null),oe=E.useRef(!1),fe=E.useRef(null),se=E.useRef(0),je=E.useRef(0),Se=E.useRef(null),Ce=E.useRef(null),He=E.useRef(null),We=E.useRef(!1),Ye=E.useRef(!1);E.useEffect(()=>{const Ee=H.current;if(!Ee)return;se.current=Ee.scrollTop;const Te=()=>{te.current=!0,re.current&&clearTimeout(re.current),re.current=setTimeout(()=>{te.current=!1},1500)},Xe=$e=>{Te(),$e.deltaY<0&&Ee.scrollTop>0?K.current=!1:Hw(Ee)&&(K.current=A)};return Ee.addEventListener("wheel",Xe,{passive:!0}),Ee.addEventListener("pointerdown",Te),Ee.addEventListener("touchstart",Te,{passive:!0}),()=>{Ee.removeEventListener("wheel",Xe),Ee.removeEventListener("pointerdown",Te),Ee.removeEventListener("touchstart",Te),re.current&&clearTimeout(re.current)}},[A]),E.useEffect(()=>()=>{fe.current&&clearTimeout(fe.current)},[]);const gt=E.useCallback(()=>{const Ee=H.current;if(!Ee)return;const Te=se.current,Xe=Ee.scrollTop;se.current=Xe;const $e=Hw(Ee);if(oe.current){$e&&I?.();return}if(eF({previousScrollTop:Te,nextScrollTop:Xe,atBottom:$e,userScrolling:te.current,programmaticScroll:!1})){K.current=!1;return}if(te.current){K.current=$e,$e&&I?.();return}$e&&(K.current=A,I?.())},[A,I]),bt=(w?.length??0)+(S?.length??0),xt=E.useMemo(()=>{const Ee=t.filter(Te=>nF(Te,i));return v?Ee.filter(Te=>!(Te.metadata?.type==="system"&&Te.content.startsWith("[Company:")||!B&&Te.content.startsWith("[Company:"))):Ee},[i,v,t,B]),me=r==="session"&&!!C,Oe=E.useMemo(()=>y0(xt),[xt]),it=E.useMemo(()=>me?xt.filter(Ee=>Oe.pendingMessageIds.has(Ee.id)):[],[Oe.pendingMessageIds,xt,me]),et=E.useMemo(()=>me?xt.filter(Ee=>!Oe.pendingMessageIds.has(Ee.id)):xt,[Oe.pendingMessageIds,xt,me]),nt=E.useMemo(()=>{const Ee=new Set;for(const Te of m??[]){if(Te.type!=="thinking")continue;const Xe=String(Te.turnId??"").trim();Xe&&Ee.add(Xe)}return Ee},[m]),de=E.useMemo(()=>{const Ee=[];for(const Te of et){const Xe=String(Te.metadata?.runtime_thinking??"").trim();if(!Xe)continue;const $e=String(Te.metadata?.canonical_turn_id??Te.metadata?.turn_id??"").trim();$e&&nt.has($e)||Ee.push({type:"thinking",summary:"Thinking",detail:Xe,timestamp:Math.max(0,Te.timestamp-1),turnId:$e||void 0,itemId:$e?`${$e}:thinking`:`thinking:${Te.id}`,streamId:$e?`${$e}:thinking`:`thinking:${Te.id}`,executionMode:String(Te.metadata?.execution_mode??"").trim()||void 0})}return Ee},[nt,et]),ve=E.useMemo(()=>B?[...(m??[]).filter(Ee=>PS.has(Ee.type)),...de].sort((Ee,Te)=>Ee.timestamp-Te.timestamp):[],[m,B,de]),Ae=E.useMemo(()=>B?(m??[]).filter(Ee=>!PS.has(Ee.type)):[],[m,B]),Ue=E.useMemo(()=>B?i==="full"?m??[]:ve:[],[i,ve,m,B]),Fe=E.useMemo(()=>Ae,[Ae]),vt=E.useMemo(()=>{const Ee=String(p??"").trim();return Ee?{kind:"draft",id:`draft-${y??g??"active"}`,timestamp:h??Date.now(),text:Ee,iteration:g,sortOrder:Number.MAX_SAFE_INTEGER}:null},[p,g,y,h]),Rt=!!o&&o!=="idle",ke=Fe.length>0,Re=B&&i!=="full"&&(Rt||ke),Ke=E.useMemo(()=>{const Ee=[...gF(et,{isCompanyRuntime:v,detailMode:i}),...Ue.map((Te,Xe)=>({kind:"progress",id:`progress-${JE(Te,Xe)}`,timestamp:Te.timestamp,entry:Te,sortOrder:Xe*2}))];return vt&&Ee.push(vt),Ee.sort((Te,Xe)=>Te.timestamp-Xe.timestamp||Te.sortOrder-Xe.sortOrder)},[i,vt,v,et,Ue]),Ge=Math.max(0,Ke.length-U),tt=E.useMemo(()=>Ge>0?Ke.slice(-U):Ke,[Ge,Ke,U]);E.useEffect(()=>{ee($w)},[n,r]),E.useEffect(()=>{K.current=A,J.current=$},[n,r,A,$]);const Qe=E.useMemo(()=>{let Ee="";return tt.map((Te,Xe)=>{const $e=new Date(Te.timestamp).toLocaleDateString(),It=$e!==Ee;It&&(Ee=$e);const yt=Xe>0?tt[Xe-1]:null,Kn=Te.kind==="message"&&yt?.kind==="message"&&!It&&yt.msg.sender===Te.msg.sender&&yt.msg.senderName===Te.msg.senderName&&Te.msg.metadata?.type!=="system"&&yt.msg.metadata?.type!=="system"&&!Te.msg.metadata?.is_work_item_event&&!yt.msg.metadata?.is_work_item_event&&Te.msg.timestamp-yt.msg.timestamp{tF(Te).then(Xe=>{Xe&&(W(Ee),setTimeout(()=>W(null),1500))})},[]),Qt=E.useCallback(async()=>{if(Ge>0){ee(Ee=>Math.min(Ke.length,Ee+Ug));return}!D||M||!O||(await O(xt[0]),ee(Ee=>Ee+Ug))},[xt,D,Ge,M,O,Ke.length]),kn=XH[r],Nn=!!(i!=="full"&&Y&&v&&bt>0),sn=it.length>0,tn=E.useMemo(()=>{const Ee=[];(Ge>0||D)&&Ee.push({kind:"history-hint"});for(let Te=0;TeH.current,estimateSize:Ee=>{const Te=tn[Ee];if(Te.kind==="end-anchor")return 1;if(Te.kind==="history-hint")return 48;if(Te.kind==="work-item-runtime-card")return 120;if(Te.kind==="progress-block")return 80;if(Te.kind==="pending-section")return 200;const Xe=Qe[Te.idx];if(Xe?.item.kind==="message"){const $e=Xe.item.msg.content.length;return $e<100?72:$e<500?120:$e<2e3?200:300}return Xe?.item.kind==="draft"?Xe.item.text.length<400?120:200:Xe?.item.kind==="ops-bundle"?Xe.item.events.length>8?92:48:80},overscan:15,getItemKey:Ee=>{const Te=tn[Ee];return Te.kind==="timeline"?Qe[Te.idx]?.item.id??`tl-${Te.idx}`:Te.kind}}),kt=E.useRef(Nt);kt.current=Nt;const qe=E.useRef(tn.length);qe.current=tn.length;const ze=E.useCallback(()=>{oe.current=!0,fe.current&&clearTimeout(fe.current),fe.current=setTimeout(()=>{oe.current=!1},JH)},[]),pn=E.useCallback(()=>{Ce.current!==null&&(window.cancelAnimationFrame(Ce.current),Ce.current=null),He.current!==null&&(window.cancelAnimationFrame(He.current),He.current=null),We.current=!1,Ye.current=!1},[]),In=E.useCallback(()=>{const Ee=qe.current;ze(),Ee>0&&kt.current.scrollToIndex(Ee-1,{align:"end"});const Te=H.current;Te&&(Te.scrollTop=Math.max(0,Te.scrollHeight-Te.clientHeight),se.current=Te.scrollTop)},[ze]),$t=E.useCallback((Ee=!1,Te=!1)=>{We.current||=Ee,Ye.current||=Te,!(Ce.current!==null||He.current!==null)&&(Ce.current=window.requestAnimationFrame(()=>{if(Ce.current=null,!Ye.current&&(!K.current||te.current)){We.current=!1,Ye.current=!1;return}In(),He.current=window.requestAnimationFrame(()=>{He.current=null;const Xe=We.current,$e=Ye.current;We.current=!1,Ye.current=!1,!(!$e&&(!K.current||te.current))&&(In(),Xe&&I?.())})}))},[I,In]);E.useEffect(()=>pn,[pn]),E.useEffect(()=>{if(!A||typeof ResizeObserver>"u")return;const Ee=Se.current;if(!Ee)return;const Te=new ResizeObserver(()=>{J.current||!K.current||$t(!1)});return Te.observe(Ee),()=>Te.disconnect()},[A,$t,tn.length]);const Gt=et.length,Jt=E.useMemo(()=>{const Ee=Ke[Ke.length-1],Te=Ee?.kind==="message"?`message:${Ee.id}:${Ee.msg.content.length}:${Ee.timestamp}`:Ee?.kind==="draft"?`draft:${Ee.id}:${Ee.text.length}:${Ee.timestamp}`:Ee?.kind==="progress"?`progress:${Ee.id}:${Ee.entry.summary.length}:${Ee.entry.detail?.length??0}:${Ee.timestamp}`:Ee?.kind==="ops-bundle"?`ops:${Ee.id}:${Ee.events.length}:${Ee.timestamp}`:"empty",Xe=Fe[Fe.length-1],$e=Xe?`${Xe.type}:${Xe.summary.length}:${Xe.detail?.length??0}:${Xe.timestamp}`:"none";return[tn.length,Gt,Te,Fe.length,$e,it.length,bt,Re?`${o??""}:${a??""}`:""].join("|")},[o,Fe,a,Gt,it.length,Re,Ke,tn.length,bt]);E.useLayoutEffect(()=>{const Ee=Ke.length>0||it.length>0||bt>0||Re;!J.current||!Ee||(J.current=!1,je.current=Gt,$t(A,!0))},[Ke.length>0,Re]),E.useEffect(()=>{!A||J.current||K.current&&(Gt<=je.current||(je.current=Gt,$t(!0)))},[Gt,A,$t]),E.useEffect(()=>{const Ee=P.current==="idle"&&!!o&&o!=="idle";P.current=o,!(!A||J.current||!K.current||!Ee)&&$t(!0)},[o,A,$t]),E.useEffect(()=>{!A||J.current||!K.current||vt&&$t(!0)},[A,vt,$t]),E.useLayoutEffect(()=>{!A||J.current||!K.current||$t(!1)},[A,$t,Jt]);const tr=E.useCallback(Ee=>{if(Ee.kind==="history-hint")return c.jsxs("div",{className:"msg-history-hint",children:[c.jsx("button",{className:"msg-history-load-btn",onClick:()=>{Qt()},disabled:M,children:M?"Loading older messages...":Ge>0?`Load ${Math.min(Ug,Ge)} older messages`:"Load older messages"}),c.jsxs("span",{className:"msg-history-meta",children:["Showing latest ",tt.length," of ",T??Ke.length]})]});if(Ee.kind==="work-item-runtime-card")return c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx($y,{workItemLog:w??[],roleWorkItems:_,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]});if(Ee.kind==="progress-block")return c.jsxs("div",{className:"msg-row agent agent-working-row",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Vo,{entries:Fe,agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,expandedByDefault:!0})})]});if(Ee.kind==="pending-section")return c.jsxs("div",{className:"msg-pending-section",children:[c.jsx("div",{className:"msg-pending-header",children:"Pending Actions"}),c.jsx("div",{className:"msg-pending-stack",children:it.map(Ve=>{const ar=Ve.senderDeleted?"[Deleted]":Ve.senderName,Zn=ov(Ve.sender==="system"?Ve.senderName||"OPC":Ve.sender),An=Ve.channelId.startsWith("session:")?Ve.channelId.slice(8):Ve.metadata?.taskId??Ve.metadata?.task_id,Tt=String(Ve.metadata?.checkpoint_type??"").trim(),lr=x0(Ve.metadata);return c.jsxs("div",{className:`msg-row agent msg-row-pending${Ve.senderDeleted?" deleted-sender":""}`,children:[c.jsx("div",{className:"msg-avatar agent-avatar",style:{background:Zn},children:ar.charAt(0).toUpperCase()}),c.jsxs("div",{className:"msg-body",children:[c.jsxs("div",{className:"msg-agent-header",children:[c.jsx("span",{className:`msg-sender${Ve.senderDeleted?" deleted":""}`,style:{color:Zn},children:ar}),c.jsx("span",{className:"msg-time",title:Wi(Ve.timestamp),children:Ss(Ve.timestamp)})]}),Tt==="company_recruitment_confirmation"&&c.jsx(aI,{meta:Ve.metadata,onReply:(Sn,dt)=>C?.(Sn,An,dt),responded:!1}),Tt==="company_staffing_selection"&&c.jsx(uI,{meta:Ve.metadata,onReply:(Sn,dt)=>C?.(Sn,An,dt),responded:!1}),Tt==="company_work_item_gate"&&c.jsx(Yf,{meta:Ve.metadata,onReply:Sn=>C?.(Sn,An,lr),responded:!1}),Tt==="company_delivery_feedback"&&c.jsx(fI,{meta:Ve.metadata,onReply:(Sn,dt)=>C?.(Sn,An,dt??lr),responded:!1}),Tt==="company_reorg_pending"&&c.jsx(dI,{meta:Ve.metadata,onReply:Sn=>C?.(Sn,An,lr),responded:!1}),Tt==="human_escalation"&&c.jsx(Yf,{meta:Ve.metadata,onReply:Sn=>C?.(Sn,An,lr),responded:!1}),Tt==="task_user_input"&&c.jsx(mI,{meta:Ve.metadata,onReply:(Sn,dt)=>C?.(Sn,An,{...lr,...dt}),responded:!1})]})]},`pending-${Ve.id}`)})})]});if(Ee.kind==="end-anchor")return c.jsx("div",{className:"msg-end-anchor"});const{item:Te,showDate:Xe,dateStr:$e,isGrouped:It}=Qe[Ee.idx];if(Te.kind==="progress")return c.jsx(cF,{entry:Te.entry,showDate:Xe,dateStr:$e,compact:i!=="full"});if(Te.kind==="draft")return c.jsx(mF,{text:Te.text,timestamp:Te.timestamp,iteration:Te.iteration,showDate:Xe,dateStr:$e});if(Te.kind==="ops-bundle")return c.jsx(yF,{events:Te.events,showDate:Xe,dateStr:$e});const{msg:yt}=Te,Kn=yt.metadata?.type==="system",Me=rF(yt),Mt=!!yt.metadata?.is_work_item_event||yt.content.startsWith("[Company:"),Tn=Zc(yt.metadata),or=yt.sender==="user",Rn=!or&&!Tn?hI(yt.content):null;if(Mt&&!Tn)return c.jsx(uF,{msg:yt,showDate:Xe,dateStr:$e});if(Rn)return c.jsx(bF,{msg:yt,payload:Rn,showDate:Xe,dateStr:$e,isCopied:V===yt.id,onCopy:xn});if(Me&&!Tn)return c.jsx(fF,{msg:yt,showDate:Xe,dateStr:$e});if(Kn&&!Tn)return c.jsx(dF,{msg:yt,showDate:Xe,dateStr:$e});if(or)return c.jsx(hF,{msg:yt,showDate:Xe,dateStr:$e,isGrouped:It,isCopied:V===yt.id,onCopy:xn,onImageClick:q,renderUserMarkdown:G});if(yt.sender==="system"&&(String(yt.metadata?.checkpoint_type??"").trim(),!Zc(yt.metadata))){const Ve=pI(yt.content);if(Ve)return c.jsx(xF,{msg:yt,showDate:Xe,dateStr:$e,isGrouped:It,classification:Ve})}return c.jsx(_F,{msg:yt,showDate:Xe,dateStr:$e,isGrouped:It,isCopied:V===yt.id,isCheckpointResponded:Oe.respondedMessageIds.has(yt.id),suppressCheckpointPanel:Oe.duplicateMessageIds.has(yt.id),onCopy:xn,onSend:C})},[Qe,V,xn,G,Oe,C,Qt,M,Ge,tt.length,T,Ke.length,w,_,k,S,t,N,L,Fe,o,a,u,d,it,Re,i]);if(Ke.length===0&&it.length===0)return c.jsxs("div",{className:"msg-list",ref:H,onScroll:gt,children:[c.jsxs("div",{className:"msg-welcome",children:[c.jsx("div",{className:"msg-welcome-icon",children:kn.icon}),c.jsx("div",{className:"msg-welcome-title",children:n||kn.title}),c.jsx("div",{className:"msg-welcome-hint",children:kn.hint})]}),Nn&&c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx($y,{workItemLog:w??[],roleWorkItems:_,executorRoleWorkItems:k,childSessions:S,isCompanyRuntime:v,onWorkItemClick:N})})]}),Re&&c.jsxs("div",{className:"msg-row agent",children:[c.jsx("div",{className:"msg-avatar agent-avatar",children:c.jsx(Po,{})}),c.jsx("div",{className:"msg-body",children:c.jsx(Vo,{entries:Fe,agentStatus:o,currentTool:a,toolElapsedMs:u,lastToolSummary:d,expandedByDefault:!0})})]}),c.jsx("div",{className:"msg-end-anchor"})]});const Mn=Nt.getVirtualItems();return c.jsxs("div",{className:"msg-list",ref:H,onScroll:gt,children:[c.jsx("div",{ref:Se,style:{height:Nt.getTotalSize(),width:"100%",position:"relative"},children:c.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Mn[0]?.start??0}px)`},children:Mn.map(Ee=>c.jsx("div",{"data-index":Ee.index,ref:Nt.measureElement,children:tr(tn[Ee.index])},Ee.key))})}),Z&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>q(null),children:c.jsx("img",{className:"lightbox-img",src:Z,alt:"Preview"})})]})}),kF=10*1024*1024,SF=20*1024*1024,wF="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",Xd={native:"OpenOPC Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"};function CF(e,t){return new Promise((n,r)=>{const i=new FileReader;i.onprogress=o=>{o.lengthComputable&&t?.(Math.round(o.loaded/o.total*100))},i.onload=()=>{const o=i.result;t?.(100),n(o.split(",")[1]||"")},i.onerror=r,i.readAsDataURL(e)})}function Uw(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(0)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}function gI(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 jF(e,t){const n=gI(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 EF({progress:e,state:t,error:n}){const i=2*Math.PI*11,o=n||t==="ready"?100:Math.max(0,Math.min(e,100)),a=i*(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:i,strokeDashoffset:a})]}),c.jsx("span",{className:"attachment-progress-center",children:n?"!":t==="ready"?c.jsx(vl,{}):o})]})}function NF({usedPct:e,usedTokens:t,windowTokens:n}){const i=2*Math.PI*11,o=Math.max(0,Math.min(e,100)),a=i*(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:i,strokeDashoffset:a})]}),c.jsx("span",{className:"composer-context-ring-label",children:o})]})}function Gg(e){return e.organization_name?.trim()||e.name}function qg({disabled:e,placeholder:t,channelId:n,execMode:r,companyProfile:i,taskPreferredAgent:o="native",agentStatus:a,currentTool:u,displayTool:d,activeAgentCount:m,runtimeControlState:p,canStop:h,autoFocus:g=!0,contextTokens:y,contextWindow:v,contextRemainingPct:w,savedOrgs:S,activeSavedOrg:_,selectedOrgId:k,lockedMode:C=!1,onSend:N,onModeChange:L,onTaskAgentChange:I,onSavedOrgsRefresh:D,onSavedOrgLoad:T,onStop:O,onContinueInNewChat:M}){const[A,$]=E.useState(""),[Y,B]=E.useState(!1),[G,H]=E.useState([]),[V,W]=E.useState(null),Z=E.useRef(null),q=E.useRef(null),U=p==="suspending",ee=p==="running"||p==="suspending"||p==="resuming",P=p==="suspended",K=p!=null,J=ee||!K&&a!=null&&a!=="idle",te=(h??!0)&&!U&&!P,re=E.useMemo(()=>Bj({contextTokens:y,contextWindow:v,contextRemainingPct:w}),[w,y,v]);E.useEffect(()=>{const ke=Z.current;ke&&(ke.style.height="auto",ke.style.height=`${Math.min(ke.scrollHeight,200)}px`)},[A]),E.useEffect(()=>{$(""),H(ke=>(ke.forEach(Re=>{Re.preview_url&&URL.revokeObjectURL(Re.preview_url)}),[])),!e&&g&&setTimeout(()=>Z.current?.focus(),50)},[n,e,g]);const oe=E.useCallback((ke,Re)=>{H(Ke=>Ke.map(Ge=>Ge.id===ke?Re(Ge):Ge))},[]),fe=E.useCallback(async(ke,Re)=>{try{const Ke=await CF(Re,Ge=>{oe(ke,tt=>({...tt,progress_percent:Ge,transfer_state:"reading"}))});oe(ke,Ge=>({...Ge,base64_data:Ke,progress_percent:100,transfer_state:"ready"}))}catch{oe(ke,Ke=>({...Ke,error:"Failed to prepare file",progress_percent:0,transfer_state:"error"}))}},[oe]),se=E.useCallback(ke=>{const Re=Array.from(ke);let Ke=G.reduce((tt,Qe)=>tt+Qe.size_bytes,0);const Ge=Re.map(tt=>{let Qe;return tt.size>kF?Qe=`Too large (${Uw(tt.size)})`:Ke+tt.size>SF?Qe="Total size exceeds 20MB":Ke+=tt.size,{id:crypto.randomUUID(),file:tt,filename:tt.name||"upload",mime_type:tt.type||"application/octet-stream",size_bytes:tt.size,preview_url:tt.type.startsWith("image/")?URL.createObjectURL(tt):"",progress_percent:0,transfer_state:Qe?"error":"reading",error:Qe}});H(tt=>[...tt,...Ge]),Ge.filter(tt=>!tt.error).forEach(tt=>{fe(tt.id,tt.file)})},[G,fe]),je=E.useCallback(ke=>{H(Re=>{const Ke=Re.find(Ge=>Ge.id===ke);return Ke?.preview_url&&URL.revokeObjectURL(Ke.preview_url),Re.filter(Ge=>Ge.id!==ke)})},[]),Se=E.useCallback(()=>{if(e||J)return;const ke=A.trim(),Re=G.filter(tt=>!tt.error&&tt.transfer_state==="reading"),Ke=G.filter(tt=>!tt.error&&!!tt.base64_data);if(Re.length>0||!ke&&Ke.length===0)return;const Ge=Ke.map(tt=>({filename:tt.filename,data:tt.base64_data,mime_type:tt.mime_type}));N(ke||"Sent with attachments",Ge.length?Ge:void 0),$(""),G.forEach(tt=>{tt.preview_url&&URL.revokeObjectURL(tt.preview_url)}),H([])},[e,J,A,G,N]),Ce=E.useCallback(ke=>{const Re=ke.clipboardData?.files;Re&&Re.length>0&&(ke.preventDefault(),se(Re))},[se]),He=String(i??"").trim().toLowerCase(),We=r==="company"?"company":r==="org"||r==="custom"||He==="custom"?"org":"task",Ye=E.useMemo(()=>(S??[]).filter(ke=>!!ke.name&&ke.name!=="corporate"),[S]),gt=_?Ye.find(ke=>ke.name===_):void 0,Ut=k?Ye.find(ke=>ke.name===k):void 0,bt=gt?Gg(gt):_||"",xt=Ut?Gg(Ut):k||bt,me=Ut?.name||k||gt?.name||"",Oe=We==="task"?"task":"company",it=We==="org"?me?`org:${me}`:"":"corporate",et=We==="org"?xt?`Company / ${xt}`:"Company / Saved org":"Company / Corporate",nt=Oe==="task"?"Task":et,de=!!r&&!!L,ve=We==="task"&&!!I,Ae=E.useMemo(()=>{const ke=We==="task"?"task":We==="org"?`org:${me||"selected"}`:"company:corporate",Re=me||gt?.name||"",Ke=xt||bt||Re,Ge=[{key:"task",mode:"task",label:"Task",description:"A single agent handles the request",icon:c.jsx(w4,{})},{key:"company:corporate",mode:"company",profile:"corporate",label:"Company / Corporate",description:"A team of roles collaborates",icon:c.jsx(C4,{})}];return Re&&Ge.push({key:`org:${Re}`,mode:"org",profile:"custom",orgId:Re,label:`Company / ${Ke}`,description:"A saved company architecture collaborates",icon:c.jsx(j4,{})}),Ge.filter(tt=>tt.key!==ke)},[bt,gt?.name,We,xt,me]),Ue=G.filter(ke=>!ke.error&&ke.transfer_state==="reading").length,Fe=G.filter(ke=>!ke.error&&ke.transfer_state==="ready").length,vt=d||u,Rt=J?U?"Stopping...":m&&m>1?`${m} agents working`:vt?`Running ${vt}`:a==="reflecting"?"Thinking...":"Working...":null;return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:`msg-composer${Y?" focused":""}${J?" working":""}`,children:[J&&Rt&&c.jsxs("div",{className:"composer-status",children:[c.jsx("div",{className:"composer-status-indicator"}),c.jsx("span",{className:"composer-status-text",children:Rt}),c.jsxs("button",{className:"composer-stop-btn",onClick:O,title:"Stop",disabled:!te||!O,children:[c.jsx(Lj,{}),c.jsx("span",{children:U?"Stopping...":"Stop"})]})]}),G.length>0&&c.jsx("div",{className:"composer-attachments",children:G.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:()=>W(ke.preview_url)}):c.jsx("span",{className:`attachment-file-icon tone-${jF(ke.mime_type,ke.filename)}`,children:gI(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}%`:`${Uw(ke.size_bytes)} - Ready`})]}),c.jsx(EF,{progress:ke.progress_percent,state:ke.transfer_state,error:ke.error}),c.jsx("button",{className:"attachment-chip-remove",onClick:()=>je(ke.id),title:"Remove",children:c.jsx(gm,{})})]},ke.id))}),c.jsxs("div",{className:"composer-input-area",children:[c.jsx("textarea",{ref:Z,value:A,onChange:ke=>$(ke.target.value),onFocus:()=>B(!0),onBlur:()=>B(!1),onPaste:Ce,onKeyDown:ke=>{ke.key==="Enter"&&!ke.shiftKey&&(ke.preventDefault(),Se())},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:wF,style:{display:"none"},onChange:ke=>{ke.target.files&&se(ke.target.files),ke.target.value=""}}),(de||r)&&c.jsxs("div",{className:"composer-config-group","data-locked":C?"true":void 0,children:[de&&!C?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:Oe,onChange:ke=>{if(ke.target.value==="task"){L?.("task");return}L?.("company","corporate")},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Execution mode",children:[c.jsx("option",{value:"task",children:"Task"}),c.jsx("option",{value:"company",children:"Company"})]})})]}):de&&C?c.jsxs("div",{className:"composer-mode-chip","data-kind":"mode",tabIndex:0,role:"group","aria-label":`Mode locked to ${nt}.${M?" 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(Hk,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:nt}),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:nt}),"."]}),M&&Ae.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:Ae.map(ke=>c.jsxs("button",{type:"button",className:"composer-mode-chip-popover-action",onClick:()=>M(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(Pj,{})})]},ke.key))})]})]})]}):c.jsx("span",{className:"composer-mode","data-kind":"mode",children:nt}),Oe==="company"&&de&&!C&&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:it,onChange:ke=>{const Re=ke.target.value;if(Re==="corporate"){L?.("company","corporate");return}if(Re.startsWith("org:")){const Ke=Re.slice(4);Ke&&L?.("org","custom",Ke)}},onFocus:()=>D?.(),onPointerDown:()=>D?.(),disabled:e,"aria-label":"Company architecture",children:[c.jsx("option",{value:"corporate",children:"Corporate"}),!it&&c.jsx("option",{value:"",disabled:!0,children:"Select saved org"}),it&&it!=="corporate"&&!Ye.some(ke=>`org:${ke.name}`===it)&&c.jsx("option",{value:it,children:xt||me}),Ye.length===0?c.jsx("option",{value:"",disabled:!0,children:"No saved orgs"}):Ye.map(ke=>c.jsx("option",{value:`org:${ke.name}`,children:Gg(ke)},ke.name))]})})]})]}),We==="task"&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"composer-config-divider","aria-hidden":"true"}),ve&&!C?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(Xd).map(([ke,Re])=>c.jsx("option",{value:ke,children:Re},ke))})})]}):ve&&C?c.jsxs("span",{className:"composer-mode-chip","data-kind":"agent",tabIndex:0,role:"status","aria-label":`Agent locked to ${Xd[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(Hk,{})}),c.jsx("span",{className:"composer-mode-chip-label",children:Xd[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:Xd[o]})]})]}),c.jsx("span",{className:"composer-hint",children:Ue>0?`Preparing ${Ue} attachment${Ue>1?"s":""}`:Fe>0?`${Fe} attachment${Fe>1?"s":""} ready`:"Shift+Enter for new line"}),typeof re.usedPct=="number"&&c.jsx(NF,{usedPct:re.usedPct,usedTokens:re.usedTokens,windowTokens:re.windowTokens}),c.jsx("button",{className:"composer-send-btn",onClick:Se,disabled:e||Ue>0||!A.trim()&&Fe===0||J,children:c.jsx(p4,{})})]})]})]}),V&&c.jsx("div",{className:"lightbox-overlay",onClick:()=>W(null),children:c.jsx("img",{className:"lightbox-img",src:V,alt:"Preview"})})]})}function av(e){return xm(e)}function Gw(e){const t=av(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 lv(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 IF(e){return e.length===0?"—":lv(e[e.length-1].timestamp)}function TF(e){if(e.status==="done")return"Completed";if(e.status==="failed")return"Failed";if(e.status==="cancelled")return"Cancelled";const t=av(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 r=n[n.length-1];return r.type==="work_item_started"?`Work item: ${r.summary}`:r.type==="tool_call"?r.summary:r.detail?r.detail.replace(/\s+/g," ").trim():r.summary}return"Idle"}function qw(e){return e==="done"?"✓":e==="failed"?"✗":e==="cancelled"?"—":null}function Ww(e){return e==="done"?"awp-terminal-done":e==="failed"?"awp-terminal-failed":e==="cancelled"?"awp-terminal-cancelled":""}const RF={native:"Native",codex:"Codex",claude_code:"Claude Code",cursor:"Cursor",opencode:"OpenCode"},Wg={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"}},Hy={active:"Working",waiting:"Waiting",pending:"Pending",done:"Completed",failed:"Failed"},Yw={active:0,waiting:1,pending:2,done:3,failed:4};function AF(e){if(e.runtimeStatus==="tool_active")return"Running tool…";if(e.runtimeStatus==="reflecting")return"Thinking…";const t=Hy[e.aggregatedStatus]??"Pending";return e.aggregatedStatus==="done"?`${t} · ${e.workItems.length} work item${e.workItems.length===1?"":"s"}`:t}function MF(e){if(e.workItems.length===0)return"—";const t=e.workItems.reduce((n,r)=>Math.max(n,r.updatedAt),0);return t?lv(t):"—"}function DF(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function OF({sections:e,fallbackEntries:t,sessionStatus:n}){const r=(e??[]).filter(i=>(i.entries?.length??0)>0||!!i.runtimeTaskId);return r.length>0?c.jsx("div",{className:"wf-role-turn-activity-sections",children:r.map((i,o)=>{const a=i.entries??[],u=`${i.runtimeTaskId||i.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:i.title}),i.roleName&&c.jsx("span",{className:"wf-role-turn-activity-section-role",children:i.roleName}),a.length>0&&c.jsx("span",{className:"wf-role-turn-activity-section-count",children:a.length})]}),a.length>0?c.jsx(Vo,{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(Vo,{entries:t,sessionStatus:n,expandedByDefault:!0})}function LF({roleWorkItems:e,onOpenChildDetail:t,onOpenExecutionPanel:n}){const[r,i]=E.useState(null),[o,a]=E.useState(null),[u,d]=E.useState("all"),[m,p]=E.useState(""),[h,g]=E.useState(!1),y=E.useMemo(()=>Object.values(e),[e]),v=E.useMemo(()=>{let k=y.slice();if(u==="active"?k=k.filter(C=>C.aggregatedStatus==="active"):u==="idle"?k=k.filter(C=>C.aggregatedStatus==="done"||C.aggregatedStatus==="failed"):u==="pending"&&(k=k.filter(C=>C.aggregatedStatus==="pending"||C.aggregatedStatus==="waiting")),m.trim()){const C=m.toLowerCase();k=k.filter(N=>N.roleName.toLowerCase().includes(C)||N.roleId.toLowerCase().includes(C)||N.workItems.some(L=>L.title.toLowerCase().includes(C)))}return k.sort((C,N)=>{const L=Yw[C.aggregatedStatus]??99,I=Yw[N.aggregatedStatus]??99;return L!==I?L-I:C.roleName.localeCompare(N.roleName)}),k},[y,u,m]);E.useEffect(()=>{r&&!y.some(k=>k.roleKey===r)&&(i(null),a(null))},[y,r]);const w=y.filter(k=>k.aggregatedStatus==="active").length,S=r?e[r]??null:null,_=S&&o?S.workItems.find(k=>k.workItemId===o)??null:null;return y.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:w>0?`${w}/${y.length} active`:`${y.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${h?" active":""}`,onClick:()=>g(k=>!k),title:"Search agents",children:c.jsx(g0,{})})]})]}),h&&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=>p(k.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[v.map(k=>{const C=r===k.roleKey,N=k.aggregatedStatus==="active",L=k.runtimeStatus==="reflecting"||k.runtimeStatus==="tool_active",I=k.aggregatedStatus==="done"||k.aggregatedStatus==="failed";return c.jsxs("button",{className:`awp-row${C?" awp-row-selected":""}${N?" awp-row-active":""}${I?` awp-row-terminal awp-terminal-${k.aggregatedStatus}`:""}`,onClick:()=>{i(D=>D===k.roleKey?null:k.roleKey),a(null)},title:`${k.roleName} — ${Hy[k.aggregatedStatus]}`,children:[c.jsx("span",{className:`awp-dot${L?" 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:AF(k)}),c.jsx("span",{className:"awp-row-time",children:MF(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:Hy[S.aggregatedStatus]})]})]}),c.jsx("div",{className:"awp-detail-actions",children:c.jsx("button",{className:"awp-detail-close",onClick:()=>{i(null),a(null)},title:"Close detail",children:c.jsx(gm,{})})})]}),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(nl,{}),c.jsx("span",{children:"Work items"})]}),c.jsx("ul",{className:"wf-role-turns",children:S.workItems.map(k=>{const C=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${C?" wf-role-turn-expanded":""}`,children:[c.jsxs("button",{type:"button",className:"wf-role-turn-button",onClick:()=>a(L=>L===k.workItemId?null:k.workItemId),children:[c.jsx("span",{className:`wf-role-turn-column wf-role-turn-column-${N}`,children:k.kanbanColumn.replace("-"," ").replace(/^./,L=>L.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:lv(k.updatedAt)}),c.jsx("span",{className:"wf-role-turn-chevron",children:c.jsx(_s,{down:C})})]}),C&&c.jsxs("div",{className:"wf-role-turn-activity",children:[c.jsx(OF,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:DF(k)}),k.executionTurnId&&c.jsx("button",{type:"button",className:"wf-role-turn-open-session",onClick:L=>{L.stopPropagation(),k.executionTurnId&&(n??t)?.(k.executionTurnId)},children:"Open runtime session"})]})]},k.workItemId)})})]}),_===null&&S.workItems.length===0&&c.jsx("div",{className:"awp-detail-empty",children:"No work items yet"})]})]})]})}function zF({sessions:e,agents:t,onOpenChildDetail:n,onOpenExecutionPanel:r}){const[i,o]=E.useState(null),[a,u]=E.useState("all"),[d,m]=E.useState(""),[p,h]=E.useState(!1);E.useEffect(()=>{i&&!e.some(_=>_.taskId===i)&&o(null)},[e,i]);const g=E.useMemo(()=>{let _=[...e];if(a==="active"?_=_.filter(qi):a==="idle"?_=_.filter(k=>Fa.has(k.status)||av(k)==="idle"&&k.status!=="pending"):a==="pending"&&(_=_.filter(k=>k.status==="pending")),d.trim()){const k=d.toLowerCase();_=_.filter(C=>(C.assigneeIds[0]??C.title).toLowerCase().includes(k)||C.title.toLowerCase().includes(k))}return _.sort((k,C)=>Gw(k)-Gw(C)),_},[e,a,d]),y=e.filter(qi).length,v=E.useMemo(()=>i?e.find(_=>_.taskId===i)??null:null,[e,i]),w=E.useMemo(()=>{if(!v)return;const _=v.assigneeIds[0];return _?t.find(k=>k.agent_id===_):void 0},[v,t]),S=E.useCallback(_=>{o(k=>k===_?(n?.(_),k):_)},[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:y>0?`${y}/${e.length} active`:`${e.length}`})]}),c.jsxs("div",{className:"awp-controls",children:[c.jsxs("select",{className:"awp-filter",value:a,onChange:_=>u(_.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:()=>h(_=>!_),title:"Search agents",children:c.jsx(g0,{})})]})]}),p&&c.jsx("div",{className:"awp-search-bar",children:c.jsx("input",{className:"awp-search-input",type:"text",placeholder:"Search agents...",value:d,onChange:_=>m(_.target.value),autoFocus:!0})}),c.jsxs("div",{className:"awp-list",children:[g.map(_=>{const k=qi(_),C=Fa.has(_.status),N=i===_.taskId,L=_.assigneeIds[0]?.replace(/_/g," ").replace(/\b\w/g,O=>O.toUpperCase())??_.title,I=_.workItemProjectionId?.replace(/_/g," ")??"",D=qw(_.status),T=Ww(_.status);return c.jsxs("button",{className:`awp-row${N?" awp-row-selected":""}${k?" awp-row-active":""}${C?` awp-row-terminal ${T}`:""}`,onClick:()=>S(_.taskId),onDoubleClick:()=>n?.(_.taskId),title:n?"Click to inspect, click again or double-click to open full context":void 0,children:[D?c.jsx("span",{className:`awp-terminal-icon ${T}`,children:D}):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:L}),I&&c.jsx("span",{className:"awp-row-projection",children:I})]}),c.jsx("span",{className:"awp-row-activity",children:TF(_)}),c.jsx("span",{className:"awp-row-time",children:IF(_.progressLog)})]},_.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${Fa.has(v.status)?` ${Ww(v.status)}`:""}`,children:(w?.name??v.assigneeIds[0]??"?").charAt(0).toUpperCase()}),c.jsxs("div",{className:"awp-detail-meta",children:[c.jsx("span",{className:"awp-detail-name",children:w?.name??v.assigneeIds[0]??v.title}),al(v)&&c.jsx("span",{className:"awp-detail-role",children:al(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: ",RF[v.selectedExecutionAgent]??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"})]})}),r&&c.jsx("button",{className:"awp-detail-expand",onClick:()=>r(v.taskId),title:"Open execution panel",children:c.jsx(nl,{})}),c.jsx("button",{className:"awp-detail-close",onClick:()=>o(null),title:"Close detail",children:c.jsx(gm,{})})]})]}),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(Ef,{}),c.jsx("span",{children:"Handoff"})]}),c.jsx("div",{className:"msg-content-agent-card",children:c.jsx(rr,{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(nl,{}),c.jsx("span",{children:"Activity"})]}),c.jsx(Vo,{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&&!Fa.has(v.status)&&c.jsx("div",{className:"awp-detail-empty",children:"No activity recorded yet"})]}),Fa.has(v.status)&&Wg[v.status]&&c.jsxs("div",{className:`awp-result-banner ${Wg[v.status].cls}`,children:[c.jsx("span",{className:"awp-result-icon",children:qw(v.status)}),c.jsx("span",{children:Wg[v.status].text})]})]})]})]})}function PF({sessions:e,roleWorkItems:t,isCompanyRuntime:n=!1,agents:r,onOpenChildDetail:i,onOpenExecutionPanel:o}){return t&&Object.keys(t).length>0?c.jsx(LF,{roleWorkItems:t,onOpenChildDetail:i,onOpenExecutionPanel:o}):n?null:c.jsx(zF,{sessions:e,agents:r,onOpenChildDetail:i,onOpenExecutionPanel:o})}function xI(e){try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function Yg(e){return(e??[]).map(t=>t.trim()).filter(Boolean)}function Xw(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,xI(n)]:[t,String(n)]):[]}function BF({task:e,linkedSession:t,linkedSessionMessages:n,agents:r,onBack:i,onOpenLinkedSession:o,onOpenExecutionPanel:a}){const u=E.useMemo(()=>e.assigneeIds.map(I=>r.find(D=>D.agent_id===I)).filter(Boolean),[r,e.assigneeIds]),d=e.priority?Hf[e.priority]:null,m=e.residentAssignment??{},p=e.memberSessionState??{},h=e.ownershipContract??{},g=!!(e.agentStatus&&e.agentStatus!=="idle"),y=Yg(e.deliverables),v=Yg(e.acceptanceCriteria),w=Yg(e.dependencies),S=Xw({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}),_=Xw({status:p.status,current_turn_mode:p.current_turn_mode,manager_role_id:p.manager_role_id,actionable_inbox_count:p.actionable_inbox_count,protocol_backlog_count:p.protocol_backlog_count,notification_backlog_count:p.notification_backlog_count}),k=String(e.employeeAssignment?.promptContext??"").trim(),C=String(e.employeeAssignment?.deltaContext??"").trim(),N=Cm(e),L=!!(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:i,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:Ff[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:L?"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(rr,{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})]}),y.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:y.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})]}),w.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:w.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||_.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,D])=>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:D})]},I))}),_.length>0&&c.jsx("div",{className:"ctx-task-kv-grid",children:_.map(([I,D])=>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:D})]},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(rr,{content:k})})]}),C&&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:C})]}),Object.keys(h).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:xI(h)})]}),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,D)=>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}-${D}`))})]}),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(Ua,{messages:n,channelName:t.title??"Runtime Session",detailMode:"summary"})}):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 $F(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 HF(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 FF(e){if(!(!e||Object.keys(e).length===0))return Object.values(e).filter(t=>t.aggregatedStatus==="active").length}function VF(e){return new Set(e.filter(qi).map(n=>String(n.workItemRoleId??n.assigneeIds[0]??n.taskId).trim()).filter(Boolean)).size}function Kw(e,t){const n=FF(e);return n!==void 0?n||void 0:VF(t)||void 0}function UF(e){const t=Fy(e);return t==="org"||t==="custom"?`company/${e.orgId??"org"}`:t==="company"?`company/${e.companyProfile??"corporate"}`:t}function yI(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function GF(e){return!!(e.isCompanyRuntime||e.parentSessionId||e.workItemProjectionId||e.roleWorkItems||e.executorRoleWorkItems)}function qF(e){const t=String(e.execMode??"").trim().toLowerCase(),n=yI(e.execMode),r=String(e.companyProfile??"").trim().toLowerCase();return n==="company"?!1:n==="org"?!0:t?!1:r==="custom"||!!e.orgId}function Xg(e,t=0){if(!e)return t>0;if(Math.max(e.messageCount??0,t)>0)return!0;const r=String(e.status??"").trim().toLowerCase();return!!(r&&r!=="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 Fy(e,t){const r=String(e.execMode??"").trim().toLowerCase().length>0,i=yI(e.execMode);return qF(e)?"org":!r&&i==="task"&&GF(e)?"company":e.execMode??t??"task"}function Zw(e,t,n){return t&&e.selectedExecutionAgent&&e.selectedExecutionAgent!=="native"?e.selectedExecutionAgent:e.preferredAgent??e.selectedExecutionAgent??n}function Ec(e,t){const n=!!t?.childDetail;return e?n?"full":e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}const WF=new Set(["awaiting_human","awaiting_manager_review","awaiting_review","awaiting_peer"]);function Qw(e){const t=String(e.status??"").trim(),n=e.runtimeControlState==="suspended"||!WF.has(t)&&t!=="running"&&t!=="done";return!!(e.canResume??n)}function YF({task:e,agents:t,roleLabel:n}){const[r,i]=E.useState(!1),o=e.priority,a=o&&e.priority in Hf?Hf[o]:null,u=e.assigneeIds.map(h=>t.find(g=>g.agent_id===h)?.name??h).filter(Boolean),d=new Date(e.createdAt),m=e.employeeAssignment?.name?`${e.employeeAssignment.name}${e.employeeAssignment.category?` · ${e.employeeAssignment.category}`:""}`:null,p=({label:h,value:g})=>c.jsxs("div",{className:"ctx-info-fact",children:[c.jsx("span",{className:"ctx-info-fact-label",children:h}),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(h=>c.jsx("span",{className:"ctx-info-chip",children:h},h))})]})]}),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(p,{label:"Assignees",value:c.jsx("div",{className:"ctx-info-chips",children:u.map(h=>c.jsx("span",{className:"ctx-info-chip",children:h},h))})}),n&&c.jsx(p,{label:"Role",value:n}),m&&c.jsx(p,{label:"Employee",value:m}),e.selectedExecutionAgent&&c.jsx(p,{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(p,{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${r?" expanded":""}`,type:"button",onClick:()=>i(h=>!h),"aria-expanded":r,children:[c.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",children:c.jsx("path",{d:r?"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"})]}),r&&c.jsxs("div",{className:"ctx-info-card ctx-info-dev-card",children:[e.workItemProjectionId&&c.jsx(p,{label:"Projection",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.workItemProjectionId})}),c.jsx(p,{label:"Task ID",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.taskId})}),c.jsx(p,{label:"Channel",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.channelId})}),e.sessionId&&c.jsx(p,{label:"Session",value:c.jsx("span",{className:"ctx-info-mono ctx-info-mono-break",children:e.sessionId})})]})]})]})}function XF({panelState:e,width:t,onResizeMouseDown:n,isResizing:r,activeView:i,activeSession:o,activeTask:a,linkedTaskSession:u,linkedTaskSessionMessages:d,childDetailSession:m,messages:p,childDetailMessages:h,allSessions:g,openSessions:y,openSessionMessages:v,openSessionChildren:w,agents:S,childSessions:_,execMode:k,taskPreferredAgent:C,savedOrgsList:N,activeSavedOrg:L,onSavedOrgsList:I,onSavedOrgLoad:D,canShowAgentsTab:T=!1,channelId:O,channelName:M,secretaryChannelId:A,unreadCounts:$,multiSessionView:Y=!1,panelTab:B,onPanelTabChange:G,commsState:H,commsMessage:V,onCommsRefresh:W,onCommsReadMessage:Z,orgInfoData:q,recoveryStatus:U,canShowTeamTab:ee=!1,onTeamStopRun:P,onTitleChange:K,onSessionConfigChange:J,onSessionTaskAgentChange:te,onContinueInNewChat:re,onStop:oe,onComplete:fe,onResume:se,onResumeTask:je,onStopTask:Se,onCompleteTask:Ce,onLocateOnBoard:He,onBackToParent:We,onCloseTaskDetail:Ye,onOpenChildDetail:gt,onOpenExecutionPanel:Ut,onSelectSessionTab:bt,onCloseSessionTab:xt,onToggleMultiSessionView:me,onCollapse:Oe,onExpand:it,onMaximize:et,onComposerSend:nt,onMessageSend:de,onSessionSend:ve,onWorkItemClick:Ae,onWorkItemOpenSession:Ue,onMarkRead:Fe,onSessionMarkRead:vt,onLoadSessionHistory:Rt,isSessionHistoryLoading:ke}){const Re=i.kind==="secretary",Ke=i.kind==="activity",Ge=i.kind==="child-detail",tt=i.kind==="task-detail",Qe=!!(o&&(o.isCompanyRuntime||_.length>0)),xn=i.kind==="session"&&o,Qt=Re?!0:!!o,kn=!Ge&&y.length>0,Nn=y.length>1,sn=!!(Y&&i.kind==="session"&&o&&Nn&&B==="chat"),tn=E.useRef(null),Nt=E.useMemo(()=>{const Me=If(o,g);return Tf(o,[...Me,..._])},[o,_,g]),kt=Nt.displaySession??o,qe=Ec(kt),ze=E.useMemo(()=>Wk(o,Nt.runtimeSession,Nt.timelineSessions),[o,Nt.runtimeSession,Nt.timelineSessions]),pn=E.useMemo(()=>$4(o,Nt.runtimeSession,Nt.timelineSessions),[o,Nt.runtimeSession,Nt.timelineSessions]),In=E.useMemo(()=>Xk(Nt.timelineSessions),[Nt.timelineSessions]),$t=E.useMemo(()=>ze?.workItemLog??o?.workItemLog??[],[ze?.workItemLog,o?.workItemLog]),Gt=E.useMemo(()=>Uk(ze??o,g),[ze,o,g]),Jt=E.useMemo(()=>ze?.roleWorkItems??o?.roleWorkItems,[ze?.roleWorkItems,o?.roleWorkItems]),tr=E.useMemo(()=>ze?.executorRoleWorkItems??o?.executorRoleWorkItems,[ze?.executorRoleWorkItems,o?.executorRoleWorkItems]),Mn=!!(Jt&&Object.keys(Jt).length>0||tr&&Object.keys(tr).length>0),Ee=Gt.length>0?Gt:_,Te=E.useMemo(()=>Rf(Nt.timelineSessions),[Nt.timelineSessions]),Xe=E.useMemo(()=>Nt.timelineSessions.some(Me=>ke?.(Me.taskId)??!1),[Nt.timelineSessions,ke]),$e=E.useCallback(Me=>{if(Me){const Mt=Nt.timelineSessions.find(Tn=>Tn.channelId===Me.channelId);if(Mt)return Mt}return kt??o},[Nt.timelineSessions,kt,o]),It=E.useMemo(()=>{if(!m)return;const Me=m.assigneeIds[0];return Me?S.find(Mt=>Mt.agent_id===Me):void 0},[m,S]),yt=u??(()=>{const Me=Cm(a);return Me?g.find(Mt=>Mt.taskId===Me||Mt.runtimeTaskId===Me||Mt.executionTurnId===Me)??null:null})();E.useEffect(()=>{!Ge||!m||tn.current?.scrollTo({top:0,behavior:"auto"})},[Ge,m?.taskId]);const Kn=o;return e==="collapsed"?c.jsx("div",{className:"ctx-collapse-strip",onClick:()=>it(),title:"Open panel",children:"◀"}):c.jsxs(c.Fragment,{children:[c.jsx("div",{className:`ctx-resize-handle${r?" active":""}`,onMouseDown:n}),c.jsx("div",{className:`ctx-panel${e==="maximized"?" maximized":""}`,style:e!=="maximized"?{width:t}:void 0,children:tt&&a?c.jsx(BF,{task:a,linkedSession:yt,linkedSessionMessages:d,agents:S,onBack:Ye??Oe,onOpenLinkedSession:bt,onOpenExecutionPanel:Ut}):Ge&&m?c.jsxs("div",{className:"ctx-child-detail",ref:tn,children:[c.jsxs("div",{className:"ctx-child-topbar",children:[c.jsx("button",{className:"ctx-back-btn",onClick:We,children:"← Back to parent"}),(m.canStop??m.status==="running")&&m.runtimeControlState!=="suspending"&&Se&&c.jsx("button",{className:"ctx-child-stop-btn",onClick:()=>Se(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..."}),Qw(m)&&je&&c.jsx("button",{className:"ctx-child-resume-btn",onClick:()=>je(m.taskId),title:"Continue this agent's runtime",children:"Continue"})]}),c.jsxs("div",{className:"ctx-child-header",children:[It&&c.jsx("div",{className:"ctx-child-avatar",children:It.name.charAt(0).toUpperCase()}),c.jsxs("div",{className:"ctx-child-meta",children:[c.jsx("span",{className:"ctx-child-name",children:It?.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(Ef,{}),c.jsx("span",{children:"Received From"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(rr,{content:m.handoffContext})})]}),c.jsxs("div",{className:"ctx-child-transcript",children:[c.jsxs("div",{className:"ctx-child-transcript-header",children:[c.jsx(nl,{}),c.jsx("span",{children:"Transcript"})]}),c.jsx(Ua,{messages:h,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:!qi(m)&&m.messageCount>h.length,totalMessageCount:m.messageCount,onLoadOlderHistory:Me=>Rt?.(m.taskId,Me,"full"),loadingOlderHistory:ke?.(m.taskId)??!1,autoScroll:!1,initialScrollToBottom:!0,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(mm,{}),c.jsx("span",{children:"Artifacts"})]}),c.jsx("ul",{className:"ctx-child-artifact-list",children:m.artifacts.map((Me,Mt)=>c.jsx("li",{children:Me},Mt))})]}),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(Ef,{}),c.jsx("span",{children:"Passed To"})]}),c.jsx("div",{className:"msg-content-agent-card ctx-child-markdown-card",children:c.jsx(rr,{content:m.handoffTo})})]})]}):c.jsxs(c.Fragment,{children:[kn&&c.jsxs("div",{className:"ctx-session-strip",children:[c.jsx("div",{className:"ctx-session-strip-scroll",children:y.map(Me=>{const Mt=$?.[Me.channelId]??0,Tn=o?.taskId===Me.taskId;return c.jsxs("div",{className:`ctx-session-chip${Tn?" active":""}`,children:[c.jsxs("button",{className:"ctx-session-chip-main",onClick:()=>bt?.(Me.taskId),title:Me.title,children:[c.jsx("span",{className:`ctx-session-chip-status status-${Me.status}`}),c.jsx("span",{className:"ctx-session-chip-title",children:Me.title}),Mt>0&&c.jsx("span",{className:"ctx-session-chip-unread",children:Mt>99?"99+":Mt})]}),c.jsx("button",{className:"ctx-session-chip-close",onClick:()=>xt?.(Me.taskId),title:"Close tab",children:"×"})]},Me.taskId)})}),Nn&&c.jsx("button",{className:`ctx-session-view-btn${Y?" active":""}`,onClick:me,children:Y?"Single View":"Multi View"})]}),c.jsxs("div",{className:"ctx-header",children:[sn?c.jsx("span",{className:"ctx-header-title",children:Qe?"Open Runtime Sessions":"Open Sessions"}):xn?c.jsxs("div",{className:"ctx-header-tabs",role:"tablist","aria-label":"Session view",children:[c.jsx("button",{role:"tab","aria-selected":B==="chat",className:`ctx-tab${B==="chat"?" active":""}`,onClick:()=>G("chat"),children:"Chat"}),T&&c.jsx("button",{role:"tab","aria-selected":B==="agents",className:`ctx-tab${B==="agents"?" active":""}`,onClick:()=>G("agents"),children:"Agents"}),c.jsx("button",{role:"tab","aria-selected":B==="info",className:`ctx-tab${B==="info"?" active":""}`,onClick:()=>G("info"),children:"Info"}),W&&c.jsx("button",{role:"tab","aria-selected":B==="comms",className:`ctx-tab${B==="comms"?" active":""}`,onClick:()=>G("comms"),children:"Comms"}),ee&&c.jsx("button",{role:"tab","aria-selected":B==="team",className:`ctx-tab${B==="team"?" active":""}`,onClick:()=>G("team"),children:"Team"})]}):Re?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:et,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:it,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:Oe,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&&!Re&&!Ke&&c.jsxs("div",{className:"ctx-empty",children:[c.jsx("span",{className:"ctx-empty-icon",children:"📋"}),c.jsx("span",{children:Qe?"Select a Work Item to see details":"Select a task to see details"})]}),sn&&c.jsx("div",{className:"ctx-multi-grid",children:y.map(Me=>{const Mt=v[Me.taskId]??[],Tn=w[Me.taskId]??[],or=If(Me,g),Rn=Tf(Me,[...or,...Tn]),Ve=Wk(Me,Rn.runtimeSession,Rn.timelineSessions),ar=Uk(Ve??Me,g),Zn=Ve?.roleWorkItems??Me.roleWorkItems,An=Kw(Zn,Tn)??0,Tt=Me.assigneeIds.map(fn=>S.find(yn=>yn.agent_id===fn)?.name??fn).filter(Boolean),lr=HF(Ve??Me,An),Sn=!!(Me.isCompanyRuntime||Tn.length>0),dt=Rn.displaySession??Me,st=Xk(Rn.timelineSessions),cr=Rf(Rn.timelineSessions),Hn=Xg(Ve??dt,Math.max(cr,Mt.length)),nn=Rn.timelineSessions.some(fn=>ke?.(fn.taskId)??!1);return c.jsxs("section",{className:`ctx-multi-card${o?.taskId===Me.taskId?" focused":""}`,children:[c.jsxs("div",{className:"ctx-multi-card-header",children:[c.jsxs("button",{className:"ctx-multi-card-main",onClick:()=>bt?.(Me.taskId),title:"Focus session",children:[c.jsx("span",{className:`ctx-multi-card-status status-${Me.status}`}),c.jsx("span",{className:"ctx-multi-card-title",children:Me.title})]}),c.jsxs("div",{className:"ctx-multi-card-actions",children:[((Ve??Me).canStop??(Ve??Me).status==="running")&&(Ve??Me).runtimeControlState!=="suspending"&&Se&&c.jsx("button",{onClick:()=>Se(Rn.runtimeSession?.taskId??Me.taskId),children:"Stop"}),(Ve??Me).runtimeControlState==="suspending"&&c.jsx("button",{disabled:!0,children:"Stopping..."}),Qw(Ve??Me)&&je&&c.jsx("button",{onClick:()=>je(Me.taskId),children:"Continue"}),(Ve??Me).status!=="done"&&(Ve??Me).status!=="cancelled"&&Ce&&c.jsx("button",{onClick:()=>Ce(Me.taskId),children:"Done"}),c.jsx("button",{onClick:()=>bt?.(Me.taskId),children:"Focus"}),c.jsx("button",{onClick:()=>xt?.(Me.taskId),title:"Close tab",children:"×"})]})]}),c.jsxs("div",{className:"ctx-multi-card-meta",children:[c.jsx("span",{children:UF(Me)}),c.jsx("span",{children:Me.status}),lr&&c.jsx("span",{children:lr}),Tt.length>0&&c.jsx("span",{children:Tt.join(", ")}),c.jsx("span",{children:$F(Me.updatedAt)})]}),c.jsx("div",{className:"ctx-multi-card-body",children:c.jsx(Ua,{messages:Mt,channelName:dt?.title??Me.title,viewKind:"session",detailMode:Ec(dt),agentStatus:Ve?.agentStatus??dt?.agentStatus,currentTool:Ve?.currentTool??dt?.currentTool,toolElapsedMs:Ve?.toolElapsedMs??dt?.toolElapsedMs,lastToolSummary:Ve?.lastToolSummary??dt?.lastToolSummary,progressLog:st,draftAssistantText:Ve?.draftAssistantText??dt?.draftAssistantText,draftUpdatedAt:Ve?.draftUpdatedAt??dt?.draftUpdatedAt,draftIteration:Ve?.draftIteration??dt?.draftIteration,draftTurnId:Ve?.draftTurnId??dt?.draftTurnId,isCompanyRuntime:Ve?.isCompanyRuntime??Sn,workItemLog:Ve?.workItemLog??Me.workItemLog,childSessions:ar,onSend:(fn,yn,Dn)=>ve?.(Me.taskId,fn,void 0,Dn),onWorkItemClick:Ae,onWorkItemOpenSession:Ue,onMarkRead:()=>vt?.(Me.taskId),hasOlderHistory:!Rn.timelineSessions.some(qi)&&cr>Mt.length,totalMessageCount:cr,onLoadOlderHistory:fn=>{const yn=Rn.timelineSessions.find(Dn=>Dn.channelId===fn?.channelId)??dt??Me;return Rt?.(yn.taskId,fn,Ec(yn,{childDetail:yn.mode==="child"}))},loadingOlderHistory:nn,showRuntimeProgress:Ec(dt)==="full"},dt?.channelId??Me.channelId)}),c.jsx(qg,{disabled:!1,channelId:Ve?.channelId??Me.channelId,execMode:Fy(Me,k),companyProfile:Me.companyProfile,taskPreferredAgent:Zw(Me,Hn,C),agentStatus:Ve?.agentStatus??dt?.agentStatus,currentTool:Ve?.currentTool??dt?.currentTool,displayTool:Ve?.displayTool??dt?.displayTool,activeAgentCount:An||void 0,runtimeControlState:(Ve??dt)?.runtimeControlState,canStop:(Ve??dt)?.canStop,savedOrgs:N??null,activeSavedOrg:L??null,selectedOrgId:Me.orgId??L??null,lockedMode:Hn,autoFocus:!1,contextTokens:Ve?.contextTokens??dt?.contextTokens,contextWindow:Ve?.contextWindow??dt?.contextWindow,contextRemainingPct:Ve?.contextRemainingPct??dt?.contextRemainingPct??100,onSend:(fn,yn)=>ve?.(Me.taskId,fn,yn,Hj(y0(Mt).latestPendingReplyMetadata)),onModeChange:(fn,yn,Dn)=>J?.(Me.taskId,fn,yn,Dn),onTaskAgentChange:fn=>te?.(Me.taskId,fn),onContinueInNewChat:re,onSavedOrgsRefresh:I,onSavedOrgLoad:D,onStop:()=>Se?.(Rn.runtimeSession?.taskId??Me.taskId)})]},Me.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(Ua,{messages:p,channelName:"Activity",viewKind:"activity",detailMode:"summary",onSend:de,onMarkRead:Fe},O)]}),Re&&c.jsxs(c.Fragment,{children:[c.jsx(Ua,{messages:p,channelName:"Secretary",viewKind:"secretary",detailMode:"summary",onSend:de,onMarkRead:Fe},A),c.jsx(qg,{disabled:!1,channelId:A,placeholder:"Talk to Secretary about policies, rules, preferences...",onSend:nt})]}),o&&!Re&&!Ke&&!sn&&B==="chat"&&c.jsxs(c.Fragment,{children:[c.jsx(P8,{session:pn??o,agents:S,onTitleChange:K,onViewOnBoard:He?()=>He(o.taskId):void 0,onStop:oe,onComplete:(pn??o).status!=="done"&&(pn??o).status!=="cancelled"?fe:void 0,onResume:se}),Qe&&(Mn||$t.length>0||Gt.length>0)&&c.jsx("div",{className:"ctx-work-item-progress",children:c.jsx($y,{workItemLog:$t,roleWorkItems:Jt,executorRoleWorkItems:tr,childSessions:Gt,isCompanyRuntime:Qe,onWorkItemClick:Ae})}),c.jsx(Ua,{messages:p,channelName:M,viewKind:"session",detailMode:qe,agentStatus:ze?.agentStatus??kt?.agentStatus,currentTool:ze?.currentTool??kt?.currentTool,toolElapsedMs:ze?.toolElapsedMs??kt?.toolElapsedMs,lastToolSummary:ze?.lastToolSummary??kt?.lastToolSummary,progressLog:In,draftAssistantText:ze?.draftAssistantText??kt?.draftAssistantText,draftUpdatedAt:ze?.draftUpdatedAt??kt?.draftUpdatedAt,draftIteration:ze?.draftIteration??kt?.draftIteration,draftTurnId:ze?.draftTurnId??kt?.draftTurnId,isCompanyRuntime:ze?.isCompanyRuntime??Qe,workItemLog:$t,roleWorkItems:Jt,executorRoleWorkItems:tr,childSessions:Gt,onSend:de,onWorkItemClick:Ae,onWorkItemOpenSession:Ue,onMarkRead:Fe,hasOlderHistory:!Nt.timelineSessions.some(qi)&&Te>p.length,totalMessageCount:Te,onLoadOlderHistory:Me=>{const Mt=$e(Me);if(Mt)return Rt?.(Mt.taskId,Me,Ec(Mt,{childDetail:Mt.mode==="child"}))},loadingOlderHistory:Xe,showWorkItemRuntimeCard:!1,showRuntimeProgress:qe==="full"},O),c.jsx(qg,{disabled:!Qt,channelId:ze?.channelId??O,execMode:Fy(o,k),companyProfile:o.companyProfile,taskPreferredAgent:Zw(o,Xg(ze??kt??o,Math.max(Te,p.length)),C),agentStatus:ze?.agentStatus??kt?.agentStatus,currentTool:ze?.currentTool??kt?.currentTool,displayTool:ze?.displayTool??kt?.displayTool,runtimeControlState:(ze??kt)?.runtimeControlState,canStop:(ze??kt)?.canStop,savedOrgs:N??null,activeSavedOrg:L??null,selectedOrgId:o.orgId??L??null,lockedMode:Xg(ze??kt??o,Math.max(Te,p.length)),activeAgentCount:Kw(Jt,Ee),contextTokens:ze?.contextTokens??kt?.contextTokens,contextWindow:ze?.contextWindow??kt?.contextWindow,contextRemainingPct:ze?.contextRemainingPct??kt?.contextRemainingPct??100,onSend:nt,onModeChange:(Me,Mt,Tn)=>J?.(o.taskId,Me,Mt,Tn),onTaskAgentChange:Me=>te?.(o.taskId,Me),onContinueInNewChat:re,onSavedOrgsRefresh:I,onSavedOrgLoad:D,onStop:oe})]}),o&&!Re&&!sn&&B==="agents"&&T&&(Ee.length>0||Mn?c.jsx(PF,{sessions:Ee,roleWorkItems:Jt,isCompanyRuntime:Qe,agents:S,onOpenChildDetail:gt,onOpenExecutionPanel:Ut}):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&&!Re&&!sn&&B==="info"&&Kn&&c.jsx(YF,{task:Kn,agents:S,roleLabel:al(Kn)}),B==="comms"&&W&&Z&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(T8,{state:H??null,message:V??null,onRefresh:W,onReadMessage:Z,embedded:!0})}),B==="team"&&ee&&c.jsx("div",{style:{flex:1,overflow:"auto",minHeight:0},children:c.jsx(O8,{orgInfoData:q??null,recoveryStatus:U??null,commsState:H??null,onStopRun:P,embedded:!0})})]})]})})]})}function KF({initialWidth:e,minWidth:t,maxWidth:n,onCollapse:r}){const[i,o]=E.useState(e),[a,u]=E.useState(!1),d=E.useRef(0),m=E.useRef(0),p=E.useRef(e);p.current=i;const h=E.useCallback(g=>{g.preventDefault(),d.current=g.clientX,m.current=p.current,u(!0)},[]);return E.useEffect(()=>{if(!a)return;const g=v=>{const w=d.current-v.clientX,S=m.current+w;if(S{u(!1)};return document.body.style.userSelect="none",document.body.style.cursor="col-resize",document.addEventListener("mousemove",g),document.addEventListener("mouseup",y),()=>{document.body.style.userSelect="",document.body.style.cursor="",document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",y)}},[a,t,n,r]),{width:i,isResizing:a,handleMouseDown:h}}const ZF=200;function QF(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`ui-${e.randomUUID()}`:`ui-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function JF(e,t,n){if(e!=="org"&&e!=="custom"||!t)return!0;const{roles:r,employees:i}=t,o=jm(t),a=t.top_level_role_ids??[],u=t.final_decider_role_id??"";if(r.length===0)return confirm(`Your org has no roles defined. - -Set up at least one role before running a task. - -Go to Org tab now?`)&&n?.(),!1;if(a.length>1&&!u)return confirm(`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?`)&&n?.(),!1;const d=[],m=new Set(r.map(y=>y.role_id));o.runtimeTeams.filter(y=>y.member_role_ids.some(v=>m.has(v))||y.manager_role_id&&m.has(y.manager_role_id)).length===0&&d.push("No runtime teams defined — the system will auto-generate from your roles");const h=new Set(i.map(y=>y.role_id)),g=r.filter(y=>!h.has(y.role_id));if(g.length>0){const y=g.map(v=>v.name).join(", ");d.push(`${g.length} role(s) have no employees: ${y}`)}return d.length>0?confirm(`Before running this task: - -`+d.map(y=>"• "+y).join(` -`)+` - -Run anyway?`):!0}function eV(e){if(!e)return!1;const t=jm(e);return!!(t.projectRun?.run_id||t.runtimeTeams.length>0||t.runtimeSeats.length>0)}function Jw(e,t){const n=!!t?.childDetail;return e?n?"full":e.execMode==="company"||e.execMode==="org"||e.execMode==="custom"?"summary":"full":"summary"}function eC(e){return String(e?.originTaskId??e?.taskId??"").trim()||null}function tV({boardColor:e,title:t,onCommit:n}){const[r,i]=E.useState(!1),[o,a]=E.useState(t),u=E.useRef(null);E.useEffect(()=>{r||a(t)},[t,r]);const d=E.useCallback(()=>{const p=o.trim();p&&p!==t?n(p):a(t),i(!1)},[o,t,n]),m=E.useCallback(()=>{a(t),i(!0),setTimeout(()=>u.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:u,className:"board-tab-title-input",value:o,onChange:p=>a(p.target.value),onBlur:d,onKeyDown:p=>{p.key==="Enter"&&d(),p.key==="Escape"&&(a(t),i(!1))}}):c.jsx("span",{className:"board-tab-title",onClick:m,title:"Click to edit session title",children:t})]})})})}function nV({boardStore:e,agents:t,officeMap:n,execMode:r,companyProfile:i,taskPreferredAgent:o,chatStore:a,sessionStore:u,projectId:d,onRunTask:m,onCreateTask:p,onMoveTask:h,onCreateSession:g,onSessionSend:y,onSecretarySend:v,onDeleteSession:w,onTitleChange:S,onSessionConfigChange:_,onSessionTaskAgentChange:k,onContinueInNewChat:C,onSessionStop:N,onSessionResume:L,onSessionComplete:I,onLoadSessionDetail:D,onOpenExecutionPanel:T,onCollabSync:O,orgInfoData:M,onNavigateToOrg:A,recoveryStatus:$,onRecoveryResume:Y,onRecoveryCancel:B,commsState:G,commsMessage:H,onCommsRefresh:V,onCommsReadMessage:W,savedOrgsList:Z,activeSavedOrg:q,onSavedOrgsList:U,onSavedOrgLoad:ee}){const{sessions:P,activeSessionId:K,activeSession:J}=u,[te,re]=E.useState("collapsed"),{width:oe,isResizing:fe,handleMouseDown:se}=KF({initialWidth:380,minWidth:300,maxWidth:600,onCollapse:()=>re("collapsed")}),[je,Se]=E.useState("chat"),[Ce,He]=E.useState(null),[We,Ye]=E.useState({kind:"activity"}),[gt,Ut]=E.useState([]),[bt,xt]=E.useState(!1),[me,Oe]=E.useState({}),it=E.useRef(D),et=E.useRef({active:null,child:null}),nt=r==="company"||r==="org"||r==="custom",de=`secretary:${d}`,ve=`activity:${d}`,Ae=E.useMemo(()=>Ce?P.find(ue=>ue.taskId===Ce)??null:null,[P,Ce]),Ue=E.useMemo(()=>We.kind!=="task-detail"?null:e.tasks.find(ue=>ue.id===We.taskId)??null,[We,e.tasks]),Fe=E.useMemo(()=>{const ue=Cm(Ue);return ue?P.find(be=>be.taskId===ue||be.runtimeTaskId===ue||be.executionTurnId===ue)??null:null},[P,Ue]),vt=E.useMemo(()=>Fe?a.getChannelMessages(Fe.channelId):[],[a.messages,a.getChannelMessages,Fe]),Rt=E.useMemo(()=>pf(J,P),[P,J]),ke=E.useMemo(()=>If(J,P),[P,J]),Re=E.useMemo(()=>Tf(J,[...ke,...Rt]),[J,Rt,ke]);E.useEffect(()=>{it.current=D},[D]);const Ke=E.useCallback((ue,be,Be="summary")=>{const mt=it.current;!mt||!ue||(Oe(vn=>vn[ue]?vn:{...vn,[ue]:!0}),mt(ue,{limit:ZF,beforeCreatedAt:be?.timestamp,beforeMessageId:be?.id,detailLevel:Be}),window.setTimeout(()=>{Oe(vn=>vn[ue]?{...vn,[ue]:!1}:vn)},800))},[]),Ge=E.useCallback(ue=>!!me[ue],[me]);E.useEffect(()=>{et.current={active:null,child:null}},[d]),E.useEffect(()=>{Ce&&!Ae&&He(null)},[Ce,Ae]),E.useEffect(()=>{We.kind==="task-detail"&&!Ue&&Ye({kind:"activity"})},[We,Ue]);const tt=E.useRef(null);E.useEffect(()=>{if(!Fe){tt.current=null;return}tt.current!==Fe.taskId&&(tt.current=Fe.taskId,Ke(Fe.taskId,void 0,"full"))},[Fe,Ke]),E.useEffect(()=>{if(!Ce){et.current.child=null;return}et.current.child!==Ce&&(et.current.child=Ce,Ke(Ce,void 0,"full"))},[Ce,Ke]),E.useEffect(()=>{if(!K){et.current.active=null;return}const ue=Re.timelineSessions.length>0?Re.timelineSessions:P.find(Be=>Be.taskId===K)?[P.find(Be=>Be.taskId===K)]:[];if(ue.length===0){et.current.active=null;return}const be=ue.map(Be=>`${Be.taskId}:${Jw(Be,{childDetail:Be.mode==="child"})}`).join("|");if(et.current.active!==be){et.current.active=be;for(const Be of ue)Ke(Be.taskId,void 0,Jw(Be,{childDetail:Be.mode==="child"}))}},[Re.timelineSessions,K,Ke,P]);const Qe=E.useMemo(()=>Ce?{kind:"child-detail"}:We.kind==="task-detail"||We.kind==="secretary"?We:K?{kind:"session",taskId:K}:{kind:"activity"},[We,K,Ce]),xn=E.useMemo(()=>Qe.kind==="secretary"?de:Qe.kind==="child-detail"&&Ae?Ae.channelId:Qe.kind==="session"&&Re.displaySession?Re.displaySession.channelId:Qe.kind==="session"&&J?J.channelId:ve,[Qe,Re.displaySession,J,Ae,de,ve]),Qt=E.useMemo(()=>{if(Qe.kind==="activity")return[ve];if(Qe.kind==="secretary")return[de];if(Qe.kind==="child-detail"&&Ae)return[Ae.channelId];if(Qe.kind==="session"){const ue=Re.timelineSessions.map(be=>be.channelId).filter((be,Be,mt)=>!!be&&mt.indexOf(be)===Be);if(ue.length>0)return ue}return xn?[xn]:[]},[Qe.kind,Re.timelineSessions,Ae,ve,de,xn]),kn=E.useMemo(()=>{const ue=new Set;for(const be of P)be.status!=="cancelled"&&ue.add(be.channelId);return ue.add(ve),ue.add(de),ue},[P,ve,de]),Nn=E.useMemo(()=>Qe.kind==="activity"?a.messages.filter(ue=>ue.sender!=="user"&&kn.has(ue.channelId)).sort((ue,be)=>be.timestamp-ue.timestamp).slice(0,50).reverse():Qe.kind==="session"&&Qt.length>1?Yk(Qt.map(ue=>a.getChannelMessages(ue))):a.getChannelMessages(xn),[a.messages,a.getChannelMessages,xn,Qe.kind,kn,Qt]),sn=E.useMemo(()=>Ae?a.getChannelMessages(Ae.channelId):[],[a.messages,a.getChannelMessages,Ae]),tn=E.useMemo(()=>{if(Qe.kind==="session")return Hj(y0(Nn).latestPendingReplyMetadata)},[Nn,Qe.kind]),Nt=E.useMemo(()=>[...nt?P.filter(be=>be.mode!=="child"):P].sort((be,Be)=>Be.updatedAt-be.updatedAt),[P,nt]),kt=E.useMemo(()=>{if(!nt)return null;const ue=new Set;for(const be of P)be.mode==="child"&&ue.add(be.taskId);return ue.size>0?ue:null},[P,nt]),qe=E.useMemo(()=>{if(!kt)return e.tasksByColumn;const ue={};for(const[be,Be]of Object.entries(e.tasksByColumn))ue[be]=Be.filter(mt=>!kt.has(mt.id));return ue},[e.tasksByColumn,kt]),ze=!!(J&&(J.isCompanyRuntime||Rt.length>0)),pn=!!(J&&(nt||ze)),In=!!(J&&nt&&eV(M));E.useEffect(()=>{je==="agents"&&!pn&&Se("chat"),je==="comms"&&!V&&Se("chat"),je==="team"&&!In&&Se("chat")},[je,pn,In,V]);const $t=E.useMemo(()=>{const ue={};for(const be of P)ue[be.channelId]=a.getUnreadCount(be.channelId);return ue[de]=a.getUnreadCount(de),ue},[P,a.getUnreadCount,de]),Gt=E.useMemo(()=>gt.map(ue=>P.find(be=>be.taskId===ue)).filter(ue=>!!ue&&ue.mode!=="child"),[gt,P]),Jt=E.useMemo(()=>{const ue={};for(const be of Gt){const Be=pf(be,P),mt=If(be,P),vn=Tf(be,[...mt,...Be]);ue[be.taskId]=Yk(vn.timelineSessions.map(ln=>a.getChannelMessages(ln.channelId)))}return ue},[Gt,P,a.getChannelMessages]),tr=E.useMemo(()=>{const ue={};for(const be of Gt)ue[be.taskId]=pf(be,P);return ue},[Gt,P]),Mn=E.useCallback(ue=>{Ut(be=>be.includes(ue)?be:[...be,ue])},[]),Ee=E.useRef(null);E.useEffect(()=>{K&&!Ee.current&&te==="collapsed"&&(re("open"),Se("chat")),Ee.current=K},[K,te]),E.useEffect(()=>{K&&Mn(K)},[K,Mn]),E.useEffect(()=>{const ue=new Set(P.map(be=>be.taskId));Ut(be=>be.filter(Be=>ue.has(Be))),Oe(be=>Object.fromEntries(Object.entries(be).filter(([Be])=>ue.has(Be))))},[P]),E.useEffect(()=>{bt&&Gt.length<2&&xt(!1)},[bt,Gt.length]),E.useEffect(()=>{const ue=be=>{if(be.key==="Escape"&&te!=="collapsed"){const Be=be.target?.tagName;if(Be==="INPUT"||Be==="TEXTAREA"||Be==="SELECT")return;re("collapsed")}};return document.addEventListener("keydown",ue),()=>document.removeEventListener("keydown",ue)},[te]),E.useEffect(()=>{if(te!=="collapsed")for(const ue of Qt)a.markRead(ue)},[Qt,a,te]);const Te=E.useCallback(()=>{for(const ue of Qt)a.markRead(ue)},[Qt,a]),Xe=E.useCallback(ue=>{const be=P.find(Be=>Be.taskId===ue);be&&a.markRead(be.channelId)},[P,a]),$e=E.useCallback(ue=>{const be=P.find(Be=>Be.taskId===ue);be&&(Mn(ue),u.setActiveSession(ue),Ye({kind:"session",taskId:ue}),re("open"),Se("chat"),He(null),a.markRead(be.channelId))},[P,Mn,u,a]),It=E.useCallback(ue=>{const be=gt.filter(mt=>mt!==ue);if(Ut(be),Ce===ue&&He(null),K!==ue)return;const Be=be[be.length-1]??null;if(u.setActiveSession(Be),Be){const mt=P.find(vn=>vn.taskId===Be);Ye({kind:"session",taskId:Be}),Se("chat"),mt&&a.markRead(mt.channelId);return}Ye({kind:"activity"})},[gt,Ce,K,u,P,a]),yt=E.useCallback(ue=>{if(!ue){Ye({kind:"activity"}),u.setActiveSession(null),He(null);return}const be=P.find(Be=>Be.taskId===ue);if(nt&&be?.mode==="child"){He(ue),re("open");return}$e(ue)},[P,u,nt,$e]),Kn=E.useCallback(()=>{Ye({kind:"secretary"}),u.setActiveSession(null),He(null),re("open"),a.markRead(de)},[u,a,de]),Me=E.useCallback(ue=>{const be=e.tasks.find(mt=>mt.id===ue.id);if(nt&&be){He(null),Ye({kind:"task-detail",taskId:be.id}),re("open"),Se("info");return}P.find(mt=>mt.taskId===ue.id)?$e(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:r,companyProfile:i,assigneeIds:be.assigneeIds,priority:be.priority,tags:be.tags,selectedExecutionAgent:be.selectedExecutionAgent,createdAt:be.createdAt,updatedAt:be.updatedAt,messageCount:0,progressLog:[]}),Mn(ue.id),u.setActiveSession(ue.id),Ye({kind:"session",taskId:ue.id}),re("open"),Se("chat"),O?.())},[P,e.tasks,u,$e,Mn,O,nt]),Mt=E.useCallback(ue=>{if(!e.activeBoardId)return;const be=e.activeBoardColumns.find(mt=>mt.name==="Todo");if(!be)return;const Be=e.createTask({boardId:e.activeBoardId,columnId:be.id,title:ue});p(ue,e.activeBoardId,be.id,Be.id)},[e,p]),Tn=E.useCallback(ue=>{e.setActiveBoard(ue);const be=P.find(Be=>Be.mode!=="child"&&eC(Be)===ue);if(be){$e(be.taskId);return}He(null),Ye({kind:"activity"}),u.setActiveSession(null)},[e,P,$e,u]),or=E.useMemo(()=>new Set(e.boards.map(ue=>ue.id)),[e.boards]);E.useEffect(()=>{if(nt){const ue=Ue?.boardId??eC(J)??null;if(!ue||!or.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)},[nt,Ue?.boardId,J,or,e.activeBoardId,e.boards,e.setActiveBoard]);const Rn=E.useCallback(ue=>{const be=e.tasks.find(St=>St.id===ue);if(!be)return;const Be=P.find(St=>St.taskId===ue),mt=Be?.execMode??r,vn=Be?.companyProfile??i,ln=mt==="org"||mt==="custom"?"custom":mt==="company"?vn:void 0;if(!JF(mt,M,A))return;m(ue,be.title,be.description??"",mt,ln);const Qn=e.activeBoardColumns.find(St=>St.name==="In Progress");Qn&&e.moveTask(ue,Qn.id,0)},[e,m,P,r,i,M,A]),Ve=E.useCallback((ue,be,Be,mt)=>{_?.(ue,be,Be,mt)},[_]),ar=E.useCallback(ue=>{te==="maximized"&&re("open"),setTimeout(()=>{document.querySelector(`[data-task-id="${ue}"]`)?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},100)},[te]),Zn=E.useCallback(()=>{const be=(Re.runtimeSession??Re.displaySession??J)?.taskId??K;be&&N?.(be)},[Re.runtimeSession,Re.displaySession,J,K,N]),An=E.useCallback(()=>{Ce||K&&I?.(K)},[K,Ce,I]),Tt=E.useCallback(ue=>{N?.(ue)},[N]),lr=E.useCallback(()=>{const ue=Re.runtimeSession??Re.displaySession??J,be=ue?.resumeParentTaskId??ue?.taskId??K;be&&L?.(be)},[Re.runtimeSession,Re.displaySession,J,K,L]),Sn=E.useCallback(ue=>{const be=P.find(Be=>Be.taskId===ue);L?.(be?.resumeParentTaskId??ue)},[P,L]),dt=E.useCallback(ue=>{I?.(ue)},[I]),st=E.useCallback(()=>{if(!bt&&Qe.kind!=="session"){const ue=K??Gt[Gt.length-1]?.taskId??null;ue&&$e(ue)}xt(ue=>!ue)},[bt,Qe.kind,K,Gt,$e]),cr=E.useCallback((ue,be,Be,mt)=>{y(ue,be,Be,mt)},[y]),Hn=E.useCallback((ue,be)=>{if(Qe.kind==="secretary"){v?.(ue);return}const Be=K;if(!Be)return;const mt=String(tn?.response_to_checkpoint_id??"").trim();let vn=tn;if(!mt){const ln=QF();vn={...tn??{},ui_message_id:ln};const Qn=Re.displaySession??J;a.sendMessage({channelId:Qn?.channelId??`session:${Be}`,sender:"user",senderName:"You",content:ue,metadata:{ui_message_id:ln}})}cr(Be,ue,be,vn)},[Qe.kind,K,Re.displaySession,J,tn,a,cr,v]),nn=E.useCallback((ue,be,Be)=>{const mt=be??K;mt&&cr(mt,ue,void 0,Be)},[K,cr]),fn=E.useCallback(ue=>{const be=P.find(Be=>Be.taskId===ue||Be.runtimeTaskId===ue||Be.executionTurnId===ue);be&&(He(be.taskId),re("open"),Se("chat"),a.markRead(be.channelId))},[P,a]),yn=E.useCallback(ue=>{if(T){T(ue);return}fn(ue)},[fn,T]),Dn=Qe.kind==="secretary",Sr=Dn?"Secretary":J?J.title:"Activity";return c.jsxs("div",{className:`workspace-page${te==="maximized"?" panel-maximized":""}`,children:[c.jsx(q4,{sessions:Nt,activeSessionId:Dn?null:K,activeChannel:Dn?de:null,secretaryChannelId:de,unreadCounts:$t,onSelect:yt,onCreateSession:g,onDeleteSession:w,onSelectSecretary:v?Kn:void 0}),te!=="maximized"&&c.jsxs("div",{className:"workspace-board",children:[$&&Y&&B&&c.jsx(t4,{data:$,onResume:Y,onCancel:B}),t.length>0&&c.jsx(b8,{agents:t,tasks:e.tasks}),nt?e.activeBoard&&J&&c.jsx(tV,{boardColor:e.activeBoard.color,title:e.activeBoard.name,onCommit:ue=>S(J.taskId,ue)},J.taskId):e.boards.length>1&&c.jsx(_8,{boards:e.boards,activeBoardId:e.activeBoardId,onSelect:Tn}),nt&&!e.activeBoard?c.jsx("div",{className:"kanban-empty-state",children:c.jsx("p",{children:"Select a Runtime Session on the left to view its Work Item board."})}):c.jsxs(c.Fragment,{children:[c.jsx(v8,{columns:e.activeBoardColumns,tasksByColumn:qe,agents:t,officeMap:n,store:e,companyMode:nt,selectedTaskId:Qe.kind==="task-detail"?Qe.taskId:K,onCardClick:Me,onStartTask:Rn,onQuickCreate:Mt,onMoveTask:h}),nt&&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:"No work items yet — start delegation to populate this board."})})]})]}),c.jsx(XF,{panelState:te,width:oe,onResizeMouseDown:se,isResizing:fe,activeView:Qe,activeSession:J,activeTask:Ue,linkedTaskSession:Fe,linkedTaskSessionMessages:vt,childDetailSession:Ae,messages:Nn,childDetailMessages:sn,allSessions:P,openSessions:Gt,openSessionMessages:Jt,openSessionChildren:tr,agents:t,childSessions:Rt,execMode:r,taskPreferredAgent:o,savedOrgsList:Z??null,activeSavedOrg:q??null,onSavedOrgsList:U,onSavedOrgLoad:ee,canShowAgentsTab:pn,channelId:xn,channelName:Sr,secretaryChannelId:de,unreadCounts:$t,multiSessionView:bt,panelTab:je,onPanelTabChange:Se,commsState:G??null,commsMessage:H??null,onCommsRefresh:V?()=>V({session_id:J?.sessionId||void 0,project_id:d||void 0}):void 0,onCommsReadMessage:W,orgInfoData:M??null,recoveryStatus:$??null,canShowTeamTab:In,onTeamStopRun:K?()=>N?.(K):void 0,onTitleChange:S,onSessionConfigChange:Ve,onSessionTaskAgentChange:k,onContinueInNewChat:C,onStop:Zn,onComplete:An,onResume:lr,onResumeTask:Sn,onStopTask:Tt,onCompleteTask:dt,onLocateOnBoard:ar,onBackToParent:()=>He(null),onCloseTaskDetail:()=>Ye({kind:"activity"}),onOpenChildDetail:fn,onOpenExecutionPanel:T,onSelectSessionTab:$e,onCloseSessionTab:It,onToggleMultiSessionView:st,onCollapse:()=>re("collapsed"),onExpand:()=>re("open"),onMaximize:()=>re(ue=>ue==="maximized"?"open":"maximized"),onComposerSend:Hn,onMessageSend:nn,onSessionSend:cr,onWorkItemClick:yn,onWorkItemOpenSession:fn,onMarkRead:Te,onSessionMarkRead:Xe,onLoadSessionHistory:Ke,isSessionHistoryLoading:Ge})]})}function rV(){return`${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const cv=2e3,tC={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 Go(e){return e.metadata??{}}function Xf(e){const t=String(e??"").replace(/\r\n/g,` -`).replace(/\r/g,` -`).split(` -`).map(i=>i.trimEnd()).join(` -`).replace(/\n{3,}/g,` - -`).trim(),n=iV(t),r=n.split(/\n{2,}/).map(i=>i.trim()).filter(Boolean);return r.length>1&&/^Verification:\s/i.test(r[r.length-1])?r.slice(0,-1).join(` - -`).trim():n}function iV(e){const t=String(e||"").trim(),n=t.match(/^\*\*(.{8,160}?)\*\*:\s+([\s\S]+)$/);if(n){const a=n[2].trim();if(a.length>=80)return a}const r=t.indexOf(": ");if(r<8||r>160)return t;const i=t.slice(0,r).replace(/\*/g,"").trim(),o=t.slice(r+2).trim();return o.length<80||!/[A-Za-z\u4e00-\u9fff]/.test(i)||/^(https?|file)$/i.test(i)?t:o}function qo(e){const t=Go(e),n=new Set,r=typeof t.checkpoint_type=="string"?t.checkpoint_type.trim():"",i=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:"",r&&i?`checkpoint:${r}:${i}`:""]){const a=String(o??"").trim();a&&n.add(a)}return n}function sV(e){return e.startsWith("checkpoint:")}function Gi(e){return typeof e.timestamp=="number"?e.timestamp:0}function nC(e){const t=String(e.sender??"").trim().toLowerCase(),n=Go(e),r=typeof n.role=="string"?n.role.trim().toLowerCase():"";return t==="user"||r==="user"?"user":"assistant"}function rC(e){const t=Go(e),n=String(e.sender??"").trim().toLowerCase();let r=0;const i=vI(e);return i&&(r+=1e3+i),t.source==="engine"&&(r+=100),n&&n!=="system"&&(r+=20),n&&!["assistant","system","user"].includes(n)&&(r+=5),e.replyToId&&(r+=2),r+=Math.min(Object.keys(t).length,10),r}function iC(e){return String(Go(e).source??"").trim().toLowerCase()==="engine"}function vI(e){const t=Go(e),n=String(t.transcript_kind??"").trim();if(n)return tC[n]??0;const r=String(t.kind??"").trim();return tC[r]??0}function Kf(e){return vI(e)>0}function bI(e,t){if(e.channelId!==t.channelId)return!1;const n=qo(e),r=qo(t);for(const i of n)if(r.has(i))return!0;return!1}function Vy(e,t){if(bI(e,t))return!0;if(e.channelId!==t.channelId||nC(e)!==nC(t)||Xf(e.content)!==Xf(t.content))return!1;const n=Kf(e)&&Kf(t);if(!n&&String(e.replyToId??"")!==String(t.replyToId??"")||!(iC(e)||iC(t)))return!1;const r=Gi(e),i=Gi(t);return!(!n&&r&&i&&Math.abs(r-i)>cv)}function Uy(e,t,n=!1){let r=e,i=t;(n||rC(t)>rC(e))&&(r=t,i=e);const o=[];for(const h of[i.mentions,r.mentions])for(const g of h??[])o.includes(g)||o.push(g);const a=qo(e),u=qo(t);let d="";for(const h of a)if(u.has(h)&&!sV(h)){d=h;break}const m=Xf(r.content),p=m&&m===Xf(i.content)?m:r.content;return{...i,...r,...d?{id:d}:{},content:p,metadata:{...Go(i),...Go(r)},mentions:o,timestamp:Gi(r)||Gi(i)}}function Kg(e){const t=[],n=new Map;for(const r of[...e].sort((i,o)=>Gi(i)-Gi(o))){const i=qo(r);let o=-1,a=!1;for(const d of i){const m=n.get(d);if(m!==void 0){o=m,a=t[m].id===r.id;break}}if(o===-1){const d=Gi(r),m=Kf(r);for(let p=t.length-1;p>=0;p--){const h=Gi(t[p]);if(!m&&d>0&&h>0&&d-h>cv)break;if(Vy(t[p],r)){o=p;break}}}const u=o===-1?t.length:o;o===-1?t.push(r):t[o]=Uy(t[o],r,a);for(const d of qo(t[u]))n.has(d)||n.set(d,u)}return t}function oV(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(r=>r!==t.agentId)}));default:return e}}function aV(e,t){switch(t.type){case"SET":{const n=Kg(t.messages);if(e.length===0)return n;const r=e.filter(i=>typeof i.id=="string"&&i.id.startsWith("msg-")&&!n.some(o=>Vy(i,o)));return r.length===0?n:Kg([...n,...r])}case"CLEAR":return[];case"ADD":{const n=Gi(t.message);qo(t.message);let r=!1;for(let i=e.length-1;i>=0;i--){const o=Gi(e[i]);if(!r&&n>0&&o>0&&n-o>cv&&(r=!0),bI(e[i],t.message)){const a=[...e];return a[i]=Uy(e[i],t.message,e[i].id===t.message.id),a}if((Kf(t.message)||!r)&&Vy(e[i],t.message)){const a=[...e];return a[i]=Uy(e[i],t.message),a}}return[...e,t.message]}case"MERGE":return t.messages.length===0?e:Kg([...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 lV(){const[e,t]=E.useReducer(oV,[]),[n,r]=E.useReducer(aV,[]),[i,o]=E.useState({}),[a,u]=E.useState("default"),d=E.useMemo(()=>{const I={};for(const D of n)I[D.channelId]||(I[D.channelId]=[]),I[D.channelId].push(D);return I},[n]),m=E.useMemo(()=>{const I={};for(const D of n){if(D.sender==="user")continue;const T=i[D.channelId]??0;D.timestamp<=T||(I[D.channelId]=(I[D.channelId]??0)+1)}return I},[n,i]),p=E.useCallback(I=>{const D={id:`msg-${rV()}`,channelId:I.channelId,sender:I.sender,senderName:I.senderName,content:I.content,timestamp:Date.now(),replyToId:I.replyToId,mentions:[],metadata:I.metadata};return r({type:"ADD",message:D}),D},[]),h=E.useCallback(I=>d[I]??[],[d]),g=E.useCallback(I=>m[I]??0,[m]),y=E.useCallback(I=>{o(D=>({...D,[I]:Date.now()}))},[]),v=E.useCallback(I=>{r({type:"MARK_SENDER_DELETED",senderId:I})},[]),w=E.useCallback(I=>{t({type:"REMOVE_PARTICIPANT",agentId:I})},[]),S=E.useCallback(I=>{t({type:"REMOVE",channelId:`session:${I}`}),r({type:"REMOVE_BY_TASK_ID",taskId:I})},[]),_=E.useCallback(()=>{t({type:"CLEAR"}),r({type:"CLEAR"}),o({})},[]),k=E.useCallback((I,D,T)=>{const O=I||"default",M=O!==a;u(O),t({type:"SET",channels:D}),r(M?{type:"SET",messages:T}:{type:"MERGE",messages:T});const A={};for(const $ of T)(!A[$.channelId]||$.timestamp>A[$.channelId])&&(A[$.channelId]=$.timestamp);o($=>M?A:{...$,...A})},[a]),C=E.useCallback(I=>{r({type:"ADD",message:I})},[]),N=E.useCallback(I=>{r({type:"MERGE",messages:I})},[]),L=E.useCallback(I=>{t({type:"ADD",channel:I})},[]);return E.useMemo(()=>({scopeProjectId:a,channels:e,messages:n,sendMessage:p,getChannelMessages:h,getUnreadCount:g,markRead:y,markSenderDeleted:v,removeParticipant:w,removeSessionData:S,clear:_,initFromBackend:k,addMessageFromBackend:C,mergeMessagesFromBackend:N,addChannelFromBackend:L}),[a,e,n,p,h,g,y,v,w,S,_,k,C,N,L])}const Am=4e3;function Ja(e,t){return e.length>t?e.slice(-t):e}function Gy(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 r=Math.min(e.length,t.length);for(let i=r;i>0;i-=1)if(e.slice(-i)===t.slice(0,i))return`${e}${t.slice(i)}`;return n==="tool_call"&&/[}\]"]$/.test(e)&&!/^\s/.test(t)?`${e} -${t}`:`${e}${t}`}function cV(e,t){return"Thinking"}function uV(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 Zf(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 dV(e,t){const n=Zf(e),r=Zf(t);return n&&r?n===r:t.timestamp-e.timestamp>Am||e.type!==t.type?!1:e.type==="thinking"?!0:e.type==="tool_call"?e.summary===t.summary:!1}function fV(e,t){return t.timestamp-e.timestamp<=Am&&e.type===t.type&&e.summary===t.summary&&(e.detail??"")===(t.detail??"")}function mV(e,t){if(e.type==="thinking"){const n=Gy(e.detail??e.summary,t.detail??t.summary,"thinking");return{timestamp:t.timestamp,type:"thinking",summary:cV(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=Gy(e.detail??"",t.detail??"","tool_call");return{timestamp:t.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 _I(e,t,n=100){const r=uV(t),i=Zf(r),o=i?[...e].reverse().findIndex(d=>Zf(d)===i):-1,a=o>=0?e.length-1-o:e.length-1,u=e[a];return u?i&&typeof u.seq=="number"&&typeof r.seq=="number"&&r.seq<=u.seq?e:fV(u,r)?Ja([...e.slice(0,a),{...u,timestamp:r.timestamp},...e.slice(a+1)],n):dV(u,r)?Ja([...e.slice(0,a),mV(u,r),...e.slice(a+1)],n):Ja([...e,r],n):[r]}function kI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,r)=>_I(n,r,t),[])}function hV(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 SI(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 pV(e,t){return t.timestamp-e.timestamp<=Am&&SI(e,t)&&(e.type==="thinking"||e.type==="tool_call")}function gV(e,t){return SI(e,t)&&(e.detail??"")===(t.detail??"")&&t.timestamp-e.timestamp<=Am}function xV(e,t){const n=t.type==="tool_call"?"tool_call":"thinking";return{...e,...t,timestamp:t.timestamp,detail:Gy(e.detail??"",t.detail??"",n)||void 0}}function wI(e,t,n=100){const r=hV(t),i=e[e.length-1];return i?gV(i,r)?Ja([...e.slice(0,-1),{...i,timestamp:r.timestamp}],n):pV(i,r)?Ja([...e.slice(0,-1),xV(i,r)],n):Ja([...e,r],n):[r]}function CI(e,t=100){return(Array.isArray(e)?e:[]).reduce((n,r)=>wI(n,r,t),[])}function qy(e){const t=String(e??"").trim().toLowerCase();return t==="company"?"company":t==="org"||t==="custom"?"org":"task"}function yV(e){return String(e??"").trim().toLowerCase()==="custom"?"custom":"corporate"}function jI(e){const t=String(e.execMode??"").trim().toLowerCase(),n=String(e.companyProfile??"").trim().toLowerCase(),r=String(e.orgId??"").trim(),o=t.length>0?qy(t):n==="custom"||r?"org":qy(t);return o==="org"?{...e,execMode:"org",companyProfile:"custom",orgId:r||void 0}:o==="company"?{...e,execMode:"company",companyProfile:"corporate",orgId:void 0}:{...e,execMode:"task",companyProfile:void 0,orgId:void 0}}const Kd=100,vV=new Set(["done","failed","cancelled"]);function bV(e,t,n){const r=n,i=new Map(t.filter(u=>u.projectId===r).map(u=>[u.taskId,u])),o=new Set,a=[];for(const u of e){if(u.projectId!==r)continue;const d=i.get(u.taskId);d?(a.push(d),o.add(u.taskId)):a.push(u)}for(const u of t)u.projectId!==r||o.has(u.taskId)||(a.push(u),o.add(u.taskId));return a}function _V(e,t){const n=g=>jI({...g,progressLog:kI(g.progressLog??[],Kd),workItemLog:CI(g.workItemLog??[],Kd)}),r=g=>{const y=String(g.execMode??"").trim().toLowerCase();return y==="company"||y==="org"||y==="custom"||!!g.isCompanyRuntime||!!g.parentSessionId||!!g.workItemProjectionId||!!g.roleWorkItems||!!g.executorRoleWorkItems||!!g.orgId},i=g=>{const y=String(g.execMode??"").trim().toLowerCase(),v=String(g.companyProfile??"").trim().toLowerCase(),w=String(g.orgId??"").trim();return y==="task"&&(!v||v==="corporate")&&!w&&!g.isCompanyRuntime&&!g.parentSessionId&&!g.workItemProjectionId&&!g.workItemRoleId&&!g.roleWorkItems&&!g.executorRoleWorkItems},o=(g,y)=>{const v=g.execMode,w=y.execMode;return!v||v==="task"&&w&&w!=="task"&&!i(g)&&(r(g)||r(y))?w:v},a=(g,y,v)=>{const w=g[v],S=y[v];return!w||w==="native"&&S&&S!=="native"?S:w},u=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),d=(g,y,v)=>u(g,v)?g[v]:y[v],m=(g,y)=>{const v=typeof g.updatedAt=="number"&&Number.isFinite(g.updatedAt)?g.updatedAt:void 0,w=typeof y.updatedAt=="number"&&Number.isFinite(y.updatedAt)?y.updatedAt:void 0;return v===void 0?w??Date.now():w===void 0?v:Math.max(w,v)},p=(g,y)=>g.runtimeControlState==="suspending"&&y.runtimeControlState==="running"?{...y,runtimeControlState:"suspending",canStop:!1,canResume:g.canResume??!1,pendingRuntimeCheckpointId:g.pendingRuntimeCheckpointId??y.pendingRuntimeCheckpointId,stopIntentId:g.stopIntentId??y.stopIntentId}:y,h=(g,y,v)=>{const w=g[v];if(w!=null)return w;if(!(vV.has(g.status)||g.status!=="running"&&g.runtimeControlState!=="running"&&g.runtimeControlState!=="suspending"&&g.runtimeControlState!=="resuming"))return y[v]};switch(t.type){case"SET":{if(t.reset)return t.sessions.map(n);const y=new Map(e.map(v=>[v.taskId,v]));return t.sessions.map(v=>{const w=y.get(v.taskId);if(!w)return n(v);const S=p(w,v);return n({...v,updatedAt:m(v,w),execMode:o(v,w),preferredAgent:a(v,w,"preferredAgent"),draftAssistantText:w.draftAssistantText??v.draftAssistantText,draftUpdatedAt:w.draftUpdatedAt??v.draftUpdatedAt,draftIteration:w.draftIteration??v.draftIteration,draftTurnId:w.draftTurnId??v.draftTurnId,agentStatus:h(v,w,"agentStatus"),currentTool:h(v,w,"currentTool"),displayTool:h(v,w,"displayTool"),toolElapsedMs:h(v,w,"toolElapsedMs"),lastToolSummary:h(v,w,"lastToolSummary"),contextTokens:w.contextTokens??v.contextTokens,contextWindow:w.contextWindow??v.contextWindow,contextRemainingPct:w.contextRemainingPct??v.contextRemainingPct,inputTokens:w.inputTokens??v.inputTokens,outputTokens:w.outputTokens??v.outputTokens,totalTokens:w.totalTokens??v.totalTokens,turnCostUsd:w.turnCostUsd??v.turnCostUsd,sessionCostUsd:w.sessionCostUsd??v.sessionCostUsd,pendingPermissionCount:w.pendingPermissionCount??v.pendingPermissionCount,drainMode:w.drainMode??v.drainMode,workItemProjectionId:v.workItemProjectionId??w.workItemProjectionId,workItemTurnType:v.workItemTurnType??w.workItemTurnType,companyProfile:d(v,w,"companyProfile"),orgId:d(v,w,"orgId"),workItemRoleId:v.workItemRoleId??w.workItemRoleId,workItemRoleName:v.workItemRoleName??w.workItemRoleName,workItemGate:v.workItemGate??w.workItemGate,roleWorkItems:v.roleWorkItems??w.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??w.executorRoleWorkItems,employeeAssignment:v.employeeAssignment??w.employeeAssignment,selectedExecutionAgent:a(v,w,"selectedExecutionAgent"),runtimeControlState:S.runtimeControlState??w.runtimeControlState,canStop:S.canStop??w.canStop,canResume:S.canResume??w.canResume,resumeParentTaskId:v.resumeParentTaskId??w.resumeParentTaskId,resumeParentSessionId:v.resumeParentSessionId??w.resumeParentSessionId,pendingRuntimeCheckpointId:S.pendingRuntimeCheckpointId??w.pendingRuntimeCheckpointId,stopIntentId:S.stopIntentId??w.stopIntentId,residentStatus:w.residentStatus??v.residentStatus,actionableInboxCount:w.actionableInboxCount??v.actionableInboxCount,protocolBacklogCount:w.protocolBacklogCount??v.protocolBacklogCount,notificationBacklogCount:w.notificationBacklogCount??v.notificationBacklogCount,latestNotification:w.latestNotification??v.latestNotification,latestPreview:v.latestPreview??w.latestPreview,latestSender:v.latestSender??w.latestSender,latestMessageId:v.latestMessageId??w.latestMessageId,indexLoaded:v.indexLoaded??w.indexLoaded,detailLoaded:w.detailLoaded??v.detailLoaded,fullLoaded:w.fullLoaded??v.fullLoaded,hasMore:v.hasMore??w.hasMore,detailLoading:v.detailLoading??w.detailLoading,detailError:v.detailError??w.detailError,viewGeneration:v.viewGeneration??w.viewGeneration,progressLog:w.progressLog&&w.progressLog.length>0?w.progressLog:v.progressLog,workItemLog:w.workItemLog&&w.workItemLog.length>0?w.workItemLog:v.workItemLog,lastRuntimeEventType:w.lastRuntimeEventType??v.lastRuntimeEventType,activeSubagents:w.activeSubagents??v.activeSubagents,permissionRequests:w.permissionRequests??v.permissionRequests,handoffContext:v.handoffContext??w.handoffContext,handoffTo:v.handoffTo??w.handoffTo})})}case"ADD":const g=n(t.session);return e.some(y=>y.taskId===t.session.taskId)?e.map(y=>y.taskId===t.session.taskId?n({...y,...g,progressLog:g.progressLog.length>0?g.progressLog:y.progressLog,workItemLog:(g.workItemLog??[]).length>0?g.workItemLog:y.workItemLog,messageCount:Math.max(y.messageCount??0,g.messageCount??0),updatedAt:Math.max(y.updatedAt??0,g.updatedAt??0),execMode:o(g,y),preferredAgent:a(g,y,"preferredAgent"),workItemProjectionId:g.workItemProjectionId??y.workItemProjectionId,workItemTurnType:g.workItemTurnType??y.workItemTurnType,companyProfile:d(g,y,"companyProfile"),orgId:d(g,y,"orgId"),workItemRoleId:g.workItemRoleId??y.workItemRoleId,workItemRoleName:g.workItemRoleName??y.workItemRoleName,workItemGate:g.workItemGate??y.workItemGate,roleWorkItems:g.roleWorkItems??y.roleWorkItems,executorRoleWorkItems:g.executorRoleWorkItems??y.executorRoleWorkItems,employeeAssignment:g.employeeAssignment??y.employeeAssignment,selectedExecutionAgent:a(g,y,"selectedExecutionAgent"),handoffContext:g.handoffContext??y.handoffContext,handoffTo:g.handoffTo??y.handoffTo,latestPreview:g.latestPreview??y.latestPreview,latestSender:g.latestSender??y.latestSender,latestMessageId:g.latestMessageId??y.latestMessageId,indexLoaded:g.indexLoaded??y.indexLoaded,detailLoaded:g.detailLoaded??y.detailLoaded,fullLoaded:g.fullLoaded??y.fullLoaded,hasMore:g.hasMore??y.hasMore,detailLoading:g.detailLoading??y.detailLoading,detailError:g.detailError??y.detailError,viewGeneration:g.viewGeneration??y.viewGeneration}):y):[g,...e];case"UPDATE":return e.map(y=>y.taskId===t.taskId?(()=>{const v=p(y,t.partial);return n({...y,...v,updatedAt:m(v,y),runtimeControlState:v.runtimeControlState??y.runtimeControlState,canStop:v.canStop??y.canStop,canResume:v.canResume??y.canResume,resumeParentTaskId:v.resumeParentTaskId??y.resumeParentTaskId,resumeParentSessionId:v.resumeParentSessionId??y.resumeParentSessionId,pendingRuntimeCheckpointId:v.pendingRuntimeCheckpointId??y.pendingRuntimeCheckpointId,stopIntentId:v.stopIntentId??y.stopIntentId,roleWorkItems:v.roleWorkItems??y.roleWorkItems,executorRoleWorkItems:v.executorRoleWorkItems??y.executorRoleWorkItems,execMode:d(v,y,"execMode"),companyProfile:d(v,y,"companyProfile"),orgId:d(v,y,"orgId"),isCompanyRuntime:v.isCompanyRuntime??y.isCompanyRuntime,workItemProjectionId:v.workItemProjectionId??y.workItemProjectionId,workItemTurnType:v.workItemTurnType??y.workItemTurnType,workItemRoleId:v.workItemRoleId??y.workItemRoleId,workItemRoleName:v.workItemRoleName??y.workItemRoleName,workItemGate:v.workItemGate??y.workItemGate,employeeAssignment:v.employeeAssignment??y.employeeAssignment,selectedExecutionAgent:v.selectedExecutionAgent??y.selectedExecutionAgent,activeSubagents:v.activeSubagents??y.activeSubagents,permissionRequests:v.permissionRequests??y.permissionRequests,contextTokens:v.contextTokens??y.contextTokens,contextWindow:v.contextWindow??y.contextWindow,contextRemainingPct:v.contextRemainingPct??y.contextRemainingPct,inputTokens:v.inputTokens??y.inputTokens,outputTokens:v.outputTokens??y.outputTokens,totalTokens:v.totalTokens??y.totalTokens,turnCostUsd:v.turnCostUsd??y.turnCostUsd,sessionCostUsd:v.sessionCostUsd??y.sessionCostUsd,...t.partial.progressLog?{progressLog:t.partial.progressLog}:{},...t.partial.workItemLog?{workItemLog:t.partial.workItemLog}:{}})})():y);case"DELETE":return e.filter(y=>y.taskId!==t.taskId);case"APPEND_PROGRESS":return e.map(y=>y.taskId!==t.taskId?y:{...y,progressLog:_I(y.progressLog,t.entry,Kd),updatedAt:Math.max(y.updatedAt,t.entry.timestamp)});case"APPEND_DRAFT":return e.map(y=>{if(y.taskId!==t.taskId)return y;const v=t.turnId??y.draftTurnId,w=!!t.turnId&&!!y.draftTurnId&&t.turnId!==y.draftTurnId;return{...y,draftAssistantText:`${w?"":y.draftAssistantText??""}${t.text}`,draftUpdatedAt:t.timestamp,draftIteration:t.iteration??y.draftIteration,draftTurnId:v,updatedAt:Math.max(y.updatedAt,t.timestamp)}});case"CLEAR_DRAFT":return e.map(y=>y.taskId===t.taskId?{...y,draftAssistantText:void 0,draftUpdatedAt:void 0,draftIteration:void 0,draftTurnId:void 0}:y);case"CLEAR_PROGRESS":return e.map(y=>y.taskId===t.taskId?{...y,progressLog:[]}:y);case"APPEND_WORK_ITEM_PROGRESS":return e.map(y=>y.taskId!==t.taskId?y:{...y,workItemLog:wI(y.workItemLog??[],t.entry,Kd)});case"SET_COMPANY_RUNTIME":return e.map(y=>y.taskId===t.taskId?{...y,isCompanyRuntime:t.isCompanyRuntime}:y);default:return e}}function kV(){const[e,t]=E.useReducer(_V,[]),[n,r]=E.useState(null),[i,o]=E.useState("default"),a=E.useMemo(()=>e.find(k=>k.taskId===n)??null,[e,n]),u=E.useCallback(k=>{k.projectId===i&&t({type:"ADD",session:k})},[i]),d=E.useCallback(k=>{t({type:"DELETE",taskId:k})},[]),m=E.useCallback(k=>{r(k)},[]),p=E.useCallback((k,C)=>{t({type:"UPDATE",taskId:k,partial:C})},[]),h=E.useCallback((k,C)=>{t({type:"APPEND_PROGRESS",taskId:k,entry:C})},[]),g=E.useCallback((k,C,N,L)=>{t({type:"APPEND_DRAFT",taskId:k,text:C,iteration:N,turnId:L,timestamp:Date.now()})},[]),y=E.useCallback(k=>{t({type:"CLEAR_DRAFT",taskId:k})},[]),v=E.useCallback(k=>{t({type:"CLEAR_PROGRESS",taskId:k})},[]),w=E.useCallback((k,C)=>{t({type:"APPEND_WORK_ITEM_PROGRESS",taskId:k,entry:C})},[]),S=E.useCallback((k,C)=>{t({type:"SET_COMPANY_RUNTIME",taskId:k,isCompanyRuntime:C})},[]),_=E.useCallback((k,C,N)=>{const L=k||"default",I=L!==i,D=N?.preserveExistingWhenIncomingPartial&&!I?bV(e,C,L):C.filter(T=>T.projectId===L);o(L),t({type:"SET",sessions:D,reset:I}),r(T=>!I&&T&&(D.some(O=>O.taskId===T)||N?.preserveActiveWhenMissing)?T:null)},[i,e]);return E.useMemo(()=>({scopeProjectId:i,sessions:e,activeSessionId:n,activeSession:a,createSession:u,deleteSession:d,setActiveSession:m,updateSession:p,appendProgress:h,appendDraft:g,clearDraft:y,clearProgress:v,appendWorkItemProgress:w,setCompanyRuntime:S,initFromBackend:_}),[i,e,n,a,u,d,m,p,h,g,y,v,w,S,_])}function sC(e){return e.trim()||"default"}function SV(e,t){switch(t.type){case"SET":return{projects:t.projects,activeProjectId:sC(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(i=>i.id!==t.id),r=e.activeProjectId===t.id?"default":e.activeProjectId;return{projects:n,activeProjectId:r}}case"SET_ACTIVE":return{...e,activeProjectId:sC(t.id)};default:return e}}function wV(){const[e,t]=E.useReducer(SV,{projects:[{id:"default",name:"default"}],activeProjectId:"default"}),n=E.useCallback((a,u)=>{t({type:"SET",projects:a,activeId:u})},[]),r=E.useCallback(a=>{t({type:"ADD",project:a})},[]),i=E.useCallback(a=>{t({type:"REMOVE",id:a})},[]),o=E.useCallback(a=>{t({type:"SET_ACTIVE",id:a})},[]);return E.useMemo(()=>({projects:e.projects,activeProjectId:e.activeProjectId,initFromBackend:n,addProject:r,removeProject:i,setActiveProject:o}),[e,n,r,i,o])}const oC={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"}},Zd={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 CV(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 r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function Zg(e){const t=String(e??"").trim();return t?t.replace(/[_-]/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}function jV(e){return e.phase==="failed"?Zd.failed:e.phase==="cancelled"?Zd.cancelled:Zd[e.kanbanColumn]??Zd.todo}function EV(e){if(e.phase==="failed")return"failed";if(e.phase==="cancelled")return"cancelled";if(e.kanbanColumn==="done")return"done"}function NV(e){const t=e.activitySections??[];return t.length>0?t.reduce((n,r)=>n+(r.entries?.length??0),0):e.progressLog.length}function IV({sections:e,fallbackEntries:t,sessionStatus:n}){const r=(e??[]).filter(i=>(i.entries?.length??0)>0||!!i.runtimeTaskId);return r.length>0?c.jsx("div",{className:"exec-activity-sections",children:r.map((i,o)=>{const a=i.entries??[],u=`${i.runtimeTaskId||i.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:i.title}),i.roleName&&c.jsx("span",{className:"exec-activity-section-role",children:i.roleName}),a.length>0&&c.jsx("span",{className:"exec-section-count",children:a.length})]}),a.length>0?c.jsx(Vo,{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(Vo,{entries:t,sessionStatus:n,expandedByDefault:!0})}function aC({role:e,focusedWorkItemId:t,focusedExecutionTurnId:n,agents:r,onClose:i}){const o=E.useMemo(()=>e.workItems.slice().sort((k,C)=>k.createdAt-C.createdAt),[e.workItems]),u=E.useMemo(()=>o.find(k=>!!t&&k.workItemId===t||!!n&&k.executionTurnId===n)??o[o.length-1]??null,[n,t,o])?.workItemId,[d,m]=E.useState(()=>{const k=new Set;return u&&k.add(u),k}),p=E.useRef(new Set);E.useEffect(()=>{!u||p.current.has(u)||(p.current.add(u),m(k=>{if(k.has(u))return k;const C=new Set(k);return C.add(u),C}))},[u]);const h=E.useCallback(k=>{m(C=>{const N=new Set(C);return N.has(k)?N.delete(k):N.add(k),N})},[]),g=E.useRef(null),y=E.useRef(null);E.useEffect(()=>{!u||y.current===u||(y.current=u,g.current?.scrollIntoView({behavior:"smooth",block:"nearest"}))},[u]);const v=E.useCallback(k=>{k.key==="Escape"&&i()},[i]);E.useEffect(()=>(document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)),[v]);const w=r.find(k=>k.agent_id===e.roleId),S=e.roleName||w?.name||Zg(e.roleId)||"Role",_=oC[e.aggregatedStatus]??oC.pending;return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"exec-panel-backdrop",onClick:i}),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(nl,{}),c.jsx("h3",{className:"exec-panel-title",children:S}),c.jsx("span",{className:`exec-badge ${_.cls}`,children:_.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:i,title:"Close (Esc)",children:c.jsx(gm,{})})]}),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:Zg(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,C)=>{const N=k.workItemId===u,L=d.has(k.workItemId),I=jV(k),D=NV(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:()=>h(k.workItemId),title:L?"Collapse":"Expand",children:[c.jsxs("span",{className:"exec-task-card-index",children:["Work item #",C+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:CV(k.updatedAt)}),c.jsx("span",{className:`exec-task-card-chevron${L?" open":""}`,"aria-hidden":"true",children:"▸"})]}),L&&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:Zg(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(nl,{}),c.jsx("span",{children:"Activity"}),c.jsx("span",{className:"exec-section-count",children:D})]}),c.jsx("div",{className:"exec-section-content exec-activity-scroll",children:c.jsx(IV,{sections:k.activitySections,fallbackEntries:k.progressLog,sessionStatus:EV(k)})})]})]})]},k.workItemId)})]})]})]})}function TV({projects:e,activeId:t,onSelect:n,onCreate:r,onDelete:i}){const[o,a]=E.useState(!1),[u,d]=E.useState(""),[m,p]=E.useState(null),h=E.useCallback(()=>{const y=u.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-|-$/g,"");y&&(r(y),d(""),a(!1))},[u,r]),g=E.useCallback(()=>{!m||!i||(i(m),p(null))},[m,i]);return c.jsxs("div",{className:"project-selector",style:{display:"flex",alignItems:"center",gap:6},children:[c.jsx("select",{className:"theme-select",value:t,onChange:y=>n(y.target.value),title:"Switch project",children:e.map(y=>c.jsx("option",{value:y.id,children:y.name},y.id))}),o?c.jsxs("form",{onSubmit:y=>{y.preventDefault(),h()},style:{display:"flex",gap:4},children:[c.jsx("input",{autoFocus:!0,className:"theme-select",value:u,placeholder:"project-name",onChange:y=>d(y.target.value),onKeyDown:y=>{y.key==="Escape"&&a(!1)},style:{width:120}}),c.jsx("button",{type:"submit",className:"pill-btn",style:{fontSize:11,padding:"2px 8px"},children:"+"})]}):c.jsx("button",{className:"pill-btn",onClick:()=>a(!0),title:"New project",style:{fontSize:11,padding:"2px 8px"},children:"+"}),i&&t!=="default"&&!m&&c.jsx("button",{className:"pill-btn",onClick:()=>p(t),title:"Delete project",style:{fontSize:11,padding:"2px 8px",color:"#ef4444"},children:"Del"}),m&&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-surface, #1e1e2e)",borderRadius:12,padding:"24px 32px",maxWidth:400,boxShadow:"0 8px 32px rgba(0,0,0,0.4)",textAlign:"center"},children:[c.jsxs("p",{style:{margin:"0 0 8px",fontWeight:600,fontSize:15},children:['Delete project "',m,'"?']}),c.jsx("p",{style:{margin:"0 0 20px",fontSize:13,opacity:.7},children:"All sessions, messages, tasks, and agent data in this project will be permanently deleted. This action cannot be undone."}),c.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[c.jsx("button",{className:"pill-btn",onClick:()=>p(null),style:{padding:"6px 18px",fontSize:13},children:"Cancel"}),c.jsx("button",{className:"pill-btn",onClick:g,style:{padding:"6px 18px",fontSize:13,background:"#ef4444",color:"#fff"},children:"Delete"})]})]})})]})}const RV=80;function AV(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 lC(e){return(e.organization_name||e.name).trim()||e.name}function MV(e){const t=e.trim();return t.length>0&&t.length<=RV&&!/[\\/]/.test(t)&&!/[\u0000-\u001f]/.test(t)}function DV(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 OV({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 LV({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 zV({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 PV({savedOrgs:e,activeName:t,isDirty:n,onRefresh:r,onSaveAs:i,onLoad:o,onDelete:a}){const[u,d]=E.useState(!1),[m,p]=E.useState(""),[h,g]=E.useState(0),[y,v]=E.useState(!1),[w,S]=E.useState(""),[_,k]=E.useState(null),[C,N]=E.useState(null),L=E.useRef(null),I=E.useRef(null);E.useEffect(()=>{N(null)},[t,e]);const D=(e??[]).filter(W=>!m.trim()||W.name.toLowerCase().includes(m.trim().toLowerCase())),T=E.useRef(!1);E.useEffect(()=>{u&&!T.current&&(T.current=!0,r())},[u,r]),E.useEffect(()=>{y&&I.current?.focus()},[y]),E.useEffect(()=>{g(W=>Math.min(W,Math.max(0,D.length-1)))},[D.length]),E.useEffect(()=>{if(!u)return;const W=Z=>{L.current&&!L.current.contains(Z.target)&&O()};return document.addEventListener("mousedown",W),()=>document.removeEventListener("mousedown",W)},[u]);const O=E.useCallback(()=>{d(!1),p(""),g(0),v(!1),S(""),k(null)},[]),M=E.useCallback(W=>{if(W===t){O();return}N(W),o(W),O()},[o,O,t]),A=E.useCallback(W=>{a(W),k(null)},[a]),$=w.trim(),Y=MV($),B=DV($),G=(e??[]).some(W=>W.name===B||lC(W).toLowerCase()===$.toLowerCase()),H=E.useCallback(()=>{Y&&(i($,G),v(!1),S(""),O())},[Y,$,G,i,O]),V=W=>{if(W.key==="Escape"){W.preventDefault(),O();return}if(y){W.key==="Enter"&&(W.preventDefault(),H());return}if(W.key==="ArrowDown")W.preventDefault(),g(Z=>Math.min(Z+1,Math.max(0,D.length-1)));else if(W.key==="ArrowUp")W.preventDefault(),g(Z=>Math.max(0,Z-1));else if(W.key==="Enter"){const Z=D[h];Z&&M(Z.name)}else if((W.key==="Backspace"||W.key==="Delete")&&(W.metaKey||W.ctrlKey)){const Z=D[h];Z&&(W.preventDefault(),k(Z.name))}};return c.jsxs("div",{className:"sos-wrap",ref:L,children:[c.jsxs("button",{type:"button",className:"sos-pill","data-open":u?"true":"false",onClick:()=>d(W=>!W),"aria-haspopup":"listbox","aria-expanded":u,title:t?`Active saved architecture: ${t}`:"No saved architecture loaded",children:[c.jsx(OV,{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(LV,{className:"sos-pill-caret"})]}),u&&c.jsxs("div",{className:"sos-popover",role:"listbox",onKeyDown:V,tabIndex:-1,children:[c.jsxs("div",{className:"sos-search-row",children:[c.jsx(zV,{className:"sos-search-glyph"}),c.jsx("input",{type:"text",className:"sos-search-input",placeholder:"Search architectures…",value:m,onChange:W=>{p(W.target.value),g(0)},autoFocus:!0,onKeyDown:V}),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…"}):D.length===0?c.jsx("div",{className:"sos-empty",children:(e??[]).length===0?"No saved architectures.":"No matches."}):D.map((W,Z)=>{const q=t===W.name,U=h===Z,ee=lC(W);return c.jsxs("div",{className:`sos-row${q?" sos-row--active":""}`,"data-highlighted":U?"true":"false",onMouseEnter:()=>g(Z),onClick:()=>M(W.name),role:"option","aria-selected":q,children:[c.jsxs("div",{className:"sos-row-meta",children:[c.jsx("span",{className:"sos-row-name",children:ee}),c.jsxs("span",{className:"sos-row-stats",children:[ee!==W.name&&`${W.name} · `,W.roles_count," ",W.roles_count===1?"role":"roles"," · ",W.employees_count," ",W.employees_count===1?"employee":"employees"," · ",AV(W.saved_at)]})]}),C===W.name?c.jsx("span",{className:"sos-row-loading",children:"loading…"}):q?c.jsx("span",{className:"sos-row-active-chip",children:"active"}):_===W.name?c.jsx("button",{type:"button",className:"sos-row-delete sos-row-delete--confirm",onClick:P=>{P.stopPropagation(),A(W.name)},children:"confirm"}):c.jsx("button",{type:"button",className:"sos-row-delete",onClick:P=>{P.stopPropagation(),k(W.name)},title:"Delete",children:"delete"})]},W.name)})}),c.jsxs("div",{className:"sos-save-as",children:[y?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:w,onChange:W=>S(W.target.value),onKeyDown:V}),c.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:H,disabled:!Y,children:G?"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..."}),y&&w&&!Y&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Use up to 80 characters. Slashes are not allowed."}),y&&Y&&G&&c.jsx("div",{className:"sos-save-as-hint sos-save-as-hint--warn",children:"Name exists - this will overwrite that copy."})]})]})]})}const BV=["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"],qc={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 Su(e){return e?e.startsWith("data:")?e:qc[e]??qc.generic:qc.generic}const Nc=["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"],$V=[{label:"Files",prefix:"file_",tools:Nc.filter(e=>e.startsWith("file_"))},{label:"Shell",prefix:"shell_",tools:Nc.filter(e=>e==="shell_exec")},{label:"Web",prefix:"web_",tools:Nc.filter(e=>e.startsWith("web_"))},{label:"TODOs",prefix:"todo_",tools:Nc.filter(e=>e.startsWith("todo_"))},{label:"Browser",prefix:"browser_",tools:Nc.filter(e=>e.startsWith("browser_"))}],HV=["codex","cursor","claude_code","opencode"],FV=[{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 VV({role:e,allRoles:t,employees:n,readOnly:r,onUpdateRole:i,onDeleteRole:o,onClose:a}){const[u,d]=E.useState(e.name),[m,p]=E.useState(e.responsibility),[h,g]=E.useState(e.reports_to),[y,v]=E.useState(e.icon??null),[w,S]=E.useState(()=>new Set(e.can_spawn)),[_,k]=E.useState(()=>new Set(e.tools)),[C,N]=E.useState(e.runtime_policy?.execution_strategy??"auto"),[L,I]=E.useState(e.preferred_external_agent??null),[D,T]=E.useState((e.prompt_refs??[]).join(` -`)),[O,M]=E.useState(!1),A=E.useRef(e.role_id);E.useEffect(()=>{A.current!==e.role_id&&(A.current=e.role_id,d(e.name),p(e.responsibility),g(e.reports_to),v(e.icon??null),S(new Set(e.can_spawn)),k(new Set(e.tools)),N(e.runtime_policy?.execution_strategy??"auto"),I(e.preferred_external_agent??null),T((e.prompt_refs??[]).join(` -`)),M(!1))},[e]);const $=E.useRef({}),Y=E.useRef(null),B=E.useRef(e.role_id);E.useEffect(()=>{B.current=e.role_id},[e.role_id]);const G=E.useCallback(()=>{Y.current&&(clearTimeout(Y.current),Y.current=null);const se=$.current;$.current={},Object.keys(se).length!==0&&i(B.current,se)},[i]),H=E.useCallback(se=>{r||($.current={...$.current,...se},Y.current&&clearTimeout(Y.current),Y.current=setTimeout(G,500))},[G,r]);E.useEffect(()=>()=>{Y.current&&(clearTimeout(Y.current),Y.current=null);const se=$.current;Object.keys(se).length>0&&($.current={},i(B.current,se))},[i]);const V=se=>{d(se),H({name:se})},W=se=>{p(se),H({responsibility:se})},Z=se=>{g(se),H({reports_to:se})},q=se=>{v(se),H({icon:se})},U=se=>{N(se),H({execution_strategy:se})},ee=se=>{I(se),H({preferred_external_agent:se})},P=se=>{T(se);const je=se.split(` -`).map(Se=>Se.trim()).filter(Boolean);H({prompt_refs:je})},K=se=>{const je=new Set(w);je.has(se)?je.delete(se):je.add(se),S(je),H({can_spawn:Array.from(je)})},J=se=>{const je=new Set(_);je.has(se)?je.delete(se):je.add(se),k(je),H({tools:Array.from(je)})},te=E.useMemo(()=>t.filter(se=>se.role_id!==e.role_id),[t,e.role_id]),re=E.useMemo(()=>n.filter(se=>(se.role_ids?.length?se.role_ids:[se.role_id]).includes(e.role_id)).length,[n,e.role_id]),oe=E.useMemo(()=>D.split(` -`).filter(se=>se.trim()).length,[D]),fe=()=>{if(!O){M(!0);return}G(),o(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:Su(y),alt:"",className:"ri-panel-icon"}),c.jsxs("div",{className:"ri-panel-title-wrap",children:[c.jsx("h3",{className:"ri-panel-title",children:u||"(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:a,title:"Close (Esc)",children:"✕"})]}),c.jsxs("div",{className:"ri-panel-body",children:[c.jsxs(Ba,{title:"Identity",defaultExpanded:!0,children:[c.jsx(ui,{label:"Name",children:c.jsx("input",{className:"ri-text-input",value:u,onChange:se=>V(se.target.value),disabled:r})}),c.jsx(ui,{label:"Responsibility",children:c.jsx("textarea",{className:"ri-textarea",rows:3,value:m,onChange:se=>W(se.target.value),disabled:r})}),c.jsx(ui,{label:"Icon",children:c.jsx(UV,{value:y,onChange:q,readOnly:r})})]}),c.jsxs(Ba,{title:"Hierarchy",defaultExpanded:!0,children:[c.jsx(ui,{label:"Reports to",children:c.jsxs("select",{className:"ri-select",value:h,onChange:se=>Z(se.target.value),disabled:r,children:[c.jsx("option",{value:"owner",children:"You (Owner)"}),te.map(se=>c.jsx("option",{value:se.role_id,children:se.name},se.role_id))]})}),c.jsx(ui,{label:"Can delegate to",children:c.jsx(GV,{allIds:te.map(se=>se.role_id),labelFor:se=>te.find(je=>je.role_id===se)?.name??se,selected:w,onToggle:K,readOnly:r})}),c.jsx(ui,{label:"Employees assigned",children:c.jsx("span",{className:"ri-meta-value",children:re})})]}),c.jsx(Ba,{title:`Tools (${_.size})`,children:c.jsx(qV,{tools:_,onToggle:J,readOnly:r})}),c.jsx(Ba,{title:`Prompts (${oe})`,children:c.jsx(ui,{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:D,onChange:se=>P(se.target.value),disabled:r})})}),c.jsxs(Ba,{title:"Runtime policy",children:[c.jsx(ui,{label:"Execution strategy",children:c.jsx("div",{className:"ri-radio-group",children:FV.map(se=>c.jsxs("label",{className:"ri-radio",title:se.hint,children:[c.jsx("input",{type:"radio",name:`exec-strategy-${e.role_id}`,value:se.value,checked:C===se.value,onChange:()=>U(se.value),disabled:r}),se.label]},se.value))})}),C==="external"&&c.jsx(ui,{label:"Preferred external agent",children:c.jsxs("select",{className:"ri-select",value:L??"",onChange:se=>ee(se.target.value||null),disabled:r,children:[c.jsx("option",{value:"",children:"(any)"}),HV.map(se=>c.jsx("option",{value:se,children:se},se))]})})]}),c.jsxs(Ba,{title:"Advanced",children:[c.jsx(ui,{label:"Role type",children:c.jsx("span",{className:"ri-meta-value",children:e.role_type??"worker"})}),c.jsx(ui,{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(ui,{label:"Artifact contract",children:c.jsx("span",{className:"ri-meta-value",children:e.artifact_contract_ref??"(none)"})})]})]}),!r&&c.jsx("footer",{className:"ri-panel-footer",children:c.jsx("button",{className:`btn btn-sm ${O?"btn-danger":"btn-ghost"}`,onClick:fe,onBlur:()=>M(!1),children:O?"Confirm delete?":"Delete role"})})]})}function Ba({title:e,defaultExpanded:t=!1,children:n}){const[r,i]=E.useState(t);return c.jsxs("section",{className:`ri-group${r?" is-expanded":""}`,children:[c.jsxs("button",{className:"ri-group-header",onClick:()=>i(o=>!o),children:[c.jsx("span",{className:"ri-group-caret",children:r?"▾":"▸"}),c.jsx("span",{className:"ri-group-title",children:e})]}),r&&c.jsx("div",{className:"ri-group-body",children:n})]})}function ui({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 UV({value:e,onChange:t,readOnly:n}){const[r,i]=E.useState(!1);return c.jsxs("div",{className:"ri-icon-picker",children:[c.jsxs("button",{className:"ri-icon-picker-trigger",onClick:()=>!n&&i(o=>!o),disabled:n,children:[c.jsx("img",{src:Su(e),alt:"",className:"ri-icon-picker-current"}),c.jsx("span",{className:"ri-icon-picker-label",children:e??"generic"})]}),r&&c.jsxs("div",{className:"ri-icon-picker-popover",children:[c.jsx("button",{className:`ri-icon-option${e===null?" is-active":""}`,onClick:()=>{t(null),i(!1)},title:"Default icon",children:c.jsx("img",{src:qc.generic,alt:""})}),BV.filter(o=>o!=="generic").map(o=>c.jsx("button",{className:`ri-icon-option${e===o?" is-active":""}`,onClick:()=>{t(o),i(!1)},title:o,children:c.jsx("img",{src:qc[o],alt:o})},o))]})]})}function GV({allIds:e,labelFor:t,selected:n,onToggle:r,readOnly:i}){const[o,a]=E.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),!i&&c.jsx("button",{className:"ri-chip-x",onClick:()=>r(d),title:"Remove",children:"×"})]},d)),!i&&u.length>0&&c.jsx("button",{className:"ri-chip-add",onClick:()=>a(d=>!d),children:"+ Add"}),n.size===0&&i&&c.jsx("span",{className:"ri-meta-value",children:"(none)"})]}),o&&!i&&c.jsx("div",{className:"ri-multiselect-popover",children:u.map(d=>c.jsx("button",{className:"ri-multiselect-option",onClick:()=>{r(d),a(!1)},children:t(d)},d))})]})}function qV({tools:e,onToggle:t,readOnly:n}){return c.jsx("div",{className:"ri-toolcheck",children:$V.map(r=>c.jsxs("fieldset",{className:"ri-toolcheck-group",children:[c.jsx("legend",{className:"ri-toolcheck-legend",children:r.label}),c.jsx("div",{className:"ri-toolcheck-items",children:r.tools.map(i=>c.jsxs("label",{className:"ri-toolcheck-item",children:[c.jsx("input",{type:"checkbox",checked:e.has(i),onChange:()=>t(i),disabled:n}),c.jsx("span",{className:"ri-toolcheck-name",children:i.replace(r.prefix,"")||i})]},i))})]},r.prefix))})}function ro(e,t){return typeof e=="function"?e(t):e}function Qr(e,t){return n=>{t.setState(r=>({...r,[e]:ro(n,r[e])}))}}function Mm(e){return e instanceof Function}function WV(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function YV(e,t){const n=[],r=i=>{i.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&r(a)})};return r(e),n}function ht(e,t,n){let r=[],i;return o=>{let a;n.key&&n.debug&&(a=Date.now());const u=e(o);if(!(u.length!==r.length||u.some((p,h)=>r[h]!==p)))return i;r=u;let m;if(n.key&&n.debug&&(m=Date.now()),i=t(...u),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const p=Math.round((Date.now()-a)*100)/100,h=Math.round((Date.now()-m)*100)/100,g=h/16,y=(v,w)=>{for(v=String(v);v.length{var i;return(i=e?.debugAll)!=null?i:e[t]},key:!1,onChange:r}}function XV(e,t,n,r){const i=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:ht(()=>[e,n,t,o],(a,u,d,m)=>({table:a,column:u,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),pt(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function KV(e,t,n,r){var i,o;const u={...e._getDefaultColumnDef(),...t},d=u.accessorKey;let m=(i=(o=u.id)!=null?o:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?i:typeof u.header=="string"?u.header:void 0,p;if(u.accessorFn?p=u.accessorFn:d&&(d.includes(".")?p=g=>{let y=g;for(const w of d.split(".")){var v;y=(v=y)==null?void 0:v[w]}return y}:p=g=>g[u.accessorKey]),!m)throw new Error;let h={id:`${String(m)}`,accessorFn:p,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:ht(()=>[!0],()=>{var g;return[h,...(g=h.columns)==null?void 0:g.flatMap(y=>y.getFlatColumns())]},pt(e.options,"debugColumns")),getLeafColumns:ht(()=>[e._getOrderColumnsFn()],g=>{var y;if((y=h.columns)!=null&&y.length){let v=h.columns.flatMap(w=>w.getLeafColumns());return g(v)}return[h]},pt(e.options,"debugColumns"))};for(const g of e._features)g.createColumn==null||g.createColumn(h,e);return h}const br="debugHeaders";function cC(e,t,n){var r;let o={id:(r=n.id)!=null?r: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 ZV={createTable:e=>{e.getHeaderGroups=ht(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var o,a;const u=(o=r?.map(h=>n.find(g=>g.id===h)).filter(Boolean))!=null?o:[],d=(a=i?.map(h=>n.find(g=>g.id===h)).filter(Boolean))!=null?a:[],m=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(i!=null&&i.includes(h.id)));return Qd(t,[...u,...m,...d],e)},pt(e.options,br)),e.getCenterHeaderGroups=ht(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(i!=null&&i.includes(o.id))),Qd(t,n,e,"center")),pt(e.options,br)),e.getLeftHeaderGroups=ht(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?i:[];return Qd(t,o,e,"left")},pt(e.options,br)),e.getRightHeaderGroups=ht(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const o=(i=r?.map(a=>n.find(u=>u.id===a)).filter(Boolean))!=null?i:[];return Qd(t,o,e,"right")},pt(e.options,br)),e.getFooterGroups=ht(()=>[e.getHeaderGroups()],t=>[...t].reverse(),pt(e.options,br)),e.getLeftFooterGroups=ht(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),pt(e.options,br)),e.getCenterFooterGroups=ht(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),pt(e.options,br)),e.getRightFooterGroups=ht(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),pt(e.options,br)),e.getFlatHeaders=ht(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),pt(e.options,br)),e.getLeftFlatHeaders=ht(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),pt(e.options,br)),e.getCenterFlatHeaders=ht(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),pt(e.options,br)),e.getRightFlatHeaders=ht(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),pt(e.options,br)),e.getCenterLeafHeaders=ht(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),pt(e.options,br)),e.getLeftLeafHeaders=ht(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),pt(e.options,br)),e.getRightLeafHeaders=ht(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),pt(e.options,br)),e.getLeafHeaders=ht(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,o,a,u,d,m;return[...(i=(o=t[0])==null?void 0:o.headers)!=null?i:[],...(a=(u=n[0])==null?void 0:u.headers)!=null?a:[],...(d=(m=r[0])==null?void 0:m.headers)!=null?d:[]].map(p=>p.getLeafHeaders()).flat()},pt(e.options,br))}};function Qd(e,t,n,r){var i,o;let a=0;const u=function(g,y){y===void 0&&(y=1),a=Math.max(a,y),g.filter(v=>v.getIsVisible()).forEach(v=>{var w;(w=v.columns)!=null&&w.length&&u(v.columns,y+1)},0)};u(e);let d=[];const m=(g,y)=>{const v={depth:y,id:[r,`${y}`].filter(Boolean).join("_"),headers:[]},w=[];g.forEach(S=>{const _=[...w].reverse()[0],k=S.column.depth===v.depth;let C,N=!1;if(k&&S.column.parent?C=S.column.parent:(C=S.column,N=!0),_&&_?.column===C)_.subHeaders.push(S);else{const L=cC(n,C,{id:[r,y,C.id,S?.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?`${w.filter(I=>I.column===C).length}`:void 0,depth:y,index:w.length});L.subHeaders.push(S),w.push(L)}v.headers.push(S),S.headerGroup=v}),d.push(v),y>0&&m(w,y-1)},p=t.map((g,y)=>cC(n,g,{depth:a,index:y}));m(p,a-1),d.reverse();const h=g=>g.filter(v=>v.column.getIsVisible()).map(v=>{let w=0,S=0,_=[0];v.subHeaders&&v.subHeaders.length?(_=[],h(v.subHeaders).forEach(C=>{let{colSpan:N,rowSpan:L}=C;w+=N,_.push(L)})):w=1;const k=Math.min(..._);return S=S+k,v.colSpan=w,v.rowSpan=S,{colSpan:w,rowSpan:S}});return h((i=(o=d[0])==null?void 0:o.headers)!=null?i:[]),d}const QV=(e,t,n,r,i,o,a)=>{let u={id:t,index:r,original:n,depth:i,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,r),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,r),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:()=>YV(u.subRows,d=>d.subRows),getParentRow:()=>u.parentId?e.getRow(u.parentId,!0):void 0,getParentRows:()=>{let d=[],m=u;for(;;){const p=m.getParentRow();if(!p)break;d.push(p),m=p}return d.reverse()},getAllCells:ht(()=>[e.getAllLeafColumns()],d=>d.map(m=>XV(e,u,m,m.id)),pt(e.options,"debugRows")),_getAllCellsByColumnId:ht(()=>[u.getAllCells()],d=>d.reduce((m,p)=>(m[p.column.id]=p,m),{}),pt(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()}}},EI=(e,t,n)=>{var r,i;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(o))};EI.autoRemove=e=>Ii(e);const NI=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};NI.autoRemove=e=>Ii(e);const II=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};II.autoRemove=e=>Ii(e);const TI=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};TI.autoRemove=e=>Ii(e);const RI=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});RI.autoRemove=e=>Ii(e)||!(e!=null&&e.length);const AI=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});AI.autoRemove=e=>Ii(e)||!(e!=null&&e.length);const MI=(e,t,n)=>e.getValue(t)===n;MI.autoRemove=e=>Ii(e);const DI=(e,t,n)=>e.getValue(t)==n;DI.autoRemove=e=>Ii(e);const uv=(e,t,n)=>{let[r,i]=n;const o=e.getValue(t);return o>=r&&o<=i};uv.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(i)?1/0:i;if(o>a){const u=o;o=a,a=u}return[o,a]};uv.autoRemove=e=>Ii(e)||Ii(e[0])&&Ii(e[1]);const ys={includesString:EI,includesStringSensitive:NI,equalsString:II,arrIncludes:TI,arrIncludesAll:RI,arrIncludesSome:AI,equals:MI,weakEquals:DI,inNumberRange:uv};function Ii(e){return e==null||e===""}const eU={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Qr("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n?.getValue(e.id);return typeof r=="string"?ys.includesString:typeof r=="number"?ys.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?ys.equals:Array.isArray(r)?ys.arrIncludes:ys.weakEquals},e.getFilterFn=()=>{var n,r;return Mm(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:ys[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),o=r?.find(p=>p.id===e.id),a=ro(n,o?o.value:void 0);if(uC(i,a,e)){var u;return(u=r?.filter(p=>p.id!==e.id))!=null?u:[]}const d={id:e.id,value:a};if(o){var m;return(m=r?.map(p=>p.id===e.id?d:p))!=null?m:[]}return r!=null&&r.length?[...r,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=i=>{var o;return(o=ro(t,i))==null?void 0:o.filter(a=>{const u=n.find(d=>d.id===a.id);if(u){const d=u.getFilterFn();if(uC(d,a.value,u))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.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 uC(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const tU=(e,t,n)=>n.reduce((r,i)=>{const o=i.getValue(e);return r+(typeof o=="number"?o:0)},0),nU=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},rU=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r=o)&&(r=o)}),r},iU=(e,t,n)=>{let r,i;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(r===void 0?a>=a&&(r=i=a):(r>a&&(r=a),i{let n=0,r=0;if(t.forEach(i=>{let o=i.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},oU=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!WV(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),i=n.sort((o,a)=>o-a);return n.length%2!==0?i[r]:(i[r-1]+i[r])/2},aU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),lU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,cU=(e,t)=>t.length,Qg={sum:tU,min:nU,max:rU,extent:iU,mean:sU,median:oU,unique:aU,uniqueCount:lU,count:cU},uU={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:Qr("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!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],r=n?.getValue(e.id);if(typeof r=="number")return Qg.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Qg.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Mm(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Qg[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.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 r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}}};function dU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...r]}const fU={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Qr("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=ht(n=>[Wc(t,n)],n=>n.findIndex(r=>r.id===e.id),pt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Wc(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const i=Wc(t,n);return((r=i[i.length-1])==null?void 0:r.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=ht(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let o=[];if(!(t!=null&&t.length))o=i;else{const a=[...t],u=[...i];for(;u.length&&a.length;){const d=a.shift(),m=u.findIndex(p=>p.id===d);m>-1&&o.push(u.splice(m,1)[0])}o=[...o,...u]}return dU(o,n,r)},pt(e.options,"debugTable"))}},Jg=()=>({left:[],right:[]}),mU={getInitialState:e=>({columnPinning:Jg(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Qr("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var o,a;if(n==="right"){var u,d;return{left:((u=i?.left)!=null?u:[]).filter(h=>!(r!=null&&r.includes(h))),right:[...((d=i?.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var m,p;return{left:[...((m=i?.left)!=null?m:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((p=i?.right)!=null?p:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((o=i?.left)!=null?o:[]).filter(h=>!(r!=null&&r.includes(h))),right:((a=i?.right)!=null?a:[]).filter(h=>!(r!=null&&r.includes(h)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var i,o,a;return((i=r.columnDef.enablePinning)!=null?i:!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:r,right:i}=t.getState().columnPinning,o=n.some(u=>r?.includes(u)),a=n.some(u=>i?.includes(u));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();return i?(n=(r=t.getState().columnPinning)==null||(r=r[i])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=ht(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const o=[...r??[],...i??[]];return n.filter(a=>!o.includes(a.column.id))},pt(t.options,"debugRows")),e.getLeftVisibleCells=ht(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),pt(t.options,"debugRows")),e.getRightVisibleCells=ht(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),pt(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Jg():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Jg())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var i,o;return!!((i=r.left)!=null&&i.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=ht(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),pt(e.options,"debugColumns")),e.getRightLeafColumns=ht(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),pt(e.options,"debugColumns")),e.getCenterLeafColumns=ht(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n??[],...r??[]];return t.filter(o=>!i.includes(o.id))},pt(e.options,"debugColumns"))}};function hU(e){return e||(typeof document<"u"?document:null)}const Jd={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},ex=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),pU={getDefaultColumnDef:()=>Jd,getInitialState:e=>({columnSizing:{},columnSizingInfo:ex(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:Qr("columnSizing",e),onColumnSizingInfoChange:Qr("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,i;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Jd.minSize,(r=o??e.columnDef.size)!=null?r:Jd.size),(i=e.columnDef.maxSize)!=null?i:Jd.maxSize)},e.getStart=ht(n=>[n,Wc(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((i,o)=>i+o.getSize(),0),pt(t.options,"debugColumns")),e.getAfter=ht(n=>[n,Wc(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((i,o)=>i+o.getSize(),0),pt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var o;n+=(o=i.column.getSize())!=null?o:0}};return r(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 r=t.getColumn(e.column.id),i=r?.getCanResize();return o=>{if(!r||!i||(o.persist==null||o.persist(),tx(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),u=e?e.getLeafHeaders().map(_=>[_.column.id,_.column.getSize()]):[[r.id,r.getSize()]],d=tx(o)?Math.round(o.touches[0].clientX):o.clientX,m={},p=(_,k)=>{typeof k=="number"&&(t.setColumnSizingInfo(C=>{var N,L;const I=t.options.columnResizeDirection==="rtl"?-1:1,D=(k-((N=C?.startOffset)!=null?N:0))*I,T=Math.max(D/((L=C?.startSize)!=null?L:0),-.999999);return C.columnSizingStart.forEach(O=>{let[M,A]=O;m[M]=Math.round(Math.max(A+A*T,0)*100)/100}),{...C,deltaOffset:D,deltaPercentage:T}}),(t.options.columnResizeMode==="onChange"||_==="end")&&t.setColumnSizing(C=>({...C,...m})))},h=_=>p("move",_),g=_=>{p("end",_),t.setColumnSizingInfo(k=>({...k,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},y=hU(n),v={moveHandler:_=>h(_.clientX),upHandler:_=>{y?.removeEventListener("mousemove",v.moveHandler),y?.removeEventListener("mouseup",v.upHandler),g(_.clientX)}},w={moveHandler:_=>(_.cancelable&&(_.preventDefault(),_.stopPropagation()),h(_.touches[0].clientX),!1),upHandler:_=>{var k;y?.removeEventListener("touchmove",w.moveHandler),y?.removeEventListener("touchend",w.upHandler),_.cancelable&&(_.preventDefault(),_.stopPropagation()),g((k=_.touches[0])==null?void 0:k.clientX)}},S=gU()?{passive:!1}:!1;tx(o)?(y?.addEventListener("touchmove",w.moveHandler,S),y?.addEventListener("touchend",w.upHandler,S)):(y?.addEventListener("mousemove",v.moveHandler,S),y?.addEventListener("mouseup",v.upHandler,S)),t.setColumnSizingInfo(_=>({..._,startOffset:d,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:u,isResizingColumn:r.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?ex():(n=e.initialState.columnSizingInfo)!=null?n:ex())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}}};let ef=null;function gU(){if(typeof ef=="boolean")return ef;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 ef=e,ef}function tx(e){return e.type==="touchstart"}const xU={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Qr("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const i=e.columns;return(n=i.length?i.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=ht(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),pt(t.options,"debugRows")),e.getVisibleCells=ht(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],pt(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>ht(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),pt(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 r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,o)=>({...i,[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 r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Wc(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const yU={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()}}},vU={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Qr("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,i,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>ys.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Mm(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:ys[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},bU={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Qr("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var i,o;e.setExpanded(r?{}:(i=(o=e.initialState)==null?void 0:o.expanded)!=null?i:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>!i.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");r=Math.max(r,a.length)}),r},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(r=>{var i;const o=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{a[u]=!0}):a=r,n=(i=n)!=null?i:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:u,...d}=a;return d}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r?.[e.id])},e.getCanExpand=()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Wy=0,Yy=10,nx=()=>({pageIndex:Wy,pageSize:Yy}),_U={getInitialState:e=>({...e,pagination:{...nx(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:Qr("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const i=o=>ro(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},e.resetPagination=r=>{var i;e.setPagination(r?nx():(i=e.initialState.pagination)!=null?i:nx())},e.setPageIndex=r=>{e.setPagination(i=>{let o=ro(r,i.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)),{...i,pageIndex:o}})},e.resetPageIndex=r=>{var i,o;e.setPageIndex(r?Wy:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?i:Wy)},e.resetPageSize=r=>{var i,o;e.setPageSize(r?Yy:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?i:Yy)},e.setPageSize=r=>{e.setPagination(i=>{const o=Math.max(1,ro(r,i.pageSize)),a=i.pageSize*i.pageIndex,u=Math.floor(a/o);return{...i,pageIndex:u,pageSize:o}})},e.setPageCount=r=>e.setPagination(i=>{var o;let a=ro(r,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...i,pageCount:a}}),e.getPageOptions=ht(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((o,a)=>a)),i},pt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+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 r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},rx=()=>({top:[],bottom:[]}),kU={getInitialState:e=>({rowPinning:rx(),...e}),getDefaultOptions:e=>({onRowPinningChange:Qr("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{const o=r?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],a=i?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],u=new Set([...a,e.id,...o]);t.setRowPinning(d=>{var m,p;if(n==="bottom"){var h,g;return{top:((h=d?.top)!=null?h:[]).filter(w=>!(u!=null&&u.has(w))),bottom:[...((g=d?.bottom)!=null?g:[]).filter(w=>!(u!=null&&u.has(w))),...Array.from(u)]}}if(n==="top"){var y,v;return{top:[...((y=d?.top)!=null?y:[]).filter(w=>!(u!=null&&u.has(w))),...Array.from(u)],bottom:((v=d?.bottom)!=null?v:[]).filter(w=>!(u!=null&&u.has(w)))}}return{top:((m=d?.top)!=null?m:[]).filter(w=>!(u!=null&&u.has(w))),bottom:((p=d?.bottom)!=null?p:[]).filter(w=>!(u!=null&&u.has(w)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:i}=t.options;return typeof r=="function"?r(e):(n=r??i)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,o=n.some(u=>r?.includes(u)),a=n.some(u=>i?.includes(u));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();if(!i)return-1;const o=(n=i==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:u}=a;return u});return(r=o?.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?rx():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:rx())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var i,o;return!!((i=r.top)!=null&&i.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var i;return((i=e.options.keepPinnedRows)==null||i?(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:r}))},e.getTopRows=ht(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),pt(e.options,"debugRows")),e.getBottomRows=ht(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),pt(e.options,"debugRows")),e.getCenterRows=ht(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const i=new Set([...n??[],...r??[]]);return t.filter(o=>!i.has(o.id))},pt(e.options,"debugRows"))}},SU={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Qr("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 r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):i.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(o=>{Xy(i,o.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=ht(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?ix(e,n):{rows:[],flatRows:[],rowsById:{}},pt(e.options,"debugTable")),e.getFilteredSelectedRowModel=ht(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?ix(e,n):{rows:[],flatRows:[],rowsById:{}},pt(e.options,"debugTable")),e.getGroupedSelectedRowModel=ht(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?ix(e,n):{rows:[],flatRows:[],rowsById:{}},pt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(i=>i.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},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,r)=>{const i=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!i,e.getCanSelect()&&i===n)return o;const u={...o};return Xy(u,e.id,n,(a=r?.selectChildren)!=null?a:!0,t),u})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return dv(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Ky(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Ky(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 r=>{var i;n&&e.toggleSelected((i=r.target)==null?void 0:i.checked)}}}},Xy=(e,t,n,r,i)=>{var o;const a=i.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(u=>delete e[u]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(u=>Xy(e,u.id,n,r,i))};function ix(e,t){const n=e.getState().rowSelection,r=[],i={},o=function(a,u){return a.map(d=>{var m;const p=dv(d,n);if(p&&(r.push(d),i[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:o(d.subRows)}),p)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:i}}function dv(e,t){var n;return(n=t[e.id])!=null?n:!1}function Ky(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!i)&&(a.getCanSelect()&&(dv(a,t)?o=!0:i=!1),a.subRows&&a.subRows.length)){const u=Ky(a,t);u==="all"?o=!0:(u==="some"&&(o=!0),i=!1)}}),i?"all":o?"some":!1}const Zy=/([0-9]+)/gm,wU=(e,t,n)=>OI(co(e.getValue(n)).toLowerCase(),co(t.getValue(n)).toLowerCase()),CU=(e,t,n)=>OI(co(e.getValue(n)),co(t.getValue(n))),jU=(e,t,n)=>fv(co(e.getValue(n)).toLowerCase(),co(t.getValue(n)).toLowerCase()),EU=(e,t,n)=>fv(co(e.getValue(n)),co(t.getValue(n))),NU=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:rfv(e.getValue(n),t.getValue(n));function fv(e,t){return e===t?0:e>t?1:-1}function co(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function OI(e,t){const n=e.split(Zy).filter(Boolean),r=t.split(Zy).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),o=r.shift(),a=parseInt(i,10),u=parseInt(o,10),d=[a,u].sort();if(isNaN(d[0])){if(i>o)return 1;if(o>i)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-r.length}const Ic={alphanumeric:wU,alphanumericCaseSensitive:CU,text:jU,textCaseSensitive:EU,datetime:NU,basic:IU},TU={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Qr("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const o=i?.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return Ic.datetime;if(typeof o=="string"&&(r=!0,o.split(Zy).length>1))return Ic.alphanumeric}return r?Ic.text:Ic.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Mm(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:Ic[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const i=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const u=a?.find(y=>y.id===e.id),d=a?.findIndex(y=>y.id===e.id);let m=[],p,h=o?n:i==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?u?p="toggle":p="add":a!=null&&a.length&&d!==a.length-1?p="replace":u?p="toggle":p="replace",p==="toggle"&&(o||i||(p="remove")),p==="add"){var g;m=[...a,{id:e.id,desc:h}],m.splice(0,m.length-((g=t.options.maxMultiSortColCount)!=null?g:Number.MAX_SAFE_INTEGER))}else p==="toggle"?m=a.map(y=>y.id===e.id?{...y,desc:h}:y):p==="remove"?m=a.filter(y=>y.id!==e.id):m=[{id:e.id,desc:h}];return m})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,i;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(i=t.options.enableMultiRemove)!=null)||i)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.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())}},RU=[ZV,xU,fU,mU,JV,eU,yU,vU,TU,uU,bU,_U,kU,SU,pU];function AU(e){var t,n;const r=[...RU,...(t=e._features)!=null?t:[]];let i={_features:r};const o=i._features.reduce((g,y)=>Object.assign(g,y.getDefaultOptions==null?void 0:y.getDefaultOptions(i)),{}),a=g=>i.options.mergeOptions?i.options.mergeOptions(o,g):{...o,...g};let d={...{},...(n=e.initialState)!=null?n:{}};i._features.forEach(g=>{var y;d=(y=g.getInitialState==null?void 0:g.getInitialState(d))!=null?y:d});const m=[];let p=!1;const h={_features:r,options:{...o,...e},initialState:d,_queue:g=>{m.push(g),p||(p=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();p=!1}).catch(y=>setTimeout(()=>{throw y})))},reset:()=>{i.setState(i.initialState)},setOptions:g=>{const y=ro(g,i.options);i.options=a(y)},getState:()=>i.options.state,setState:g=>{i.options.onStateChange==null||i.options.onStateChange(g)},_getRowId:(g,y,v)=>{var w;return(w=i.options.getRowId==null?void 0:i.options.getRowId(g,y,v))!=null?w:`${v?[v.id,y].join("."):y}`},getCoreRowModel:()=>(i._getCoreRowModel||(i._getCoreRowModel=i.options.getCoreRowModel(i)),i._getCoreRowModel()),getRowModel:()=>i.getPaginationRowModel(),getRow:(g,y)=>{let v=(y?i.getPrePaginationRowModel():i.getRowModel()).rowsById[g];if(!v&&(v=i.getCoreRowModel().rowsById[g],!v))throw new Error;return v},_getDefaultColumnDef:ht(()=>[i.options.defaultColumn],g=>{var y;return g=(y=g)!=null?y:{},{header:v=>{const w=v.header.column.columnDef;return w.accessorKey?w.accessorKey:w.accessorFn?w.id:null},cell:v=>{var w,S;return(w=(S=v.renderValue())==null||S.toString==null?void 0:S.toString())!=null?w:null},...i._features.reduce((v,w)=>Object.assign(v,w.getDefaultColumnDef==null?void 0:w.getDefaultColumnDef()),{}),...g}},pt(e,"debugColumns")),_getColumnDefs:()=>i.options.columns,getAllColumns:ht(()=>[i._getColumnDefs()],g=>{const y=function(v,w,S){return S===void 0&&(S=0),v.map(_=>{const k=KV(i,_,S,w),C=_;return k.columns=C.columns?y(C.columns,k,S+1):[],k})};return y(g)},pt(e,"debugColumns")),getAllFlatColumns:ht(()=>[i.getAllColumns()],g=>g.flatMap(y=>y.getFlatColumns()),pt(e,"debugColumns")),_getAllFlatColumnsById:ht(()=>[i.getAllFlatColumns()],g=>g.reduce((y,v)=>(y[v.id]=v,y),{}),pt(e,"debugColumns")),getAllLeafColumns:ht(()=>[i.getAllColumns(),i._getOrderColumnsFn()],(g,y)=>{let v=g.flatMap(w=>w.getLeafColumns());return y(v)},pt(e,"debugColumns")),getColumn:g=>i._getAllFlatColumnsById()[g]};Object.assign(i,h);for(let g=0;ght(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,o,a){o===void 0&&(o=0);const u=[];for(let m=0;me._autoResetPageIndex()))}function DU(){return e=>ht(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],o=r.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(p=>({...p}));return m.sort((p,h)=>{for(let y=0;y{var h;i.push(p),(h=p.subRows)!=null&&h.length&&(p.subRows=u(p.subRows))}),m};return{rows:u(n.rows),flatRows:i,rowsById:n.rowsById}},pt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}function dC(e,t){return e?OU(e)?E.createElement(e,t):e:null}function OU(e){return LU(e)||typeof e=="function"||zU(e)}function LU(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function zU(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function PU(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=E.useState(()=>({current:AU(t)})),[r,i]=E.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:a=>{i(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const fC=["codex","cursor","claude_code","opencode"];function BU({roles:e,employees:t,selectedIds:n,onSelectRow:r,onUpdateRole:i,onDeleteRole:o,readOnly:a}){const[u,d]=E.useState([]),[m,p]=E.useState({}),[h,g]=E.useState(null),[y,v]=E.useState(""),w=E.useMemo(()=>{const T=new Map;for(const O of t){const M=O.role_ids?.length?O.role_ids:[O.role_id];for(const A of M)A&&T.set(A,(T.get(A)??0)+1)}return e.map(O=>({role_id:O.role_id,name:O.name,icon:O.icon??null,reports_to:O.reports_to,toolCount:O.tools?.length??0,agent:O.preferred_external_agent??null,employeeCount:T.get(O.role_id)??0}))},[e,t]),S=E.useMemo(()=>[{id:"owner",name:"Owner"},...e.map(T=>({id:T.role_id,name:T.name}))],[e]),_=T=>{const O=y.trim();O&&O!==e.find(M=>M.role_id===T)?.name&&i(T,{name:O}),g(null),v("")},k=E.useMemo(()=>[{id:"select",header:({table:T})=>c.jsx("input",{type:"checkbox",checked:T.getIsAllRowsSelected(),ref:O=>{O&&(O.indeterminate=T.getIsSomeRowsSelected()&&!T.getIsAllRowsSelected())},onChange:T.getToggleAllRowsSelectedHandler(),disabled:a,"aria-label":"Select all"}),cell:({row:T})=>c.jsx("input",{type:"checkbox",checked:T.getIsSelected(),onChange:T.getToggleSelectedHandler(),disabled:a,"aria-label":`Select ${T.original.role_id}`,onClick:O=>O.stopPropagation()}),size:32,enableSorting:!1},{id:"icon",header:"",cell:({row:T})=>c.jsx("img",{src:Su(T.original.icon),alt:"",className:"rt-cell-icon"}),size:32,enableSorting:!1},{id:"name",header:"Name",accessorKey:"name",cell:({row:T})=>{const O=T.original;return h?.rowId===O.role_id&&h.col==="name"?c.jsx("input",{autoFocus:!0,className:"rt-inline-input",value:y,onChange:A=>v(A.target.value),onBlur:()=>_(O.role_id),onKeyDown:A=>{A.key==="Enter"?_(O.role_id):A.key==="Escape"&&(g(null),v(""))},onClick:A=>A.stopPropagation()}):c.jsx("span",{className:"rt-cell-name",onDoubleClick:A=>{a||(A.stopPropagation(),v(O.name),g({rowId:O.role_id,col:"name"}))},title:"Double-click to edit",children:O.name})}},{id:"role_id",header:"ID",accessorKey:"role_id",cell:({row:T})=>c.jsx("code",{className:"rt-cell-id",children:T.original.role_id})},{id:"reports_to",header:"Reports to",accessorKey:"reports_to",cell:({row:T})=>{const O=T.original;return c.jsx("select",{className:"rt-cell-select",value:O.reports_to,onChange:M=>i(O.role_id,{reports_to:M.target.value}),disabled:a,onClick:M=>M.stopPropagation(),children:S.filter(M=>M.id!==O.role_id).map(M=>c.jsx("option",{value:M.id,children:M.name},M.id))})}},{id:"toolCount",header:"Tools",accessorKey:"toolCount",cell:({row:T})=>c.jsx("span",{className:"rt-cell-count",children:T.original.toolCount}),size:64},{id:"agent",header:"Agent",accessorKey:"agent",cell:({row:T})=>{const O=T.original;return c.jsxs("select",{className:"rt-cell-select",value:O.agent??"",onChange:M=>i(O.role_id,{preferred_external_agent:M.target.value||null}),disabled:a,onClick:M=>M.stopPropagation(),children:[c.jsx("option",{value:"",children:"(auto)"}),fC.map(M=>c.jsx("option",{value:M,children:M},M))]})}},{id:"employeeCount",header:"People",accessorKey:"employeeCount",cell:({row:T})=>c.jsx("span",{className:"rt-cell-count",children:T.original.employeeCount}),size:64},{id:"actions",header:"",cell:({row:T})=>c.jsx("button",{className:"rt-cell-action",onClick:O=>{O.stopPropagation(),!a&&confirm(`Delete role "${T.original.name}"?`)&&o(T.original.role_id)},disabled:a,title:"Delete",children:"✕"}),size:40,enableSorting:!1}],[h,y,a,S,i,o]),C=PU({data:w,columns:k,state:{sorting:u,rowSelection:m},onSortingChange:d,onRowSelectionChange:p,enableRowSelection:!0,getRowId:T=>T.role_id,getCoreRowModel:MU(),getSortedRowModel:DU()}),N=Object.values(m).filter(Boolean).length,L=Object.keys(m).filter(T=>m[T]),I=T=>{a||(L.forEach(O=>i(O,{preferred_external_agent:T})),p({}))},D=()=>{a||confirm(`Delete ${N} roles? This cannot be undone.`)&&(L.forEach(T=>o(T)),p({}))};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:T=>{const O=T.target.value;O&&I(O==="__auto__"?null:O)},children:[c.jsx("option",{value:"",disabled:!0,children:"Change agent…"}),c.jsx("option",{value:"__auto__",children:"(auto)"}),fC.map(T=>c.jsx("option",{value:T,children:T},T))]}),c.jsx("button",{className:"btn btn-danger btn-sm",onClick:D,children:"Delete selected"}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>p({}),children:"Clear"})]}),c.jsx("div",{className:"rt-table-wrap",children:c.jsxs("table",{className:"rt-table",children:[c.jsx("thead",{children:C.getHeaderGroups().map(T=>c.jsx("tr",{children:T.headers.map(O=>c.jsxs("th",{style:{width:O.getSize()},className:O.column.getCanSort()?"rt-th-sortable":"",onClick:O.column.getToggleSortingHandler(),children:[dC(O.column.columnDef.header,O.getContext()),O.column.getIsSorted()==="asc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▲"}),O.column.getIsSorted()==="desc"&&c.jsx("span",{className:"rt-sort-caret",children:" ▼"})]},O.id))},T.id))}),c.jsxs("tbody",{children:[C.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.'})}),C.getRowModel().rows.map(T=>{const O=n.includes(T.original.role_id);return c.jsx("tr",{className:`rt-row${T.getIsSelected()?" rt-row-checked":""}${O?" rt-row-active":""}`,onClick:()=>r(T.original.role_id),children:T.getVisibleCells().map(M=>c.jsx("td",{style:{width:M.column.getSize()},children:dC(M.column.columnDef.cell,M.getContext())},M.id))},T.id)})]})]})})]})}function Xn(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function Dm(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}bf.prototype=Dm.prototype={constructor:bf,on:function(e,t){var n=this._,r=HU(e+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o0)for(var n=new Array(i),r=0,i,o;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),hC.hasOwnProperty(t)?{space:hC[t],local:e}:e}function VU(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Qy&&t.documentElement.namespaceURI===Qy?t.createElement(e):t.createElementNS(n,e)}}function UU(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function LI(e){var t=Om(e);return(t.local?UU:VU)(t)}function GU(){}function mv(e){return e==null?GU:function(){return this.querySelector(e)}}function qU(e){typeof e!="function"&&(e=mv(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=C&&(C=k+1);!(L=S[C])&&++C=0;)(a=r[i])&&(o&&a.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(a,o),o=a);return this}function xG(e){e||(e=yG);function t(h,g){return h&&g?e(h.__data__,g.__data__):!h-!g}for(var n=this._groups,r=n.length,i=new Array(r),o=0;ot?1:e>=t?0:NaN}function vG(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function bG(){return Array.from(this)}function _G(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?AG:typeof t=="function"?DG:MG)(e,t,n??"")):ul(this.node(),e)}function ul(e,t){return e.style.getPropertyValue(t)||HI(e).getComputedStyle(e,null).getPropertyValue(t)}function LG(e){return function(){delete this[e]}}function zG(e,t){return function(){this[e]=t}}function PG(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function BG(e,t){return arguments.length>1?this.each((t==null?LG:typeof t=="function"?PG:zG)(e,t)):this.node()[e]}function FI(e){return e.trim().split(/^|\s+/)}function hv(e){return e.classList||new VI(e)}function VI(e){this._node=e,this._names=FI(e.getAttribute("class")||"")}VI.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 UI(e,t){for(var n=hv(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,o;n()=>e;function Jy(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:d,dy:m,dispatch:p}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value: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:p}})}Jy.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Sq(e){return!e.ctrlKey&&!e.button}function wq(){return this.parentNode}function Cq(e,t){return t??{x:e.x,y:e.y}}function jq(){return navigator.maxTouchPoints||"ontouchstart"in this}function KI(){var e=Sq,t=wq,n=Cq,r=jq,i={},o=Dm("start","drag","end"),a=0,u,d,m,p,h=0;function g(N){N.on("mousedown.drag",y).filter(r).on("touchstart.drag",S).on("touchmove.drag",_,kq).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(N,L){if(!(p||!e.call(this,N,L))){var I=C(this,t.call(this,N,L),N,L,"mouse");I&&(qr(N.view).on("mousemove.drag",v,cu).on("mouseup.drag",w,cu),YI(N.view),sx(N),m=!1,u=N.clientX,d=N.clientY,I("start",N))}}function v(N){if(el(N),!m){var L=N.clientX-u,I=N.clientY-d;m=L*L+I*I>h}i.mouse("drag",N)}function w(N){qr(N.view).on("mousemove.drag mouseup.drag",null),XI(N.view,m),el(N),i.mouse("end",N)}function S(N,L){if(e.call(this,N,L)){var I=N.changedTouches,D=t.call(this,N,L),T=I.length,O,M;for(O=0;O>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?nf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?nf(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=Nq.exec(e))?new Or(t[1],t[2],t[3],1):(t=Iq.exec(e))?new Or(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Tq.exec(e))?nf(t[1],t[2],t[3],t[4]):(t=Rq.exec(e))?nf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Aq.exec(e))?_C(t[1],t[2]/100,t[3]/100,1):(t=Mq.exec(e))?_C(t[1],t[2]/100,t[3]/100,t[4]):pC.hasOwnProperty(e)?yC(pC[e]):e==="transparent"?new Or(NaN,NaN,NaN,0):null}function yC(e){return new Or(e>>16&255,e>>8&255,e&255,1)}function nf(e,t,n,r){return r<=0&&(e=t=n=NaN),new Or(e,t,n,r)}function Lq(e){return e instanceof Cu||(e=Wo(e)),e?(e=e.rgb(),new Or(e.r,e.g,e.b,e.opacity)):new Or}function e0(e,t,n,r){return arguments.length===1?Lq(e):new Or(e,t,n,r??1)}function Or(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}pv(Or,e0,ZI(Cu,{brighter(e){return e=e==null?Jf:Math.pow(Jf,e),new Or(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?uu:Math.pow(uu,e),new Or(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Or($o(this.r),$o(this.g),$o(this.b),em(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:vC,formatHex:vC,formatHex8:zq,formatRgb:bC,toString:bC}));function vC(){return`#${Bo(this.r)}${Bo(this.g)}${Bo(this.b)}`}function zq(){return`#${Bo(this.r)}${Bo(this.g)}${Bo(this.b)}${Bo((isNaN(this.opacity)?1:this.opacity)*255)}`}function bC(){const e=em(this.opacity);return`${e===1?"rgb(":"rgba("}${$o(this.r)}, ${$o(this.g)}, ${$o(this.b)}${e===1?")":`, ${e})`}`}function em(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function $o(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Bo(e){return e=$o(e),(e<16?"0":"")+e.toString(16)}function _C(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new wi(e,t,n,r)}function QI(e){if(e instanceof wi)return new wi(e.h,e.s,e.l,e.opacity);if(e instanceof Cu||(e=Wo(e)),!e)return new wi;if(e instanceof wi)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,u=o-i,d=(o+i)/2;return u?(t===o?a=(n-r)/u+(n0&&d<1?0:a,new wi(a,u,d,e.opacity)}function Pq(e,t,n,r){return arguments.length===1?QI(e):new wi(e,t,n,r??1)}function wi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}pv(wi,Pq,ZI(Cu,{brighter(e){return e=e==null?Jf:Math.pow(Jf,e),new wi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?uu:Math.pow(uu,e),new wi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Or(ox(e>=240?e-240:e+120,i,r),ox(e,i,r),ox(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new wi(kC(this.h),rf(this.s),rf(this.l),em(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=em(this.opacity);return`${e===1?"hsl(":"hsla("}${kC(this.h)}, ${rf(this.s)*100}%, ${rf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function kC(e){return e=(e||0)%360,e<0?e+360:e}function rf(e){return Math.max(0,Math.min(1,e||0))}function ox(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 gv=e=>()=>e;function Bq(e,t){return function(n){return e+n*t}}function $q(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Hq(e){return(e=+e)==1?JI:function(t,n){return n-t?$q(t,n,e):gv(isNaN(t)?n:t)}}function JI(e,t){var n=t-e;return n?Bq(e,n):gv(isNaN(e)?t:e)}const tm=(function e(t){var n=Hq(t);function r(i,o){var a=n((i=e0(i)).r,(o=e0(o)).r),u=n(i.g,o.g),d=n(i.b,o.b),m=JI(i.opacity,o.opacity);return function(p){return i.r=a(p),i.g=u(p),i.b=d(p),i.opacity=m(p),i+""}}return r.gamma=e,r})(1);function Fq(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;in&&(o=t.slice(n,o),u[a]?u[a]+=o:u[++a]=o),(r=r[0])===(i=i[0])?u[a]?u[a]+=i:u[++a]=i:(u[++a]=null,d.push({i:a,x:Fi(r,i)})),n=ax.lastIndex;return n180?p+=360:p-m>180&&(m+=360),g.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Fi(m,p)})):p&&h.push(i(h)+"rotate("+p+r)}function u(m,p,h,g){m!==p?g.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Fi(m,p)}):p&&h.push(i(h)+"skewX("+p+r)}function d(m,p,h,g,y,v){if(m!==h||p!==g){var w=y.push(i(y)+"scale(",null,",",null,")");v.push({i:w-4,x:Fi(m,h)},{i:w-2,x:Fi(p,g)})}else(h!==1||g!==1)&&y.push(i(y)+"scale("+h+","+g+")")}return function(m,p){var h=[],g=[];return m=e(m),p=e(p),o(m.translateX,m.translateY,p.translateX,p.translateY,h,g),a(m.rotate,p.rotate,h,g),u(m.skewX,p.skewX,h,g),d(m.scaleX,m.scaleY,p.scaleX,p.scaleY,h,g),m=p=null,function(y){for(var v=-1,w=g.length,S;++v=0&&e._call.call(void 0,t),e=e._next;--dl}function CC(){Yo=(rm=fu.now())+Lm,dl=Dc=0;try{rW()}finally{dl=0,sW(),Yo=0}}function iW(){var e=fu.now(),t=e-rm;t>rT&&(Lm-=t,rm=e)}function sW(){for(var e,t=nm,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:nm=n);Oc=e,r0(r)}function r0(e){if(!dl){Dc&&(Dc=clearTimeout(Dc));var t=e-Yo;t>24?(e<1/0&&(Dc=setTimeout(CC,e-fu.now()-Lm)),Tc&&(Tc=clearInterval(Tc))):(Tc||(rm=fu.now(),Tc=setInterval(iW,rT)),dl=1,iT(CC))}}function jC(e,t,n){var r=new im;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var oW=Dm("start","end","cancel","interrupt"),aW=[],oT=0,EC=1,i0=2,kf=3,NC=4,s0=5,Sf=6;function zm(e,t,n,r,i,o){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;lW(e,n,{name:t,index:r,group:i,on:oW,tween:aW,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:oT})}function yv(e,t){var n=Ri(e,t);if(n.state>oT)throw new Error("too late; already scheduled");return n}function Zi(e,t){var n=Ri(e,t);if(n.state>kf)throw new Error("too late; already running");return n}function Ri(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function lW(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=sT(o,0,n.time);function o(m){n.state=EC,n.timer.restart(a,n.delay,n.time),n.delay<=m&&a(m-n.delay)}function a(m){var p,h,g,y;if(n.state!==EC)return d();for(p in r)if(y=r[p],y.name===n.name){if(y.state===kf)return jC(a);y.state===NC?(y.state=Sf,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete r[p]):+pi0&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function PW(e,t,n){var r,i,o=zW(t)?yv:Zi;return function(){var a=o(this,e),u=a.on;u!==r&&(i=(r=u).copy()).on(t,n),a.on=i}}function BW(e,t){var n=this._id;return arguments.length<2?Ri(this.node(),n).on.on(e):this.each(PW(n,e,t))}function $W(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function HW(){return this.on("end.remove",$W(this._id))}function FW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=mv(e));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>e;function mY(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ks(e,t,n){this.k=e,this.x=t,this.y=n}ks.prototype={constructor:ks,scale:function(e){return e===1?this:new ks(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ks(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 Pm=new ks(1,0,0);uT.prototype=ks.prototype;function uT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Pm;return e.__zoom}function lx(e){e.stopImmediatePropagation()}function Rc(e){e.preventDefault(),e.stopImmediatePropagation()}function hY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function pY(){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 IC(){return this.__zoom||Pm}function gY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function xY(){return navigator.maxTouchPoints||"ontouchstart"in this}function yY(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=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(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function dT(){var e=hY,t=pY,n=yY,r=gY,i=xY,o=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],u=250,d=_f,m=Dm("start","zoom","end"),p,h,g,y=500,v=150,w=0,S=10;function _(B){B.property("__zoom",IC).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",O).on("dblclick.zoom",M).filter(i).on("touchstart.zoom",A).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}_.transform=function(B,G,H,V){var W=B.selection?B.selection():B;W.property("__zoom",IC),B!==W?L(B,G,H,V):W.interrupt().each(function(){I(this,arguments).event(V).start().zoom(null,typeof G=="function"?G.apply(this,arguments):G).end()})},_.scaleBy=function(B,G,H,V){_.scaleTo(B,function(){var W=this.__zoom.k,Z=typeof G=="function"?G.apply(this,arguments):G;return W*Z},H,V)},_.scaleTo=function(B,G,H,V){_.transform(B,function(){var W=t.apply(this,arguments),Z=this.__zoom,q=H==null?N(W):typeof H=="function"?H.apply(this,arguments):H,U=Z.invert(q),ee=typeof G=="function"?G.apply(this,arguments):G;return n(C(k(Z,ee),q,U),W,a)},H,V)},_.translateBy=function(B,G,H,V){_.transform(B,function(){return n(this.__zoom.translate(typeof G=="function"?G.apply(this,arguments):G,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),a)},null,V)},_.translateTo=function(B,G,H,V,W){_.transform(B,function(){var Z=t.apply(this,arguments),q=this.__zoom,U=V==null?N(Z):typeof V=="function"?V.apply(this,arguments):V;return n(Pm.translate(U[0],U[1]).scale(q.k).translate(typeof G=="function"?-G.apply(this,arguments):-G,typeof H=="function"?-H.apply(this,arguments):-H),Z,a)},V,W)};function k(B,G){return G=Math.max(o[0],Math.min(o[1],G)),G===B.k?B:new ks(G,B.x,B.y)}function C(B,G,H){var V=G[0]-H[0]*B.k,W=G[1]-H[1]*B.k;return V===B.x&&W===B.y?B:new ks(B.k,V,W)}function N(B){return[(+B[0][0]+ +B[1][0])/2,(+B[0][1]+ +B[1][1])/2]}function L(B,G,H,V){B.on("start.zoom",function(){I(this,arguments).event(V).start()}).on("interrupt.zoom end.zoom",function(){I(this,arguments).event(V).end()}).tween("zoom",function(){var W=this,Z=arguments,q=I(W,Z).event(V),U=t.apply(W,Z),ee=H==null?N(U):typeof H=="function"?H.apply(W,Z):H,P=Math.max(U[1][0]-U[0][0],U[1][1]-U[0][1]),K=W.__zoom,J=typeof G=="function"?G.apply(W,Z):G,te=d(K.invert(ee).concat(P/K.k),J.invert(ee).concat(P/J.k));return function(re){if(re===1)re=J;else{var oe=te(re),fe=P/oe[2];re=new ks(fe,ee[0]-oe[0]*fe,ee[1]-oe[1]*fe)}q.zoom(null,re)}})}function I(B,G,H){return!H&&B.__zooming||new D(B,G)}function D(B,G){this.that=B,this.args=G,this.active=0,this.sourceEvent=null,this.extent=t.apply(B,G),this.taps=0}D.prototype={event:function(B){return B&&(this.sourceEvent=B),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(B,G){return this.mouse&&B!=="mouse"&&(this.mouse[1]=G.invert(this.mouse[0])),this.touch0&&B!=="touch"&&(this.touch0[1]=G.invert(this.touch0[0])),this.touch1&&B!=="touch"&&(this.touch1[1]=G.invert(this.touch1[0])),this.that.__zoom=G,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(B){var G=qr(this.that).datum();m.call(B,this.that,new mY(B,{sourceEvent:this.sourceEvent,target:_,transform:this.that.__zoom,dispatch:m}),G)}};function T(B,...G){if(!e.apply(this,arguments))return;var H=I(this,G).event(B),V=this.__zoom,W=Math.max(o[0],Math.min(o[1],V.k*Math.pow(2,r.apply(this,arguments)))),Z=Si(B);if(H.wheel)(H.mouse[0][0]!==Z[0]||H.mouse[0][1]!==Z[1])&&(H.mouse[1]=V.invert(H.mouse[0]=Z)),clearTimeout(H.wheel);else{if(V.k===W)return;H.mouse=[Z,V.invert(Z)],wf(this),H.start()}Rc(B),H.wheel=setTimeout(q,v),H.zoom("mouse",n(C(k(V,W),H.mouse[0],H.mouse[1]),H.extent,a));function q(){H.wheel=null,H.end()}}function O(B,...G){if(g||!e.apply(this,arguments))return;var H=B.currentTarget,V=I(this,G,!0).event(B),W=qr(B.view).on("mousemove.zoom",ee,!0).on("mouseup.zoom",P,!0),Z=Si(B,H),q=B.clientX,U=B.clientY;YI(B.view),lx(B),V.mouse=[Z,this.__zoom.invert(Z)],wf(this),V.start();function ee(K){if(Rc(K),!V.moved){var J=K.clientX-q,te=K.clientY-U;V.moved=J*J+te*te>w}V.event(K).zoom("mouse",n(C(V.that.__zoom,V.mouse[0]=Si(K,H),V.mouse[1]),V.extent,a))}function P(K){W.on("mousemove.zoom mouseup.zoom",null),XI(K.view,V.moved),Rc(K),V.event(K).end()}}function M(B,...G){if(e.apply(this,arguments)){var H=this.__zoom,V=Si(B.changedTouches?B.changedTouches[0]:B,this),W=H.invert(V),Z=H.k*(B.shiftKey?.5:2),q=n(C(k(H,Z),V,W),t.apply(this,G),a);Rc(B),u>0?qr(this).transition().duration(u).call(L,q,V,B):qr(this).call(_.transform,q,V,B)}}function A(B,...G){if(e.apply(this,arguments)){var H=B.touches,V=H.length,W=I(this,G,B.changedTouches.length===V).event(B),Z,q,U,ee;for(lx(B),q=0;q"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},mu=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],fT=["Enter"," ","Escape"],mT={"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 fl;(function(e){e.Strict="strict",e.Loose="loose"})(fl||(fl={}));var Ho;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ho||(Ho={}));var hu;(function(e){e.Partial="partial",e.Full="full"})(hu||(hu={}));const hT={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var no;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(no||(no={}));var sm;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(sm||(sm={}));var lt;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(lt||(lt={}));const TC={[lt.Left]:lt.Right,[lt.Right]:lt.Left,[lt.Top]:lt.Bottom,[lt.Bottom]:lt.Top};function pT(e){return e===null?null:e?"valid":"invalid"}const gT=e=>"id"in e&&"source"in e&&"target"in e,vY=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),bv=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),ju=(e,t=[0,0])=>{const{width:n,height:r}=js(e),i=e.origin??t,o=n*i[0],a=r*i[1];return{x:e.position.x-o,y:e.position.y-a}},bY=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const o=typeof i=="string";let a=!t.nodeLookup&&!o?i:void 0;t.nodeLookup&&(a=o?t.nodeLookup.get(i):bv(i)?i:t.nodeLookup.get(i.id));const u=a?om(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Bm(r,u)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return $m(n)},Eu=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=Bm(n,om(i)),r=!0)}),r?$m(n):{x:0,y:0,width:0,height:0}},_v=(e,t,[n,r,i]=[0,0,1],o=!1,a=!1)=>{const u={...Iu(t,[n,r,i]),width:t.width/i,height:t.height/i},d=[];for(const m of e.values()){const{measured:p,selectable:h=!0,hidden:g=!1}=m;if(a&&!h||g)continue;const y=p.width??m.width??m.initialWidth??null,v=p.height??m.height??m.initialHeight??null,w=pu(u,hl(m)),S=(y??0)*(v??0),_=o&&w>0;(!m.internals.handleBounds||_||w>=S||m.dragging)&&d.push(m)}return d},_Y=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function kY(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&(t?.includeHiddenNodes||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function SY({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(e.size===0)return Promise.resolve(!0);const u=kY(e,a),d=Eu(u),m=kv(d,t,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(m,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function xT({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,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},p=a.origin??r;let h=a.extent||i;if(a.extent==="parent"&&!a.expandParent)if(!u)o?.("005",Xi.error005());else{const y=u.measured.width,v=u.measured.height;y&&v&&(h=[[d,m],[d+y,m+v]])}else u&&pl(a.extent)&&(h=[[a.extent[0][0]+d,a.extent[0][1]+m],[a.extent[1][0]+d,a.extent[1][1]+m]]);const g=pl(h)?Xo(t,h,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&o?.("015",Xi.error015()),{position:{x:g.x-d+(a.measured.width??0)*p[0],y:g.y-m+(a.measured.height??0)*p[1]},positionAbsolute:g}}async function wY({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const o=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const y=o.has(g.id),v=!y&&g.parentId&&a.find(w=>w.id===g.parentId);(y||v)&&a.push(g)}const u=new Set(t.map(g=>g.id)),d=r.filter(g=>g.deletable!==!1),p=_Y(a,d);for(const g of d)u.has(g.id)&&!p.find(v=>v.id===g.id)&&p.push(g);if(!i)return{edges:p,nodes:a};const h=await i({nodes:a,edges:p});return typeof h=="boolean"?h?{edges:p,nodes:a}:{edges:[],nodes:[]}:h}const ml=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xo=(e={x:0,y:0},t,n)=>({x:ml(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ml(e.y,t[0][1],t[1][1]-(n?.height??0))});function yT(e,t,n){const{width:r,height:i}=js(n),{x:o,y:a}=n.internals.positionAbsolute;return Xo(e,[[o,a],[o+r,a+i]],t)}const RC=(e,t,n)=>en?-ml(Math.abs(e-n),1,t)/t:0,vT=(e,t,n=15,r=40)=>{const i=RC(e.x,r,t.width-r)*n,o=RC(e.y,r,t.height-r)*n;return[i,o]},Bm=(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)}),o0=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),$m=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),hl=(e,t=[0,0])=>{const{x:n,y:r}=bv(e)?e.internals.positionAbsolute:ju(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},om=(e,t=[0,0])=>{const{x:n,y:r}=bv(e)?e.internals.positionAbsolute:ju(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},bT=(e,t)=>$m(Bm(o0(e),o0(t))),pu=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},AC=e=>ji(e.width)&&ji(e.height)&&ji(e.x)&&ji(e.y),ji=e=>!isNaN(e)&&isFinite(e),CY=(e,t)=>{},Nu=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Iu=({x:e,y:t},[n,r,i],o=!1,a=[1,1])=>{const u={x:(e-n)/i,y:(t-r)/i};return o?Nu(u,a):u},am=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function $a(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 jY(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=$a(e,n),i=$a(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=$a(e.top??e.y??0,n),i=$a(e.bottom??e.y??0,n),o=$a(e.left??e.x??0,t),a=$a(e.right??e.x??0,t);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function EY(e,t,n,r,i,o){const{x:a,y:u}=am(e,[t,n,r]),{x:d,y:m}=am({x:e.x+e.width,y:e.y+e.height},[t,n,r]),p=i-d,h=o-m;return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(p),bottom:Math.floor(h)}}const kv=(e,t,n,r,i,o)=>{const a=jY(o,t,n),u=(t-a.x)/e.width,d=(n-a.y)/e.height,m=Math.min(u,d),p=ml(m,r,i),h=e.x+e.width/2,g=e.y+e.height/2,y=t/2-h*p,v=n/2-g*p,w=EY(e,y,v,p,t,n),S={left:Math.min(w.left-a.left,0),top:Math.min(w.top-a.top,0),right:Math.min(w.right-a.right,0),bottom:Math.min(w.bottom-a.bottom,0)};return{x:y-S.left+S.right,y:v-S.top+S.bottom,zoom:p}},gu=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function pl(e){return e!=null&&e!=="parent"}function js(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function _T(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function kT(e,t={width:0,height:0},n,r,i){const o={...e},a=r.get(n);if(a){const u=a.origin||i;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 MC(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function NY(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function IY(e){return{...mT,...e||{}}}function Xc(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:o,y:a}=Ei(e),u=Iu({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:d,y:m}=n?Nu(u,t):u;return{xSnapped:d,ySnapped:m,...u}}const Sv=e=>({width:e.offsetWidth,height:e.offsetHeight}),ST=e=>e?.getRootNode?.()||window?.document,TY=["INPUT","SELECT","TEXTAREA"];function wT(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:TY.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const CT=e=>"clientX"in e,Ei=(e,t)=>{const n=CT(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},DC=(e,t,n,r,i)=>{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:i,position:a.getAttribute("data-handlepos"),x:(u.left-n.left)/r,y:(u.top-n.top)/r,...Sv(a)}})};function jT({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:u}){const d=e*.125+i*.375+a*.375+n*.125,m=t*.125+o*.375+u*.375+r*.125,p=Math.abs(d-e),h=Math.abs(m-t);return[d,m,p,h]}function af(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function OC({pos:e,x1:t,y1:n,x2:r,y2:i,c:o}){switch(e){case lt.Left:return[t-af(t-r,o),n];case lt.Right:return[t+af(r-t,o),n];case lt.Top:return[t,n-af(n-i,o)];case lt.Bottom:return[t,n+af(i-n,o)]}}function ET({sourceX:e,sourceY:t,sourcePosition:n=lt.Bottom,targetX:r,targetY:i,targetPosition:o=lt.Top,curvature:a=.25}){const[u,d]=OC({pos:n,x1:e,y1:t,x2:r,y2:i,c:a}),[m,p]=OC({pos:o,x1:r,y1:i,x2:e,y2:t,c:a}),[h,g,y,v]=jT({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:u,sourceControlY:d,targetControlX:m,targetControlY:p});return[`M${e},${t} C${u},${d} ${m},${p} ${r},${i}`,h,g,y,v]}function NT({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,o=n0}const MY=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,DY=(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)),OY=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||MY;let i;return gT(e)?i={...e}:i={...e,id:r(e)},DY(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function IT({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,o,a,u]=NT({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,o,a,u]}const LC={[lt.Left]:{x:-1,y:0},[lt.Right]:{x:1,y:0},[lt.Top]:{x:0,y:-1},[lt.Bottom]:{x:0,y:1}},LY=({source:e,sourcePosition:t=lt.Bottom,target:n})=>t===lt.Left||t===lt.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function zY({source:e,sourcePosition:t=lt.Bottom,target:n,targetPosition:r=lt.Top,center:i,offset:o,stepPosition:a}){const u=LC[t],d=LC[r],m={x:e.x+u.x*o,y:e.y+u.y*o},p={x:n.x+d.x*o,y:n.y+d.y*o},h=LY({source:m,sourcePosition:t,target:p}),g=h.x!==0?"x":"y",y=h[g];let v=[],w,S;const _={x:0,y:0},k={x:0,y:0},[,,C,N]=NT({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(u[g]*d[g]===-1){g==="x"?(w=i.x??m.x+(p.x-m.x)*a,S=i.y??(m.y+p.y)/2):(w=i.x??(m.x+p.x)/2,S=i.y??m.y+(p.y-m.y)*a);const T=[{x:w,y:m.y},{x:w,y:p.y}],O=[{x:m.x,y:S},{x:p.x,y:S}];u[g]===y?v=g==="x"?T:O:v=g==="x"?O:T}else{const T=[{x:m.x,y:p.y}],O=[{x:p.x,y:m.y}];if(g==="x"?v=u.x===y?O:T:v=u.y===y?T:O,t===r){const B=Math.abs(e[g]-n[g]);if(B<=o){const G=Math.min(o-1,o-B);u[g]===y?_[g]=(m[g]>e[g]?-1:1)*G:k[g]=(p[g]>n[g]?-1:1)*G}}if(t!==r){const B=g==="x"?"y":"x",G=u[g]===d[B],H=m[B]>p[B],V=m[B]=Y?(w=(M.x+A.x)/2,S=v[0].y):(w=v[0].x,S=(M.y+A.y)/2)}const L={x:m.x+_.x,y:m.y+_.y},I={x:p.x+k.x,y:p.y+k.y};return[[e,...L.x!==v[0].x||L.y!==v[0].y?[L]:[],...v,...I.x!==v[v.length-1].x||I.y!==v[v.length-1].y?[I]:[],n],w,S,C,N]}function PY(e,t,n,r){const i=Math.min(zC(e,t)/2,zC(t,n)/2,r),{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 l0(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function $Y(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const o=new Set;return e.reduce((a,u)=>([u.markerStart||r,u.markerEnd||i].forEach(d=>{if(d&&typeof d=="object"){const m=l0(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 TT=1e3,HY=10,wv={nodeOrigin:[0,0],nodeExtent:mu,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},FY={...wv,checkEquality:!0};function Cv(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function VY(e,t,n){const r=Cv(wv,n);for(const i of e.values())if(i.parentId)Ev(i,e,t,r);else{const o=ju(i,r.nodeOrigin),a=pl(i.extent)?i.extent:r.nodeExtent,u=Xo(o,a,js(i));i.internals.positionAbsolute=u}}function UY(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const o={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(o):i.type==="target"&&r.push(o)}return{source:n,target:r}}function jv(e){return e==="manual"}function c0(e,t,n,r={}){const i=Cv(FY,r),o={i:0},a=new Map(t),u=i?.elevateNodesOnSelect&&!jv(i.zIndexMode)?TT:0;let d=e.length>0,m=!1;t.clear(),n.clear();for(const p of e){let h=a.get(p.id);if(i.checkEquality&&p===h?.internals.userNode)t.set(p.id,h);else{const g=ju(p,i.nodeOrigin),y=pl(p.extent)?p.extent:i.nodeExtent,v=Xo(g,y,js(p));h={...i.defaults,...p,measured:{width:p.measured?.width,height:p.measured?.height},internals:{positionAbsolute:v,handleBounds:UY(p,h),z:RT(p,u,i.zIndexMode),userNode:p}},t.set(p.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(d=!1),p.parentId&&Ev(h,t,n,r,o),m||=p.selected??!1}return{nodesInitialized:d,hasSelectedNodes:m}}function GY(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 Ev(e,t,n,r,i){const{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:u,zIndexMode:d}=Cv(wv,r),m=e.parentId,p=t.get(m);if(!p){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}GY(e,n),i&&!p.parentId&&p.internals.rootParentIndex===void 0&&d==="auto"&&(p.internals.rootParentIndex=++i.i,p.internals.z=p.internals.z+i.i*HY),i&&p.internals.rootParentIndex!==void 0&&(i.i=p.internals.rootParentIndex);const h=o&&!jv(d)?TT:0,{x:g,y,z:v}=qY(e,p,a,u,h,d),{positionAbsolute:w}=e.internals,S=g!==w.x||y!==w.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:g,y}:w,z:v}})}function RT(e,t,n){const r=ji(e.zIndex)?e.zIndex:0;return jv(n)?r:r+(e.selected?t:0)}function qY(e,t,n,r,i,o){const{x:a,y:u}=t.internals.positionAbsolute,d=js(e),m=ju(e,n),p=pl(e.extent)?Xo(m,e.extent,d):m;let h=Xo({x:a+p.x,y:u+p.y},r,d);e.extent==="parent"&&(h=yT(h,d,t));const g=RT(e,i,o),y=t.internals.z??0;return{x:h.x,y:h.y,z:y>=g?y+1:g}}function Nv(e,t,n,r=[0,0]){const i=[],o=new Map;for(const a of e){const u=t.get(a.parentId);if(!u)continue;const d=o.get(a.parentId)?.expandedRect??hl(u),m=bT(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,p=js(u),h=u.origin??r,g=a.x0||y>0||S||_)&&(i.push({id:d,type:"position",position:{x:u.position.x-g+S,y:u.position.y-y+_}}),n.get(d)?.forEach(k=>{e.some(C=>C.id===k.id)||i.push({id:k.id,type:"position",position:{x:k.position.x+g,y:k.position.y+y}})})),(p.width0){const y=Nv(g,t,n,i);m.push(...y)}return{changes:m,updatedInternals:d}}async function YY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,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],[i,o]],r),u=!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]);return Promise.resolve(u)}function HC(e,t,n,r,i,o){let a=i;const u=r.get(a)||new Map;r.set(a,u.set(n,t)),a=`${i}-${e}`;const d=r.get(a)||new Map;if(r.set(a,d.set(n,t)),o){a=`${i}-${e}-${o}`;const m=r.get(a)||new Map;r.set(a,m.set(n,t))}}function AT(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:o,sourceHandle:a=null,targetHandle:u=null}=r,d={edgeId:r.id,source:i,target:o,sourceHandle:a,targetHandle:u},m=`${i}-${a}--${o}-${u}`,p=`${o}-${u}--${i}-${a}`;HC("source",d,p,e,i,a),HC("target",d,m,e,o,u),t.set(r.id,r)}}function MT(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:MT(n,t):!1}function FC(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function XY(e,t,n,r){const i=new Map;for(const[o,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!MT(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const u=e.get(o);u&&i.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 i}function cx({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const i=[];for(const[a,u]of t){const d=n.get(a)?.internals.userNode;d&&i.push({...d,position:u.position,dragging:r})}if(!e)return[i[0],i];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:i[0],i]}function KY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const o={x:n-i.distance.x,y:r-i.distance.y},a=Nu(o,t);return{x:a.x-o.x,y:a.y-o.y}}function ZY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,u=new Map,d=!1,m={x:0,y:0},p=null,h=!1,g=null,y=!1,v=!1,w=null;function S({noDragClassName:k,handleSelector:C,domNode:N,isSelectable:L,nodeId:I,nodeClickDistance:D=0}){g=qr(N);function T({x:$,y:Y}){const{nodeLookup:B,nodeExtent:G,snapGrid:H,snapToGrid:V,nodeOrigin:W,onNodeDrag:Z,onSelectionDrag:q,onError:U,updateNodePositions:ee}=t();o={x:$,y:Y};let P=!1;const K=u.size>1,J=K&&G?o0(Eu(u)):null,te=K&&V?KY({dragItems:u,snapGrid:H,x:$,y:Y}):null;for(const[re,oe]of u){if(!B.has(re))continue;let fe={x:$-oe.distance.x,y:Y-oe.distance.y};V&&(fe=te?{x:Math.round(fe.x+te.x),y:Math.round(fe.y+te.y)}:Nu(fe,H));let se=null;if(K&&G&&!oe.extent&&J){const{positionAbsolute:Ce}=oe.internals,He=Ce.x-J.x+G[0][0],We=Ce.x+oe.measured.width-J.x2+G[1][0],Ye=Ce.y-J.y+G[0][1],gt=Ce.y+oe.measured.height-J.y2+G[1][1];se=[[He,Ye],[We,gt]]}const{position:je,positionAbsolute:Se}=xT({nodeId:re,nextPosition:fe,nodeLookup:B,nodeExtent:se||G,nodeOrigin:W,onError:U});P=P||oe.position.x!==je.x||oe.position.y!==je.y,oe.position=je,oe.internals.positionAbsolute=Se}if(v=v||P,!!P&&(ee(u,!0),w&&(r||Z||!I&&q))){const[re,oe]=cx({nodeId:I,dragItems:u,nodeLookup:B});r?.(w,u,re,oe),Z?.(w,re,oe),I||q?.(w,oe)}}async function O(){if(!p)return;const{transform:$,panBy:Y,autoPanSpeed:B,autoPanOnNodeDrag:G}=t();if(!G){d=!1,cancelAnimationFrame(a);return}const[H,V]=vT(m,p,B);(H!==0||V!==0)&&(o.x=(o.x??0)-H/$[2],o.y=(o.y??0)-V/$[2],await Y({x:H,y:V})&&T(o)),a=requestAnimationFrame(O)}function M($){const{nodeLookup:Y,multiSelectionActive:B,nodesDraggable:G,transform:H,snapGrid:V,snapToGrid:W,selectNodesOnDrag:Z,onNodeDragStart:q,onSelectionDragStart:U,unselectNodesAndEdges:ee}=t();h=!0,(!Z||!L)&&!B&&I&&(Y.get(I)?.selected||ee()),L&&Z&&I&&e?.(I);const P=Xc($.sourceEvent,{transform:H,snapGrid:V,snapToGrid:W,containerBounds:p});if(o=P,u=XY(Y,G,P,I),u.size>0&&(n||q||!I&&U)){const[K,J]=cx({nodeId:I,dragItems:u,nodeLookup:Y});n?.($.sourceEvent,u,K,J),q?.($.sourceEvent,K,J),I||U?.($.sourceEvent,J)}}const A=KI().clickDistance(D).on("start",$=>{const{domNode:Y,nodeDragThreshold:B,transform:G,snapGrid:H,snapToGrid:V}=t();p=Y?.getBoundingClientRect()||null,y=!1,v=!1,w=$.sourceEvent,B===0&&M($),o=Xc($.sourceEvent,{transform:G,snapGrid:H,snapToGrid:V,containerBounds:p}),m=Ei($.sourceEvent,p)}).on("drag",$=>{const{autoPanOnNodeDrag:Y,transform:B,snapGrid:G,snapToGrid:H,nodeDragThreshold:V,nodeLookup:W}=t(),Z=Xc($.sourceEvent,{transform:B,snapGrid:G,snapToGrid:H,containerBounds:p});if(w=$.sourceEvent,($.sourceEvent.type==="touchmove"&&$.sourceEvent.touches.length>1||I&&!W.has(I))&&(y=!0),!y){if(!d&&Y&&h&&(d=!0,O()),!h){const q=Ei($.sourceEvent,p),U=q.x-m.x,ee=q.y-m.y;Math.sqrt(U*U+ee*ee)>V&&M($)}(o.x!==Z.xSnapped||o.y!==Z.ySnapped)&&u&&h&&(m=Ei($.sourceEvent,p),T(Z))}}).on("end",$=>{if(!(!h||y)&&(d=!1,h=!1,cancelAnimationFrame(a),u.size>0)){const{nodeLookup:Y,updateNodePositions:B,onNodeDragStop:G,onSelectionDragStop:H}=t();if(v&&(B(u,!1),v=!1),i||G||!I&&H){const[V,W]=cx({nodeId:I,dragItems:u,nodeLookup:Y,dragging:!1});i?.($.sourceEvent,u,V,W),G?.($.sourceEvent,V,W),I||H?.($.sourceEvent,W)}}}).filter($=>{const Y=$.target;return!$.button&&(!k||!FC(Y,`.${k}`,N))&&(!C||FC(Y,C,N))});g.call(A)}function _(){g?.on(".drag",null)}return{update:S,destroy:_}}function QY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())pu(i,hl(o))>0&&r.push(o);return r}const JY=250;function eX(e,t,n,r){let i=[],o=1/0;const a=QY(e,n,t+JY);for(const u of a){const d=[...u.internals.handleBounds?.source??[],...u.internals.handleBounds?.target??[]];for(const m of d){if(r.nodeId===m.nodeId&&r.type===m.type&&r.id===m.id)continue;const{x:p,y:h}=Ko(u,m,m.position,!0),g=Math.sqrt(Math.pow(p-e.x,2)+Math.pow(h-e.y,2));g>t||(g1){const u=r.type==="source"?"target":"source";return i.find(d=>d.type===u)??i[0]}return i[0]}function DT(e,t,n,r,i,o=!1){const a=r.get(e);if(!a)return null;const u=i==="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,...Ko(a,d,d.position,!0)}:d}function OT(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function tX(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const LT=()=>!0;function nX(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:d,lib:m,autoPanOnConnect:p,flowId:h,panBy:g,cancelConnection:y,onConnectStart:v,onConnect:w,onConnectEnd:S,isValidConnection:_=LT,onReconnectEnd:k,updateConnection:C,getTransform:N,getFromHandle:L,autoPanSpeed:I,dragThreshold:D=1,handleDomNode:T}){const O=ST(e.target);let M=0,A;const{x:$,y:Y}=Ei(e),B=OT(o,T),G=u?.getBoundingClientRect();let H=!1;if(!G||!B)return;const V=DT(i,B,r,d,t);if(!V)return;let W=Ei(e,G),Z=!1,q=null,U=!1,ee=null;function P(){if(!p||!G)return;const[je,Se]=vT(W,G,I);g({x:je,y:Se}),M=requestAnimationFrame(P)}const K={...V,nodeId:i,type:B,position:V.position},J=d.get(i);let re={inProgress:!0,isValid:null,from:Ko(J,K,lt.Left,!0),fromHandle:K,fromPosition:K.position,fromNode:J,to:W,toHandle:null,toPosition:TC[K.position],toNode:null,pointer:W};function oe(){H=!0,C(re),v?.(e,{nodeId:i,handleId:r,handleType:B})}D===0&&oe();function fe(je){if(!H){const{x:gt,y:Ut}=Ei(je),bt=gt-$,xt=Ut-Y;if(!(bt*bt+xt*xt>D*D))return;oe()}if(!L()||!K){se(je);return}const Se=N();W=Ei(je,G),A=eX(Iu(W,Se,!1,[1,1]),n,d,K),Z||(P(),Z=!0);const Ce=zT(je,{handle:A,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:_,doc:O,lib:m,flowId:h,nodeLookup:d});ee=Ce.handleDomNode,q=Ce.connection,U=tX(!!A,Ce.isValid);const He=d.get(i),We=He?Ko(He,K,lt.Left,!0):re.from,Ye={...re,from:We,isValid:U,to:Ce.toHandle&&U?am({x:Ce.toHandle.x,y:Ce.toHandle.y},Se):W,toHandle:Ce.toHandle,toPosition:U&&Ce.toHandle?Ce.toHandle.position:TC[K.position],toNode:Ce.toHandle?d.get(Ce.toHandle.nodeId):null,pointer:W};C(Ye),re=Ye}function se(je){if(!("touches"in je&&je.touches.length>0)){if(H){(A||ee)&&q&&U&&w?.(q);const{inProgress:Se,...Ce}=re,He={...Ce,toPosition:re.toHandle?re.toPosition:null};S?.(je,He),o&&k?.(je,He)}y(),cancelAnimationFrame(M),Z=!1,U=!1,q=null,ee=null,O.removeEventListener("mousemove",fe),O.removeEventListener("mouseup",se),O.removeEventListener("touchmove",fe),O.removeEventListener("touchend",se)}}O.addEventListener("mousemove",fe),O.addEventListener("mouseup",se),O.addEventListener("touchmove",fe),O.addEventListener("touchend",se)}function zT(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:o,doc:a,lib:u,flowId:d,isValidConnection:m=LT,nodeLookup:p}){const h=o==="target",g=t?a.querySelector(`.${u}-flow__handle[data-id="${d}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:y,y:v}=Ei(e),w=a.elementFromPoint(y,v),S=w?.classList.contains(`${u}-flow__handle`)?w:g,_={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const k=OT(void 0,S),C=S.getAttribute("data-nodeid"),N=S.getAttribute("data-handleid"),L=S.classList.contains("connectable"),I=S.classList.contains("connectableend");if(!C||!k)return _;const D={source:h?C:r,sourceHandle:h?N:i,target:h?r:C,targetHandle:h?i:N};_.connection=D;const O=L&&I&&(n===fl.Strict?h&&k==="source"||!h&&k==="target":C!==r||N!==i);_.isValid=O&&m(D),_.toHandle=DT(C,k,N,p,n,!0)}return _}const u0={onPointerDown:nX,isValid:zT};function rX({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=qr(e);function o({translateExtent:u,width:d,height:m,zoomStep:p=1,pannable:h=!0,zoomable:g=!0,inversePan:y=!1}){const v=C=>{if(C.sourceEvent.type!=="wheel"||!t)return;const N=n(),L=C.sourceEvent.ctrlKey&&gu()?10:1,I=-C.sourceEvent.deltaY*(C.sourceEvent.deltaMode===1?.05:C.sourceEvent.deltaMode?1:.002)*p,D=N[2]*Math.pow(2,I*L);t.scaleTo(D)};let w=[0,0];const S=C=>{(C.sourceEvent.type==="mousedown"||C.sourceEvent.type==="touchstart")&&(w=[C.sourceEvent.clientX??C.sourceEvent.touches[0].clientX,C.sourceEvent.clientY??C.sourceEvent.touches[0].clientY])},_=C=>{const N=n();if(C.sourceEvent.type!=="mousemove"&&C.sourceEvent.type!=="touchmove"||!t)return;const L=[C.sourceEvent.clientX??C.sourceEvent.touches[0].clientX,C.sourceEvent.clientY??C.sourceEvent.touches[0].clientY],I=[L[0]-w[0],L[1]-w[1]];w=L;const D=r()*Math.max(N[2],Math.log(N[2]))*(y?-1:1),T={x:N[0]-I[0]*D,y:N[1]-I[1]*D},O=[[0,0],[d,m]];t.setViewportConstrained({x:T.x,y:T.y,zoom:N[2]},O,u)},k=dT().on("start",S).on("zoom",h?_:null).on("zoom.wheel",g?v:null);i.call(k,{})}function a(){i.on("zoom",null)}return{update:o,destroy:a,pointer:Si}}const Hm=e=>({x:e.x,y:e.y,zoom:e.k}),ux=({x:e,y:t,zoom:n})=>Pm.translate(e,t).scale(n),qa=(e,t)=>e.target.closest(`.${t}`),PT=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),iX=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,dx=(e,t=0,n=iX,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},BT=e=>{const t=e.ctrlKey&&gu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function sX({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:o,zoomOnPinch:a,onPanZoomStart:u,onPanZoom:d,onPanZoomEnd:m}){return p=>{if(qa(p,t))return p.ctrlKey&&p.preventDefault(),!1;p.preventDefault(),p.stopImmediatePropagation();const h=n.property("__zoom").k||1;if(p.ctrlKey&&a){const S=Si(p),_=BT(p),k=h*Math.pow(2,_);r.scaleTo(n,k,S,p);return}const g=p.deltaMode===1?20:1;let y=i===Ho.Vertical?0:p.deltaX*g,v=i===Ho.Horizontal?0:p.deltaY*g;!gu()&&p.shiftKey&&i!==Ho.Vertical&&(y=p.deltaY*g,v=0),r.translateBy(n,-(y/h)*o,-(v/h)*o,{internal:!0});const w=Hm(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d?.(p,w),e.panScrollTimeout=setTimeout(()=>{m?.(p,w),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,u?.(p,w))}}function oX({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const o=r.type==="wheel",a=!t&&o&&!r.ctrlKey,u=qa(r,e);if(r.ctrlKey&&o&&u&&r.preventDefault(),a||u)return null;r.preventDefault(),n.call(this,r,i)}}function aX({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const i=Hm(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,i)}}function lX({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{e.usedRightMouseButton=!!(n&&PT(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,Hm(o.transform))}}function cX({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&PT(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const u=Hm(a.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(a.sourceEvent,u)},n?150:0)}}}function uX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:u,noPanClassName:d,lib:m,connectionInProgress:p}){return h=>{const g=e||t,y=n&&h.ctrlKey,v=h.type==="wheel";if(h.button===1&&h.type==="mousedown"&&(qa(h,`${m}-flow__node`)||qa(h,`${m}-flow__edge`)))return!0;if(!r&&!g&&!i&&!o&&!n||a||p&&!v||qa(h,u)&&v||qa(h,d)&&(!v||i&&v&&!e)||!n&&h.ctrlKey&&v)return!1;if(!n&&h.type==="touchstart"&&h.touches?.length>1)return h.preventDefault(),!1;if(!g&&!i&&!y&&v||!r&&(h.type==="mousedown"||h.type==="touchstart")||Array.isArray(r)&&!r.includes(h.button)&&h.type==="mousedown")return!1;const w=Array.isArray(r)&&r.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||v)&&w}}function dX({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,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},p=e.getBoundingClientRect(),h=dT().scaleExtent([t,n]).translateExtent(r),g=qr(e).call(h);k({x:i.x,y:i.y,zoom:ml(i.zoom,t,n)},[[0,0],[p.width,p.height]],r);const y=g.on("wheel.zoom"),v=g.on("dblclick.zoom");h.wheelDelta(BT);function w(A,$){return g?new Promise(Y=>{h?.interpolate($?.interpolate==="linear"?Yc:_f).transform(dx(g,$?.duration,$?.ease,()=>Y(!0)),A)}):Promise.resolve(!1)}function S({noWheelClassName:A,noPanClassName:$,onPaneContextMenu:Y,userSelectionActive:B,panOnScroll:G,panOnDrag:H,panOnScrollMode:V,panOnScrollSpeed:W,preventScrolling:Z,zoomOnPinch:q,zoomOnScroll:U,zoomOnDoubleClick:ee,zoomActivationKeyPressed:P,lib:K,onTransformChange:J,connectionInProgress:te,paneClickDistance:re,selectionOnDrag:oe}){B&&!m.isZoomingOrPanning&&_();const fe=G&&!P&&!B;h.clickDistance(oe?1/0:!ji(re)||re<0?0:re);const se=fe?sX({zoomPanValues:m,noWheelClassName:A,d3Selection:g,d3Zoom:h,panOnScrollMode:V,panOnScrollSpeed:W,zoomOnPinch:q,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:u}):oX({noWheelClassName:A,preventScrolling:Z,d3ZoomHandler:y});if(g.on("wheel.zoom",se,{passive:!1}),!B){const Se=aX({zoomPanValues:m,onDraggingChange:d,onPanZoomStart:a});h.on("start",Se);const Ce=lX({zoomPanValues:m,panOnDrag:H,onPaneContextMenu:!!Y,onPanZoom:o,onTransformChange:J});h.on("zoom",Ce);const He=cX({zoomPanValues:m,panOnDrag:H,panOnScroll:G,onPaneContextMenu:Y,onPanZoomEnd:u,onDraggingChange:d});h.on("end",He)}const je=uX({zoomActivationKeyPressed:P,panOnDrag:H,zoomOnScroll:U,panOnScroll:G,zoomOnDoubleClick:ee,zoomOnPinch:q,userSelectionActive:B,noPanClassName:$,noWheelClassName:A,lib:K,connectionInProgress:te});h.filter(je),ee?g.on("dblclick.zoom",v):g.on("dblclick.zoom",null)}function _(){h.on("zoom",null)}async function k(A,$,Y){const B=ux(A),G=h?.constrain()(B,$,Y);return G&&await w(G),new Promise(H=>H(G))}async function C(A,$){const Y=ux(A);return await w(Y,$),new Promise(B=>B(Y))}function N(A){if(g){const $=ux(A),Y=g.property("__zoom");(Y.k!==A.zoom||Y.x!==A.x||Y.y!==A.y)&&h?.transform(g,$,null,{sync:!0})}}function L(){const A=g?uT(g.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function I(A,$){return g?new Promise(Y=>{h?.interpolate($?.interpolate==="linear"?Yc:_f).scaleTo(dx(g,$?.duration,$?.ease,()=>Y(!0)),A)}):Promise.resolve(!1)}function D(A,$){return g?new Promise(Y=>{h?.interpolate($?.interpolate==="linear"?Yc:_f).scaleBy(dx(g,$?.duration,$?.ease,()=>Y(!0)),A)}):Promise.resolve(!1)}function T(A){h?.scaleExtent(A)}function O(A){h?.translateExtent(A)}function M(A){const $=!ji(A)||A<0?0:A;h?.clickDistance($)}return{update:S,destroy:_,setViewport:C,setViewportConstrained:k,getViewport:L,scaleTo:I,scaleBy:D,setScaleExtent:T,setTranslateExtent:O,syncViewport:N,setClickDistance:M}}var gl;(function(e){e.Line="line",e.Handle="handle"})(gl||(gl={}));function fX({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:o}){const a=e-t,u=n-r,d=[a>0?1:a<0?-1:0,u>0?1:u<0?-1:0];return a&&i&&(d[0]=d[0]*-1),u&&o&&(d[1]=d[1]*-1),d}function VC(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Js(e,t){return Math.max(0,t-e)}function eo(e,t){return Math.max(0,e-t)}function lf(e,t,n){return Math.max(0,t-e,e-n)}function UC(e,t){return e?!t:t}function mX(e,t,n,r,i,o,a,u){let{affectsX:d,affectsY:m}=t;const{isHorizontal:p,isVertical:h}=t,g=p&&h,{xSnapped:y,ySnapped:v}=n,{minWidth:w,maxWidth:S,minHeight:_,maxHeight:k}=r,{x:C,y:N,width:L,height:I,aspectRatio:D}=e;let T=Math.floor(p?y-e.pointerX:0),O=Math.floor(h?v-e.pointerY:0);const M=L+(d?-T:T),A=I+(m?-O:O),$=-o[0]*L,Y=-o[1]*I;let B=lf(M,w,S),G=lf(A,_,k);if(a){let W=0,Z=0;d&&T<0?W=Js(C+T+$,a[0][0]):!d&&T>0&&(W=eo(C+M+$,a[1][0])),m&&O<0?Z=Js(N+O+Y,a[0][1]):!m&&O>0&&(Z=eo(N+A+Y,a[1][1])),B=Math.max(B,W),G=Math.max(G,Z)}if(u){let W=0,Z=0;d&&T>0?W=eo(C+T,u[0][0]):!d&&T<0&&(W=Js(C+M,u[1][0])),m&&O>0?Z=eo(N+O,u[0][1]):!m&&O<0&&(Z=Js(N+A,u[1][1])),B=Math.max(B,W),G=Math.max(G,Z)}if(i){if(p){const W=lf(M/D,_,k)*D;if(B=Math.max(B,W),a){let Z=0;!d&&!m||d&&!m&&g?Z=eo(N+Y+M/D,a[1][1])*D:Z=Js(N+Y+(d?T:-T)/D,a[0][1])*D,B=Math.max(B,Z)}if(u){let Z=0;!d&&!m||d&&!m&&g?Z=Js(N+M/D,u[1][1])*D:Z=eo(N+(d?T:-T)/D,u[0][1])*D,B=Math.max(B,Z)}}if(h){const W=lf(A*D,w,S)/D;if(G=Math.max(G,W),a){let Z=0;!d&&!m||m&&!d&&g?Z=eo(C+A*D+$,a[1][0])/D:Z=Js(C+(m?O:-O)*D+$,a[0][0])/D,G=Math.max(G,Z)}if(u){let Z=0;!d&&!m||m&&!d&&g?Z=Js(C+A*D,u[1][0])/D:Z=eo(C+(m?O:-O)*D,u[0][0])/D,G=Math.max(G,Z)}}}O=O+(O<0?G:-G),T=T+(T<0?B:-B),i&&(g?M>A*D?O=(UC(d,m)?-T:T)/D:T=(UC(d,m)?-O:O)*D:p?(O=T/D,m=d):(T=O*D,d=m));const H=d?C+T:C,V=m?N+O:N;return{width:L+(d?-T:T),height:I+(m?-O:O),x:o[0]*T*(d?-1:1)+H,y:o[1]*O*(m?-1:1)+V}}const $T={width:0,height:0,x:0,y:0},hX={...$T,pointerX:0,pointerY:0,aspectRatio:1};function pX(e){return[[0,0],[e.measured.width,e.measured.height]]}function gX(e,t,n){const r=t.position.x+e.position.x,i=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[[r-u,i-d],[r+o-u,i+a-d]]}function xX({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const o=qr(e);let a={controlDirection:VC("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:p,keepAspectRatio:h,resizeDirection:g,onResizeStart:y,onResize:v,onResizeEnd:w,shouldResize:S}){let _={...$T},k={...hX};a={boundaries:p,resizeDirection:g,keepAspectRatio:h,controlDirection:VC(m)};let C,N=null,L=[],I,D,T,O=!1;const M=KI().on("start",A=>{const{nodeLookup:$,transform:Y,snapGrid:B,snapToGrid:G,nodeOrigin:H,paneDomNode:V}=n();if(C=$.get(t),!C)return;N=V?.getBoundingClientRect()??null;const{xSnapped:W,ySnapped:Z}=Xc(A.sourceEvent,{transform:Y,snapGrid:B,snapToGrid:G,containerBounds:N});_={width:C.measured.width??0,height:C.measured.height??0,x:C.position.x??0,y:C.position.y??0},k={..._,pointerX:W,pointerY:Z,aspectRatio:_.width/_.height},I=void 0,C.parentId&&(C.extent==="parent"||C.expandParent)&&(I=$.get(C.parentId),D=I&&C.extent==="parent"?pX(I):void 0),L=[],T=void 0;for(const[q,U]of $)if(U.parentId===t&&(L.push({id:q,position:{...U.position},extent:U.extent}),U.extent==="parent"||U.expandParent)){const ee=gX(U,C,U.origin??H);T?T=[[Math.min(ee[0][0],T[0][0]),Math.min(ee[0][1],T[0][1])],[Math.max(ee[1][0],T[1][0]),Math.max(ee[1][1],T[1][1])]]:T=ee}y?.(A,{..._})}).on("drag",A=>{const{transform:$,snapGrid:Y,snapToGrid:B,nodeOrigin:G}=n(),H=Xc(A.sourceEvent,{transform:$,snapGrid:Y,snapToGrid:B,containerBounds:N}),V=[];if(!C)return;const{x:W,y:Z,width:q,height:U}=_,ee={},P=C.origin??G,{width:K,height:J,x:te,y:re}=mX(k,a.controlDirection,H,a.boundaries,a.keepAspectRatio,P,D,T),oe=K!==q,fe=J!==U,se=te!==W&&oe,je=re!==Z&&fe;if(!se&&!je&&!oe&&!fe)return;if((se||je||P[0]===1||P[1]===1)&&(ee.x=se?te:_.x,ee.y=je?re:_.y,_.x=ee.x,_.y=ee.y,L.length>0)){const We=te-W,Ye=re-Z;for(const gt of L)gt.position={x:gt.position.x-We+P[0]*(K-q),y:gt.position.y-Ye+P[1]*(J-U)},V.push(gt)}if((oe||fe)&&(ee.width=oe&&(!a.resizeDirection||a.resizeDirection==="horizontal")?K:_.width,ee.height=fe&&(!a.resizeDirection||a.resizeDirection==="vertical")?J:_.height,_.width=ee.width,_.height=ee.height),I&&C.expandParent){const We=P[0]*(ee.width??0);ee.x&&ee.x{O&&(w?.(A,{..._}),i?.({..._}),O=!1)});o.call(M)}function d(){o.on(".drag",null)}return{update:u,destroy:d}}var fx={exports:{}},mx={},hx={exports:{}},px={};var GC;function yX(){if(GC)return px;GC=1;var e=yl();function t(h,g){return h===g&&(h!==0||1/h===1/g)||h!==h&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,i=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function u(h,g){var y=g(),v=r({inst:{value:y,getSnapshot:g}}),w=v[0].inst,S=v[1];return o(function(){w.value=y,w.getSnapshot=g,d(w)&&S({inst:w})},[h,y,g]),i(function(){return d(w)&&S({inst:w}),h(function(){d(w)&&S({inst:w})})},[h]),a(y),y}function d(h){var g=h.getSnapshot;h=h.value;try{var y=g();return!n(h,y)}catch{return!0}}function m(h,g){return g()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:u;return px.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,px}var qC;function vX(){return qC||(qC=1,hx.exports=yX()),hx.exports}var WC;function bX(){if(WC)return mx;WC=1;var e=yl(),t=vX();function n(m,p){return m===p&&(m!==0||1/m===1/p)||m!==m&&p!==p}var r=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,u=e.useMemo,d=e.useDebugValue;return mx.useSyncExternalStoreWithSelector=function(m,p,h,g,y){var v=o(null);if(v.current===null){var w={hasValue:!1,value:null};v.current=w}else w=v.current;v=u(function(){function _(I){if(!k){if(k=!0,C=I,I=g(I),y!==void 0&&w.hasValue){var D=w.value;if(y(D,I))return N=D}return N=I}if(D=N,r(C,I))return D;var T=g(I);return y!==void 0&&y(D,T)?(C=I,D):(C=I,N=T)}var k=!1,C,N,L=h===void 0?null:h;return[function(){return _(p())},L===null?void 0:function(){return _(L())}]},[p,h,g,y]);var S=i(m,v[0],v[1]);return a(function(){w.hasValue=!0,w.value=S},[S]),d(S),S},mx}var YC;function _X(){return YC||(YC=1,fx.exports=bX()),fx.exports}var kX=_X();const SX=Zo(kX),wX={},XC=e=>{let t;const n=new Set,r=(p,h)=>{const g=typeof p=="function"?p(t):p;if(!Object.is(g,t)){const y=t;t=h??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(v=>v(t,y))}},i=()=>t,d={setState:r,getState:i,getInitialState:()=>m,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(wX?"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(r,i,d);return d},CX=e=>e?XC(e):XC,{useDebugValue:jX}=Ct,{useSyncExternalStoreWithSelector:EX}=SX,NX=e=>e;function HT(e,t=NX,n){const r=EX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return jX(r),r}const KC=(e,t)=>{const n=CX(e),r=(i,o=t)=>HT(n,i,o);return Object.assign(r,n),r},IX=(e,t)=>e?KC(e,t):KC;function jn(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[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Fm=E.createContext(null),TX=Fm.Provider,FT=Xi.error001();function Vt(e,t){const n=E.useContext(Fm);if(n===null)throw new Error(FT);return HT(n,e,t)}function En(){const e=E.useContext(Fm);if(e===null)throw new Error(FT);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const ZC={display:"none"},RX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},VT="react-flow__node-desc",UT="react-flow__edge-desc",AX="react-flow__aria-live",MX=e=>e.ariaLiveMessage,DX=e=>e.ariaLabelConfig;function OX({rfId:e}){const t=Vt(MX);return c.jsx("div",{id:`${AX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:RX,children:t})}function LX({rfId:e,disableKeyboardA11y:t}){const n=Vt(DX);return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:`${VT}-${e}`,style:ZC,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),c.jsx("div",{id:`${UT}-${e}`,style:ZC,children:n["edge.a11yDescription.default"]}),!t&&c.jsx(OX,{rfId:e})]})}const Vm=E.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},o)=>{const a=`${e}`.split("-");return c.jsx("div",{className:Xn(["react-flow__panel",n,...a]),style:r,ref:o,...i,children:t})});Vm.displayName="Panel";function zX({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:c.jsx(Vm,{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 PX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},cf=e=>e.id;function BX(e,t){return jn(e.selectedNodes.map(cf),t.selectedNodes.map(cf))&&jn(e.selectedEdges.map(cf),t.selectedEdges.map(cf))}function $X({onSelectionChange:e}){const t=En(),{selectedNodes:n,selectedEdges:r}=Vt(PX,BX);return E.useEffect(()=>{const i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(o=>o(i))},[n,r,e]),null}const HX=e=>!!e.onSelectionChangeHandlers;function FX({onSelectionChange:e}){const t=Vt(HX);return e||t?c.jsx($X,{onSelectionChange:e}):null}const d0=typeof window<"u"?E.useLayoutEffect:E.useEffect,GT=[0,0],VX={x:0,y:0,zoom:1},UX=["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"],QC=[...UX,"rfId"],GX=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}),JC={translateExtent:mu,nodeOrigin:GT,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function qX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:o,setNodeExtent:a,reset:u,setDefaultNodesAndEdges:d}=Vt(GX,jn),m=En();d0(()=>(d(e.defaultNodes,e.defaultEdges),()=>{p.current=JC,u()}),[]);const p=E.useRef(JC);return d0(()=>{for(const h of QC){const g=e[h],y=p.current[h];g!==y&&(typeof e[h]>"u"||(h==="nodes"?t(g):h==="edges"?n(g):h==="minZoom"?r(g):h==="maxZoom"?i(g):h==="translateExtent"?o(g):h==="nodeExtent"?a(g):h==="ariaLabelConfig"?m.setState({ariaLabelConfig:IY(g)}):h==="fitView"?m.setState({fitViewQueued:g}):h==="fitViewOptions"?m.setState({fitViewOptions:g}):m.setState({[h]:g})))}p.current=e},QC.map(h=>e[h])),null}function e2(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function WX(e){const[t,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const r=e2(),i=()=>n(r?.matches?"dark":"light");return i(),r?.addEventListener("change",i),()=>{r?.removeEventListener("change",i)}},[e]),t!==null?t:e2()?.matches?"dark":"light"}const t2=typeof document<"u"?document:null;function xu(e=null,t={target:t2,actInsideInputWithModifier:!0}){const[n,r]=E.useState(!1),i=E.useRef(!1),o=E.useRef(new Set([])),[a,u]=E.useMemo(()=>{if(e!==null){const m=(Array.isArray(e)?e:[e]).filter(h=>typeof h=="string").map(h=>h.replace("+",` -`).replace(` - -`,` -+`).split(` -`)),p=m.reduce((h,g)=>h.concat(...g),[]);return[m,p]}return[[],[]]},[e]);return E.useEffect(()=>{const d=t?.target??t2,m=t?.actInsideInputWithModifier??!0;if(e!==null){const p=y=>{if(i.current=y.ctrlKey||y.metaKey||y.shiftKey||y.altKey,(!i.current||i.current&&!m)&&wT(y))return!1;const w=r2(y.code,u);if(o.current.add(y[w]),n2(a,o.current,!1)){const S=y.composedPath?.()?.[0]||y.target,_=S?.nodeName==="BUTTON"||S?.nodeName==="A";t.preventDefault!==!1&&(i.current||!_)&&y.preventDefault(),r(!0)}},h=y=>{const v=r2(y.code,u);n2(a,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(y[v]),y.key==="Meta"&&o.current.clear(),i.current=!1},g=()=>{o.current.clear(),r(!1)};return d?.addEventListener("keydown",p),d?.addEventListener("keyup",h),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{d?.removeEventListener("keydown",p),d?.removeEventListener("keyup",h),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,r]),n}function n2(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function r2(e,t){return t.includes(e)?"code":"key"}const YX=()=>{const e=En();return E.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:r}=e.getState();return r?r.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,o],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:o,maxZoom:a,panZoom:u}=e.getState(),d=kv(t,r,i,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:r,snapGrid:i,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},p=n.snapGrid??i,h=n.snapToGrid??o;return Iu(m,r,h,p)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:o}=r.getBoundingClientRect(),a=am(t,n);return{x:a.x+i,y:a.y+o}}}),[])};function qT(e,t){const n=[],r=new Map,i=[];for(const o of e)if(o.type==="add"){i.push(o);continue}else if(o.type==="remove"||o.type==="replace")r.set(o.id,[o]);else{const a=r.get(o.id);a?a.push(o):r.set(o.id,[o])}for(const o of t){const a=r.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)XX(d,u);n.push(u)}return i.length&&i.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function XX(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 WT(e,t){return qT(e,t)}function KX(e,t){return qT(e,t)}function zo(e,t){return{id:e,type:"select",selected:t}}function Wa(e,t=new Set,n=!1){const r=[];for(const[i,o]of e){const a=t.has(i);!(o.selected===void 0&&!a)&&o.selected!==a&&(n&&(o.selected=a),r.push(zo(o.id,a)))}return r}function i2({items:e=[],lookup:t}){const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,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:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function s2(e){return{id:e.id,type:"remove"}}const o2=e=>vY(e),ZX=e=>gT(e);function YT(e){return E.forwardRef(e)}function a2(e){const[t,n]=E.useState(BigInt(0)),[r]=E.useState(()=>QX(()=>n(i=>i+BigInt(1))));return d0(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function QX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const XT=E.createContext(null);function JX({children:e}){const t=En(),n=E.useCallback(u=>{const{nodes:d=[],setNodes:m,hasDefaultNodes:p,onNodesChange:h,nodeLookup:g,fitViewQueued:y,onNodesChangeMiddlewareMap:v}=t.getState();let w=d;for(const _ of u)w=typeof _=="function"?_(w):_;let S=i2({items:w,lookup:g});for(const _ of v.values())S=_(S);p&&m(w),S.length>0?h?.(S):y&&window.requestAnimationFrame(()=>{const{fitViewQueued:_,nodes:k,setNodes:C}=t.getState();_&&C(k)})},[]),r=a2(n),i=E.useCallback(u=>{const{edges:d=[],setEdges:m,hasDefaultEdges:p,onEdgesChange:h,edgeLookup:g}=t.getState();let y=d;for(const v of u)y=typeof v=="function"?v(y):v;p?m(y):h&&h(i2({items:y,lookup:g}))},[]),o=a2(i),a=E.useMemo(()=>({nodeQueue:r,edgeQueue:o}),[]);return c.jsx(XT.Provider,{value:a,children:e})}function eK(){const e=E.useContext(XT);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const tK=e=>!!e.panZoom;function Iv(){const e=YX(),t=En(),n=eK(),r=Vt(tK),i=E.useMemo(()=>{const o=h=>t.getState().nodeLookup.get(h),a=h=>{n.nodeQueue.push(h)},u=h=>{n.edgeQueue.push(h)},d=h=>{const{nodeLookup:g,nodeOrigin:y}=t.getState(),v=o2(h)?h:g.get(h.id),w=v.parentId?kT(v.position,v.measured,v.parentId,g,y):v.position,S={...v,position:w,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return hl(S)},m=(h,g,y={replace:!1})=>{a(v=>v.map(w=>{if(w.id===h){const S=typeof g=="function"?g(w):g;return y.replace&&o2(S)?S:{...w,...S}}return w}))},p=(h,g,y={replace:!1})=>{u(v=>v.map(w=>{if(w.id===h){const S=typeof g=="function"?g(w):g;return y.replace&&ZX(S)?S:{...w,...S}}return w}))};return{getNodes:()=>t.getState().nodes.map(h=>({...h})),getNode:h=>o(h)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:h=[]}=t.getState();return h.map(g=>({...g}))},getEdge:h=>t.getState().edgeLookup.get(h),setNodes:a,setEdges:u,addNodes:h=>{const g=Array.isArray(h)?h:[h];n.nodeQueue.push(y=>[...y,...g])},addEdges:h=>{const g=Array.isArray(h)?h:[h];n.edgeQueue.push(y=>[...y,...g])},toObject:()=>{const{nodes:h=[],edges:g=[],transform:y}=t.getState(),[v,w,S]=y;return{nodes:h.map(_=>({..._})),edges:g.map(_=>({..._})),viewport:{x:v,y:w,zoom:S}}},deleteElements:async({nodes:h=[],edges:g=[]})=>{const{nodes:y,edges:v,onNodesDelete:w,onEdgesDelete:S,triggerNodeChanges:_,triggerEdgeChanges:k,onDelete:C,onBeforeDelete:N}=t.getState(),{nodes:L,edges:I}=await wY({nodesToRemove:h,edgesToRemove:g,nodes:y,edges:v,onBeforeDelete:N}),D=I.length>0,T=L.length>0;if(D){const O=I.map(s2);S?.(I),k(O)}if(T){const O=L.map(s2);w?.(L),_(O)}return(T||D)&&C?.({nodes:L,edges:I}),{deletedNodes:L,deletedEdges:I}},getIntersectingNodes:(h,g=!0,y)=>{const v=AC(h),w=v?h:d(h),S=y!==void 0;return w?(y||t.getState().nodes).filter(_=>{const k=t.getState().nodeLookup.get(_.id);if(k&&!v&&(_.id===h.id||!k.internals.positionAbsolute))return!1;const C=hl(S?_:k),N=pu(C,w);return g&&N>0||N>=C.width*C.height||N>=w.width*w.height}):[]},isNodeIntersecting:(h,g,y=!0)=>{const w=AC(h)?h:d(h);if(!w)return!1;const S=pu(w,g);return y&&S>0||S>=g.width*g.height||S>=w.width*w.height},updateNode:m,updateNodeData:(h,g,y={replace:!1})=>{m(h,v=>{const w=typeof g=="function"?g(v):g;return y.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},y)},updateEdge:p,updateEdgeData:(h,g,y={replace:!1})=>{p(h,v=>{const w=typeof g=="function"?g(v):g;return y.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},y)},getNodesBounds:h=>{const{nodeLookup:g,nodeOrigin:y}=t.getState();return bY(h,{nodeLookup:g,nodeOrigin:y})},getHandleConnections:({type:h,id:g,nodeId:y})=>Array.from(t.getState().connectionLookup.get(`${y}-${h}${g?`-${g}`:""}`)?.values()??[]),getNodeConnections:({type:h,handleId:g,nodeId:y})=>Array.from(t.getState().connectionLookup.get(`${y}${h?g?`-${h}-${g}`:`-${h}`:""}`)?.values()??[]),fitView:async h=>{const g=t.getState().fitViewResolver??NY();return t.setState({fitViewQueued:!0,fitViewOptions:h,fitViewResolver:g}),n.nodeQueue.push(y=>[...y]),g.promise}}},[]);return E.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const l2=e=>e.selected,nK=typeof window<"u"?window:void 0;function rK({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=En(),{deleteElements:r}=Iv(),i=xu(e,{actInsideInputWithModifier:!1}),o=xu(t,{target:nK});E.useEffect(()=>{if(i){const{edges:a,nodes:u}=n.getState();r({nodes:u.filter(l2),edges:a.filter(l2)}),n.setState({nodesSelectionActive:!1})}},[i]),E.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function iK(e){const t=En();E.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const r=Sv(e.current);(r.height===0||r.width===0)&&t.getState().onError?.("004",Xi.error004()),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Um={position:"absolute",width:"100%",height:"100%",top:0,left:0},sK=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function oK({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:o=Ho.Free,zoomOnDoubleClick:a=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:m,minZoom:p,maxZoom:h,zoomActivationKeyCode:g,preventScrolling:y=!0,children:v,noWheelClassName:w,noPanClassName:S,onViewportChange:_,isControlledViewport:k,paneClickDistance:C,selectionOnDrag:N}){const L=En(),I=E.useRef(null),{userSelectionActive:D,lib:T,connectionInProgress:O}=Vt(sK,jn),M=xu(g),A=E.useRef();iK(I);const $=E.useCallback(Y=>{_?.({x:Y[0],y:Y[1],zoom:Y[2]}),k||L.setState({transform:Y})},[_,k]);return E.useEffect(()=>{if(I.current){A.current=dX({domNode:I.current,minZoom:p,maxZoom:h,translateExtent:m,viewport:d,onDraggingChange:H=>L.setState(V=>V.paneDragging===H?V:{paneDragging:H}),onPanZoomStart:(H,V)=>{const{onViewportChangeStart:W,onMoveStart:Z}=L.getState();Z?.(H,V),W?.(V)},onPanZoom:(H,V)=>{const{onViewportChange:W,onMove:Z}=L.getState();Z?.(H,V),W?.(V)},onPanZoomEnd:(H,V)=>{const{onViewportChangeEnd:W,onMoveEnd:Z}=L.getState();Z?.(H,V),W?.(V)}});const{x:Y,y:B,zoom:G}=A.current.getViewport();return L.setState({panZoom:A.current,transform:[Y,B,G],domNode:I.current.closest(".react-flow")}),()=>{A.current?.destroy()}}},[]),E.useEffect(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:o,zoomOnDoubleClick:a,panOnDrag:u,zoomActivationKeyPressed:M,preventScrolling:y,noPanClassName:S,userSelectionActive:D,noWheelClassName:w,lib:T,onTransformChange:$,connectionInProgress:O,selectionOnDrag:N,paneClickDistance:C})},[e,t,n,r,i,o,a,u,M,y,S,D,w,T,$,O,N,C]),c.jsx("div",{className:"react-flow__renderer",ref:I,style:Um,children:v})}const aK=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function lK(){const{userSelectionActive:e,userSelectionRect:t}=Vt(aK,jn);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 gx=(e,t)=>n=>{n.target===t.current&&e?.(n)},cK=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function uK({isSelecting:e,selectionKeyPressed:t,selectionMode:n=hu.Full,panOnDrag:r,paneClickDistance:i,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:u,onPaneClick:d,onPaneContextMenu:m,onPaneScroll:p,onPaneMouseEnter:h,onPaneMouseMove:g,onPaneMouseLeave:y,children:v}){const w=En(),{userSelectionActive:S,elementsSelectable:_,dragging:k,connectionInProgress:C}=Vt(cK,jn),N=_&&(e||S),L=E.useRef(null),I=E.useRef(),D=E.useRef(new Set),T=E.useRef(new Set),O=E.useRef(!1),M=W=>{if(O.current||C){O.current=!1;return}d?.(W),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})},A=W=>{if(Array.isArray(r)&&r?.includes(2)){W.preventDefault();return}m?.(W)},$=p?W=>p(W):void 0,Y=W=>{O.current&&(W.stopPropagation(),O.current=!1)},B=W=>{const{domNode:Z}=w.getState();if(I.current=Z?.getBoundingClientRect(),!I.current)return;const q=W.target===L.current;if(!q&&!!W.target.closest(".nokey")||!e||!(o&&q||t)||W.button!==0||!W.isPrimary)return;W.target?.setPointerCapture?.(W.pointerId),O.current=!1;const{x:P,y:K}=Ei(W.nativeEvent,I.current);w.setState({userSelectionRect:{width:0,height:0,startX:P,startY:K,x:P,y:K}}),q||(W.stopPropagation(),W.preventDefault())},G=W=>{const{userSelectionRect:Z,transform:q,nodeLookup:U,edgeLookup:ee,connectionLookup:P,triggerNodeChanges:K,triggerEdgeChanges:J,defaultEdgeOptions:te,resetSelectedElements:re}=w.getState();if(!I.current||!Z)return;const{x:oe,y:fe}=Ei(W.nativeEvent,I.current),{startX:se,startY:je}=Z;if(!O.current){const Ye=t?0:i;if(Math.hypot(oe-se,fe-je)<=Ye)return;re(),a?.(W)}O.current=!0;const Se={startX:se,startY:je,x:oeYe.id)),T.current=new Set;const We=te?.selectable??!0;for(const Ye of D.current){const gt=P.get(Ye);if(gt)for(const{edgeId:Ut}of gt.values()){const bt=ee.get(Ut);bt&&(bt.selectable??We)&&T.current.add(Ut)}}if(!MC(Ce,D.current)){const Ye=Wa(U,D.current,!0);K(Ye)}if(!MC(He,T.current)){const Ye=Wa(ee,T.current);J(Ye)}w.setState({userSelectionRect:Se,userSelectionActive:!0,nodesSelectionActive:!1})},H=W=>{W.button===0&&(W.target?.releasePointerCapture?.(W.pointerId),!S&&W.target===L.current&&w.getState().userSelectionRect&&M?.(W),w.setState({userSelectionActive:!1,userSelectionRect:null}),O.current&&(u?.(W),w.setState({nodesSelectionActive:D.current.size>0})))},V=r===!0||Array.isArray(r)&&r.includes(0);return c.jsxs("div",{className:Xn(["react-flow__pane",{draggable:V,dragging:k,selection:e}]),onClick:N?void 0:gx(M,L),onContextMenu:gx(A,L),onWheel:gx($,L),onPointerEnter:N?void 0:h,onPointerMove:N?G:g,onPointerUp:N?H:void 0,onPointerDownCapture:N?B:void 0,onClickCapture:N?Y:void 0,onPointerLeave:y,ref:L,style:Um,children:[v,c.jsx(lK,{})]})}function f0({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:o,multiSelectionActive:a,nodeLookup:u,onError:d}=t.getState(),m=u.get(e);if(!m){d?.("012",Xi.error012(e));return}t.setState({nodesSelectionActive:!1}),m.selected?(n||m.selected&&a)&&(o({nodes:[m],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function KT({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:o,nodeClickDistance:a}){const u=En(),[d,m]=E.useState(!1),p=E.useRef();return E.useEffect(()=>{p.current=ZY({getStoreItems:()=>u.getState(),onNodeMouseDown:h=>{f0({id:h,store:u,nodeRef:e})},onDragStart:()=>{m(!0)},onDragStop:()=>{m(!1)}})},[]),E.useEffect(()=>{if(!(t||!e.current||!p.current))return p.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:o,nodeId:i,nodeClickDistance:a}),()=>{p.current?.destroy()}},[n,r,t,o,e,i,a]),d}const dK=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ZT(){const e=En();return E.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:o,nodesDraggable:a,onError:u,updateNodePositions:d,nodeLookup:m,nodeOrigin:p}=e.getState(),h=new Map,g=dK(a),y=i?o[0]:5,v=i?o[1]:5,w=n.direction.x*y*n.factor,S=n.direction.y*v*n.factor;for(const[,_]of m){if(!g(_))continue;let k={x:_.internals.positionAbsolute.x+w,y:_.internals.positionAbsolute.y+S};i&&(k=Nu(k,o));const{position:C,positionAbsolute:N}=xT({nodeId:_.id,nextPosition:k,nodeLookup:m,nodeExtent:r,nodeOrigin:p,onError:u});_.position=C,_.internals.positionAbsolute=N,h.set(_.id,_)}d(h)},[])}const Tv=E.createContext(null),fK=Tv.Provider;Tv.Consumer;const QT=()=>E.useContext(Tv),mK=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),hK=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:o,connection:a}=r,{fromHandle:u,toHandle:d,isValid:m}=a,p=d?.nodeId===e&&d?.id===t&&d?.type===n;return{connectingFrom:u?.nodeId===e&&u?.id===t&&u?.type===n,connectingTo:p,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:o===fl.Strict?u?.type!==n:e!==u?.nodeId||t!==u?.id,connectionInProcess:!!u,clickConnectionInProcess:!!i,valid:p&&m}};function pK({type:e="source",position:t=lt.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:o=!0,id:a,onConnect:u,children:d,className:m,onMouseDown:p,onTouchStart:h,...g},y){const v=a||null,w=e==="target",S=En(),_=QT(),{connectOnClick:k,noPanClassName:C,rfId:N}=Vt(mK,jn),{connectingFrom:L,connectingTo:I,clickConnecting:D,isPossibleEndHandle:T,connectionInProcess:O,clickConnectionInProcess:M,valid:A}=Vt(hK(_,v,e),jn);_||S.getState().onError?.("010",Xi.error010());const $=G=>{const{defaultEdgeOptions:H,onConnect:V,hasDefaultEdges:W}=S.getState(),Z={...H,...G};if(W){const{edges:q,setEdges:U}=S.getState();U(OY(Z,q))}V?.(Z),u?.(Z)},Y=G=>{if(!_)return;const H=CT(G.nativeEvent);if(i&&(H&&G.button===0||!H)){const V=S.getState();u0.onPointerDown(G.nativeEvent,{handleDomNode:G.currentTarget,autoPanOnConnect:V.autoPanOnConnect,connectionMode:V.connectionMode,connectionRadius:V.connectionRadius,domNode:V.domNode,nodeLookup:V.nodeLookup,lib:V.lib,isTarget:w,handleId:v,nodeId:_,flowId:V.rfId,panBy:V.panBy,cancelConnection:V.cancelConnection,onConnectStart:V.onConnectStart,onConnectEnd:(...W)=>S.getState().onConnectEnd?.(...W),updateConnection:V.updateConnection,onConnect:$,isValidConnection:n||((...W)=>S.getState().isValidConnection?.(...W)??!0),getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:V.autoPanSpeed,dragThreshold:V.connectionDragThreshold})}H?p?.(G):h?.(G)},B=G=>{const{onClickConnectStart:H,onClickConnectEnd:V,connectionClickStartHandle:W,connectionMode:Z,isValidConnection:q,lib:U,rfId:ee,nodeLookup:P,connection:K}=S.getState();if(!_||!W&&!i)return;if(!W){H?.(G.nativeEvent,{nodeId:_,handleId:v,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:_,type:e,id:v}});return}const J=ST(G.target),te=n||q,{connection:re,isValid:oe}=u0.isValid(G.nativeEvent,{handle:{nodeId:_,id:v,type:e},connectionMode:Z,fromNodeId:W.nodeId,fromHandleId:W.id||null,fromType:W.type,isValidConnection:te,flowId:ee,doc:J,lib:U,nodeLookup:P});oe&&re&&$(re);const fe=structuredClone(K);delete fe.inProgress,fe.toPosition=fe.toHandle?fe.toHandle.position:null,V?.(G,fe),S.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":v,"data-nodeid":_,"data-handlepos":t,"data-id":`${N}-${_}-${v}-${e}`,className:Xn(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",C,m,{source:!w,target:w,connectable:r,connectablestart:i,connectableend:o,clickconnecting:D,connectingfrom:L,connectingto:I,valid:A,connectionindicator:r&&(!O||T)&&(O||M?o:i)}]),onMouseDown:Y,onTouchStart:Y,onClick:k?B:void 0,ref:y,...g,children:d})}const xl=E.memo(YT(pK));function gK({data:e,isConnectable:t,sourcePosition:n=lt.Bottom}){return c.jsxs(c.Fragment,{children:[e?.label,c.jsx(xl,{type:"source",position:n,isConnectable:t})]})}function xK({data:e,isConnectable:t,targetPosition:n=lt.Top,sourcePosition:r=lt.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(xl,{type:"target",position:n,isConnectable:t}),e?.label,c.jsx(xl,{type:"source",position:r,isConnectable:t})]})}function yK(){return null}function vK({data:e,isConnectable:t,targetPosition:n=lt.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(xl,{type:"target",position:n,isConnectable:t}),e?.label]})}const lm={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},c2={input:gK,default:xK,output:vK,group:yK};function bK(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 _K=e=>{const{width:t,height:n,x:r,y:i}=Eu(e.nodeLookup,{filter:o=>!!o.selected});return{width:ji(t)?t:null,height:ji(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function kK({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=En(),{width:i,height:o,transformString:a,userSelectionActive:u}=Vt(_K,jn),d=ZT(),m=E.useRef(null);E.useEffect(()=>{n||m.current?.focus({preventScroll:!0})},[n]);const p=!u&&i!==null&&o!==null;if(KT({nodeRef:m,disabled:!p}),!p)return null;const h=e?y=>{const v=r.getState().nodes.filter(w=>w.selected);e(y,v)}:void 0,g=y=>{Object.prototype.hasOwnProperty.call(lm,y.key)&&(y.preventDefault(),d({direction:lm[y.key],factor:y.shiftKey?4:1}))};return c.jsx("div",{className:Xn(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:c.jsx("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:h,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:i,height:o}})})}const u2=typeof window<"u"?window:void 0,SK=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function JT({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:o,onPaneScroll:a,paneClickDistance:u,deleteKeyCode:d,selectionKeyCode:m,selectionOnDrag:p,selectionMode:h,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:v,panActivationKeyCode:w,zoomActivationKeyCode:S,elementsSelectable:_,zoomOnScroll:k,zoomOnPinch:C,panOnScroll:N,panOnScrollSpeed:L,panOnScrollMode:I,zoomOnDoubleClick:D,panOnDrag:T,defaultViewport:O,translateExtent:M,minZoom:A,maxZoom:$,preventScrolling:Y,onSelectionContextMenu:B,noWheelClassName:G,noPanClassName:H,disableKeyboardA11y:V,onViewportChange:W,isControlledViewport:Z}){const{nodesSelectionActive:q,userSelectionActive:U}=Vt(SK,jn),ee=xu(m,{target:u2}),P=xu(w,{target:u2}),K=P||T,J=P||N,te=p&&K!==!0,re=ee||U||te;return rK({deleteKeyCode:d,multiSelectionKeyCode:v}),c.jsx(oK,{onPaneContextMenu:o,elementsSelectable:_,zoomOnScroll:k,zoomOnPinch:C,panOnScroll:J,panOnScrollSpeed:L,panOnScrollMode:I,zoomOnDoubleClick:D,panOnDrag:!ee&&K,defaultViewport:O,translateExtent:M,minZoom:A,maxZoom:$,zoomActivationKeyCode:S,preventScrolling:Y,noWheelClassName:G,noPanClassName:H,onViewportChange:W,isControlledViewport:Z,paneClickDistance:u,selectionOnDrag:te,children:c.jsxs(uK,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:o,onPaneScroll:a,panOnDrag:K,isSelecting:!!re,selectionMode:h,selectionKeyPressed:ee,paneClickDistance:u,selectionOnDrag:te,children:[e,q&&c.jsx(kK,{onSelectionContextMenu:B,noPanClassName:H,disableKeyboardA11y:V})]})})}JT.displayName="FlowRenderer";const wK=E.memo(JT),CK=e=>t=>e?_v(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 jK(e){return Vt(E.useCallback(CK(e),[e]),jn)}const EK=e=>e.updateNodeInternals;function NK(){const e=Vt(EK),[t]=E.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const o=i.target.getAttribute("data-id");r.set(o,{id:o,nodeElement:i.target,force:!0})}),e(r)}));return E.useEffect(()=>()=>{t?.disconnect()},[t]),t}function IK({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=En(),o=E.useRef(null),a=E.useRef(null),u=E.useRef(e.sourcePosition),d=E.useRef(e.targetPosition),m=E.useRef(t),p=n&&!!e.internals.handleBounds;return E.useEffect(()=>{o.current&&!e.hidden&&(!p||a.current!==o.current)&&(a.current&&r?.unobserve(a.current),r?.observe(o.current),a.current=o.current)},[p,e.hidden]),E.useEffect(()=>()=>{a.current&&(r?.unobserve(a.current),a.current=null)},[]),E.useEffect(()=>{if(o.current){const h=m.current!==t,g=u.current!==e.sourcePosition,y=d.current!==e.targetPosition;(h||g||y)&&(m.current=t,u.current=e.sourcePosition,d.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function TK({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:o,onDoubleClick:a,nodesDraggable:u,elementsSelectable:d,nodesConnectable:m,nodesFocusable:p,resizeObserver:h,noDragClassName:g,noPanClassName:y,disableKeyboardA11y:v,rfId:w,nodeTypes:S,nodeClickDistance:_,onError:k}){const{node:C,internals:N,isParent:L}=Vt(oe=>{const fe=oe.nodeLookup.get(e),se=oe.parentLookup.has(e);return{node:fe,internals:fe.internals,isParent:se}},jn);let I=C.type||"default",D=S?.[I]||c2[I];D===void 0&&(k?.("003",Xi.error003(I)),I="default",D=S?.default||c2.default);const T=!!(C.draggable||u&&typeof C.draggable>"u"),O=!!(C.selectable||d&&typeof C.selectable>"u"),M=!!(C.connectable||m&&typeof C.connectable>"u"),A=!!(C.focusable||p&&typeof C.focusable>"u"),$=En(),Y=_T(C),B=IK({node:C,nodeType:I,hasDimensions:Y,resizeObserver:h}),G=KT({nodeRef:B,disabled:C.hidden||!T,noDragClassName:g,handleSelector:C.dragHandle,nodeId:e,isSelectable:O,nodeClickDistance:_}),H=ZT();if(C.hidden)return null;const V=js(C),W=bK(C),Z=O||T||t||n||r||i,q=n?oe=>n(oe,{...N.userNode}):void 0,U=r?oe=>r(oe,{...N.userNode}):void 0,ee=i?oe=>i(oe,{...N.userNode}):void 0,P=o?oe=>o(oe,{...N.userNode}):void 0,K=a?oe=>a(oe,{...N.userNode}):void 0,J=oe=>{const{selectNodesOnDrag:fe,nodeDragThreshold:se}=$.getState();O&&(!fe||!T||se>0)&&f0({id:e,store:$,nodeRef:B}),t&&t(oe,{...N.userNode})},te=oe=>{if(!(wT(oe.nativeEvent)||v)){if(fT.includes(oe.key)&&O){const fe=oe.key==="Escape";f0({id:e,store:$,unselect:fe,nodeRef:B})}else if(T&&C.selected&&Object.prototype.hasOwnProperty.call(lm,oe.key)){oe.preventDefault();const{ariaLabelConfig:fe}=$.getState();$.setState({ariaLiveMessage:fe["node.a11yDescription.ariaLiveMessage"]({direction:oe.key.replace("Arrow","").toLowerCase(),x:~~N.positionAbsolute.x,y:~~N.positionAbsolute.y})}),H({direction:lm[oe.key],factor:oe.shiftKey?4:1})}}},re=()=>{if(v||!B.current?.matches(":focus-visible"))return;const{transform:oe,width:fe,height:se,autoPanOnNodeFocus:je,setCenter:Se}=$.getState();if(!je)return;_v(new Map([[e,C]]),{x:0,y:0,width:fe,height:se},oe,!0).length>0||Se(C.position.x+V.width/2,C.position.y+V.height/2,{zoom:oe[2]})};return c.jsx("div",{className:Xn(["react-flow__node",`react-flow__node-${I}`,{[y]:T},C.className,{selected:C.selected,selectable:O,parent:L,draggable:T,dragging:G}]),ref:B,style:{zIndex:N.z,transform:`translate(${N.positionAbsolute.x}px,${N.positionAbsolute.y}px)`,pointerEvents:Z?"all":"none",visibility:Y?"visible":"hidden",...C.style,...W},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:q,onMouseMove:U,onMouseLeave:ee,onContextMenu:P,onClick:J,onDoubleClick:K,onKeyDown:A?te:void 0,tabIndex:A?0:void 0,onFocus:A?re:void 0,role:C.ariaRole??(A?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${VT}-${w}`,"aria-label":C.ariaLabel,...C.domAttributes,children:c.jsx(fK,{value:e,children:c.jsx(D,{id:e,data:C.data,type:I,positionAbsoluteX:N.positionAbsolute.x,positionAbsoluteY:N.positionAbsolute.y,selected:C.selected??!1,selectable:O,draggable:T,deletable:C.deletable??!0,isConnectable:M,sourcePosition:C.sourcePosition,targetPosition:C.targetPosition,dragging:G,dragHandle:C.dragHandle,zIndex:N.z,parentId:C.parentId,...V})})})}var RK=E.memo(TK);const AK=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function eR(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:o}=Vt(AK,jn),a=jK(e.onlyRenderVisibleElements),u=NK();return c.jsx("div",{className:"react-flow__nodes",style:Um,children:a.map(d=>c.jsx(RK,{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:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:o},d))})}eR.displayName="NodeRenderer";const MK=E.memo(eR);function DK(e){return Vt(E.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const o=n.nodeLookup.get(i.source),a=n.nodeLookup.get(i.target);o&&a&&AY({sourceNode:o,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),jn)}const OK=({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"})},LK=({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"})},d2={[sm.Arrow]:OK,[sm.ArrowClosed]:LK};function zK(e){const t=En();return E.useMemo(()=>Object.prototype.hasOwnProperty.call(d2,e)?d2[e]:(t.getState().onError?.("009",Xi.error009(e)),null),[e])}const PK=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:o="strokeWidth",strokeWidth:a,orient:u="auto-start-reverse"})=>{const d=zK(t);return d?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:u,refX:"0",refY:"0",children:c.jsx(d,{color:n,strokeWidth:a})}):null},tR=({defaultColor:e,rfId:t})=>{const n=Vt(o=>o.edges),r=Vt(o=>o.defaultEdgeOptions),i=E.useMemo(()=>$Y(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?c.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:c.jsx("defs",{children:i.map(o=>c.jsx(PK,{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};tR.displayName="MarkerDefinitions";var BK=E.memo(tR);function nR({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:o,labelBgPadding:a=[2,4],labelBgBorderRadius:u=2,children:d,className:m,...p}){const[h,g]=E.useState({x:1,y:0,width:0,height:0}),y=Xn(["react-flow__edge-textwrapper",m]),v=E.useRef(null);return E.useEffect(()=>{if(v.current){const w=v.current.getBBox();g({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?c.jsxs("g",{transform:`translate(${e-h.width/2} ${t-h.height/2})`,className:y,visibility:h.width?"visible":"hidden",...p,children:[i&&c.jsx("rect",{width:h.width+2*a[0],x:-a[0],y:-a[1],height:h.height+2*a[1],className:"react-flow__edge-textbg",style:o,rx:u,ry:u}),c.jsx("text",{className:"react-flow__edge-text",y:h.height/2,dy:"0.3em",ref:v,style:r,children:n}),d]}):null}nR.displayName="EdgeText";const $K=E.memo(nR);function Gm({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d,interactionWidth:m=20,...p}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...p,d:e,fill:"none",className:Xn(["react-flow__edge-path",p.className])}),m?c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}):null,r&&ji(t)&&ji(n)?c.jsx($K,{x:t,y:n,label:r,labelStyle:i,labelShowBg:o,labelBgStyle:a,labelBgPadding:u,labelBgBorderRadius:d}):null]})}function f2({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===lt.Left||e===lt.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function rR({sourceX:e,sourceY:t,sourcePosition:n=lt.Bottom,targetX:r,targetY:i,targetPosition:o=lt.Top}){const[a,u]=f2({pos:n,x1:e,y1:t,x2:r,y2:i}),[d,m]=f2({pos:o,x1:r,y1:i,x2:e,y2:t}),[p,h,g,y]=jT({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:u,targetControlX:d,targetControlY:m});return[`M${e},${t} C${a},${u} ${d},${m} ${r},${i}`,p,h,g,y]}function iR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,sourcePosition:a,targetPosition:u,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:_})=>{const[k,C,N]=rR({sourceX:n,sourceY:r,sourcePosition:a,targetX:i,targetY:o,targetPosition:u}),L=e.isInternal?void 0:t;return c.jsx(Gm,{id:L,path:k,labelX:C,labelY:N,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:_})})}const HK=iR({isInternal:!1}),sR=iR({isInternal:!0});HK.displayName="SimpleBezierEdge";sR.displayName="SimpleBezierEdgeInternal";function oR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,sourcePosition:y=lt.Bottom,targetPosition:v=lt.Top,markerEnd:w,markerStart:S,pathOptions:_,interactionWidth:k})=>{const[C,N,L]=a0({sourceX:n,sourceY:r,sourcePosition:y,targetX:i,targetY:o,targetPosition:v,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),I=e.isInternal?void 0:t;return c.jsx(Gm,{id:I,path:C,labelX:N,labelY:L,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:S,interactionWidth:k})})}const aR=oR({isInternal:!1}),lR=oR({isInternal:!0});aR.displayName="SmoothStepEdge";lR.displayName="SmoothStepEdgeInternal";function cR(e){return E.memo(({id:t,...n})=>{const r=e.isInternal?void 0:t;return c.jsx(aR,{...n,id:r,pathOptions:E.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const FK=cR({isInternal:!1}),uR=cR({isInternal:!0});FK.displayName="StepEdge";uR.displayName="StepEdgeInternal";function dR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:v,interactionWidth:w})=>{const[S,_,k]=IT({sourceX:n,sourceY:r,targetX:i,targetY:o}),C=e.isInternal?void 0:t;return c.jsx(Gm,{id:C,path:S,labelX:_,labelY:k,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:m,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:v,interactionWidth:w})})}const VK=dR({isInternal:!1}),fR=dR({isInternal:!0});VK.displayName="StraightEdge";fR.displayName="StraightEdgeInternal";function mR(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:o,sourcePosition:a=lt.Bottom,targetPosition:u=lt.Top,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,pathOptions:_,interactionWidth:k})=>{const[C,N,L]=ET({sourceX:n,sourceY:r,sourcePosition:a,targetX:i,targetY:o,targetPosition:u,curvature:_?.curvature}),I=e.isInternal?void 0:t;return c.jsx(Gm,{id:I,path:C,labelX:N,labelY:L,label:d,labelStyle:m,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:v,markerEnd:w,markerStart:S,interactionWidth:k})})}const UK=mR({isInternal:!1}),hR=mR({isInternal:!0});UK.displayName="BezierEdge";hR.displayName="BezierEdgeInternal";const m2={default:hR,straight:fR,step:uR,smoothstep:lR,simplebezier:sR},h2={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},GK=(e,t,n)=>n===lt.Left?e-t:n===lt.Right?e+t:e,qK=(e,t,n)=>n===lt.Top?e-t:n===lt.Bottom?e+t:e,p2="react-flow__edgeupdater";function g2({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:o,onMouseOut:a,type:u}){return c.jsx("circle",{onMouseDown:i,onMouseEnter:o,onMouseOut:a,className:Xn([p2,`${p2}-${u}`]),cx:GK(t,r,e),cy:qK(n,r,e),r,stroke:"transparent",fill:"transparent"})}function WK({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:o,targetY:a,sourcePosition:u,targetPosition:d,onReconnect:m,onReconnectStart:p,onReconnectEnd:h,setReconnecting:g,setUpdateHover:y}){const v=En(),w=(N,L)=>{if(N.button!==0)return;const{autoPanOnConnect:I,domNode:D,connectionMode:T,connectionRadius:O,lib:M,onConnectStart:A,cancelConnection:$,nodeLookup:Y,rfId:B,panBy:G,updateConnection:H}=v.getState(),V=L.type==="target",W=(U,ee)=>{g(!1),h?.(U,n,L.type,ee)},Z=U=>m?.(n,U),q=(U,ee)=>{g(!0),p?.(N,n,L.type),A?.(U,ee)};u0.onPointerDown(N.nativeEvent,{autoPanOnConnect:I,connectionMode:T,connectionRadius:O,domNode:D,handleId:L.id,nodeId:L.nodeId,nodeLookup:Y,isTarget:V,edgeUpdaterType:L.type,lib:M,flowId:B,cancelConnection:$,panBy:G,isValidConnection:(...U)=>v.getState().isValidConnection?.(...U)??!0,onConnect:Z,onConnectStart:q,onConnectEnd:(...U)=>v.getState().onConnectEnd?.(...U),onReconnectEnd:W,updateConnection:H,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:N.currentTarget})},S=N=>w(N,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),_=N=>w(N,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),k=()=>y(!0),C=()=>y(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(g2,{position:u,centerX:r,centerY:i,radius:t,onMouseDown:S,onMouseEnter:k,onMouseOut:C,type:"source"}),(e===!0||e==="target")&&c.jsx(g2,{position:d,centerX:o,centerY:a,radius:t,onMouseDown:_,onMouseEnter:k,onMouseOut:C,type:"target"})]})}function YK({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,rfId:v,edgeTypes:w,noPanClassName:S,onError:_,disableKeyboardA11y:k}){let C=Vt(Se=>Se.edgeLookup.get(e));const N=Vt(Se=>Se.defaultEdgeOptions);C=N?{...N,...C}:C;let L=C.type||"default",I=w?.[L]||m2[L];I===void 0&&(_?.("011",Xi.error011(L)),L="default",I=w?.default||m2.default);const D=!!(C.focusable||t&&typeof C.focusable>"u"),T=typeof h<"u"&&(C.reconnectable||n&&typeof C.reconnectable>"u"),O=!!(C.selectable||r&&typeof C.selectable>"u"),M=E.useRef(null),[A,$]=E.useState(!1),[Y,B]=E.useState(!1),G=En(),{zIndex:H,sourceX:V,sourceY:W,targetX:Z,targetY:q,sourcePosition:U,targetPosition:ee}=Vt(E.useCallback(Se=>{const Ce=Se.nodeLookup.get(C.source),He=Se.nodeLookup.get(C.target);if(!Ce||!He)return{zIndex:C.zIndex,...h2};const We=BY({id:e,sourceNode:Ce,targetNode:He,sourceHandle:C.sourceHandle||null,targetHandle:C.targetHandle||null,connectionMode:Se.connectionMode,onError:_});return{zIndex:RY({selected:C.selected,zIndex:C.zIndex,sourceNode:Ce,targetNode:He,elevateOnSelect:Se.elevateEdgesOnSelect,zIndexMode:Se.zIndexMode}),...We||h2}},[C.source,C.target,C.sourceHandle,C.targetHandle,C.selected,C.zIndex]),jn),P=E.useMemo(()=>C.markerStart?`url('#${l0(C.markerStart,v)}')`:void 0,[C.markerStart,v]),K=E.useMemo(()=>C.markerEnd?`url('#${l0(C.markerEnd,v)}')`:void 0,[C.markerEnd,v]);if(C.hidden||V===null||W===null||Z===null||q===null)return null;const J=Se=>{const{addSelectedEdges:Ce,unselectNodesAndEdges:He,multiSelectionActive:We}=G.getState();O&&(G.setState({nodesSelectionActive:!1}),C.selected&&We?(He({nodes:[],edges:[C]}),M.current?.blur()):Ce([e])),i&&i(Se,C)},te=o?Se=>{o(Se,{...C})}:void 0,re=a?Se=>{a(Se,{...C})}:void 0,oe=u?Se=>{u(Se,{...C})}:void 0,fe=d?Se=>{d(Se,{...C})}:void 0,se=m?Se=>{m(Se,{...C})}:void 0,je=Se=>{if(!k&&fT.includes(Se.key)&&O){const{unselectNodesAndEdges:Ce,addSelectedEdges:He}=G.getState();Se.key==="Escape"?(M.current?.blur(),Ce({edges:[C]})):He([e])}};return c.jsx("svg",{style:{zIndex:H},children:c.jsxs("g",{className:Xn(["react-flow__edge",`react-flow__edge-${L}`,C.className,S,{selected:C.selected,animated:C.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:J,onDoubleClick:te,onContextMenu:re,onMouseEnter:oe,onMouseMove:fe,onMouseLeave:se,onKeyDown:D?je:void 0,tabIndex:D?0:void 0,role:C.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":C.ariaLabel===null?void 0:C.ariaLabel||`Edge from ${C.source} to ${C.target}`,"aria-describedby":D?`${UT}-${v}`:void 0,ref:M,...C.domAttributes,children:[!Y&&c.jsx(I,{id:e,source:C.source,target:C.target,type:C.type,selected:C.selected,animated:C.animated,selectable:O,deletable:C.deletable??!0,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,sourceX:V,sourceY:W,targetX:Z,targetY:q,sourcePosition:U,targetPosition:ee,data:C.data,style:C.style,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerStart:P,markerEnd:K,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth}),T&&c.jsx(WK,{edge:C,isReconnectable:T,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,sourceX:V,sourceY:W,targetX:Z,targetY:q,sourcePosition:U,targetPosition:ee,setUpdateHover:$,setReconnecting:B})]})})}var XK=E.memo(YK);const KK=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function pR({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:o,onEdgeContextMenu:a,onEdgeMouseEnter:u,onEdgeMouseMove:d,onEdgeMouseLeave:m,onEdgeClick:p,reconnectRadius:h,onEdgeDoubleClick:g,onReconnectStart:y,onReconnectEnd:v,disableKeyboardA11y:w}){const{edgesFocusable:S,edgesReconnectable:_,elementsSelectable:k,onError:C}=Vt(KK,jn),N=DK(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(BK,{defaultColor:e,rfId:n}),N.map(L=>c.jsx(XK,{id:L,edgesFocusable:S,edgesReconnectable:_,elementsSelectable:k,noPanClassName:i,onReconnect:o,onContextMenu:a,onMouseEnter:u,onMouseMove:d,onMouseLeave:m,onClick:p,reconnectRadius:h,onDoubleClick:g,onReconnectStart:y,onReconnectEnd:v,rfId:n,onError:C,edgeTypes:r,disableKeyboardA11y:w},L))]})}pR.displayName="EdgeRenderer";const ZK=E.memo(pR),QK=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function JK({children:e}){const t=Vt(QK);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function eZ(e){const t=Iv(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const tZ=e=>e.panZoom?.syncViewport;function nZ(e){const t=Vt(tZ),n=En();return E.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function rZ(e){return e.connection.inProgress?{...e.connection,to:Iu(e.connection.to,e.transform)}:{...e.connection}}function iZ(e){return rZ}function sZ(e){const t=iZ();return Vt(t,jn)}const oZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function aZ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:o,height:a,isValid:u,inProgress:d}=Vt(oZ,jn);return!(o&&i&&d)?null:c.jsx("svg",{style:e,width:o,height:a,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:Xn(["react-flow__connection",pT(u)]),children:c.jsx(gR,{style:t,type:n,CustomComponent:r,isValid:u})})})}const gR=({style:e,type:t=no.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:o,fromNode:a,fromHandle:u,fromPosition:d,to:m,toNode:p,toHandle:h,toPosition:g,pointer:y}=sZ();if(!i)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:pT(r),toNode:p,toHandle:h,pointer:y});let v="";const w={sourceX:o.x,sourceY:o.y,sourcePosition:d,targetX:m.x,targetY:m.y,targetPosition:g};switch(t){case no.Bezier:[v]=ET(w);break;case no.SimpleBezier:[v]=rR(w);break;case no.Step:[v]=a0({...w,borderRadius:0});break;case no.SmoothStep:[v]=a0(w);break;default:[v]=IT(w)}return c.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};gR.displayName="ConnectionLine";const lZ={};function x2(e=lZ){E.useRef(e),En(),E.useEffect(()=>{},[e])}function cZ(){En(),E.useRef(!1),E.useEffect(()=>{},[])}function xR({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:o,onEdgeDoubleClick:a,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:p,onSelectionContextMenu:h,onSelectionStart:g,onSelectionEnd:y,connectionLineType:v,connectionLineStyle:w,connectionLineComponent:S,connectionLineContainerStyle:_,selectionKeyCode:k,selectionOnDrag:C,selectionMode:N,multiSelectionKeyCode:L,panActivationKeyCode:I,zoomActivationKeyCode:D,deleteKeyCode:T,onlyRenderVisibleElements:O,elementsSelectable:M,defaultViewport:A,translateExtent:$,minZoom:Y,maxZoom:B,preventScrolling:G,defaultMarkerColor:H,zoomOnScroll:V,zoomOnPinch:W,panOnScroll:Z,panOnScrollSpeed:q,panOnScrollMode:U,zoomOnDoubleClick:ee,panOnDrag:P,onPaneClick:K,onPaneMouseEnter:J,onPaneMouseMove:te,onPaneMouseLeave:re,onPaneScroll:oe,onPaneContextMenu:fe,paneClickDistance:se,nodeClickDistance:je,onEdgeContextMenu:Se,onEdgeMouseEnter:Ce,onEdgeMouseMove:He,onEdgeMouseLeave:We,reconnectRadius:Ye,onReconnect:gt,onReconnectStart:Ut,onReconnectEnd:bt,noDragClassName:xt,noWheelClassName:me,noPanClassName:Oe,disableKeyboardA11y:it,nodeExtent:et,rfId:nt,viewport:de,onViewportChange:ve}){return x2(e),x2(t),cZ(),eZ(n),nZ(de),c.jsx(wK,{onPaneClick:K,onPaneMouseEnter:J,onPaneMouseMove:te,onPaneMouseLeave:re,onPaneContextMenu:fe,onPaneScroll:oe,paneClickDistance:se,deleteKeyCode:T,selectionKeyCode:k,selectionOnDrag:C,selectionMode:N,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:L,panActivationKeyCode:I,zoomActivationKeyCode:D,elementsSelectable:M,zoomOnScroll:V,zoomOnPinch:W,zoomOnDoubleClick:ee,panOnScroll:Z,panOnScrollSpeed:q,panOnScrollMode:U,panOnDrag:P,defaultViewport:A,translateExtent:$,minZoom:Y,maxZoom:B,onSelectionContextMenu:h,preventScrolling:G,noDragClassName:xt,noWheelClassName:me,noPanClassName:Oe,disableKeyboardA11y:it,onViewportChange:ve,isControlledViewport:!!de,children:c.jsxs(JK,{children:[c.jsx(ZK,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:a,onReconnect:gt,onReconnectStart:Ut,onReconnectEnd:bt,onlyRenderVisibleElements:O,onEdgeContextMenu:Se,onEdgeMouseEnter:Ce,onEdgeMouseMove:He,onEdgeMouseLeave:We,reconnectRadius:Ye,defaultMarkerColor:H,noPanClassName:Oe,disableKeyboardA11y:it,rfId:nt}),c.jsx(aZ,{style:w,type:v,component:S,containerStyle:_}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(MK,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:o,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:m,onNodeContextMenu:p,nodeClickDistance:je,onlyRenderVisibleElements:O,noPanClassName:Oe,noDragClassName:xt,disableKeyboardA11y:it,nodeExtent:et,rfId:nt}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}xR.displayName="GraphView";const uZ=E.memo(xR),y2=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d=.5,maxZoom:m=2,nodeOrigin:p,nodeExtent:h,zIndexMode:g="basic"}={})=>{const y=new Map,v=new Map,w=new Map,S=new Map,_=r??t??[],k=n??e??[],C=p??[0,0],N=h??mu;AT(w,S,_);const{nodesInitialized:L}=c0(k,y,v,{nodeOrigin:C,nodeExtent:N,zIndexMode:g});let I=[0,0,1];if(a&&i&&o){const D=Eu(y,{filter:A=>!!((A.width||A.initialWidth)&&(A.height||A.initialHeight))}),{x:T,y:O,zoom:M}=kv(D,i,o,d,m,u?.padding??.1);I=[T,O,M]}return{rfId:"1",width:i??0,height:o??0,transform:I,nodes:k,nodesInitialized:L,nodeLookup:y,parentLookup:v,edges:_,edgeLookup:S,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:d,maxZoom:m,translateExtent:mu,nodeExtent:N,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:fl.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:C,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:{...hT},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:CY,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:mT,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},dZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:p,nodeExtent:h,zIndexMode:g})=>IX((y,v)=>{async function w(){const{nodeLookup:S,panZoom:_,fitViewOptions:k,fitViewResolver:C,width:N,height:L,minZoom:I,maxZoom:D}=v();_&&(await SY({nodes:S,width:N,height:L,panZoom:_,minZoom:I,maxZoom:D},k),C?.resolve(!0),y({fitViewResolver:null}))}return{...y2({nodes:e,edges:t,width:i,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:m,nodeOrigin:p,nodeExtent:h,defaultNodes:n,defaultEdges:r,zIndexMode:g}),setNodes:S=>{const{nodeLookup:_,parentLookup:k,nodeOrigin:C,elevateNodesOnSelect:N,fitViewQueued:L,zIndexMode:I,nodesSelectionActive:D}=v(),{nodesInitialized:T,hasSelectedNodes:O}=c0(S,_,k,{nodeOrigin:C,nodeExtent:h,elevateNodesOnSelect:N,checkEquality:!0,zIndexMode:I}),M=D&&O;L&&T?(w(),y({nodes:S,nodesInitialized:T,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:M})):y({nodes:S,nodesInitialized:T,nodesSelectionActive:M})},setEdges:S=>{const{connectionLookup:_,edgeLookup:k}=v();AT(_,k,S),y({edges:S})},setDefaultNodesAndEdges:(S,_)=>{if(S){const{setNodes:k}=v();k(S),y({hasDefaultNodes:!0})}if(_){const{setEdges:k}=v();k(_),y({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:_,nodeLookup:k,parentLookup:C,domNode:N,nodeOrigin:L,nodeExtent:I,debug:D,fitViewQueued:T,zIndexMode:O}=v(),{changes:M,updatedInternals:A}=WY(S,k,C,N,L,I,O);A&&(VY(k,C,{nodeOrigin:L,nodeExtent:I,zIndexMode:O}),T?(w(),y({fitViewQueued:!1,fitViewOptions:void 0})):y({}),M?.length>0&&(D&&console.log("React Flow: trigger node changes",M),_?.(M)))},updateNodePositions:(S,_=!1)=>{const k=[];let C=[];const{nodeLookup:N,triggerNodeChanges:L,connection:I,updateConnection:D,onNodesChangeMiddlewareMap:T}=v();for(const[O,M]of S){const A=N.get(O),$=!!(A?.expandParent&&A?.parentId&&M?.position),Y={id:O,type:"position",position:$?{x:Math.max(0,M.position.x),y:Math.max(0,M.position.y)}:M.position,dragging:_};if(A&&I.inProgress&&I.fromNode.id===A.id){const B=Ko(A,I.fromHandle,lt.Left,!0);D({...I,from:B})}$&&A.parentId&&k.push({id:O,parentId:A.parentId,rect:{...M.internals.positionAbsolute,width:M.measured.width??0,height:M.measured.height??0}}),C.push(Y)}if(k.length>0){const{parentLookup:O,nodeOrigin:M}=v(),A=Nv(k,N,O,M);C.push(...A)}for(const O of T.values())C=O(C);L(C)},triggerNodeChanges:S=>{const{onNodesChange:_,setNodes:k,nodes:C,hasDefaultNodes:N,debug:L}=v();if(S?.length){if(N){const I=WT(S,C);k(I)}L&&console.log("React Flow: trigger node changes",S),_?.(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:_,setEdges:k,edges:C,hasDefaultEdges:N,debug:L}=v();if(S?.length){if(N){const I=KX(S,C);k(I)}L&&console.log("React Flow: trigger edge changes",S),_?.(S)}},addSelectedNodes:S=>{const{multiSelectionActive:_,edgeLookup:k,nodeLookup:C,triggerNodeChanges:N,triggerEdgeChanges:L}=v();if(_){const I=S.map(D=>zo(D,!0));N(I);return}N(Wa(C,new Set([...S]),!0)),L(Wa(k))},addSelectedEdges:S=>{const{multiSelectionActive:_,edgeLookup:k,nodeLookup:C,triggerNodeChanges:N,triggerEdgeChanges:L}=v();if(_){const I=S.map(D=>zo(D,!0));L(I);return}L(Wa(k,new Set([...S]))),N(Wa(C,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:_}={})=>{const{edges:k,nodes:C,nodeLookup:N,triggerNodeChanges:L,triggerEdgeChanges:I}=v(),D=S||C,T=_||k,O=[];for(const A of D){if(!A.selected)continue;const $=N.get(A.id);$&&($.selected=!1),O.push(zo(A.id,!1))}const M=[];for(const A of T)A.selected&&M.push(zo(A.id,!1));L(O),I(M)},setMinZoom:S=>{const{panZoom:_,maxZoom:k}=v();_?.setScaleExtent([S,k]),y({minZoom:S})},setMaxZoom:S=>{const{panZoom:_,minZoom:k}=v();_?.setScaleExtent([k,S]),y({maxZoom:S})},setTranslateExtent:S=>{v().panZoom?.setTranslateExtent(S),y({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:_,triggerNodeChanges:k,triggerEdgeChanges:C,elementsSelectable:N}=v();if(!N)return;const L=_.reduce((D,T)=>T.selected?[...D,zo(T.id,!1)]:D,[]),I=S.reduce((D,T)=>T.selected?[...D,zo(T.id,!1)]:D,[]);k(L),C(I)},setNodeExtent:S=>{const{nodes:_,nodeLookup:k,parentLookup:C,nodeOrigin:N,elevateNodesOnSelect:L,nodeExtent:I,zIndexMode:D}=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]||(c0(_,k,C,{nodeOrigin:N,nodeExtent:S,elevateNodesOnSelect:L,checkEquality:!1,zIndexMode:D}),y({nodeExtent:S}))},panBy:S=>{const{transform:_,width:k,height:C,panZoom:N,translateExtent:L}=v();return YY({delta:S,panZoom:N,transform:_,translateExtent:L,width:k,height:C})},setCenter:async(S,_,k)=>{const{width:C,height:N,maxZoom:L,panZoom:I}=v();if(!I)return Promise.resolve(!1);const D=typeof k?.zoom<"u"?k.zoom:L;return await I.setViewport({x:C/2-S*D,y:N/2-_*D,zoom:D},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{y({connection:{...hT}})},updateConnection:S=>{y({connection:S})},reset:()=>y({...y2()})}},Object.is);function yR({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:o,initialMinZoom:a,initialMaxZoom:u,initialFitViewOptions:d,fitView:m,nodeOrigin:p,nodeExtent:h,zIndexMode:g,children:y}){const[v]=E.useState(()=>dZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:o,fitView:m,minZoom:a,maxZoom:u,fitViewOptions:d,nodeOrigin:p,nodeExtent:h,zIndexMode:g}));return c.jsx(TX,{value:v,children:c.jsx(JX,{children:y})})}function fZ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:o,height:a,fitView:u,fitViewOptions:d,minZoom:m,maxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y}){return E.useContext(Fm)?c.jsx(c.Fragment,{children:e}):c.jsx(yR,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:o,initialHeight:a,fitView:u,initialFitViewOptions:d,initialMinZoom:m,initialMaxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y,children:e})}const mZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function hZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:o,edgeTypes:a,onNodeClick:u,onEdgeClick:d,onInit:m,onMove:p,onMoveStart:h,onMoveEnd:g,onConnect:y,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:_,onNodeMouseEnter:k,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:L,onNodeDoubleClick:I,onNodeDragStart:D,onNodeDrag:T,onNodeDragStop:O,onNodesDelete:M,onEdgesDelete:A,onDelete:$,onSelectionChange:Y,onSelectionDragStart:B,onSelectionDrag:G,onSelectionDragStop:H,onSelectionContextMenu:V,onSelectionStart:W,onSelectionEnd:Z,onBeforeDelete:q,connectionMode:U,connectionLineType:ee=no.Bezier,connectionLineStyle:P,connectionLineComponent:K,connectionLineContainerStyle:J,deleteKeyCode:te="Backspace",selectionKeyCode:re="Shift",selectionOnDrag:oe=!1,selectionMode:fe=hu.Full,panActivationKeyCode:se="Space",multiSelectionKeyCode:je=gu()?"Meta":"Control",zoomActivationKeyCode:Se=gu()?"Meta":"Control",snapToGrid:Ce,snapGrid:He,onlyRenderVisibleElements:We=!1,selectNodesOnDrag:Ye,nodesDraggable:gt,autoPanOnNodeFocus:Ut,nodesConnectable:bt,nodesFocusable:xt,nodeOrigin:me=GT,edgesFocusable:Oe,edgesReconnectable:it,elementsSelectable:et=!0,defaultViewport:nt=VX,minZoom:de=.5,maxZoom:ve=2,translateExtent:Ae=mu,preventScrolling:Ue=!0,nodeExtent:Fe,defaultMarkerColor:vt="#b1b1b7",zoomOnScroll:Rt=!0,zoomOnPinch:ke=!0,panOnScroll:Re=!1,panOnScrollSpeed:Ke=.5,panOnScrollMode:Ge=Ho.Free,zoomOnDoubleClick:tt=!0,panOnDrag:Qe=!0,onPaneClick:xn,onPaneMouseEnter:Qt,onPaneMouseMove:kn,onPaneMouseLeave:Nn,onPaneScroll:sn,onPaneContextMenu:tn,paneClickDistance:Nt=1,nodeClickDistance:kt=0,children:qe,onReconnect:ze,onReconnectStart:pn,onReconnectEnd:In,onEdgeContextMenu:$t,onEdgeDoubleClick:Gt,onEdgeMouseEnter:Jt,onEdgeMouseMove:tr,onEdgeMouseLeave:Mn,reconnectRadius:Ee=10,onNodesChange:Te,onEdgesChange:Xe,noDragClassName:$e="nodrag",noWheelClassName:It="nowheel",noPanClassName:yt="nopan",fitView:Kn,fitViewOptions:Me,connectOnClick:Mt,attributionPosition:Tn,proOptions:or,defaultEdgeOptions:Rn,elevateNodesOnSelect:Ve=!0,elevateEdgesOnSelect:ar=!1,disableKeyboardA11y:Zn=!1,autoPanOnConnect:An,autoPanOnNodeDrag:Tt,autoPanSpeed:lr,connectionRadius:Sn,isValidConnection:dt,onError:st,style:cr,id:Hn,nodeDragThreshold:nn,connectionDragThreshold:fn,viewport:yn,onViewportChange:Dn,width:Sr,height:ue,colorMode:be="light",debug:Be,onScroll:mt,ariaLabelConfig:vn,zIndexMode:ln="basic",...Qn},St){const ei=Hn||"1",Es=WX(be),fo=E.useCallback(pi=>{pi.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),mt?.(pi)},[mt]);return c.jsx("div",{"data-testid":"rf__wrapper",...Qn,onScroll:fo,style:{...cr,...mZ},ref:St,className:Xn(["react-flow",i,Es]),id:Hn,role:"application",children:c.jsxs(fZ,{nodes:e,edges:t,width:Sr,height:ue,fitView:Kn,fitViewOptions:Me,minZoom:de,maxZoom:ve,nodeOrigin:me,nodeExtent:Fe,zIndexMode:ln,children:[c.jsx(qX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:v,onConnectEnd:w,onClickConnectStart:S,onClickConnectEnd:_,nodesDraggable:gt,autoPanOnNodeFocus:Ut,nodesConnectable:bt,nodesFocusable:xt,edgesFocusable:Oe,edgesReconnectable:it,elementsSelectable:et,elevateNodesOnSelect:Ve,elevateEdgesOnSelect:ar,minZoom:de,maxZoom:ve,nodeExtent:Fe,onNodesChange:Te,onEdgesChange:Xe,snapToGrid:Ce,snapGrid:He,connectionMode:U,translateExtent:Ae,connectOnClick:Mt,defaultEdgeOptions:Rn,fitView:Kn,fitViewOptions:Me,onNodesDelete:M,onEdgesDelete:A,onDelete:$,onNodeDragStart:D,onNodeDrag:T,onNodeDragStop:O,onSelectionDrag:G,onSelectionDragStart:B,onSelectionDragStop:H,onMove:p,onMoveStart:h,onMoveEnd:g,noPanClassName:yt,nodeOrigin:me,rfId:ei,autoPanOnConnect:An,autoPanOnNodeDrag:Tt,autoPanSpeed:lr,onError:st,connectionRadius:Sn,isValidConnection:dt,selectNodesOnDrag:Ye,nodeDragThreshold:nn,connectionDragThreshold:fn,onBeforeDelete:q,debug:Be,ariaLabelConfig:vn,zIndexMode:ln}),c.jsx(uZ,{onInit:m,onNodeClick:u,onEdgeClick:d,onNodeMouseEnter:k,onNodeMouseMove:C,onNodeMouseLeave:N,onNodeContextMenu:L,onNodeDoubleClick:I,nodeTypes:o,edgeTypes:a,connectionLineType:ee,connectionLineStyle:P,connectionLineComponent:K,connectionLineContainerStyle:J,selectionKeyCode:re,selectionOnDrag:oe,selectionMode:fe,deleteKeyCode:te,multiSelectionKeyCode:je,panActivationKeyCode:se,zoomActivationKeyCode:Se,onlyRenderVisibleElements:We,defaultViewport:nt,translateExtent:Ae,minZoom:de,maxZoom:ve,preventScrolling:Ue,zoomOnScroll:Rt,zoomOnPinch:ke,zoomOnDoubleClick:tt,panOnScroll:Re,panOnScrollSpeed:Ke,panOnScrollMode:Ge,panOnDrag:Qe,onPaneClick:xn,onPaneMouseEnter:Qt,onPaneMouseMove:kn,onPaneMouseLeave:Nn,onPaneScroll:sn,onPaneContextMenu:tn,paneClickDistance:Nt,nodeClickDistance:kt,onSelectionContextMenu:V,onSelectionStart:W,onSelectionEnd:Z,onReconnect:ze,onReconnectStart:pn,onReconnectEnd:In,onEdgeContextMenu:$t,onEdgeDoubleClick:Gt,onEdgeMouseEnter:Jt,onEdgeMouseMove:tr,onEdgeMouseLeave:Mn,reconnectRadius:Ee,defaultMarkerColor:vt,noDragClassName:$e,noWheelClassName:It,noPanClassName:yt,rfId:ei,disableKeyboardA11y:Zn,nodeExtent:Fe,viewport:yn,onViewportChange:Dn}),c.jsx(FX,{onSelectionChange:Y}),qe,c.jsx(zX,{proOptions:or,position:Tn}),c.jsx(LX,{rfId:ei,disableKeyboardA11y:Zn})]})})}var pZ=YT(hZ);function gZ({dimensions:e,lineWidth:t,variant:n,className:r}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Xn(["react-flow__background-pattern",n,r])})}function xZ({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:Xn(["react-flow__background-pattern","dots",t])})}var oo;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(oo||(oo={}));const yZ={[oo.Dots]:1,[oo.Lines]:1,[oo.Cross]:6},vZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function vR({id:e,variant:t=oo.Dots,gap:n=20,size:r,lineWidth:i=1,offset:o=0,color:a,bgColor:u,style:d,className:m,patternClassName:p}){const h=E.useRef(null),{transform:g,patternId:y}=Vt(vZ,jn),v=r||yZ[t],w=t===oo.Dots,S=t===oo.Cross,_=Array.isArray(n)?n:[n,n],k=[_[0]*g[2]||1,_[1]*g[2]||1],C=v*g[2],N=Array.isArray(o)?o:[o,o],L=S?[C,C]:k,I=[N[0]*g[2]||1+L[0]/2,N[1]*g[2]||1+L[1]/2],D=`${y}${e||""}`;return c.jsxs("svg",{className:Xn(["react-flow__background",m]),style:{...d,...Um,"--xy-background-color-props":u,"--xy-background-pattern-color-props":a},ref:h,"data-testid":"rf__background",children:[c.jsx("pattern",{id:D,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:w?c.jsx(xZ,{radius:C/2,className:p}):c.jsx(gZ,{dimensions:L,lineWidth:i,variant:t,className:p})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}vR.displayName="Background";const bZ=E.memo(vR);function _Z(){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 kZ(){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 SZ(){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 wZ(){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 CZ(){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 uf({children:e,className:t,...n}){return c.jsx("button",{type:"button",className:Xn(["react-flow__controls-button",t]),...n,children:e})}const jZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function bR({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:o,onZoomOut:a,onFitView:u,onInteractiveChange:d,className:m,children:p,position:h="bottom-left",orientation:g="vertical","aria-label":y}){const v=En(),{isInteractive:w,minZoomReached:S,maxZoomReached:_,ariaLabelConfig:k}=Vt(jZ,jn),{zoomIn:C,zoomOut:N,fitView:L}=Iv(),I=()=>{C(),o?.()},D=()=>{N(),a?.()},T=()=>{L(i),u?.()},O=()=>{v.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),d?.(!w)},M=g==="horizontal"?"horizontal":"vertical";return c.jsxs(Vm,{className:Xn(["react-flow__controls",M,m]),position:h,style:e,"data-testid":"rf__controls","aria-label":y??k["controls.ariaLabel"],children:[t&&c.jsxs(c.Fragment,{children:[c.jsx(uf,{onClick:I,className:"react-flow__controls-zoomin",title:k["controls.zoomIn.ariaLabel"],"aria-label":k["controls.zoomIn.ariaLabel"],disabled:_,children:c.jsx(_Z,{})}),c.jsx(uf,{onClick:D,className:"react-flow__controls-zoomout",title:k["controls.zoomOut.ariaLabel"],"aria-label":k["controls.zoomOut.ariaLabel"],disabled:S,children:c.jsx(kZ,{})})]}),n&&c.jsx(uf,{className:"react-flow__controls-fitview",onClick:T,title:k["controls.fitView.ariaLabel"],"aria-label":k["controls.fitView.ariaLabel"],children:c.jsx(SZ,{})}),r&&c.jsx(uf,{className:"react-flow__controls-interactive",onClick:O,title:k["controls.interactive.ariaLabel"],"aria-label":k["controls.interactive.ariaLabel"],children:w?c.jsx(CZ,{}):c.jsx(wZ,{})}),p]})}bR.displayName="Controls";const EZ=E.memo(bR);function NZ({id:e,x:t,y:n,width:r,height:i,style:o,color:a,strokeColor:u,strokeWidth:d,className:m,borderRadius:p,shapeRendering:h,selected:g,onClick:y}){const{background:v,backgroundColor:w}=o||{},S=a||v||w;return c.jsx("rect",{className:Xn(["react-flow__minimap-node",{selected:g},m]),x:t,y:n,rx:p,ry:p,width:r,height:i,style:{fill:S,stroke:u,strokeWidth:d},shapeRendering:h,onClick:y?_=>y(_,e):void 0})}const IZ=E.memo(NZ),TZ=e=>e.nodes.map(t=>t.id),xx=e=>e instanceof Function?e:()=>e;function RZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:o=IZ,onClick:a}){const u=Vt(TZ,jn),d=xx(t),m=xx(e),p=xx(n),h=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:u.map(g=>c.jsx(MZ,{id:g,nodeColorFunc:d,nodeStrokeColorFunc:m,nodeClassNameFunc:p,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:o,onClick:a,shapeRendering:h},g))})}function AZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:o,shapeRendering:a,NodeComponent:u,onClick:d}){const{node:m,x:p,y:h,width:g,height:y}=Vt(v=>{const w=v.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const S=w.internals.userNode,{x:_,y:k}=w.internals.positionAbsolute,{width:C,height:N}=js(S);return{node:S,x:_,y:k,width:C,height:N}},jn);return!m||m.hidden||!_T(m)?null:c.jsx(u,{x:p,y:h,width:g,height:y,style:m.style,selected:!!m.selected,className:r(m),color:t(m),borderRadius:i,strokeColor:n(m),strokeWidth:o,shapeRendering:a,onClick:d,id:m.id})}const MZ=E.memo(AZ);var DZ=E.memo(RZ);const OZ=200,LZ=150,zZ=e=>!e.hidden,PZ=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?bT(Eu(e.nodeLookup,{filter:zZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},BZ="react-flow__minimap-desc";function _R({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:u,bgColor:d,maskColor:m,maskStrokeColor:p,maskStrokeWidth:h,position:g="bottom-right",onClick:y,onNodeClick:v,pannable:w=!1,zoomable:S=!1,ariaLabel:_,inversePan:k,zoomStep:C=1,offsetScale:N=5}){const L=En(),I=E.useRef(null),{boundingRect:D,viewBB:T,rfId:O,panZoom:M,translateExtent:A,flowWidth:$,flowHeight:Y,ariaLabelConfig:B}=Vt(PZ,jn),G=e?.width??OZ,H=e?.height??LZ,V=D.width/G,W=D.height/H,Z=Math.max(V,W),q=Z*G,U=Z*H,ee=N*Z,P=D.x-(q-D.width)/2-ee,K=D.y-(U-D.height)/2-ee,J=q+ee*2,te=U+ee*2,re=`${BZ}-${O}`,oe=E.useRef(0),fe=E.useRef();oe.current=Z,E.useEffect(()=>{if(I.current&&M)return fe.current=rX({domNode:I.current,panZoom:M,getTransform:()=>L.getState().transform,getViewScale:()=>oe.current}),()=>{fe.current?.destroy()}},[M]),E.useEffect(()=>{fe.current?.update({translateExtent:A,width:$,height:Y,inversePan:k,pannable:w,zoomStep:C,zoomable:S})},[w,S,k,C,A,$,Y]);const se=y?Ce=>{const[He,We]=fe.current?.pointer(Ce)||[0,0];y(Ce,{x:He,y:We})}:void 0,je=v?E.useCallback((Ce,He)=>{const We=L.getState().nodeLookup.get(He).internals.userNode;v(Ce,We)},[]):void 0,Se=_??B["minimap.ariaLabel"];return c.jsx(Vm,{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 p=="string"?p:void 0,"--xy-minimap-mask-stroke-width-props":typeof h=="number"?h*Z:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:Xn(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:G,height:H,viewBox:`${P} ${K} ${J} ${te}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":re,ref:I,onClick:se,children:[Se&&c.jsx("title",{id:re,children:Se}),c.jsx(DZ,{onClick:je,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:i,nodeStrokeWidth:a,nodeComponent:u}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${P-ee},${K-ee}h${J+ee*2}v${te+ee*2}h${-J-ee*2}z - M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}_R.displayName="MiniMap";const $Z=E.memo(_R),HZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,FZ={[gl.Line]:"right",[gl.Handle]:"bottom-right"};function VZ({nodeId:e,position:t,variant:n=gl.Handle,className:r,style:i=void 0,children:o,color:a,minWidth:u=10,minHeight:d=10,maxWidth:m=Number.MAX_VALUE,maxHeight:p=Number.MAX_VALUE,keepAspectRatio:h=!1,resizeDirection:g,autoScale:y=!0,shouldResize:v,onResizeStart:w,onResize:S,onResizeEnd:_}){const k=QT(),C=typeof e=="string"?e:k,N=En(),L=E.useRef(null),I=n===gl.Handle,D=Vt(E.useCallback(HZ(I&&y),[I,y]),jn),T=E.useRef(null),O=t??FZ[n];E.useEffect(()=>{if(!(!L.current||!C))return T.current||(T.current=xX({domNode:L.current,nodeId:C,getStoreItems:()=>{const{nodeLookup:A,transform:$,snapGrid:Y,snapToGrid:B,nodeOrigin:G,domNode:H}=N.getState();return{nodeLookup:A,transform:$,snapGrid:Y,snapToGrid:B,nodeOrigin:G,paneDomNode:H}},onChange:(A,$)=>{const{triggerNodeChanges:Y,nodeLookup:B,parentLookup:G,nodeOrigin:H}=N.getState(),V=[],W={x:A.x,y:A.y},Z=B.get(C);if(Z&&Z.expandParent&&Z.parentId){const q=Z.origin??H,U=A.width??Z.measured.width??0,ee=A.height??Z.measured.height??0,P={id:Z.id,parentId:Z.parentId,rect:{width:U,height:ee,...kT({x:A.x??Z.position.x,y:A.y??Z.position.y},{width:U,height:ee},Z.parentId,B,q)}},K=Nv([P],B,G,H);V.push(...K),W.x=A.x?Math.max(q[0]*U,A.x):void 0,W.y=A.y?Math.max(q[1]*ee,A.y):void 0}if(W.x!==void 0&&W.y!==void 0){const q={id:C,type:"position",position:{...W}};V.push(q)}if(A.width!==void 0&&A.height!==void 0){const U={id:C,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:A.width,height:A.height}};V.push(U)}for(const q of $){const U={...q,type:"position"};V.push(U)}Y(V)},onEnd:({width:A,height:$})=>{const Y={id:C,type:"dimensions",resizing:!1,dimensions:{width:A,height:$}};N.getState().triggerNodeChanges([Y])}})),T.current.update({controlPosition:O,boundaries:{minWidth:u,minHeight:d,maxWidth:m,maxHeight:p},keepAspectRatio:h,resizeDirection:g,onResizeStart:w,onResize:S,onResizeEnd:_,shouldResize:v}),()=>{T.current?.destroy()}},[O,u,d,m,p,h,w,S,_,v]);const M=O.split("-");return c.jsx("div",{className:Xn(["react-flow__resize-control","nodrag",...M,n,r]),ref:L,style:{...i,scale:D,...a&&{[I?"backgroundColor":"borderColor"]:a}},children:o})}E.memo(VZ);const UZ=E.memo(function({data:t}){const n=["oc-canvas-node",t.isOwner&&"is-owner",t.isSelected&&"is-selected",t.isDropTarget&&"is-drop-target"].filter(Boolean).join(" "),r=Su(t.icon);return c.jsxs("div",{className:n,children:[c.jsx(xl,{type:"target",position:lt.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("${r}")`,maskImage:`url("${r}")`},"aria-hidden":!0})}),c.jsxs("div",{className:"oc-canvas-node-text",children:[c.jsx("span",{className:"oc-canvas-node-name",children:t.name}),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(xl,{type:"source",position:lt.Bottom,className:"oc-canvas-handle"})]})});var yx,v2;function Rv(){if(v2)return yx;v2=1;var e="\0",t="\0",n="";class r{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(p){p&&(this._isDirected=Object.hasOwn(p,"directed")?p.directed:!0,this._isMultigraph=Object.hasOwn(p,"multigraph")?p.multigraph:!1,this._isCompound=Object.hasOwn(p,"compound")?p.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(p){return this._label=p,this}graph(){return this._label}setDefaultNodeLabel(p){return this._defaultNodeLabelFn=p,typeof p!="function"&&(this._defaultNodeLabelFn=()=>p),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var p=this;return this.nodes().filter(h=>Object.keys(p._in[h]).length===0)}sinks(){var p=this;return this.nodes().filter(h=>Object.keys(p._out[h]).length===0)}setNodes(p,h){var g=arguments,y=this;return p.forEach(function(v){g.length>1?y.setNode(v,h):y.setNode(v)}),this}setNode(p,h){return Object.hasOwn(this._nodes,p)?(arguments.length>1&&(this._nodes[p]=h),this):(this._nodes[p]=arguments.length>1?h:this._defaultNodeLabelFn(p),this._isCompound&&(this._parent[p]=t,this._children[p]={},this._children[t][p]=!0),this._in[p]={},this._preds[p]={},this._out[p]={},this._sucs[p]={},++this._nodeCount,this)}node(p){return this._nodes[p]}hasNode(p){return Object.hasOwn(this._nodes,p)}removeNode(p){var h=this;if(Object.hasOwn(this._nodes,p)){var g=y=>h.removeEdge(h._edgeObjs[y]);delete this._nodes[p],this._isCompound&&(this._removeFromParentsChildList(p),delete this._parent[p],this.children(p).forEach(function(y){h.setParent(y)}),delete this._children[p]),Object.keys(this._in[p]).forEach(g),delete this._in[p],delete this._preds[p],Object.keys(this._out[p]).forEach(g),delete this._out[p],delete this._sucs[p],--this._nodeCount}return this}setParent(p,h){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(h===void 0)h=t;else{h+="";for(var g=h;g!==void 0;g=this.parent(g))if(g===p)throw new Error("Setting "+h+" as parent of "+p+" would create a cycle");this.setNode(h)}return this.setNode(p),this._removeFromParentsChildList(p),this._parent[p]=h,this._children[h][p]=!0,this}_removeFromParentsChildList(p){delete this._children[this._parent[p]][p]}parent(p){if(this._isCompound){var h=this._parent[p];if(h!==t)return h}}children(p=t){if(this._isCompound){var h=this._children[p];if(h)return Object.keys(h)}else{if(p===t)return this.nodes();if(this.hasNode(p))return[]}}predecessors(p){var h=this._preds[p];if(h)return Object.keys(h)}successors(p){var h=this._sucs[p];if(h)return Object.keys(h)}neighbors(p){var h=this.predecessors(p);if(h){const y=new Set(h);for(var g of this.successors(p))y.add(g);return Array.from(y.values())}}isLeaf(p){var h;return this.isDirected()?h=this.successors(p):h=this.neighbors(p),h.length===0}filterNodes(p){var h=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});h.setGraph(this.graph());var g=this;Object.entries(this._nodes).forEach(function([w,S]){p(w)&&h.setNode(w,S)}),Object.values(this._edgeObjs).forEach(function(w){h.hasNode(w.v)&&h.hasNode(w.w)&&h.setEdge(w,g.edge(w))});var y={};function v(w){var S=g.parent(w);return S===void 0||h.hasNode(S)?(y[w]=S,S):S in y?y[S]:v(S)}return this._isCompound&&h.nodes().forEach(w=>h.setParent(w,v(w))),h}setDefaultEdgeLabel(p){return this._defaultEdgeLabelFn=p,typeof p!="function"&&(this._defaultEdgeLabelFn=()=>p),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(p,h){var g=this,y=arguments;return p.reduce(function(v,w){return y.length>1?g.setEdge(v,w,h):g.setEdge(v,w),w}),this}setEdge(){var p,h,g,y,v=!1,w=arguments[0];typeof w=="object"&&w!==null&&"v"in w?(p=w.v,h=w.w,g=w.name,arguments.length===2&&(y=arguments[1],v=!0)):(p=w,h=arguments[1],g=arguments[3],arguments.length>2&&(y=arguments[2],v=!0)),p=""+p,h=""+h,g!==void 0&&(g=""+g);var S=a(this._isDirected,p,h,g);if(Object.hasOwn(this._edgeLabels,S))return v&&(this._edgeLabels[S]=y),this;if(g!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(p),this.setNode(h),this._edgeLabels[S]=v?y:this._defaultEdgeLabelFn(p,h,g);var _=u(this._isDirected,p,h,g);return p=_.v,h=_.w,Object.freeze(_),this._edgeObjs[S]=_,i(this._preds[h],p),i(this._sucs[p],h),this._in[h][S]=_,this._out[p][S]=_,this._edgeCount++,this}edge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g);return this._edgeLabels[y]}edgeAsObj(){const p=this.edge(...arguments);return typeof p!="object"?{label:p}:p}hasEdge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g);return Object.hasOwn(this._edgeLabels,y)}removeEdge(p,h,g){var y=arguments.length===1?d(this._isDirected,arguments[0]):a(this._isDirected,p,h,g),v=this._edgeObjs[y];return v&&(p=v.v,h=v.w,delete this._edgeLabels[y],delete this._edgeObjs[y],o(this._preds[h],p),o(this._sucs[p],h),delete this._in[h][y],delete this._out[p][y],this._edgeCount--),this}inEdges(p,h){var g=this._in[p];if(g){var y=Object.values(g);return h?y.filter(v=>v.v===h):y}}outEdges(p,h){var g=this._out[p];if(g){var y=Object.values(g);return h?y.filter(v=>v.w===h):y}}nodeEdges(p,h){var g=this.inEdges(p,h);if(g)return g.concat(this.outEdges(p,h))}}function i(m,p){m[p]?m[p]++:m[p]=1}function o(m,p){--m[p]||delete m[p]}function a(m,p,h,g){var y=""+p,v=""+h;if(!m&&y>v){var w=y;y=v,v=w}return y+n+v+n+(g===void 0?e:g)}function u(m,p,h,g){var y=""+p,v=""+h;if(!m&&y>v){var w=y;y=v,v=w}var S={v:y,w:v};return g&&(S.name=g),S}function d(m,p){return a(m,p.v,p.w,p.name)}return yx=r,yx}var vx,b2;function GZ(){return b2||(b2=1,vx="2.2.4"),vx}var bx,_2;function qZ(){return _2||(_2=1,bx={Graph:Rv(),version:GZ()}),bx}var _x,k2;function WZ(){if(k2)return _x;k2=1;var e=Rv();_x={write:t,read:i};function t(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:n(o),edges:r(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 r(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 i(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 _x}var kx,S2;function YZ(){if(S2)return kx;S2=1,kx=e;function e(t){var n={},r=[],i;function o(a){Object.hasOwn(n,a)||(n[a]=!0,i.push(a),t.successors(a).forEach(o),t.predecessors(a).forEach(o))}return t.nodes().forEach(function(a){i=[],o(a),i.length&&r.push(i)}),r}return kx}var Sx,w2;function kR(){if(w2)return Sx;w2=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 r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var o=this._arr,a=o.length;return i[n]=a,o.push({key:n,priority:r}),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,r){var i=this._keyIndices[n];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)}_heapify(n){var r=this._arr,i=2*n,o=i+1,a=n;i>1,!(r[o].priority1;function n(i,o,a,u){return r(i,String(o),a||t,u||function(d){return i.outEdges(d)})}function r(i,o,a,u){var d={},m=new e,p,h,g=function(y){var v=y.v!==p?y.v:y.w,w=d[v],S=a(y),_=h.distance+S;if(S<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+y+" Weight: "+S);_0&&(p=m.removeMin(),h=d[p],h.distance!==Number.POSITIVE_INFINITY);)u(p).forEach(g);return d}return wx}var Cx,j2;function XZ(){if(j2)return Cx;j2=1;var e=SR();Cx=t;function t(n,r,i){return n.nodes().reduce(function(o,a){return o[a]=e(n,a,r,i),o},{})}return Cx}var jx,E2;function wR(){if(E2)return jx;E2=1,jx=e;function e(t){var n=0,r=[],i={},o=[];function a(u){var d=i[u]={onStack:!0,lowlink:n,index:n++};if(r.push(u),t.successors(u).forEach(function(h){Object.hasOwn(i,h)?i[h].onStack&&(d.lowlink=Math.min(d.lowlink,i[h].index)):(a(h),d.lowlink=Math.min(d.lowlink,i[h].lowlink))}),d.lowlink===d.index){var m=[],p;do p=r.pop(),i[p].onStack=!1,m.push(p);while(u!==p);o.push(m)}}return t.nodes().forEach(function(u){Object.hasOwn(i,u)||a(u)}),o}return jx}var Ex,N2;function KZ(){if(N2)return Ex;N2=1;var e=wR();Ex=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Ex}var Nx,I2;function ZZ(){if(I2)return Nx;I2=1,Nx=t;var e=()=>1;function t(r,i,o){return n(r,i||e,o||function(a){return r.outEdges(a)})}function n(r,i,o){var a={},u=r.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 p=m.v===d?m.w:m.v,h=i(m);a[d][p]={distance:h,predecessor:d}})}),u.forEach(function(d){var m=a[d];u.forEach(function(p){var h=a[p];u.forEach(function(g){var y=h[d],v=m[g],w=h[g],S=y.distance+v.distance;Si.successors(h):h=>i.neighbors(h),d=a==="post"?t:n,m=[],p={};return o.forEach(h=>{if(!i.hasNode(h))throw new Error("Graph does not have node: "+h);d(h,u,p,m)}),m}function t(i,o,a,u){for(var d=[[i,!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]),r(o(m[0]),p=>d.push([p,!1])))}}function n(i,o,a,u){for(var d=[i];d.length>0;){var m=d.pop();Object.hasOwn(a,m)||(a[m]=!0,u.push(m),r(o(m),p=>d.push(p)))}}function r(i,o){for(var a=i.length;a--;)o(i[a],a,i);return i}return Rx}var Ax,M2;function JZ(){if(M2)return Ax;M2=1;var e=jR();Ax=t;function t(n,r){return e(n,r,"post")}return Ax}var Mx,D2;function eQ(){if(D2)return Mx;D2=1;var e=jR();Mx=t;function t(n,r){return e(n,r,"pre")}return Mx}var Dx,O2;function tQ(){if(O2)return Dx;O2=1;var e=Rv(),t=kR();Dx=n;function n(r,i){var o=new e,a={},u=new t,d;function m(h){var g=h.v===d?h.w:h.v,y=u.priority(g);if(y!==void 0){var v=i(h);v0;){if(d=u.removeMin(),Object.hasOwn(a,d))o.setEdge(d,a[d]);else{if(p)throw new Error("Input graph is not connected: "+r);p=!0}r.nodeEdges(d).forEach(m)}return o}return Dx}var Ox,L2;function nQ(){return L2||(L2=1,Ox={components:YZ(),dijkstra:SR(),dijkstraAll:XZ(),findCycles:KZ(),floydWarshall:ZZ(),isAcyclic:QZ(),postorder:JZ(),preorder:eQ(),prim:tQ(),tarjan:wR(),topsort:CR()}),Ox}var Lx,z2;function Ti(){if(z2)return Lx;z2=1;var e=qZ();return Lx={Graph:e.Graph,json:WZ(),alg:nQ(),version:e.version},Lx}var zx,P2;function rQ(){if(P2)return zx;P2=1;class e{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,o=i._prev;if(o!==i)return t(o),o}enqueue(i){let o=this._sentinel;i._prev&&i._next&&t(i),i._next=o._next,o._next._prev=i,o._next=i,i._prev=o}toString(){let i=[],o=this._sentinel,a=o._prev;for(;a!==o;)i.push(JSON.stringify(a,n)),a=a._prev;return"["+i.join(", ")+"]"}}function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,i){if(r!=="_next"&&r!=="_prev")return i}return zx=e,zx}var Px,B2;function iQ(){if(B2)return Px;B2=1;let e=Ti().Graph,t=rQ();Px=r;let n=()=>1;function r(m,p){if(m.nodeCount()<=1)return[];let h=a(m,p||n);return i(h.graph,h.buckets,h.zeroIdx).flatMap(y=>m.outEdges(y.v,y.w))}function i(m,p,h){let g=[],y=p[p.length-1],v=p[0],w;for(;m.nodeCount();){for(;w=v.dequeue();)o(m,p,h,w);for(;w=y.dequeue();)o(m,p,h,w);if(m.nodeCount()){for(let S=p.length-2;S>0;--S)if(w=p[S].dequeue(),w){g=g.concat(o(m,p,h,w,!0));break}}}return g}function o(m,p,h,g,y){let v=y?[]:void 0;return m.inEdges(g.v).forEach(w=>{let S=m.edge(w),_=m.node(w.v);y&&v.push({v:w.v,w:w.w}),_.out-=S,u(p,h,_)}),m.outEdges(g.v).forEach(w=>{let S=m.edge(w),_=w.w,k=m.node(_);k.in-=S,u(p,h,k)}),m.removeNode(g.v),v}function a(m,p){let h=new e,g=0,y=0;m.nodes().forEach(S=>{h.setNode(S,{v:S,in:0,out:0})}),m.edges().forEach(S=>{let _=h.edge(S.v,S.w)||0,k=p(S),C=_+k;h.setEdge(S.v,S.w,C),y=Math.max(y,h.node(S.v).out+=k),g=Math.max(g,h.node(S.w).in+=k)});let v=d(y+g+3).map(()=>new t),w=g+1;return h.nodes().forEach(S=>{u(v,w,h.node(S))}),{graph:h,buckets:v,zeroIdx:w}}function u(m,p,h){h.out?h.in?m[h.out-h.in+p].enqueue(h):m[m.length-1].enqueue(h):m[0].enqueue(h)}function d(m){const p=[];for(let h=0;hO.setNode(M,T.node(M))),T.edges().forEach(M=>{let A=O.edge(M.v,M.w)||{weight:0,minlen:1},$=T.edge(M);O.setEdge(M.v,M.w,{weight:A.weight+$.weight,minlen:Math.max(A.minlen,$.minlen)})}),O}function r(T){let O=new e({multigraph:T.isMultigraph()}).setGraph(T.graph());return T.nodes().forEach(M=>{T.children(M).length||O.setNode(M,T.node(M))}),T.edges().forEach(M=>{O.setEdge(M,T.edge(M))}),O}function i(T){let O=T.nodes().map(M=>{let A={};return T.outEdges(M).forEach($=>{A[$.w]=(A[$.w]||0)+T.edge($).weight}),A});return D(T.nodes(),O)}function o(T){let O=T.nodes().map(M=>{let A={};return T.inEdges(M).forEach($=>{A[$.v]=(A[$.v]||0)+T.edge($).weight}),A});return D(T.nodes(),O)}function a(T,O){let M=T.x,A=T.y,$=O.x-M,Y=O.y-A,B=T.width/2,G=T.height/2;if(!$&&!Y)throw new Error("Not possible to find intersection inside of the rectangle");let H,V;return Math.abs(Y)*B>Math.abs($)*G?(Y<0&&(G=-G),H=G*$/Y,V=G):($<0&&(B=-B),H=B,V=B*Y/$),{x:M+H,y:A+V}}function u(T){let O=N(v(T)+1).map(()=>[]);return T.nodes().forEach(M=>{let A=T.node(M),$=A.rank;$!==void 0&&(O[$][A.order]=M)}),O}function d(T){let O=T.nodes().map(A=>{let $=T.node(A).rank;return $===void 0?Number.MAX_VALUE:$}),M=y(Math.min,O);T.nodes().forEach(A=>{let $=T.node(A);Object.hasOwn($,"rank")&&($.rank-=M)})}function m(T){let O=T.nodes().map(B=>T.node(B).rank),M=y(Math.min,O),A=[];T.nodes().forEach(B=>{let G=T.node(B).rank-M;A[G]||(A[G]=[]),A[G].push(B)});let $=0,Y=T.graph().nodeRankFactor;Array.from(A).forEach((B,G)=>{B===void 0&&G%Y!==0?--$:B!==void 0&&$&&B.forEach(H=>T.node(H).rank+=$)})}function p(T,O,M,A){let $={width:0,height:0};return arguments.length>=4&&($.rank=M,$.order=A),t(T,"border",$,O)}function h(T,O=g){const M=[];for(let A=0;Ag){const M=h(O);return T.apply(null,M.map(A=>T.apply(null,A)))}else return T.apply(null,O)}function v(T){const M=T.nodes().map(A=>{let $=T.node(A).rank;return $===void 0?Number.MIN_VALUE:$});return y(Math.max,M)}function w(T,O){let M={lhs:[],rhs:[]};return T.forEach(A=>{O(A)?M.lhs.push(A):M.rhs.push(A)}),M}function S(T,O){let M=Date.now();try{return O()}finally{console.log(T+" time: "+(Date.now()-M)+"ms")}}function _(T,O){return O()}let k=0;function C(T){var O=++k;return T+(""+O)}function N(T,O,M=1){O==null&&(O=T,T=0);let A=Y=>YOA[O]),Object.entries(T).reduce((A,[$,Y])=>(A[$]=M(Y,$),A),{})}function D(T,O){return T.reduce((M,A,$)=>(M[A]=O[$],M),{})}return Bx}var $x,H2;function sQ(){if(H2)return $x;H2=1;let e=iQ(),t=Yn().uniqueId;$x={run:n,undo:i};function n(o){(o.graph().acyclicer==="greedy"?e(o,u(o)):r(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 r(o){let a=[],u={},d={};function m(p){Object.hasOwn(d,p)||(d[p]=!0,u[p]=!0,o.outEdges(p).forEach(h=>{Object.hasOwn(u,h.w)?a.push(h):m(h.w)}),delete u[p])}return o.nodes().forEach(m),a}function i(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 Hx,F2;function oQ(){if(F2)return Hx;F2=1;let e=Yn();Hx={run:t,undo:r};function t(i){i.graph().dummyChains=[],i.edges().forEach(o=>n(i,o))}function n(i,o){let a=o.v,u=i.node(a).rank,d=o.w,m=i.node(d).rank,p=o.name,h=i.edge(o),g=h.labelRank;if(m===u+1)return;i.removeEdge(o);let y,v,w;for(w=0,++u;u{let a=i.node(o),u=a.edgeLabel,d;for(i.setEdge(a.edgeObj,u);a.dummy;)d=i.successors(o)[0],i.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=i.node(o)})}return Hx}var Fx,V2;function cm(){if(V2)return Fx;V2=1;const{applyWithChunking:e}=Yn();Fx={longestPath:t,slack:n};function t(r){var i={};function o(a){var u=r.node(a);if(Object.hasOwn(i,a))return u.rank;i[a]=!0;let d=r.outEdges(a).map(p=>p==null?Number.POSITIVE_INFINITY:o(p.w)-r.edge(p).minlen);var m=e(Math.min,d);return m===Number.POSITIVE_INFINITY&&(m=0),u.rank=m}r.sources().forEach(o)}function n(r,i){return r.node(i.w).rank-r.node(i.v).rank-r.edge(i).minlen}return Fx}var Vx,U2;function ER(){if(U2)return Vx;U2=1;var e=Ti().Graph,t=cm().slack;Vx=n;function n(a){var u=new e({directed:!1}),d=a.nodes()[0],m=a.nodeCount();u.setNode(d,{});for(var p,h;r(u,a){var h=p.v,g=m===h?p.w:h;!a.hasNode(g)&&!t(u,p)&&(a.setNode(g,{}),a.setEdge(m,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function i(a,u){return u.edges().reduce((m,p)=>{let h=Number.POSITIVE_INFINITY;return a.hasNode(p.v)!==a.hasNode(p.w)&&(h=t(u,p)),hu.node(m).rank+=d)}return Vx}var Ux,G2;function aQ(){if(G2)return Ux;G2=1;var e=ER(),t=cm().slack,n=cm().longestPath,r=Ti().alg.preorder,i=Ti().alg.postorder,o=Yn().simplify;Ux=a,a.initLowLimValues=p,a.initCutValues=u,a.calcCutValue=m,a.leaveEdge=g,a.enterEdge=y,a.exchangeEdges=v;function a(k){k=o(k),n(k);var C=e(k);p(C),u(C,k);for(var N,L;N=g(C);)L=y(C,k,N),v(C,k,N,L)}function u(k,C){var N=i(k,k.nodes());N=N.slice(0,N.length-1),N.forEach(L=>d(k,C,L))}function d(k,C,N){var L=k.node(N),I=L.parent;k.edge(N,I).cutvalue=m(k,C,N)}function m(k,C,N){var L=k.node(N),I=L.parent,D=!0,T=C.edge(N,I),O=0;return T||(D=!1,T=C.edge(I,N)),O=T.weight,C.nodeEdges(N).forEach(M=>{var A=M.v===N,$=A?M.w:M.v;if($!==I){var Y=A===D,B=C.edge(M).weight;if(O+=Y?B:-B,S(k,N,$)){var G=k.edge(N,$).cutvalue;O+=Y?-G:G}}}),O}function p(k,C){arguments.length<2&&(C=k.nodes()[0]),h(k,{},1,C)}function h(k,C,N,L,I){var D=N,T=k.node(L);return C[L]=!0,k.neighbors(L).forEach(O=>{Object.hasOwn(C,O)||(N=h(k,C,N,O,L))}),T.low=D,T.lim=N++,I?T.parent=I:delete T.parent,N}function g(k){return k.edges().find(C=>k.edge(C).cutvalue<0)}function y(k,C,N){var L=N.v,I=N.w;C.hasEdge(L,I)||(L=N.w,I=N.v);var D=k.node(L),T=k.node(I),O=D,M=!1;D.lim>T.lim&&(O=T,M=!0);var A=C.edges().filter($=>M===_(k,k.node($.v),O)&&M!==_(k,k.node($.w),O));return A.reduce(($,Y)=>t(C,Y)!C.node(I).parent),L=r(k,N);L=L.slice(1),L.forEach(I=>{var D=k.node(I).parent,T=C.edge(I,D),O=!1;T||(T=C.edge(D,I),O=!0),C.node(I).rank=C.node(D).rank+(O?T.minlen:-T.minlen)})}function S(k,C,N){return k.hasEdge(C,N)}function _(k,C,N){return N.low<=C.lim&&C.lim<=N.lim}return Ux}var Gx,q2;function lQ(){if(q2)return Gx;q2=1;var e=cm(),t=e.longestPath,n=ER(),r=aQ();Gx=i;function i(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){r(d)}return Gx}var qx,W2;function cQ(){if(W2)return qx;W2=1,qx=e;function e(r){let i=n(r);r.graph().dummyChains.forEach(o=>{let a=r.node(o),u=a.edgeObj,d=t(r,i,u.v,u.w),m=d.path,p=d.lca,h=0,g=m[h],y=!0;for(;o!==u.w;){if(a=r.node(o),y){for(;(g=m[h])!==p&&r.node(g).maxRankm||p>i[h].lim));for(g=h,h=a;(h=r.parent(h))!==g;)d.push(h);return{path:u.concat(d.reverse()),lca:g}}function n(r){let i={},o=0;function a(u){let d=o;r.children(u).forEach(a),i[u]={low:d,lim:o++}}return r.children().forEach(a),i}return qx}var Wx,Y2;function uQ(){if(Y2)return Wx;Y2=1;let e=Yn();Wx={run:t,cleanup:o};function t(a){let u=e.addDummyNode(a,"root",{},"_root"),d=r(a),m=Object.values(d),p=e.applyWithChunking(Math.max,m)-1,h=2*p+1;a.graph().nestingRoot=u,a.edges().forEach(y=>a.edge(y).minlen*=h);let g=i(a)+1;a.children().forEach(y=>n(a,u,h,g,p,d,y)),a.graph().nodeRankFactor=h}function n(a,u,d,m,p,h,g){let y=a.children(g);if(!y.length){g!==u&&a.setEdge(u,g,{weight:0,minlen:d});return}let v=e.addBorderNode(a,"_bt"),w=e.addBorderNode(a,"_bb"),S=a.node(g);a.setParent(v,g),S.borderTop=v,a.setParent(w,g),S.borderBottom=w,y.forEach(_=>{n(a,u,d,m,p,h,_);let k=a.node(_),C=k.borderTop?k.borderTop:_,N=k.borderBottom?k.borderBottom:_,L=k.borderTop?m:2*m,I=C!==N?1:p-h[g]+1;a.setEdge(v,C,{weight:L,minlen:I,nestingEdge:!0}),a.setEdge(N,w,{weight:L,minlen:I,nestingEdge:!0})}),a.parent(g)||a.setEdge(u,v,{weight:0,minlen:p+h[g]})}function r(a){var u={};function d(m,p){var h=a.children(m);h&&h.length&&h.forEach(g=>d(g,p+1)),u[m]=p}return a.children().forEach(m=>d(m,1)),u}function i(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 Wx}var Yx,X2;function dQ(){if(X2)return Yx;X2=1;let e=Yn();Yx=t;function t(r){function i(o){let a=r.children(o),u=r.node(o);if(a.length&&a.forEach(i),Object.hasOwn(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(let d=u.minRank,m=u.maxRank+1;dr(d.node(m))),d.edges().forEach(m=>r(d.edge(m)))}function r(d){let m=d.width;d.width=d.height,d.height=m}function i(d){d.nodes().forEach(m=>o(d.node(m))),d.edges().forEach(m=>{let p=d.edge(m);p.points.forEach(o),Object.hasOwn(p,"y")&&o(p)})}function o(d){d.y=-d.y}function a(d){d.nodes().forEach(m=>u(d.node(m))),d.edges().forEach(m=>{let p=d.edge(m);p.points.forEach(u),Object.hasOwn(p,"x")&&u(p)})}function u(d){let m=d.x;d.x=d.y,d.y=m}return Xx}var Kx,Z2;function mQ(){if(Z2)return Kx;Z2=1;let e=Yn();Kx=t;function t(n){let r={},i=n.nodes().filter(p=>!n.children(p).length),o=i.map(p=>n.node(p).rank),a=e.applyWithChunking(Math.max,o),u=e.range(a+1).map(()=>[]);function d(p){if(r[p])return;r[p]=!0;let h=n.node(p);u[h.rank].push(p),n.successors(p).forEach(d)}return i.sort((p,h)=>n.node(p).rank-n.node(h).rank).forEach(d),u}return Kx}var Zx,Q2;function hQ(){if(Q2)return Zx;Q2=1;let e=Yn().zipObject;Zx=t;function t(r,i){let o=0;for(let a=1;ay)),u=i.flatMap(g=>r.outEdges(g).map(y=>({pos:a[y.w],weight:r.edge(y).weight})).sort((y,v)=>y.pos-v.pos)),d=1;for(;d{let y=g.pos+d;p[y]+=g.weight;let v=0;for(;y>0;)y%2&&(v+=p[y+1]),y=y-1>>1,p[y]+=g.weight;h+=g.weight*v}),h}return Zx}var Qx,J2;function pQ(){if(J2)return Qx;J2=1,Qx=e;function e(t,n=[]){return n.map(r=>{let i=t.inEdges(r);if(i.length){let o=i.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:r,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:r}})}return Qx}var Jx,ej;function gQ(){if(ej)return Jx;ej=1;let e=Yn();Jx=t;function t(i,o){let a={};i.forEach((d,m)=>{let p=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:m};d.barycenter!==void 0&&(p.barycenter=d.barycenter,p.weight=d.weight)}),o.edges().forEach(d=>{let m=a[d.v],p=a[d.w];m!==void 0&&p!==void 0&&(p.indegree++,m.out.push(a[d.w]))});let u=Object.values(a).filter(d=>!d.indegree);return n(u)}function n(i){let o=[];function a(d){return m=>{m.merged||(m.barycenter===void 0||d.barycenter===void 0||m.barycenter>=d.barycenter)&&r(d,m)}}function u(d){return m=>{m.in.push(d),--m.indegree===0&&i.push(m)}}for(;i.length;){let d=i.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 r(i,o){let a=0,u=0;i.weight&&(a+=i.barycenter*i.weight,u+=i.weight),o.weight&&(a+=o.barycenter*o.weight,u+=o.weight),i.vs=o.vs.concat(i.vs),i.barycenter=a/u,i.weight=u,i.i=Math.min(o.i,i.i),o.merged=!0}return Jx}var ey,tj;function xQ(){if(tj)return ey;tj=1;let e=Yn();ey=t;function t(i,o){let a=e.partition(i,v=>Object.hasOwn(v,"barycenter")),u=a.lhs,d=a.rhs.sort((v,w)=>w.i-v.i),m=[],p=0,h=0,g=0;u.sort(r(!!o)),g=n(m,d,g),u.forEach(v=>{g+=v.vs.length,m.push(v.vs),p+=v.barycenter*v.weight,h+=v.weight,g=n(m,d,g)});let y={vs:m.flat(!0)};return h&&(y.barycenter=p/h,y.weight=h),y}function n(i,o,a){let u;for(;o.length&&(u=o[o.length-1]).i<=a;)o.pop(),i.push(u.vs),a++;return a}function r(i){return(o,a)=>o.barycentera.barycenter?1:i?a.i-o.i:o.i-a.i}return ey}var ty,nj;function yQ(){if(nj)return ty;nj=1;let e=pQ(),t=gQ(),n=xQ();ty=r;function r(a,u,d,m){let p=a.children(u),h=a.node(u),g=h?h.borderLeft:void 0,y=h?h.borderRight:void 0,v={};g&&(p=p.filter(k=>k!==g&&k!==y));let w=e(a,p);w.forEach(k=>{if(a.children(k.v).length){let C=r(a,k.v,d,m);v[k.v]=C,Object.hasOwn(C,"barycenter")&&o(k,C)}});let S=t(w,d);i(S,v);let _=n(S,m);if(g&&(_.vs=[g,_.vs,y].flat(!0),a.predecessors(g).length)){let k=a.node(a.predecessors(g)[0]),C=a.node(a.predecessors(y)[0]);Object.hasOwn(_,"barycenter")||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+k.order+C.order)/(_.weight+2),_.weight+=2}return _}function i(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 ty}var ny,rj;function vQ(){if(rj)return ny;rj=1;let e=Ti().Graph,t=Yn();ny=n;function n(i,o,a,u){u||(u=i.nodes());let d=r(i),m=new e({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(p=>i.node(p));return u.forEach(p=>{let h=i.node(p),g=i.parent(p);(h.rank===o||h.minRank<=o&&o<=h.maxRank)&&(m.setNode(p),m.setParent(p,g||d),i[a](p).forEach(y=>{let v=y.v===p?y.w:y.v,w=m.edge(v,p),S=w!==void 0?w.weight:0;m.setEdge(v,p,{weight:i.edge(y).weight+S})}),Object.hasOwn(h,"minRank")&&m.setNode(p,{borderLeft:h.borderLeft[o],borderRight:h.borderRight[o]}))}),m}function r(i){for(var o;i.hasNode(o=t.uniqueId("_root")););return o}return ny}var ry,ij;function bQ(){if(ij)return ry;ij=1,ry=e;function e(t,n,r){let i={},o;r.forEach(a=>{let u=t.parent(a),d,m;for(;u;){if(d=t.parent(u),d?(m=i[d],i[d]=u):(m=o,o=u),m&&m!==u){n.setEdge(m,u);return}u=d}})}return ry}var iy,sj;function _Q(){if(sj)return iy;sj=1;let e=mQ(),t=hQ(),n=yQ(),r=vQ(),i=bQ(),o=Ti().Graph,a=Yn();iy=u;function u(h,g){if(g&&typeof g.customOrder=="function"){g.customOrder(h,u);return}let y=a.maxRank(h),v=d(h,a.range(1,y+1),"inEdges"),w=d(h,a.range(y-1,-1,-1),"outEdges"),S=e(h);if(p(h,S),g&&g.disableOptimalOrderHeuristic)return;let _=Number.POSITIVE_INFINITY,k;for(let C=0,N=0;N<4;++C,++N){m(C%2?v:w,C%4>=2),S=a.buildLayerMatrix(h);let L=t(h,S);L<_&&(N=0,k=Object.assign({},S),_=L)}p(h,k)}function d(h,g,y){const v=new Map,w=(S,_)=>{v.has(S)||v.set(S,[]),v.get(S).push(_)};for(const S of h.nodes()){const _=h.node(S);if(typeof _.rank=="number"&&w(_.rank,S),typeof _.minRank=="number"&&typeof _.maxRank=="number")for(let k=_.minRank;k<=_.maxRank;k++)k!==_.rank&&w(k,S)}return g.map(function(S){return r(h,S,y,v.get(S)||[])})}function m(h,g){let y=new o;h.forEach(function(v){let w=v.graph().root,S=n(v,w,y,g);S.vs.forEach((_,k)=>v.node(_).order=k),i(v,y,S.vs)})}function p(h,g){Object.values(g).forEach(y=>y.forEach((v,w)=>h.node(v).order=w))}return iy}var sy,oj;function kQ(){if(oj)return sy;oj=1;let e=Ti().Graph,t=Yn();sy={positionX:y,findType1Conflicts:n,findType2Conflicts:r,addConflict:o,hasConflict:a,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:h,findSmallestWidthAlignment:p,balance:g};function n(S,_){let k={};function C(N,L){let I=0,D=0,T=N.length,O=L[L.length-1];return L.forEach((M,A)=>{let $=i(S,M),Y=$?S.node($).order:T;($||M===O)&&(L.slice(D,A+1).forEach(B=>{S.predecessors(B).forEach(G=>{let H=S.node(G),V=H.order;(V{M=L[A],S.node(M).dummy&&S.predecessors(M).forEach($=>{let Y=S.node($);Y.dummy&&(Y.orderO)&&o(k,$,M)})})}function N(L,I){let D=-1,T,O=0;return I.forEach((M,A)=>{if(S.node(M).dummy==="border"){let $=S.predecessors(M);$.length&&(T=S.node($[0]).order,C(I,O,A,D,T),O=A,D=T)}C(I,O,I.length,T,L.length)}),I}return _.length&&_.reduce(N),k}function i(S,_){if(S.node(_).dummy)return S.predecessors(_).find(k=>S.node(k).dummy)}function o(S,_,k){if(_>k){let N=_;_=k,k=N}let C=S[_];C||(S[_]=C={}),C[k]=!0}function a(S,_,k){if(_>k){let C=_;_=k,k=C}return!!S[_]&&Object.hasOwn(S[_],k)}function u(S,_,k,C){let N={},L={},I={};return _.forEach(D=>{D.forEach((T,O)=>{N[T]=T,L[T]=T,I[T]=O})}),_.forEach(D=>{let T=-1;D.forEach(O=>{let M=C(O);if(M.length){M=M.sort(($,Y)=>I[$]-I[Y]);let A=(M.length-1)/2;for(let $=Math.floor(A),Y=Math.ceil(A);$<=Y;++$){let B=M[$];L[O]===O&&TMath.max($,L[Y.v]+I.edge(Y)),0)}function M(A){let $=I.outEdges(A).reduce((B,G)=>Math.min(B,L[G.w]-I.edge(G)),Number.POSITIVE_INFINITY),Y=S.node(A);$!==Number.POSITIVE_INFINITY&&Y.borderType!==D&&(L[A]=Math.max(L[A],$))}return T(O,I.predecessors.bind(I)),T(M,I.successors.bind(I)),Object.keys(C).forEach(A=>L[A]=L[k[A]]),L}function m(S,_,k,C){let N=new e,L=S.graph(),I=v(L.nodesep,L.edgesep,C);return _.forEach(D=>{let T;D.forEach(O=>{let M=k[O];if(N.setNode(M),T){var A=k[T],$=N.edge(A,M);N.setEdge(A,M,Math.max(I(S,O,T),$||0))}T=O})}),N}function p(S,_){return Object.values(_).reduce((k,C)=>{let N=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY;Object.entries(C).forEach(([D,T])=>{let O=w(S,D)/2;N=Math.max(T+O,N),L=Math.min(T-O,L)});const I=N-L;return I{["l","r"].forEach(I=>{let D=L+I,T=S[D];if(T===_)return;let O=Object.values(T),M=C-t.applyWithChunking(Math.min,O);I!=="l"&&(M=N-t.applyWithChunking(Math.max,O)),M&&(S[D]=t.mapValues(T,A=>A+M))})})}function g(S,_){return t.mapValues(S.ul,(k,C)=>{if(_)return S[_.toLowerCase()][C];{let N=Object.values(S).map(L=>L[C]).sort((L,I)=>L-I);return(N[1]+N[2])/2}})}function y(S){let _=t.buildLayerMatrix(S),k=Object.assign(n(S,_),r(S,_)),C={},N;["u","d"].forEach(I=>{N=I==="u"?_:Object.values(_).reverse(),["l","r"].forEach(D=>{D==="r"&&(N=N.map(A=>Object.values(A).reverse()));let T=(I==="u"?S.predecessors:S.successors).bind(S),O=u(S,N,k,T),M=d(S,N,O.root,O.align,D==="r");D==="r"&&(M=t.mapValues(M,A=>-A)),C[I+D]=M})});let L=p(S,C);return h(C,L),g(C,S.graph().align)}function v(S,_,k){return(C,N,L)=>{let I=C.node(N),D=C.node(L),T=0,O;if(T+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":O=-I.width/2;break;case"r":O=I.width/2;break}if(O&&(T+=k?O:-O),O=0,T+=(I.dummy?_:S)/2,T+=(D.dummy?_:S)/2,T+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":O=D.width/2;break;case"r":O=-D.width/2;break}return O&&(T+=k?O:-O),O=0,T}}function w(S,_){return S.node(_).width}return sy}var oy,aj;function SQ(){if(aj)return oy;aj=1;let e=Yn(),t=kQ().positionX;oy=n;function n(i){i=e.asNonCompoundGraph(i),r(i),Object.entries(t(i)).forEach(([o,a])=>i.node(o).x=a)}function r(i){let o=e.buildLayerMatrix(i),a=i.graph().ranksep,u=0;o.forEach(d=>{const m=d.reduce((p,h)=>{const g=i.node(h).height;return p>g?p:g},0);d.forEach(p=>i.node(p).y=u+m/2),u+=m+a})}return oy}var ay,lj;function wQ(){if(lj)return ay;lj=1;let e=sQ(),t=oQ(),n=lQ(),r=Yn().normalizeRanks,i=cQ(),o=Yn().removeEmptyRanks,a=uQ(),u=dQ(),d=fQ(),m=_Q(),p=SQ(),h=Yn(),g=Ti().Graph;ay=y;function y(P,K){let J=K&&K.debugTiming?h.time:h.notime;J("layout",()=>{let te=J(" buildLayoutGraph",()=>T(P));J(" runLayout",()=>v(te,J,K)),J(" updateInputGraph",()=>w(P,te))})}function v(P,K,J){K(" makeSpaceForEdgeLabels",()=>O(P)),K(" removeSelfEdges",()=>W(P)),K(" acyclic",()=>e.run(P)),K(" nestingGraph.run",()=>a.run(P)),K(" rank",()=>n(h.asNonCompoundGraph(P))),K(" injectEdgeLabelProxies",()=>M(P)),K(" removeEmptyRanks",()=>o(P)),K(" nestingGraph.cleanup",()=>a.cleanup(P)),K(" normalizeRanks",()=>r(P)),K(" assignRankMinMax",()=>A(P)),K(" removeEdgeLabelProxies",()=>$(P)),K(" normalize.run",()=>t.run(P)),K(" parentDummyChains",()=>i(P)),K(" addBorderSegments",()=>u(P)),K(" order",()=>m(P,J)),K(" insertSelfEdges",()=>Z(P)),K(" adjustCoordinateSystem",()=>d.adjust(P)),K(" position",()=>p(P)),K(" positionSelfEdges",()=>q(P)),K(" removeBorderNodes",()=>V(P)),K(" normalize.undo",()=>t.undo(P)),K(" fixupEdgeLabelCoords",()=>G(P)),K(" undoCoordinateSystem",()=>d.undo(P)),K(" translateGraph",()=>Y(P)),K(" assignNodeIntersects",()=>B(P)),K(" reversePoints",()=>H(P)),K(" acyclic.undo",()=>e.undo(P))}function w(P,K){P.nodes().forEach(J=>{let te=P.node(J),re=K.node(J);te&&(te.x=re.x,te.y=re.y,te.rank=re.rank,K.children(J).length&&(te.width=re.width,te.height=re.height))}),P.edges().forEach(J=>{let te=P.edge(J),re=K.edge(J);te.points=re.points,Object.hasOwn(re,"x")&&(te.x=re.x,te.y=re.y)}),P.graph().width=K.graph().width,P.graph().height=K.graph().height}let S=["nodesep","edgesep","ranksep","marginx","marginy"],_={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},k=["acyclicer","ranker","rankdir","align"],C=["width","height","rank"],N={width:0,height:0},L=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function T(P){let K=new g({multigraph:!0,compound:!0}),J=ee(P.graph());return K.setGraph(Object.assign({},_,U(J,S),h.pick(J,k))),P.nodes().forEach(te=>{let re=ee(P.node(te));const oe=U(re,C);Object.keys(N).forEach(fe=>{oe[fe]===void 0&&(oe[fe]=N[fe])}),K.setNode(te,oe),K.setParent(te,P.parent(te))}),P.edges().forEach(te=>{let re=ee(P.edge(te));K.setEdge(te,Object.assign({},I,U(re,L),h.pick(re,D)))}),K}function O(P){let K=P.graph();K.ranksep/=2,P.edges().forEach(J=>{let te=P.edge(J);te.minlen*=2,te.labelpos.toLowerCase()!=="c"&&(K.rankdir==="TB"||K.rankdir==="BT"?te.width+=te.labeloffset:te.height+=te.labeloffset)})}function M(P){P.edges().forEach(K=>{let J=P.edge(K);if(J.width&&J.height){let te=P.node(K.v),oe={rank:(P.node(K.w).rank-te.rank)/2+te.rank,e:K};h.addDummyNode(P,"edge-proxy",oe,"_ep")}})}function A(P){let K=0;P.nodes().forEach(J=>{let te=P.node(J);te.borderTop&&(te.minRank=P.node(te.borderTop).rank,te.maxRank=P.node(te.borderBottom).rank,K=Math.max(K,te.maxRank))}),P.graph().maxRank=K}function $(P){P.nodes().forEach(K=>{let J=P.node(K);J.dummy==="edge-proxy"&&(P.edge(J.e).labelRank=J.rank,P.removeNode(K))})}function Y(P){let K=Number.POSITIVE_INFINITY,J=0,te=Number.POSITIVE_INFINITY,re=0,oe=P.graph(),fe=oe.marginx||0,se=oe.marginy||0;function je(Se){let Ce=Se.x,He=Se.y,We=Se.width,Ye=Se.height;K=Math.min(K,Ce-We/2),J=Math.max(J,Ce+We/2),te=Math.min(te,He-Ye/2),re=Math.max(re,He+Ye/2)}P.nodes().forEach(Se=>je(P.node(Se))),P.edges().forEach(Se=>{let Ce=P.edge(Se);Object.hasOwn(Ce,"x")&&je(Ce)}),K-=fe,te-=se,P.nodes().forEach(Se=>{let Ce=P.node(Se);Ce.x-=K,Ce.y-=te}),P.edges().forEach(Se=>{let Ce=P.edge(Se);Ce.points.forEach(He=>{He.x-=K,He.y-=te}),Object.hasOwn(Ce,"x")&&(Ce.x-=K),Object.hasOwn(Ce,"y")&&(Ce.y-=te)}),oe.width=J-K+fe,oe.height=re-te+se}function B(P){P.edges().forEach(K=>{let J=P.edge(K),te=P.node(K.v),re=P.node(K.w),oe,fe;J.points?(oe=J.points[0],fe=J.points[J.points.length-1]):(J.points=[],oe=re,fe=te),J.points.unshift(h.intersectRect(te,oe)),J.points.push(h.intersectRect(re,fe))})}function G(P){P.edges().forEach(K=>{let J=P.edge(K);if(Object.hasOwn(J,"x"))switch((J.labelpos==="l"||J.labelpos==="r")&&(J.width-=J.labeloffset),J.labelpos){case"l":J.x-=J.width/2+J.labeloffset;break;case"r":J.x+=J.width/2+J.labeloffset;break}})}function H(P){P.edges().forEach(K=>{let J=P.edge(K);J.reversed&&J.points.reverse()})}function V(P){P.nodes().forEach(K=>{if(P.children(K).length){let J=P.node(K),te=P.node(J.borderTop),re=P.node(J.borderBottom),oe=P.node(J.borderLeft[J.borderLeft.length-1]),fe=P.node(J.borderRight[J.borderRight.length-1]);J.width=Math.abs(fe.x-oe.x),J.height=Math.abs(re.y-te.y),J.x=oe.x+J.width/2,J.y=te.y+J.height/2}}),P.nodes().forEach(K=>{P.node(K).dummy==="border"&&P.removeNode(K)})}function W(P){P.edges().forEach(K=>{if(K.v===K.w){var J=P.node(K.v);J.selfEdges||(J.selfEdges=[]),J.selfEdges.push({e:K,label:P.edge(K)}),P.removeEdge(K)}})}function Z(P){var K=h.buildLayerMatrix(P);K.forEach(J=>{var te=0;J.forEach((re,oe)=>{var fe=P.node(re);fe.order=oe+te,(fe.selfEdges||[]).forEach(se=>{h.addDummyNode(P,"selfedge",{width:se.label.width,height:se.label.height,rank:fe.rank,order:oe+ ++te,e:se.e,label:se.label},"_se")}),delete fe.selfEdges})})}function q(P){P.nodes().forEach(K=>{var J=P.node(K);if(J.dummy==="selfedge"){var te=P.node(J.e.v),re=te.x+te.width/2,oe=te.y,fe=J.x-re,se=te.height/2;P.setEdge(J.e,J.label),P.removeNode(K),J.label.points=[{x:re+2*fe/3,y:oe-se},{x:re+5*fe/6,y:oe-se},{x:re+fe,y:oe},{x:re+5*fe/6,y:oe+se},{x:re+2*fe/3,y:oe+se}],J.label.x=J.x,J.label.y=J.y}})}function U(P,K){return h.mapValues(h.pick(P,K),Number)}function ee(P){var K={};return P&&Object.entries(P).forEach(([J,te])=>{typeof J=="string"&&(J=J.toLowerCase()),K[J]=te}),K}return ay}var ly,cj;function CQ(){if(cj)return ly;cj=1;let e=Yn(),t=Ti().Graph;ly={debugOrdering:n};function n(r){let i=e.buildLayerMatrix(r),o=new t({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(a=>{o.setNode(a,{label:a}),o.setParent(a,"layer"+r.node(a).rank)}),r.edges().forEach(a=>o.setEdge(a.v,a.w,{},a.name)),i.forEach((a,u)=>{let d="layer"+u;o.setNode(d,{rank:"same"}),a.reduce((m,p)=>(o.setEdge(m,p,{style:"invis"}),p))}),o}return ly}var cy,uj;function jQ(){return uj||(uj=1,cy="1.1.8"),cy}var uy,dj;function EQ(){return dj||(dj=1,uy={graphlib:Ti(),layout:wQ(),debug:CQ(),util:{time:Yn().time,notime:Yn().notime},version:jQ()}),uy}var NQ=EQ();const fj=Zo(NQ);function IQ(e,t,n={}){const r=new fj.graphlib.Graph;r.setDefaultEdgeLabel(()=>({})),r.setGraph({rankdir:"TB",ranksep:60,nodesep:36,marginx:24,marginy:24});const i=n.nodeWidth??220,o=n.nodeHeight??80;return e.forEach(a=>r.setNode(a.id,{width:i,height:o})),t.forEach(a=>r.setEdge(a.source,a.target)),fj.layout(r),e.map(a=>{const{x:u,y:d}=r.node(a.id);return{...a,position:{x:u-i/2,y:d-o/2}}})}const TQ={roleNode:UZ},RQ=E.forwardRef(function(t,n){return c.jsx(yR,{children:c.jsx(AQ,{...t,forwardedRef:n})})});function AQ({roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:r,onSelectRole:i,onReparent:o,readOnly:a,forwardedRef:u}){const d=E.useMemo(()=>{const M=new Map;for(const A of t){const $=A.role_ids?.length?A.role_ids:[A.role_id];for(const Y of $){if(!Y)continue;const B=M.get(Y)??[];B.push(A),M.set(Y,B)}}return M},[t]),m=E.useCallback(M=>n?n[M]??[]:(d.get(M)??[]).filter(A=>!A.is_default_employee).map(A=>A.name).filter(Boolean),[d,n]),[p,h]=E.useState(0),g=E.useMemo(()=>e.map(M=>M.role_id).sort().join("|"),[e]),y=E.useRef(g);E.useEffect(()=>{y.current!==g&&(y.current=g,h(M=>M+1))},[g]),E.useImperativeHandle(u,()=>({autoLayout:()=>h(M=>M+1)}),[]);const[v,w]=E.useState(null),[S,_]=E.useState({});E.useEffect(()=>{_({})},[p]);const k=E.useMemo(()=>{const M={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}},A=e.map(G=>({id:G.role_id,type:"roleNode",position:{x:0,y:0},draggable:!0,data:{roleId:G.role_id,name:G.name,responsibility:G.responsibility,icon:G.icon??null,employeeCount:m(G.role_id).length,employeeNames:m(G.role_id),isOwner:!1,isSelected:!1,isDropTarget:!1}})),$=[M,...A],Y=e.map(G=>({id:`e-${G.reports_to}-${G.role_id}`,source:G.reports_to,target:G.role_id,type:"smoothstep"}));return{nodes:IQ($,Y),edges:Y}},[p,a]),C=E.useMemo(()=>k.nodes.map(M=>{if(M.id==="owner")return M;const A=e.find(Y=>Y.role_id===M.id);if(!A)return M;const $=S[M.id];return{...M,position:$??M.position,draggable:!0,data:{...M.data,name:A.name,responsibility:A.responsibility,icon:A.icon??null,employeeCount:m(A.role_id).length,employeeNames:m(A.role_id),isSelected:A.role_id===r,isDropTarget:A.role_id===v}}}),[k.nodes,e,d,m,r,v,a,S]),[N,L]=E.useState(C);E.useEffect(()=>{L(C)},[C]);const I=E.useCallback(M=>{L(A=>WT(M,A))},[]),D=E.useCallback((M,A)=>{if(a)return;const $=220,Y=80,B={x:A.position.x+$/2,y:A.position.y+Y/2},G=N.find(H=>H.id===A.id?!1:B.x>=H.position.x&&B.x<=H.position.x+$&&B.y>=H.position.y&&B.y<=H.position.y+Y);w(G?.id??null)},[N,a]),T=E.useCallback((M,A)=>{const $=v;w(null);const Y=()=>_(B=>({...B,[A.id]:{x:A.position.x,y:A.position.y}}));if(a||!$||$===A.id||NR(e,A.id,$)){Y();return}o(A.id,$),h(B=>B+1)},[v,e,a,o]),O=E.useCallback((M,A)=>{i(A.id==="owner"?null:A.id)},[i]);return c.jsx("div",{style:{width:"100%",height:"100%"},children:c.jsxs(pZ,{nodes:N,edges:k.edges,nodeTypes:TQ,onNodesChange:I,onNodeDrag:D,onNodeDragStop:T,onNodeClick:O,fitView:!0,fitViewOptions:{padding:.32,minZoom:.45,maxZoom:1.2},nodesConnectable:!1,edgesFocusable:!1,style:{width:"100%",height:"100%"},children:[c.jsx(bZ,{gap:28,size:1,color:"rgba(240, 237, 232, 0.10)"}),c.jsx(EZ,{showInteractive:!1}),c.jsx($Z,{pannable:!0,nodeStrokeWidth:0,maskColor:"rgba(12, 17, 27, 0.6)"})]})})}function NR(e,t,n){const r=e.filter(i=>i.reports_to===t).map(i=>i.role_id);for(const i of r)if(i===n||NR(e,i,n))return!0;return!1}function MQ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onUpdateRole:o,onDeleteRole:a,savedOrgsList:u,activeSavedOrg:d,currentOrgVersion:m,versionAtLoad:p,onSavedOrgsList:h,onSavedOrgSaveAs:g,onSavedOrgLoad:y,onSavedOrgDelete:v}){const[w,S]=E.useState("canvas"),[_,k]=E.useState(null),C=E.useRef(null),N=E.useMemo(()=>e.find(M=>M.role_id===_)??null,[e,_]),L=E.useCallback((M,A)=>{r&&o(M,{reports_to:A})},[o,r]),I=E.useCallback(()=>{C.current?.autoLayout()},[]),D=E.useCallback(()=>{if(!r)return;const M=new Set(e.map(Y=>Y.role_id));let A="new_role",$=1;for(;M.has(A);)$+=1,A=`new_role_${$}`;i(A,"New Role","","owner",null),k(A)},[e,i,r]),T=E.useCallback(()=>{if(!r||!N)return;const M=new Set(e.map(Y=>Y.role_id));let A=`${N.role_id}_copy`,$=1;for(;M.has(A);)$+=1,A=`${N.role_id}_copy_${$}`;i(A,`${N.name} (copy)`,N.responsibility,N.reports_to,N.icon),k(A)},[e,i,N,r]),O=E.useRef(null);return E.useEffect(()=>{const M=A=>{const $=A.target;if(!($&&($.tagName==="INPUT"||$.tagName==="TEXTAREA"||$.tagName==="SELECT"||$.isContentEditable))&&!(O.current&&!O.current.contains($))){if(A.key==="Escape"&&_){k(null),A.preventDefault();return}if(A.key==="Delete"&&_&&r){a(_),k(null),A.preventDefault();return}if((A.metaKey||A.ctrlKey)&&A.key.toLowerCase()==="d"&&_&&r){T(),A.preventDefault();return}if(A.key.toLowerCase()==="f"&&w==="canvas"){I(),A.preventDefault();return}}};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[_,r,w,a,I,T]),c.jsxs("div",{className:"se-container",ref:O,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":w==="canvas",className:`se-view-btn${w==="canvas"?" is-active":""}`,onClick:()=>S("canvas"),children:"Canvas"}),c.jsx("button",{role:"tab","aria-selected":w==="table",className:`se-view-btn${w==="table"?" is-active":""}`,onClick:()=>S("table"),children:"Table"})]}),c.jsxs("div",{className:`se-toolbar-actions${r?"":" se-toolbar-actions--readonly"}`,children:[r?c.jsxs("div",{className:"se-saved-org-control",children:[c.jsx("span",{className:"se-toolbar-label",children:"Saved org"}),c.jsx(PV,{savedOrgs:u??null,activeName:d??null,isDirty:p!=null&&(m??0)!==p,onRefresh:h??(()=>{}),onSaveAs:g??(()=>{}),onLoad:y??(()=>{}),onDelete:v??(()=>{})})]}):c.jsx("span",{className:"se-readonly-pill",children:"Read-only corporate"}),c.jsx("div",{className:"se-toolbar-divider","aria-hidden":!0}),w==="canvas"&&c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:I,children:"Auto-layout"}),r&&c.jsx("button",{className:"btn btn-primary btn-sm",onClick:D,children:"+ Add role"})]})]}),c.jsxs("div",{className:"se-body",children:[w==="canvas"?c.jsx(RQ,{ref:C,roles:e,employees:t,sessionRecruitmentByRole:n,selectedRoleId:_,onSelectRole:k,onReparent:L,readOnly:!r}):c.jsx(BU,{roles:e,employees:t,selectedIds:_?[_]:[],onSelectRow:M=>k(M),onUpdateRole:o,onDeleteRole:a,readOnly:!r}),N&&c.jsx(VV,{role:N,allRoles:e,employees:t,readOnly:!r,onUpdateRole:o,onDeleteRole:M=>{a(M),k(null)},onClose:()=>k(null)})]})]})}const Ui={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 DQ({onComplete:e,onSwitchToTab:t}){const[n,r]=E.useState(1),[i,o]=E.useState([{name:"",resp:"",parent:"owner"}]),a=()=>o([...i,{name:"",resp:"",parent:"owner"}]),u=(g,y,v)=>{const w=[...i];w[g][y]=v,o(w)},d=g=>{i.length<=1||o(i.filter((y,v)=>v!==g))},m=i.filter(g=>g.name.trim()),p=m.map(g=>g.name.trim()).filter(Boolean),h=()=>{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:Ui.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:Ui.people,label:"Team Members"},{n:2,icon:Ui.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:i.map((g,y)=>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(y,"name",v.target.value)}),c.jsx("input",{className:"qs-member-resp",value:g.resp,placeholder:"What do they do?",onChange:v=>u(y,"resp",v.target.value)}),c.jsxs("select",{className:"qs-member-parent",value:g.parent,onChange:v=>u(y,"parent",v.target.value),children:[c.jsx("option",{value:"owner",children:"Reports to you"}),p.filter(v=>v!==g.name.trim()).map(v=>c.jsx("option",{value:v,children:`Managed by ${v}`},v))]}),i.length>1&&c.jsx("button",{className:"qs-remove-btn",onClick:()=>d(y),title:"Remove",children:c.jsx("img",{src:Ui.trash,alt:"",className:"qs-remove-icon"})})]},y))}),c.jsxs("button",{className:"qs-add-member",onClick:a,children:[c.jsx("img",{src:Ui.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:()=>r(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,y)=>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})`})]},y))]}),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:()=>r(1),children:"← Back"}),c.jsx("button",{className:"oc-btn-primary qs-create-btn",onClick:h,children:"Create Team"})]})]})]})}function OQ({roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onBulkAddRoles:o,onUpdateRole:a,onDeleteRole:u,onExport:d,onImportEmployee:m,onResetArchitecture:p,onSwitchToTab:h,savedOrgsList:g,activeSavedOrg:y,currentOrgVersion:v,versionAtLoad:w,onSavedOrgsList:S,onSavedOrgSaveAs:_,onSavedOrgLoad:k,onSavedOrgDelete:C}){const[N,L]=E.useState(!1),[I,D]=E.useState(!1),[T,O]=E.useState(""),[M,A]=E.useState(""),[$,Y]=E.useState(""),[B,G]=E.useState("1.0.0"),H=E.useMemo(()=>{const K=new Map;for(const J of t){const te=J.role_ids?.length?J.role_ids:[J.role_id];for(const re of te){if(!re)continue;const oe=K.get(re)||[];oe.push(J),K.set(re,oe)}}return K},[t]),V=()=>{!T.trim()||!M.trim()||(d({package_id:T.trim(),name:M.trim(),description:$,version:B}),D(!1),O(""),A(""),Y(""),G("1.0.0"))},W=E.useRef(null);E.useEffect(()=>{N&&e.length>0&&(L(!1),W.current&&(clearTimeout(W.current),W.current=null))},[e.length,N]),E.useEffect(()=>{if(N)return W.current=setTimeout(()=>L(!1),1e4),()=>{W.current&&clearTimeout(W.current)}},[N]);const Z=K=>{const J=new Map,te=new Set,re=[];for(const oe of K){let fe=oe.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"");if(!fe)continue;let se=fe,je=2;for(;te.has(se);)se=`${fe}-${je++}`;te.add(se),J.set(oe.name,se);const Se=oe.reportsTo==="owner"?"owner":J.get(oe.reportsTo)||"owner";re.push({role_id:se,name:oe.name,responsibility:oe.responsibility,reports_to:Se})}if(re.length!==0)if(o)L(!0),o(re);else{for(const oe of re)i(oe.role_id,oe.name,oe.responsibility,oe.reports_to);L(!0)}},q=()=>{confirm("This will remove all org roles, employees, and work-item templates. Continue?")&&p?.()},U=E.useMemo(()=>{let K=0;for(const J of e)(H.get(J.role_id)??[]).length>0&&(K+=1);return K},[e,H]),ee=E.useMemo(()=>t.filter(K=>K.linked_agent_id).length,[t]),P=Math.max(0,e.length-U);return r&&e.length===0?c.jsx("div",{className:"team-view",children:N?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(DQ,{onComplete:Z,onSwitchToTab:h})}):c.jsxs("div",{className:"team-view",children:[c.jsxs("div",{className:`team-command-bar${r?" 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:r?"Saved org workspace":"Corporate baseline"}),c.jsx("span",{className:"team-command-title",children:r?"Editable company architecture":"Built-in company architecture"})]}),c.jsxs("div",{className:"team-command-metrics",children:[c.jsxs("span",{children:[c.jsx("b",{children:U})," staffed roles"]}),c.jsxs("span",{children:[c.jsx("b",{children:P})," vacant"]}),c.jsxs("span",{children:[c.jsx("b",{children:ee})," in office"]})]}),r&&c.jsxs("div",{className:"team-command-actions",children:[c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>h("employees"),children:[c.jsx("img",{src:Ui.addPerson,alt:"",className:"myorg-inline-icon"})," Hire Talent"]}),c.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>D(!0),children:"Export Package"}),p&&c.jsxs("button",{className:"myorg-reset-btn",onClick:q,children:[c.jsx("img",{src:Ui.trash,alt:"",className:"myorg-reset-icon"})," Reset"]})]})]}),!r&&c.jsx("div",{className:"team-readonly-strip",children:"Corporate is fixed and read-only; saved company architectures are edited separately."}),c.jsx(MQ,{roles:e,employees:t,sessionRecruitmentByRole:n,isCustomMode:r,onAddRole:i,onUpdateRole:a,onDeleteRole:u,savedOrgsList:g??null,activeSavedOrg:y??null,currentOrgVersion:v??0,versionAtLoad:w??null,onSavedOrgsList:S,onSavedOrgSaveAs:_,onSavedOrgLoad:k,onSavedOrgDelete:C}),I&&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:K=>O(K.target.value),placeholder:"my-architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Name"}),c.jsx("input",{value:M,onChange:K=>A(K.target.value),placeholder:"My Architecture"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Description"}),c.jsx("input",{value:$,onChange:K=>Y(K.target.value),placeholder:"An org team structure"})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Version"}),c.jsx("input",{value:B,onChange:K=>G(K.target.value)})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:V,disabled:!T.trim()||!M.trim(),children:"Export"}),c.jsx("button",{className:"oc-btn-ghost",onClick:()=>D(!1),children:"Cancel"})]})]}),c.jsxs("div",{className:"myorg-section",children:[c.jsxs("div",{className:"myorg-section-header",children:[c.jsx("img",{src:Ui.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:[U,"/",e.length," staffed"]})]}),c.jsx("div",{className:"team-roster-grid",children:e.map(K=>{const J=H.get(K.role_id)||[];return c.jsxs("div",{className:"team-roster-card",children:[c.jsxs("div",{className:"team-roster-card-header",children:[c.jsx("img",{src:Su(K.icon),alt:"",className:"team-roster-card-icon"}),c.jsx("span",{className:"team-roster-role-name",children:K.name}),c.jsx("span",{className:"team-roster-count",children:J.length||"vacant"})]}),J.length>0?J.map(te=>c.jsxs("div",{className:"team-roster-emp",children:[c.jsx("img",{src:Ui.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:te.name}),c.jsx("span",{className:`team-roster-seniority team-roster-seniority--${te.seniority}`,children:te.seniority})]}),te.linked_agent_id?c.jsx("span",{className:"team-roster-badge team-roster-badge--active",children:"In Office"}):m&&te.role_id?c.jsxs("button",{className:"team-roster-deploy-btn",onClick:()=>m(te.employee_id),title:"Add this employee to the office workspace",children:[c.jsx("img",{src:Ui.deploy,alt:"",className:"team-roster-deploy-icon"})," Deploy"]}):null]},te.employee_id)):c.jsxs("div",{className:"team-roster-vacant",children:[c.jsx("span",{className:"team-roster-vacant-text",children:"No members yet"}),r&&c.jsx("button",{className:"team-roster-hire-btn",onClick:()=>h("employees"),children:"Hire"})]})]},K.role_id)})})]})]})}function qm(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 LQ(e){const t=qm(e);return(Array.isArray(t?.signals)?t.signals:[]).filter(r=>r&&typeof r=="object").filter(r=>!!(r.required??!0)&&!r.satisfied).map(r=>String(r.name??"").trim()).filter(Boolean)}function zQ(e){const n=qm(e)?.work_item_profile;return n&&typeof n=="object"?String(n.gate_owner_role_id??"").trim():""}function PQ(e){const t=qm(e),n=typeof t?.confidence=="number"?t.confidence:void 0;return typeof n=="number"?`${Math.round(n*100)}%`:""}function BQ({roles:e,runtimeTeams:t,runtimeSeats:n,workItems:r,frontier:i,companyProfile:o,runtimePolicy:a,finalDeciderRoleId:u,topLevelRoleIds:d,readOnly:m=!1,onUpdateOrgStrategy:p,onUpdateRuntimePolicy:h}){const g=e.filter(S=>(d??[]).includes(S.role_id)),y=u||(g.length===1?g[0]?.role_id:""),v=g.length>1&&!y,w=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:y,disabled:m,onChange:S=>{m||p?.({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||r.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:[i.status||"running",i.run_id?` (${i.run_id.slice(0,8)})`:""]})]}),c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Frontier"}),c.jsxs("div",{children:[i.running_count??0," running, ",i.ready_count??0," ready, ",i.blocked_count??0," blocked, ",i.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:r.length})]}),r.length>0&&c.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:r.slice(0,6).map(S=>{const _=qm(S),k=typeof _?.normalized_state=="string"?_.normalized_state:"",C=typeof _?.blocked_reason=="string"?_.blocked_reason:S.blocked_reason??"",N=zQ(S),L=LQ(S),I=PQ(S),D=[C?`waiting ${C}`:"",N?`gate ${w.get(N)??N}`:"",L.length?`signals ${L.join(", ")}`:"",I?`confidence ${I}`:"",k==="invalidated"?"invalidated":""].filter(Boolean);return c.jsxs("div",{style:{marginBottom:6},children:[c.jsxs("div",{children:[w.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]})]}),D.length>0&&c.jsx("div",{style:{marginLeft:12,opacity:.85},children:D.join(" • ")})]},S.work_item_id)})})]})}):null]})}function $Q({pkg:e,onUninstall:t,uninstallingId:n}){const r=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:r,onClick:i=>{i.stopPropagation(),t(e.package_id)},children:r?"Removing...":"Uninstall"})})]})}function dy({icon:e,title:t,count:n,extra:r,children:i,defaultExpanded:o=!1}){const[a,u]=E.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}),r&&c.jsx("span",{className:"myorg-collapsible-extra",onClick:d=>d.stopPropagation(),children:r})]}),a&&c.jsx("div",{className:"myorg-collapsible-body",children:i})]})}const Vi={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"},m0={pipeline:"Pipeline",hub_spoke:"Hub & Spoke",review_loop:"Review Loop",hierarchical:"Hierarchical",flat:"Flat Team"};function HQ({presets:e,installedIds:t,previewData:n,applyingPresetId:r,readOnly:i,onPreview:o,onApplyPreset:a,onClearPreview:u,installedPackages:d,channels:m,reorgProposals:p,isCustomMode:h,onReorgDecide:g,onMarketInstall:y,onMarketUninstall:v}){const[w,S]=E.useState(""),[_,k]=E.useState(null),[C,N]=E.useState(null),[L,I]=E.useState(!1),[D,T]=E.useState(""),[O,M]=E.useState(null),A=E.useMemo(()=>{const H=new Set;for(const V of e)V.category&&H.add(V.category);return Array.from(H).sort()},[e]),$=E.useMemo(()=>{const H=new Set;for(const V of e)V.collaboration_pattern&&H.add(V.collaboration_pattern);return Array.from(H).sort()},[e]),Y=E.useMemo(()=>{let H=e;if(_&&(H=H.filter(V=>V.category===_)),C&&(H=H.filter(V=>V.collaboration_pattern===C)),w.trim()){const V=w.trim().toLowerCase();H=H.filter(W=>W.name.toLowerCase().includes(V)||W.description.toLowerCase().includes(V)||W.tags.some(Z=>Z.toLowerCase().includes(V))||(m0[W.collaboration_pattern]||"").toLowerCase().includes(V))}return H},[e,_,C,w]),B=()=>{D.trim()&&(y(D.trim(),"namespace"),I(!1),T(""))},G=H=>{confirm("Uninstall this package? Roles and work-item templates from this package will be removed.")&&(M(H),v(H),setTimeout(()=>M(null),3e3))};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:Vi.search,alt:"",className:"mkt-search-icon"}),c.jsx("input",{className:"mkt-search",placeholder:"Search architectures...",value:w,onChange:H=>S(H.target.value)})]}),c.jsxs("span",{className:"mkt-count",children:[Y.length," architectures"]})]}),c.jsxs("div",{className:"mkt-filters",children:[A.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill${_?"":" active"}`,onClick:()=>k(null),children:"All"}),A.map(H=>c.jsx("button",{className:`mkt-pill${_===H?" active":""}`,onClick:()=>k(_===H?null:H),children:H},H))]}),$.length>0&&c.jsxs("div",{className:"mkt-pill-row",children:[c.jsx("button",{className:`mkt-pill mkt-pill-pattern${C?"":" active"}`,onClick:()=>N(null),children:"All Patterns"}),$.map(H=>c.jsx("button",{className:`mkt-pill mkt-pill-pattern${C===H?" active":""}`,onClick:()=>N(C===H?null:H),children:m0[H]||H},H))]})]}),Y.length>0?c.jsxs("div",{className:"mkt-section",children:[c.jsxs("div",{className:"mkt-section-header",children:[c.jsx("img",{src:Vi.arch,alt:"",className:"mkt-section-icon"}),c.jsx("h3",{className:"mkt-section-title",children:"Architecture Blueprints"}),c.jsx("span",{className:"mkt-section-count",children:Y.length})]}),c.jsx("div",{className:"mkt-arch-grid",children:Y.map(H=>c.jsx(FQ,{preset:H,isInstalled:t.has(H.id),isApplying:r===H.id,readOnly:i,onPreview:()=>o(H.id),onApply:()=>a(H.id,"namespace")},H.id))})]}):c.jsx("div",{className:"mkt-empty",children:c.jsx("p",{children:"No architectures match your search."})}),c.jsxs(dy,{icon:Vi.packages,title:"Installed Packages",count:d.length,extra:h?c.jsxs("button",{className:"myorg-inline-btn",onClick:()=>I(!L),children:[c.jsx("img",{src:Vi.importPkg,alt:"",className:"myorg-inline-icon"})," Import"]}):void 0,children:[h&&L&&c.jsxs("div",{className:"myorg-form",children:[c.jsxs("div",{className:"oc-form-row",children:[c.jsx("label",{children:"Path"}),c.jsx("input",{value:D,onChange:H=>T(H.target.value),placeholder:"/path/to/package.opcpkg"})]}),c.jsxs("div",{className:"oc-form-actions",children:[c.jsx("button",{className:"oc-btn-primary",onClick:B,disabled:!D.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(H=>c.jsx($Q,{pkg:H,onUninstall:h?G:void 0,uninstallingId:O},H.package_id))}):c.jsx("div",{className:"myorg-empty-hint",children:"No packages installed."})]}),c.jsx(dy,{icon:Vi.channels,title:"Channels & Connectors",count:m.length,children:m.length>0?c.jsx("div",{className:"org-channels-grid",children:m.map(H=>c.jsxs("div",{className:`org-channel-card${H.running?" org-ch-running":""}${H.enabled?"":" org-ch-disabled"}`,children:[c.jsxs("div",{className:"org-ch-header",children:[c.jsx("span",{className:`org-ch-dot${H.running?" running":H.ready?" ready":H.configured?" configured":""}`}),c.jsx("span",{className:"org-ch-name",children:H.name})]}),c.jsxs("div",{className:"org-ch-status-row",children:[H.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-enabled",children:"enabled"}),H.running&&c.jsx("span",{className:"org-ch-badge org-ch-running-badge",children:"running"}),!H.enabled&&c.jsx("span",{className:"org-ch-badge org-ch-off",children:"disabled"})]})]},H.name))}):c.jsx("div",{className:"myorg-empty-hint",children:"No channels configured."})}),p.length>0&&c.jsx(dy,{icon:Vi.reorg,title:"Reorg Proposals",count:p.length,children:c.jsx("div",{className:"org-reorg-list",children:p.map(H=>{const V=H.status==="proposed";return c.jsxs("div",{className:`org-reorg-card org-reorg-${H.status}`,children:[c.jsxs("div",{className:"org-reorg-header",children:[c.jsx("span",{className:"org-reorg-title",children:H.title||H.summary||"Untitled"}),c.jsx("span",{className:"org-reorg-status",children:H.status})]}),H.summary&&c.jsx("div",{className:"org-reorg-summary",children:H.summary}),V&&h&&c.jsxs("div",{className:"org-reorg-actions",children:[c.jsx("button",{className:"org-reorg-approve",onClick:()=>g(H.proposal_id,!0),children:"Approve"}),c.jsx("button",{className:"org-reorg-deny",onClick:()=>g(H.proposal_id,!1),children:"Deny"})]})]},H.proposal_id)})})}),n&&c.jsx(VQ,{data:n,isInstalled:t.has(n.id),isApplying:r===n.id,onApply:()=>a(n.id,"namespace"),onClose:u})]})}function FQ({preset:e,isInstalled:t,isApplying:n,readOnly:r,onPreview:i,onApply:o}){const a=m0[e.collaboration_pattern]||e.collaboration_pattern;return c.jsxs("div",{className:"mkt-arch-card",style:{borderLeftColor:e.color||"var(--accent)"},onClick:i,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"}):r?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(),i()},children:"Preview"})]})]})}function VQ({data:e,isInstalled:t,isApplying:n,onApply:r,onClose:i}){return c.jsx("div",{className:"mkt-modal-overlay",onClick:i,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:i,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(UQ,{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:r,children:n?"Applying...":"Use This Architecture"})})]})})}function UQ({templates:e}){const t=[];let n="__init__",r=[];for(const i of e)i.parallel_group!==n?(r.length>0&&t.push({group:n,templates:r}),n=i.parallel_group,r=[i]):r.push(i);return r.length>0&&t.push({group:n,templates:r}),c.jsx("div",{className:"org-dag",children:t.map((i,o)=>c.jsxs("div",{className:"org-dag-group-wrap",children:[o>0&&c.jsx("div",{className:"org-dag-arrow",children:c.jsx("img",{src:Vi.arrow,alt:"→",className:"org-dag-arrow-icon"})}),c.jsxs("div",{className:`org-dag-group${i.templates.length>1?" org-dag-parallel":""}`,children:[i.templates.length>1&&c.jsx("div",{className:"org-dag-parallel-label",children:"parallel"}),i.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"?Vi.gateReview:a.gate.type==="approval"?Vi.gateApproval:Vi.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 GQ(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 qQ({template:e,hiringId:t,onHire:n,onClick:r}){const i=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 p of[...e.tags,...e.domains])u.has(p)||(u.add(p),a.push(p));const d=a.slice(0,3),m=a.length-d.length;return c.jsxs("div",{className:"tm-card",onClick:()=>r(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:GQ(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(p=>c.jsx("span",{className:"tm-card-chip",children:p},p)),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:i,onClick:p=>{p.stopPropagation(),n(e.template_id)},children:i?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring"]}):"Hire →"})})]})}const IR=e=>e,TR=e=>e;function WQ({template:e,vacantRoles:t,hiringId:n,readOnly:r,onHire:i,onClose:o}){const[a,u]=E.useState(""),d=n===e.template_id,m=t.length===0,p=!r&&!d&&!m&&a!=="";E.useEffect(()=>{u("")},[e.template_id]);const h=()=>{p&&i(TR(e.template_id),IR(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})]}),!r&&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 y=g.role_id===a;return c.jsxs("button",{type:"button",role:"option","aria-selected":y,className:`tm-detail-role-row${y?" 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)})})]})]}),!r&&c.jsx("div",{className:"tm-detail-footer",children:c.jsx("button",{className:"tm-detail-hire-btn",disabled:!p,onClick:h,children:d?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"spinner-inline"})," Hiring..."]}):"Hire to selected role"})})]})})}function YQ({open:e,template:t,vacantRoles:n,onConfirm:r,onClose:i}){const[o,a]=E.useState("");if(E.useEffect(()=>{e&&a("")},[e,t?.template_id]),E.useEffect(()=>{if(!e)return;const p=h=>{h.key==="Escape"&&i()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[e,i]),!e||!t)return null;const u=n.length===0,d=!u&&o!=="",m=()=>{d&&r(TR(t.template_id),IR(o))};return c.jsx("div",{className:"htr-overlay",role:"dialog","aria-modal":"true",onMouseDown:i,children:c.jsxs("div",{className:"htr-modal",onMouseDown:p=>p.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:i,"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(p=>{const h=p.role_id===o;return c.jsxs("button",{type:"button",role:"option","aria-selected":h,className:`htr-role-row${h?" is-selected":""}`,onClick:()=>a(p.role_id),children:[c.jsx("span",{className:"htr-role-name",children:p.name}),p.responsibility&&c.jsx("span",{className:"htr-role-resp",children:p.responsibility})]},p.role_id)})})}),c.jsxs("footer",{className:"htr-footer",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i,children:u?"Close":"Cancel"}),!u&&c.jsx("button",{type:"button",className:"btn btn-primary",onClick:m,disabled:!d,children:"Hire to selected role"})]})]})})}const mj={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 XQ({templates:e,vacantRoles:t,hiringTemplateId:n,readOnly:r,onHireTalent:i}){const[o,a]=E.useState(""),[u,d]=E.useState(null),[m,p]=E.useState(null),[h,g]=E.useState(null),y=E.useMemo(()=>{const S=new Set;for(const _ of e)_.category&&S.add(_.category);return Array.from(S).sort()},[e]),v=E.useMemo(()=>{let S=e;if(u&&(S=S.filter(_=>_.category===u)),o.trim()){const _=o.trim().toLowerCase();S=S.filter(k=>k.name.toLowerCase().includes(_)||k.description.toLowerCase().includes(_)||k.domains.some(C=>C.toLowerCase().includes(_))||k.tags.some(C=>C.toLowerCase().includes(_))||(k.vibe??"").toLowerCase().includes(_))}return S},[e,u,o]),w=S=>{if(r)return;const _=e.find(k=>k.template_id===S);_&&g(_)};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:mj.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"]})]})]}),y.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"}),y.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:mj.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(qQ,{template:S,hiringId:n,onHire:w,onClick:p},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(WQ,{template:m,vacantRoles:t,hiringId:n,readOnly:r,onHire:(S,_)=>{r||(i(S,_),p(null))},onClose:()=>p(null)}),c.jsx(YQ,{open:h!==null,template:h,vacantRoles:t,onConfirm:(S,_)=>{i(S,_),g(null)},onClose:()=>g(null)})]})}const Ac={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 KQ({onExport:e,onImport:t,configExportYaml:n,importPreview:r,importError:i}){const[o,a]=E.useState(""),[u,d]=E.useState(null),[m,p]=E.useState(!1),h=E.useRef(!1),g=E.useRef(null);E.useEffect(()=>{if(!h.current||!n||n===g.current)return;g.current=n,h.current=!1;const k=new Blob([n],{type:"application/x-yaml"}),C=URL.createObjectURL(k),N=document.createElement("a");N.href=C;const L=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);N.download=`org_config_${L}.yaml`,document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(C)},[n]),E.useEffect(()=>{p(!1)},[o]),E.useEffect(()=>{r&&!i&&p(!0)},[r,i]);const y=()=>{h.current=!0,e()},v=k=>{const C=k.target.files?.[0];if(!C)return;d(C.name);const N=new FileReader;N.onload=()=>{const L=N.result;typeof L=="string"&&a(L)},N.readAsText(C),k.target.value=""},w=()=>{o.trim()&&t(o,!0)},S=()=>{!m||!o.trim()||confirm("Apply this config? The current company architecture will be overwritten.")&&(t(o,!1),p(!1),a(""),d(null))},_=()=>{a(""),d(null),p(!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:Ac.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:y,children:[c.jsx("img",{src:Ac.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:Ac.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:w,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:_,children:"Clear"})]}),r&&!i&&c.jsxs("div",{className:"cfg-io-preview",children:[c.jsx("img",{src:Ac.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:r.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:r.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:r.employees_changed})]})]})]})]}),i&&c.jsxs("div",{className:"cfg-io-error",children:[c.jsx("img",{src:Ac.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:i})]})]})]})]})}const hj=[{name:"",responsibility:"",prompt:"",reportsToIndex:null},{name:"",responsibility:"",prompt:"",reportsToIndex:0}];function fy(e){return e.trim()||"Member"}function ZQ({open:e,pending:t,result:n,onClose:r,onCreate:i}){const[o,a]=E.useState(1),[u,d]=E.useState(""),[m,p]=E.useState(hj),[h,g]=E.useState("");E.useEffect(()=>{e&&(a(1),d(""),p(hj),g(""))},[e]),E.useEffect(()=>{if(!(!e||!n)){if(n.ok){r();return}g(n.error||"Failed to create organization")}},[e,n,r]);const y=u.trim().length>0,v=E.useMemo(()=>m.map((D,T)=>({member:D,index:T})).filter(D=>D.member.name.trim()),[m]),w=E.useMemo(()=>new Map(v.map((D,T)=>[D.index,T])),[v]),S=v.length>=2,_=y&&S&&!t,k=E.useMemo(()=>v.map(({member:D,index:T},O)=>{const M=D.reportsToIndex==null?null:w.get(D.reportsToIndex);return{...D,roleName:fy(D.name),managerName:M!=null&&M{p(O=>O.map((M,A)=>A===D?{...M,...T}:M))},N=()=>{p(D=>[...D,{name:"",responsibility:"",prompt:"",reportsToIndex:0}])},L=D=>{p(T=>T.filter((M,A)=>A!==D).map((M,A)=>({...M,reportsToIndex:M.reportsToIndex==null?null:M.reportsToIndex>=D?Math.max(0,M.reportsToIndex-1):M.reportsToIndex})).map((M,A)=>A===0?{...M,reportsToIndex:null}:M))},I=()=>{_&&(g(""),i(u.trim(),v.map(({member:D},T)=>{const O=D.reportsToIndex==null?null:w.get(D.reportsToIndex);return{name:D.name.trim(),responsibility:D.responsibility.trim(),prompt:D.prompt.trim(),reports_to_index:O!=null&&OD.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:r,"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(([D,T])=>c.jsxs("span",{className:`org-create-step${o===Number(D)?" org-create-step--active":o>Number(D)?" org-create-step--done":""}`,children:[c.jsx("span",{children:D}),T]},D))}),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:D=>d(D.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((D,T)=>c.jsxs("div",{className:"org-create-member-row",children:[c.jsx("input",{value:D.name,onChange:O=>C(T,{name:O.target.value}),placeholder:T===0?"Lead role":"Member role"}),c.jsx("input",{value:D.responsibility,onChange:O=>C(T,{responsibility:O.target.value}),placeholder:"Responsibility"}),c.jsxs("select",{value:D.reportsToIndex==null?"owner":String(D.reportsToIndex),onChange:O=>C(T,{reportsToIndex:O.target.value==="owner"?null:Number(O.target.value)}),disabled:T===0,"aria-label":"Reports to",children:[c.jsx("option",{value:"owner",children:"Owner"}),m.slice(0,T).map((O,M)=>c.jsx("option",{value:M,children:fy(O.name)},M))]}),c.jsx("button",{type:"button",className:"org-create-icon-btn",onClick:()=>L(T),disabled:m.length<=2,title:"Remove member","aria-label":"Remove member",children:"-"}),c.jsx("textarea",{value:D.prompt,onChange:O=>C(T,{prompt:O.target.value}),placeholder:"Prompt optional","aria-label":`${T===0?"Lead role":"Member role"} prompt optional`})]},T))}),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(D=>c.jsxs("div",{className:"org-create-review-row",children:[c.jsx("strong",{children:D.roleName}),c.jsxs("span",{children:[D.managerName,D.prompt.trim()?c.jsx("em",{children:"Prompt"}):null]})]},D.index))]})}),h&&c.jsx("div",{className:"org-create-error",children:h}),c.jsxs("div",{className:"org-create-actions",children:[c.jsx("button",{type:"button",className:"btn btn-ghost",onClick:o===1?r:()=>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?!y:!S,children:"Next"}):c.jsx("button",{type:"button",className:"btn btn-primary",onClick:I,disabled:!_,children:t?"Creating...":"Create organization"})]})]})})}const Ha={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"},pj={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 QQ(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 JQ({data:e,sessionRecruitmentByRole:t,talents:n,employeeDetail:r,reorgProposals:i,isCustomMode:o,onRequestData:a,onRequestTalents:u,onRequestEmployeeDetail:d,onHireTalent:m,hiringTemplateId:p,onImportEmployee:h,onRequestReorgList:g,onReorgDecide:y,onMarketExport:v,onMarketInstall:w,onMarketUninstall:S,marketPresets:_,marketPreviewData:k,onMarketBrowse:C,onMarketPreview:N,onMarketApplyPreset:L,onMarketClearPreview:I,onAddRole:D,onBulkAddRoles:T,onUpdateRole:O,onDeleteRole:M,onUpdateOrgStrategy:A,onUpdateRuntimePolicy:$,onResetArchitecture:Y,onConfigExport:B,onConfigImport:G,configExportYaml:H,configImportPreview:V,configImportError:W,onSavedOrgsList:Z,onSavedOrgSaveAs:q,onSavedOrgCreate:U,onSavedOrgLoad:ee,onSavedOrgDelete:P,savedOrgsList:K,activeSavedOrg:J,activeSavedOrgVersionAtLoad:te,orgCreatePending:re,orgCreateResult:oe,onSelectCorporate:fe}){const[se,je]=E.useState("team"),[Se,Ce]=E.useState(!1),He=E.useCallback(qe=>{je(qe)},[]),[We,Ye]=E.useState(null),gt=E.useRef(-1),[Ut,bt]=E.useState(null),xt=E.useRef(null),me=E.useCallback((qe,ze="info")=>{bt({msg:qe,type:ze}),xt.current&&clearTimeout(xt.current),xt.current=setTimeout(()=>bt(null),3e3)},[]);E.useEffect(()=>()=>{xt.current&&clearTimeout(xt.current)},[]);const Oe=E.useRef(a),it=E.useRef(u),et=E.useRef(g),nt=E.useRef(C),de=E.useRef(Z);Oe.current=a,it.current=u,et.current=g,nt.current=C,de.current=Z,E.useEffect(()=>{Oe.current(),it.current(),et.current(),nt.current?.(),de.current?.()},[]),E.useEffect(()=>{!oe||!oe.ok||(Ce(!1),je("team"),me(`Created ${oe.organization_name||oe.name} and saved automatically`))},[oe,me]);const ve=e?.roles??[],Ae=E.useMemo(()=>o?ve.filter(qe=>!qe.is_builtin):ve,[ve,o]),Ue=E.useMemo(()=>e?.employees??[],[e?.employees]),Fe=E.useMemo(()=>jm(e),[e]),vt=E.useMemo(()=>Ue.filter(qe=>qe.linked_agent_id),[Ue]),ke=e?.organization_name?.trim()||QQ(J)||(o?"Custom org":"Corporate company"),Re=(o?e?.organization_id||J:"corporate")||"",Ke=o?"Saved org":"Corporate",Ge=o?J?"Editable saved architecture":"Editable draft architecture":"Built-in read-only architecture",tt=Fe.frontier.status||Fe.projectRun?.status||Fe.projectRun?.lifecycle_status||"ready",Qe=E.useMemo(()=>{const qe=new Set;for(const ze of Ue){if(ze.is_default_employee)continue;const pn=ze.role_ids?.length?ze.role_ids:[ze.role_id];for(const In of pn)In&&qe.add(In)}return qe},[Ue]),xn=E.useMemo(()=>Ae.filter(qe=>!Qe.has(qe.role_id)),[Ae,Qe]),Qt=E.useMemo(()=>new Set((e?.installed_packages??[]).map(qe=>qe.package_id)),[e?.installed_packages]),kn=e?.org_version??0;E.useEffect(()=>{We&>.current>=0&&kn!==gt.current&&(Ye(null),gt.current=-1,je("team"),me("Architecture applied successfully"))},[kn,We,me]);const Nn=(qe,ze)=>{gt.current=kn,Ye(qe),L?.(qe,ze)},sn=qe=>{if(qe==="corporate"){fe?.();return}if(qe.startsWith("org:")){const ze=qe.slice(4);ze&&ee?.(ze)}};if(!e)return c.jsx("div",{className:"org-tab",children:c.jsx("div",{className:"org-loading",children:"Loading organization data..."})});const tn=e.installed_packages??[],Nt=K??[],kt=o&&J?`org:${J}`:"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:"Company"}),c.jsx("span",{className:"org-eyebrow-separator",children:"/"}),c.jsx("span",{children:Ke})]}),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:Ge})]}),c.jsxs("div",{className:"org-header-meta",children:[c.jsx("span",{className:"org-meta-pill",children:e.company_profile||(o?"custom":"corporate")}),Re&&c.jsx("code",{className:"org-meta-code",children:Re}),c.jsx("span",{className:"org-meta-pill org-meta-pill--runtime",children:tt}),c.jsx("span",{className:"org-meta-pill org-meta-pill--saved",children:"Auto-saved"})]})]}),c.jsxs("div",{className:"org-control-panel",children:[c.jsxs("label",{className:"org-switcher",children:[c.jsx("span",{className:"org-switcher-label",children:"Organization"}),c.jsx("span",{className:"org-switcher-select-wrap",children:c.jsxs("select",{className:"org-switcher-select",value:kt,onChange:qe=>sn(qe.target.value),onFocus:()=>Z?.(),onPointerDown:()=>Z?.(),"aria-label":"Organization",children:[c.jsx("option",{value:"corporate",children:"Corporate"}),Nt.map(qe=>c.jsx("option",{value:`org:${qe.name}`,children:(qe.organization_name||qe.name).trim()||qe.name},qe.name))]})})]}),c.jsxs("button",{type:"button",className:"org-create-trigger",onClick:()=>Ce(!0),children:[c.jsx("span",{className:"org-create-trigger-icon","aria-hidden":!0,children:"+"}),"New organization"]})]}),c.jsxs("div",{className:"org-stats-strip",children:[c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:pj.agents,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Ae.length})," roles"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:Ha.employees,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Ue.length})," employees"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:Ha.runtime,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:Fe.runtimeTeams.length})," runtime teams"]}),c.jsxs("span",{className:"org-stat",children:[c.jsx("img",{src:pj.active,alt:"",className:"org-stat-icon"}),c.jsx("b",{children:vt.length})," active"]})]})]}),c.jsx("div",{className:"org-subtabs",children:[{id:"team",icon:Ha.team,label:"Team",count:Ae.length},{id:"runtime",icon:Ha.runtime,label:"Runtime",count:Fe.runtimeTeams.length},{id:"architecture",icon:Ha.architecture,label:"Architecture",count:_?.length??0},{id:"employees",icon:Ha.employees,label:"Employees",count:n.length}].map(qe=>c.jsxs("button",{className:`org-subtab${se===qe.id?" org-subtab--active":""}`,onClick:()=>He(qe.id),children:[c.jsx("img",{src:qe.icon,alt:"",className:"org-subtab-icon"}),c.jsx("span",{className:"org-subtab-label",children:qe.label}),c.jsx("span",{className:"org-subtab-count",children:qe.count})]},qe.id))}),Ut&&c.jsx("div",{className:`org-toast org-toast--${Ut.type}`,onClick:()=>bt(null),children:Ut.msg}),c.jsxs("div",{className:"org-tab-content",children:[se==="team"&&c.jsx(OQ,{roles:Ae,employees:Ue,sessionRecruitmentByRole:t,isCustomMode:o,onAddRole:D??(()=>{}),onBulkAddRoles:T,onUpdateRole:O??(()=>{}),onDeleteRole:M??(()=>{}),onExport:v??(()=>{}),onImportEmployee:h,onResetArchitecture:Y,onSwitchToTab:qe=>je(qe),savedOrgsList:K,activeSavedOrg:J??null,currentOrgVersion:e?.org_version??0,versionAtLoad:te??null,onSavedOrgsList:Z,onSavedOrgSaveAs:q,onSavedOrgLoad:ee,onSavedOrgDelete:P}),se==="runtime"&&c.jsx(BQ,{roles:Ae,runtimeTeams:Fe.runtimeTeams,runtimeSeats:Fe.runtimeSeats,workItems:Fe.workItems,frontier:Fe.frontier,companyProfile:e.company_profile,runtimePolicy:e.runtime_policy,finalDeciderRoleId:e.final_decider_role_id,topLevelRoleIds:e.top_level_role_ids,readOnly:!o,onUpdateOrgStrategy:A,onUpdateRuntimePolicy:$}),se==="architecture"&&c.jsxs(c.Fragment,{children:[c.jsx(HQ,{presets:_??[],installedIds:Qt,previewData:k??null,applyingPresetId:We,readOnly:!o,onPreview:N??(()=>{}),onApplyPreset:Nn,onClearPreview:I??(()=>{}),installedPackages:tn,channels:e.channels,reorgProposals:i,isCustomMode:!!o,onReorgDecide:y,onMarketInstall:(qe,ze)=>w?.(qe,ze),onMarketUninstall:qe=>S?.(qe)}),o&&c.jsx(KQ,{onExport:B??(()=>{}),onImport:G??(()=>{}),configExportYaml:H??null,importPreview:V??null,importError:W??null})]}),se==="employees"&&c.jsx(XQ,{templates:n,vacantRoles:xn,hiringTemplateId:p??null,readOnly:!o,onHireTalent:m})]}),c.jsx(ZQ,{open:Se,pending:re,result:oe??null,onClose:()=>Ce(!1),onCreate:(qe,ze)=>U?.(qe,ze)})]})}function eJ(e,t,n,r){const i=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 ${i}`,metadata:{type:"task_assigned",taskId:t.id,boardId:t.boardId}})}const tJ=1e12,nJ=/^\[Company:([^\]]+)\]\s*(.*)$/,rJ=/^\[Company\]\s*(.*)$/;function RR(e,t){return t==="idle"||t==="reflecting"||t==="tool_active"?t:e==="running"?"reflecting":void 0}function um(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:um(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,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 iJ(e){return Array.isArray(e)?CI(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,r=typeof t.execution_turn_id=="string"?t.execution_turn_id:typeof t.executionTurnId=="string"?t.executionTurnId:n;return{timestamp:um(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:r,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 sJ(e){return e.replace(/[_-]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function gj(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 oJ(e){const t=e.content.trim(),n=e.metadata??{},r=e.sender!=="system"&&e.sender!=="assistant"?e.senderName:void 0,i=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=nJ.exec(t);if(o){const[,u,d]=o,m=d.trim();return{timestamp:e.timestamp,type:gj(m),workItemProjectionId:u,workItemProjectionTitle:sJ(u),roleName:r,detail:m||void 0,runtimeTaskId:i,executionTurnId:i}}const a=rJ.exec(t);if(a){const u=a[1].trim();return{timestamp:e.timestamp,type:gj(u),workItemProjectionId:"company_runtime",workItemProjectionTitle:"Company Runtime",roleName:r,detail:u||void 0,runtimeTaskId:i,executionTurnId:i}}return null}function aJ(e){return e.map(oJ).filter(t=>t!=null).sort((t,n)=>t.timestamp-n.timestamp)}function lJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map;for(const r of t){const i=n.get(r.channelId);i?i.push(r):n.set(r.channelId,[r])}return e.map(r=>{const i=aJ(n.get(r.channelId)??[]),o=r.workItemLog&&r.workItemLog.length>0?r.workItemLog:i,a=[...o].reverse().find(m=>{const p=m.workItemProjectionId;return p&&p!=="company_runtime"}),u=r.mode==="primary"?a?.workItemProjectionId??r.workItemProjectionId:r.workItemProjectionId??a?.workItemProjectionId,d=r.isCompanyRuntime||r.mode==="primary"&&o.length>0;return o.length===0&&u===r.workItemProjectionId&&d===r.isCompanyRuntime?r:{...r,isCompanyRuntime:d,workItemProjectionId:u,...o.length>0?{workItemLog:o}:{}}})}function cJ(e,t){if(e.length===0||t.length===0)return e;const n=new Map(t.map(r=>[r.taskId,r]));return e.map(r=>{const i=n.get(r.id);if(!i)return r;const o=i.workItemProjectionId??r.workItemProjectionId,a=i.companyProfile??r.companyProfile,u=i.workItemRoleId??r.workItemRoleId,d=i.workItemRoleName??r.workItemRoleName;return o===r.workItemProjectionId&&a===r.companyProfile&&u===r.workItemRoleId&&d===r.workItemRoleName?r:{...r,workItemProjectionId:o,companyProfile:a,workItemRoleId:u,workItemRoleName:d}})}function AR(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 Cf(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 MR(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 DR(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 OR(e){const t=RR(e.status,e.agent_status??e.agentStatus),n=e.kanban_column??e.column_id??e.columnId??"",r=e.work_item_id??e.workItemId??e.task_id??e.id??"",i=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??i,a=e.execution_mode??e.executionMode,u=e.work_item_projection_id??e.workItemProjectionId,d=a==="task_mode"||u==="task_mode_execution";return{id:r,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:i,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:zR(e.work_item_gate??e.workItemGate),employeeAssignment:LR(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,originChannel:e.origin_channel??e.originChannel,dependencies:e.dependencies,progressLog:Wm(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 LR(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 zR(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 uJ=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"]),dJ=new Set(["active","waiting","pending","done","failed"]);function fJ(e){return typeof e=="string"&&uJ.has(e)?e:"queued"}function mJ(e){return typeof e=="string"&&dJ.has(e)?e:"pending"}function hJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function pJ(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:Wm(e.entries)}}function gJ(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:fJ(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,createdAt:um(e.created_at??e.createdAt),updatedAt:um(e.updated_at??e.updatedAt),executionTurnId:e.execution_turn_id??e.executionTurnId??void 0,activitySections:t.filter(n=>!!n&&typeof n=="object").map(pJ),progressLog:Wm(e.progress_log??e.progressLog)}}function xj(e){if(!e||typeof e!="object")return;const t={};for(const[n,r]of Object.entries(e)){if(!r||typeof r!="object")continue;const i=r,a=(Array.isArray(i.work_items)?i.work_items:Array.isArray(i.workItems)?i.workItems:[]).map(gJ).sort((d,m)=>d.createdAt-m.createdAt),u=typeof i.role_key=="string"?i.role_key:typeof i.roleKey=="string"?i.roleKey:n;t[n]={roleKey:u,roleId:typeof i.role_id=="string"?i.role_id:typeof i.roleId=="string"?i.roleId:n,roleName:typeof i.role_name=="string"?i.role_name:typeof i.roleName=="string"?i.roleName:n,roleSessionId:typeof i.role_session_id=="string"?i.role_session_id:typeof i.roleSessionId=="string"?i.roleSessionId:void 0,teamInstanceId:typeof i.team_instance_id=="string"?i.team_instance_id:typeof i.teamInstanceId=="string"?i.teamInstanceId:void 0,runtimeStatus:hJ(i.runtime_status??i.runtimeStatus),aggregatedStatus:mJ(i.aggregated_status??i.aggregatedStatus),workItems:a}}return Object.keys(t).length>0?t:void 0}function PR(e){const t=RR(e.status,e.agent_status??e.agentStatus),n=e.task_id??e.taskId??"",r=e.runtime_task_id??e.runtimeTaskId??e.execution_turn_id??e.executionTurnId??n,i=e.execution_turn_id??e.executionTurnId??r,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,p={projectId:e.project_id??e.projectId??"",taskId:n,runtimeTaskId:r,executionTurnId:i,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:Wm(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,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:zR(e.work_item_gate??e.workItemGate),employeeAssignment:LR(e.employee_assignment??e.employeeAssignment),selectedExecutionAgent:e.selected_execution_agent??e.selectedExecutionAgent,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,resumeParentTaskId:e.resume_parent_task_id??e.resumeParentTaskId,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?[]:iJ(e.work_item_log??e.workItemLog),roleWorkItems:d?void 0:xj(e.role_work_items??e.roleWorkItems),executorRoleWorkItems:d?void 0:xj(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 jI(p)}function yj(e){const t=(e.channels??[]).map(AR),n=(e.messages??[]).map(Cf),r=(e.boards??[]).map(MR),i=(e.columns??[]).map(DR),o=lJ((e.sessions??[]).map(PR),n),a=cJ((e.tasks??[]).map(OR),o);return{channels:t,messages:n,boards:r,columns:i,tasks:a,sessions:o}}function xJ(e){return`session:${e}`}const yJ=new Set(["company_recruitment_confirmation","company_staffing_selection"]);function vJ(e){let t=null;for(const o of e){const a=o.metadata?.checkpoint_type;!a||!yJ.has(a)||(!t||(o.timestamp??0)>=(t.timestamp??0))&&(t=o)}if(!t?.metadata)return null;const n=t.metadata,r={},i=(o,a)=>{const u=String(o??"").trim(),d=String(a??"").trim();if(!u||!d)return;const m=r[u]??(r[u]=[]);m.includes(d)||m.push(d)};for(const o of n.recruitment_rationales??[])o?.selection_label&&i(o.role_id,o.selection_label);if(Object.keys(r).length===0)for(const o of n.proposals??[]){const a=o?.existing_employee?.employee_name||o?.candidate?.proposed_name||o?.candidate?.template_name||"";i(o?.role_id,a)}return Object.keys(r).length?r:null}function bJ(){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 vj=80,_J=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"]),kJ=new Set(["member_inbox_updated"]);function SJ(){return`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.hostname}:${window.location.port||"8765"}/ws`}function wJ(e){return e==="connected"?"ok":e==="connecting"?"warn":e==="error"?"error":"off"}function Mc(e){return yV(e)}function xs(e){return qy(e)}function my(e,t){if(e!=="task")return e==="org"?"custom":"corporate"}function Do(e,t){return e!=="org"?void 0:String(t??"").trim()||void 0}function bs(e){const t=String(e??"").trim().toLowerCase().replace("-","_");return t==="codex"||t==="claude_code"||t==="cursor"||t==="opencode"?t:"native"}function CJ(e,t=120){const n=JSON.stringify(e)??"";return n.length<=t?n:n.slice(0,t)+"…"}function jJ(e,t){const n=typeof e.runtime_status=="string"?e.runtime_status:typeof e.status=="string"?e.status:t?.runtime_status??t?.status??"idle",r=e.appearance&&typeof e.appearance=="object"?e.appearance:t?.appearance??{palette:0,hue_shift:0,seat_zone:"work_area"},i=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:i,status:n,office_id:typeof e.office_id=="string"?e.office_id:t?.office_id,appearance:r,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 bj(e,t=[]){const n=new Map(t.map(r=>[r.agent_id,r]));return e.filter(r=>!!r&&typeof r=="object").map(r=>{const i=typeof r.agent_id=="string"?r.agent_id:"";return jJ(r,n.get(i))}).filter(r=>!!r.agent_id)}function _j(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 EJ(e){const t=String(e??"").trim().toLowerCase();return t==="idle"||t==="done"||t==="failed"||t==="cancelled"}function hy(e){const t={};if((typeof e.execution_mode=="string"?e.execution_mode:"")==="task_mode"||e.work_item_projection_id==="task_mode_execution"){const o=_j(e.employee_assignment??e.employeeAssignment);return o&&(t.employeeAssignment=o),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=bs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=bs(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 i=_j(e.employee_assignment??e.employeeAssignment);return i&&(t.employeeAssignment=i),typeof e.selected_execution_agent=="string"?t.selectedExecutionAgent=bs(e.selected_execution_agent):typeof e.selectedExecutionAgent=="string"&&(t.selectedExecutionAgent=bs(e.selectedExecutionAgent)),t}function py(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 gy(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 kj(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 r=t.sessions.find(u=>u.taskId===e);if(!r)return!1;const i=new Set([String(n.taskId??"").trim(),String(n.sessionId??"").trim()].filter(Boolean)),o=String(r.parentSessionId??"").trim();if(o&&i.has(o))return!0;const a=String(n.parentSessionId??"").trim();return a?String(r.taskId??"").trim()===a||String(r.sessionId??"").trim()===a:!1}function NJ(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 IJ(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 TJ(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 RJ(e){return e==="reflecting"||e==="tool_active"||e==="idle"?e:"idle"}function AJ(e){const t=to(e)||e.taskId,n=e.workItemRoleId||e.assigneeIds[0]||e.taskId,r=e.workItemRoleName||n.replace(/[_-]/g," ").replace(/\b\w/g,o=>o.toUpperCase()),i=NJ(e.status);return{roleKey:n,roleId:n,roleName:r,runtimeStatus:RJ(e.agentStatus),aggregatedStatus:TJ(e.status),workItems:[{workItemId:e.workItemProjectionId||t,workItemProjectionId:e.workItemProjectionId,phase:i,kanbanColumn:IJ(i),title:e.title||r,kind:e.workItemTurnType,executorRoleId:n,executorRoleName:r,createdAt:e.createdAt,updatedAt:e.updatedAt,executionTurnId:t,progressLog:e.progressLog,activitySections:e.progressLog.length>0?[{kind:"activity",title:"Runtime activity",roleName:r,runtimeTaskId:t,entries:e.progressLog}]:[]}]}}function MJ({taskId:e,sessions:t,agents:n,onClose:r}){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(p=>p.executionTurnId===e);if(m)return c.jsx(aC,{role:d,focusedWorkItemId:m.workItemId,focusedExecutionTurnId:m.executionTurnId,agents:n,onClose:r})}}const i=t.find(a=>a.taskId===e||to(a)===e);if(!i)return null;const o=AJ(i);return c.jsx(aC,{role:o,focusedExecutionTurnId:e,agents:n,onClose:r})}function DJ(){const e=E.useRef(new FM);E.useMemo(()=>WM(e.current),[]);const t=E.useRef(null),n=SJ(),[r,i]=E.useState(n),[o,a]=E.useState(n),[u,d]=E.useState("disconnected"),[m,p]=E.useState(""),[h,g]=E.useState(null),[y,v]=E.useState([]),[w,S]=E.useState(0),[_,k]=E.useState(null),[C,N]=E.useState("openopc"),[L,I]=E.useState(!0),[D,T]=E.useState("all"),[O,M]=E.useState("workspace"),[A,$]=E.useState([]),[Y,B]=E.useState(!1),[G,H]=E.useState(null),[V,W]=E.useState("task"),[Z,q]=E.useState("corporate"),[U,ee]=E.useState("native"),[P,K]=E.useState(null),[J,te]=E.useState(null),[re,oe]=E.useState(null),[fe,se]=E.useState(null),[je,Se]=E.useState([]),[Ce,He]=E.useState(""),[We,Ye]=E.useState(null),[gt,Ut]=E.useState([]),[bt,xt]=E.useState([]),[me,Oe]=E.useState(null),[it,et]=E.useState(null),[nt,de]=E.useState(null),[ve,Ae]=E.useState(null),[Ue,Fe]=E.useState(null),[vt,Rt]=E.useState(null),[ke,Re]=E.useState(null),[Ke,Ge]=E.useState(!1),[tt,Qe]=E.useState(null),[xn,Qt]=E.useState(null),kn=E.useRef(new Set),Nn=E.useRef(new Set),sn=E.useRef([]),tn=E.useRef("task"),Nt=E.useRef(null),kt=E.useRef(null),qe=E.useRef(null),ze=E.useRef(null),pn=E.useRef(null),In=E.useRef("default"),$t=E.useRef(null),Gt=E.useRef(""),Jt=E.useRef(0),tr=E.useRef(!1),Mn=E.useRef(!1),Ee=E.useRef(0),Te=E.useRef(!1),Xe=E.useRef(null),$e=E.useRef(null),It=E.useRef(new Map),[yt,Kn]=E.useState(null),[Me,Mt]=E.useState(null),[Tn,or]=E.useState("success"),[Rn,Ve]=E.useState(null),[ar,Zn]=E.useState(null),[An,Tt]=E.useState(null),[lr,Sn]=E.useState(()=>bJ()),dt=E.useCallback(Q=>(typeof Q=="string"?Q.trim():"")||"default",[]),st=E.useCallback(()=>dt(In.current),[dt]),cr=E.useCallback(()=>`${Date.now()}-${Math.random().toString(36).slice(2,9)}`,[]),Hn=E.useCallback(Q=>{if(!Q||typeof Q!="object")return"";for(const ne of["project_id","projectId","active_project_id","activeProjectId"]){const le=Q[ne];if(typeof le=="string"&&le.trim())return le.trim()}const z=Q.data;if(z&&typeof z=="object")for(const ne of["project_id","projectId"]){const le=z[ne];if(typeof le=="string"&&le.trim())return le.trim()}return""},[]),nn=E.useCallback((Q,z=!1)=>{const ne=Hn(Q);return ne?ne===st():z},[st,Hn]),fn=E.useCallback(Q=>{if(!Q||typeof Q!="object")return"";const z=Q.switch_seq??Q.switchSeq;return typeof z=="string"?z.trim():""},[]),yn=E.useCallback(Q=>{if(!Q||typeof Q!="object")return null;const z=Q.view_generation??Q.viewGeneration;if(typeof z=="number")return z;if(typeof z=="string"&&z.trim()){const ne=Number(z);return Number.isFinite(ne)?ne:null}return null},[]),Dn=E.useCallback(Q=>{const z=Hn(Q);if(!z)return!1;const ne=$t.current;if(z!==st()&&z!==ne)return!1;const le=yn(Q);if(le!==null&&le!==Jt.current)return!1;const ge=fn(Q);return!ge||!Gt.current||ge===Gt.current},[st,fn,yn,Hn]),Sr=E.useCallback(Q=>{if(!Q||Q.error!=="task_not_found")return!1;if(!nn(Q,!1))return!0;if((typeof Q.action=="string"?Q.action:"")!=="session_detail")return!1;const ne=yn(Q);if(ne!==null&&ne!==Jt.current)return!0;const le=typeof Q.task_id=="string"?Q.task_id:"";return le?!(ze.current?.sessions??[]).some(Ne=>Ne.taskId===le):!0},[nn,yn]),ue=E.useCallback(()=>{for(const Q of It.current.values())clearTimeout(Q);It.current.clear()},[]),be=E.useCallback((Q,z="full",ne=!1,le)=>{if(!Q)return;const ge=le||st(),Ne=Jt.current;if(!ne&&!kj(Q,ze.current))return;const Je=`${ge}:${Ne}:${Q}`,Pe=It.current.get(Je);Pe&&(clearTimeout(Pe),It.current.delete(Je));const Xt=setTimeout(()=>{It.current.delete(Je),ge===st()&&Ne===Jt.current&&(!ne&&!kj(Q,ze.current)||(ze.current?.updateSession(Q,{detailLoading:!0,detailError:void 0,viewGeneration:Ne}),t.current?.sessionDetail(ge,Q,{limit:200,detailLevel:z,include:z==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Ne})))},180);It.current.set(Je,Xt)},[st]),Be=E.useCallback((Q,z="success")=>{Mt(Q),or(z),setTimeout(()=>Mt(null),3e3)},[]),mt=E.useCallback(()=>{$e.current&&(clearTimeout($e.current),$e.current=null),Te.current=!1,Xe.current=null},[]),vn=E.useCallback(Q=>{mt(),Te.current=!0,Xe.current=Q,$e.current=setTimeout(()=>{!Te.current||Xe.current!==Q||(mt(),p("create_session_timeout"),Be("Session creation timed out. Please try again.","error"))},3e4)},[mt,Be]),ln=e4(),Qn=lV(),St=kV(),ei=wV(),Es=St.activeSessionId,fo=E.useMemo(()=>Es?vJ(Qn.getChannelMessages(xJ(Es))):null,[Es,Qn]);E.useCallback(Q=>{const z=dt(Q);In.current=z,ue(),Qn.initFromBackend(z,[],[]),ln.initFromBackend(z,[],[],[]),St.initFromBackend(z,[]),mt(),Tt(null),oe(null),se(null)},[ln,Qn,mt,ue,dt,St]);const pi=E.useCallback(Q=>{const z=dt(Q),ne=cr();return tr.current=!0,Gt.current=ne,Jt.current+=1,$t.current=z,ue(),p(`Switching to ${z}...`),ne},[ue,cr,dt]),Tu=E.useRef(!1);E.useLayoutEffect(()=>{kt.current=Qn,qe.current=ln,ze.current=St,pn.current=ei,Nt.current=Q=>{if(!ln.activeBoardId||ln.activeBoardColumns.length===0)return;const ne=ln.activeBoardColumns.find(le=>le.name==="Todo")?.id??ln.activeBoardColumns[0].id;ln.createTask({boardId:ln.activeBoardId,columnId:ne,title:Q.title,priority:Q.priority,assigneeIds:Q.assignee_id?[Q.assignee_id]:[]})},Tu.current=!0}),E.useEffect(()=>{sn.current=A},[A]),E.useEffect(()=>{tn.current=V},[V]),E.useEffect(()=>{const Q=e.current,z=ne=>{k(ne),S(le=>le+1)};return Q.on("agentSelected",z),()=>{Q.off("agentSelected",z)}},[]),E.useEffect(()=>{const Q=new Y3(r,{onSnapshot:z=>{if(!Dn(z))return;g(z);const ne=z.timeline.slice(-vj);v(ne);const le=new Set;for(const Ne of ne)le.add(Ne.event_id);Nn.current=le,e.current.pushSnapshot(z);const ge=Object.entries(z.agents??{});if(ge.length>0){const Ne=bj(ge.map(([Je,Pe])=>({...Pe&&typeof Pe=="object"?Pe:{},agent_id:Je})),sn.current);sn.current=Ne,$(Ne)}z.exec_mode&&W(xs(z.exec_mode)),z.company_profile&&q(Mc(z.company_profile)),z.task_preferred_agent&&ee(bs(z.task_preferred_agent)),S(Ne=>Ne+1)},onEvent:z=>{try{if(!nn(z,!1))return;if(Nn.current.has(z.event_id)){Nn.current.delete(z.event_id);return}if(v(ne=>[...ne.slice(-vj+1),z]),e.current.pushEvent(z),z.type==="task_routed"&&z.agent_id){if(tn.current==="company"||tn.current==="org")return;const ne=z.data?.task_id;if(ne&&!qe.current?.tasks.find(le=>le.id===ne)){const le=typeof z.data?.content_preview=="string"?z.data.content_preview.slice(0,80):"Task";Nt.current?.({title:le,priority:null,assignee_id:z.agent_id})}}if(z.type==="task_done"&&z.agent_id&&H(z.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(z.type)){const ne=z.data,le=typeof ne.task_id=="string"?ne.task_id:"";if(le){const ge=ze.current,Ne=qe.current,Je=ge?.sessions.find(Nr=>Nr.taskId===le),Pe=typeof ne.work_item_projection_id=="string"?ne.work_item_projection_id:"",qt=(typeof ne.execution_mode=="string"?ne.execution_mode:"")==="task_mode"||Pe==="task_mode_execution",Wt=typeof ne.turn_id=="string"&&ne.turn_id?ne.turn_id:typeof ne.canonical_turn_id=="string"&&ne.canonical_turn_id?ne.canonical_turn_id:typeof ne.execution_turn_id=="string"&&ne.execution_turn_id?ne.execution_turn_id:void 0;Pe&&Pe!=="task_mode_execution"&&!qt&&ge?.setCompanyRuntime(le,!0);const Yt={lastRuntimeEventType:z.type,...z.type==="member_inbox_updated"?{}:{updatedAt:Date.now()},...py(ne)};z.type==="turn_started"||z.type==="turn_completed"||z.type==="turn_failed"||z.type==="checkpoint_saved"?ge?.clearDraft(le):z.type==="assistant_delta"&&typeof ne.text=="string"&&ne.text&&ge?.appendDraft(le,ne.text,typeof ne.iteration=="number"?ne.iteration:Je?.draftIteration,Wt),ge?.updateSession(le,Yt);const At=typeof ne.tool_name=="string"?ne.tool_name:void 0;Ne?.updateTask(le,{...gy(ne),...At!==void 0?{currentTool:At||void 0}:{},...At?{displayTool:At}:{}});const xr=qt&&_J.has(z.type)||kJ.has(z.type);z.type!=="assistant_delta"&&!xr&&be(le)}}if(z.type==="agent_removed"&&z.agent_id){const ne=z.agent_id;yM(ne);const le=kt.current;le&&(le.markSenderDeleted(ne),le.removeParticipant(ne))}S(ne=>ne+1)}catch(ne){console.error("[onEvent] Error:",ne,z)}},onAck:z=>{try{if(z.ok===!1){if(z.action==="create_session"&&mt(),Sr(z))return;z.action==="session_detail"&&typeof z.task_id=="string"&&ze.current?.updateSession(z.task_id,{detailLoading:!1,detailError:String(z.error??"request_failed")}),p(String(z.error??"request_failed")),Zn(null),Ve(null),Be(String(z.error??"Request failed"),"error")}if(z.ok&&z.action==="employee_imported"&&Be("Employee deployed to office!"),z.ok&&z.action==="talent_imported"&&Be(`Imported ${z.count??0} templates!`),z.ok&&z.action==="talent_hired"&&(Kn(null),Be(`${z.name??"Agent"} hired and added to office!`)),z.ok&&z.action==="architecture_reset"&&(Rt(null),Re(null)),z.ok&&z.action==="session_detail"){if(!nn(z,!1))return;const ne=yn(z);if(ne!==null&&ne!==Jt.current)return;const le=typeof z.task_id=="string"?z.task_id:"",ge=Array.isArray(z.messages)?z.messages.map(Cf):[],Ne=typeof z.message_count=="number"?z.message_count:ge.length,Je=kt.current;Je&&ge.length>0&&Je.mergeMessagesFromBackend(ge);const Pe=ze.current;if(Pe&&le){const Xt=Pe.sessions.find(xr=>xr.taskId===le),qt=String(Xt?.draftTurnId??"").trim();qt&&ge.some(xr=>{if(xr.sender==="user")return!1;const Nr=xr.metadata??{};return String(Nr.transcript_kind??Nr.kind??"").trim()!=="runtime_v2_assistant"?!1:String(Nr.canonical_turn_id??Nr.turn_id??"").trim()===qt})&&Pe.clearDraft(le);const Yt=z.session_state,At=Yt&&typeof Yt=="object"?PR(Yt):null;Pe.updateSession(le,{...At??{},...typeof z.handoff_context=="string"?{handoffContext:z.handoff_context}:{},...typeof z.handoff_to=="string"?{handoffTo:z.handoff_to}:{},messageCount:Ne,detailLoaded:!0,fullLoaded:z.detail_level==="full"&&z.has_more!==!0,hasMore:z.has_more===!0,detailLoading:!1,detailError:void 0,viewGeneration:ne??Jt.current})}}if(Array.isArray(z.agents)){const ne=bj(z.agents,sn.current);sn.current=ne,$(ne);for(const le of ne)e.current.ensureAgent(le.agent_id,le.name,le.office_id,le.appearance?.palette,le.appearance?.desk_id);S(le=>le+1)}if(z.ok&&(z.agent_id||z.deleted)&&(z.deleted&&(Zn(null),Ve(null),Be("Agent removed")),z.agent_id&&!z.deleted&&Be("Agent created!"),t.current?.listAgents()),z.ok&&Array.isArray(z.projects)){const ne=pn.current;if(ne){const le=st(),ge=!Mn.current,Ne=!Mn.current&&!tr.current,Je=typeof z.active_project_id=="string"?z.active_project_id.trim():"",Pe=z.action==="create_project"&&typeof z.project_id=="string"?z.project_id.trim():"",Xt=Ne?dt(Pe||Je||In.current):Pe?dt(Pe):st();if(Pe&&(tr.current=!0),Mn.current=!0,In.current=Xt,ne.initFromBackend(z.projects,Xt),Xt!==le||ge){const qt=cr();Gt.current=qt,$t.current=Xt,Jt.current+=1,p(`Switching to ${Xt}...`),t.current?.switchProject(Xt,qt)}}}if(z.ok&&Array.isArray(z.channels)){if(!Dn(z))return;const ne=yj(z),le=Hn(z);if(!le)return;const ge=$t.current===le||st()!==le;In.current=le,$t.current=null,pn.current?.setActiveProject(le),ge&&(ue(),Tt(null),oe(null),se(null)),p("");const Ne=kt.current;Ne&&Ne.initFromBackend(le,ne.channels,ne.messages);const Je=qe.current;Je&&Je.initFromBackend(le,ne.boards,ne.columns,ne.tasks);const Pe=ze.current;if(Pe){Pe.initFromBackend(le,ne.sessions);const Xt=Pe.activeSessionId;Xt&&be(Xt,"full",!0)}}}catch(ne){console.error("[onAck] Error:",ne)}},onStatus:(z,ne)=>{if(d(z),p(ne??""),z==="connected"){const le=st();Q.listProjects(),Q.orgInfo(),Q.orgSavedList(),Q.collabSync(le,void 0,Jt.current)}},onCollabMessage:(z,ne)=>{try{if(z==="project_index_push"){if(!Dn(ne))return}else if(!nn(ne,!1))return;const le=kt.current;if(z==="chat_new_message")le&&le.addMessageFromBackend(Cf(ne));else if(z==="chat_channel_created")le&&le.addChannelFromBackend(AR(ne));else if(z==="session_runtime_control"){const ge=ze.current;if(ge){const Ne=Array.isArray(ne.task_ids)?ne.task_ids.map(String).filter(Boolean):[],Je={runtimeControlState:String(ne.runtime_control_state??ne.runtimeControlState??"idle"),canStop:!!(ne.can_stop??ne.canStop),canResume:!!(ne.can_resume??ne.canResume),resumeParentTaskId:String(ne.resume_parent_task_id??ne.resumeParentTaskId??""),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 Pe of Ne)ge.updateSession(Pe,Je)}}else if(z==="board_task_status_changed"){const ge=String(ne.task_id??""),Ne=String(ne.column_id??""),Je=String(ne.status??""),Pe=["done","failed","cancelled"].includes(Je);if(ge&&Ne){const Xt=qe.current;if(Xt){const Wt=Xt.tasks.find(Yt=>Yt.id===ge);if(Wt){const Yt={};Wt.columnId!==Ne&&Xt.moveTask(ge,Ne,0),Je==="running"?(!Wt.agentStatus||Wt.agentStatus==="idle")&&(Yt.agentStatus="reflecting"):(Wt.agentStatus||Wt.currentTool||Wt.displayTool)&&(Yt.agentStatus=void 0,Yt.currentTool=void 0,Yt.displayTool=void 0),Object.keys(Yt).length>0&&Xt.updateTask(ge,Yt)}}const qt=ze.current;if(qt){const Wt=qt.sessions.find(At=>At.taskId===ge),Yt={columnId:Ne,status:Je||Ne};Je==="running"?(!Wt?.agentStatus||Wt.agentStatus==="idle")&&(Yt.agentStatus="reflecting"):(Wt?.agentStatus||Wt?.currentTool||Wt?.displayTool||Pe)&&(Yt.agentStatus=void 0,Yt.currentTool=void 0,Yt.displayTool=void 0),Object.assign(Yt,T4(Wt,Je)),qt.updateSession(ge,{...Yt})}}}else if(z==="execution_mode_resolved"){const ge=String(ne.mode??""),Ne=String(ne.profile??"");if(ge){const Je=xs(ge);W(Je),q(Je==="org"?"custom":Je==="company"?Mc(Ne):"corporate")}else Ne&&q(Mc(Ne))}else if(z==="project_run_updated"||z==="seat_digest_updated"||z==="work_item_batch_updated")t.current?.collabSync(st(),void 0,Jt.current);else if(z==="collab_sync_push"||z==="project_index_push"){const ge=String(ne.sync_scope??ne.syncScope??"").toLowerCase(),Ne=z==="project_index_push"||ge==="index";if(!Dn(ne))return;const Je=yj(ne),Pe=Hn(ne);if(!Pe)return;const Xt=$t.current===Pe||st()!==Pe;if(In.current=Pe,$t.current=null,pn.current?.setActiveProject(Pe),Xt&&(ue(),Tt(null),oe(null),se(null)),p(""),Ne){const At=ze.current;At&&At.initFromBackend(Pe,Je.sessions,{preserveExistingWhenIncomingPartial:!0,preserveActiveWhenMissing:!0}),t.current?.collabSync(Pe,void 0,Jt.current);return}const qt=kt.current;qt&&qt.initFromBackend(Pe,Je.channels,Je.messages);const Wt=qe.current;Wt&&Wt.initFromBackend(Pe,Je.boards,Je.columns,Je.tasks);const Yt=ze.current;if(Yt){Yt.initFromBackend(Pe,Je.sessions);const At=Yt.activeSessionId;At&&be(At,"full",!0)}}}catch(le){console.error("[onCollabMessage] Error:",le)}},onAgentRuntimeUpdate:z=>{if(!nn(z,!1))return;z.agent_id&&$(le=>{const ge=le.map(Ne=>Ne.agent_id===z.agent_id?{...Ne,status:z.status,runtime_status:z.status,current_tool:z.current_tool??void 0,current_task_id:z.task_id??void 0}:Ne);return sn.current=ge,ge});const ne=qe.current;if(ne&&z.task_id){const le=z,ge=gy(le),Ne=py(le);if(df(le,"current_tool")){const Pe=typeof le.current_tool=="string"&&le.current_tool.trim()?le.current_tool:void 0;ge.currentTool=Pe,Ne.currentTool=Pe,Pe&&(ge.displayTool=Pe,Ne.displayTool=Pe)}if(df(le,"display_tool")){const Pe=typeof le.display_tool=="string"&&le.display_tool.trim()?le.display_tool:void 0;Pe&&(ge.displayTool=Pe,Ne.displayTool=Pe)}if(EJ(z.status)&&(ge.displayTool=void 0,Ne.displayTool=void 0),df(le,"tool_elapsed_ms")){const Pe=typeof le.tool_elapsed_ms=="number"?le.tool_elapsed_ms:void 0;ge.toolElapsedMs=Pe,Ne.toolElapsedMs=Pe}if(df(le,"last_tool_summary")){const Pe=typeof le.last_tool_summary=="string"?le.last_tool_summary:void 0;ge.lastToolSummary=Pe,Ne.lastToolSummary=Pe}typeof z.iteration=="number"&&(ge.iterationCount=z.iteration),ne.updateTask(z.task_id,{agentStatus:z.status,...ge});const Je=ze.current;Je&&Je.updateSession(z.task_id,{agentStatus:z.status,...Ne,updatedAt:Date.now()}),be(z.task_id)}},onWorkerNotification:z=>{if(!nn(z,!1))return;const ne=z,le=typeof z.task_id=="string"?z.task_id:"";if(!le)return;const ge=ne;ze.current?.updateSession(le,{...py(ne),latestNotification:ge,updatedAt:Date.now()}),qe.current?.updateTask(le,{...gy(ne),latestNotification:ge}),be(le)},onKanbanViewData:z=>{if(!nn(z,!1))return;const ne=qe.current;ne&&ne.initFromBackend(Hn(z)||st(),(z.boards??[]).map(MR),(z.columns??[]).map(DR),(z.tasks??[]).map(OR))},onSessionProgress:z=>{if(!nn(z,!1))return;const ne=ze.current;if(!(!ne||!z.task_id||!z.entry)){if(ne.appendProgress(z.task_id,{type:z.entry.type,summary:z.entry.summary,detail:z.entry.detail,timestamp:z.entry.timestamp*1e3,turnId:typeof z.entry.turn_id=="string"?z.entry.turn_id:typeof z.entry.turnId=="string"?z.entry.turnId:void 0,itemId:typeof z.entry.item_id=="string"?z.entry.item_id:typeof z.entry.itemId=="string"?z.entry.itemId:void 0,streamId:typeof z.entry.stream_id=="string"?z.entry.stream_id:typeof z.entry.streamId=="string"?z.entry.streamId:void 0,toolCallId:typeof z.entry.tool_call_id=="string"?z.entry.tool_call_id:typeof z.entry.toolCallId=="string"?z.entry.toolCallId:void 0,permissionGroupKey:typeof z.entry.permission_group_key=="string"?z.entry.permission_group_key:typeof z.entry.permissionGroupKey=="string"?z.entry.permissionGroupKey:void 0,seq:typeof z.entry.seq=="number"?z.entry.seq:void 0,executionMode:typeof z.entry.execution_mode=="string"?z.entry.execution_mode:typeof z.entry.executionMode=="string"?z.entry.executionMode:void 0}),z.entry.type==="tool_call"){const le=String(z.entry.summary??"").trim();ne.updateSession(z.task_id,{...le?{currentTool:le,displayTool:le}:{},updatedAt:z.entry.timestamp*1e3})}z.entry.type!=="thinking"&&z.entry.type!=="verification"&&be(z.task_id)}},onBoardEvent:z=>{if(!nn(z,!1))return;const ne=qe.current;if(!ne)return;const le=String(z.task_id??"");if(!le)return;const ge=ze.current;if(ge&&ge.sessions.find(xr=>xr.taskId===le)?.mode==="child")return;const Ne=Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):[],Je=hy(z);if(ne.tasks.find(At=>At.id===le)){const At={};z.title&&(At.title=String(z.title)),z.display_id&&(At.displayId=String(z.display_id)),Ne.length>0&&(At.assigneeIds=Ne),Object.assign(At,Je),Object.keys(At).length>0&&ne.updateTask(le,At);return}const Xt=String(z.board_id??ne.activeBoardId??"default"),qt=ne.columns.filter(At=>At.boardId===Xt),Yt=qt.find(At=>At.name==="Todo")?.id??qt[0]?.id??"";Yt&&(ne.createTask({boardId:Xt,columnId:Yt,title:String(z.title??"Untitled"),taskId:le,displayId:z.display_id?String(z.display_id):void 0,assigneeIds:Ne}),Object.keys(Je).length>0&&ne.updateTask(le,Je))},onSessionCreated:z=>{try{if(!nn(z,!1))return;const ne=ze.current;if(!ne)return;const le=String(z.task_id??"");if(!le)return;const ge=Hn(z);if(!ge)return;const Ne=le?ne.sessions.find(At=>At.taskId===le):void 0,Je=hy(z),Pe=xs(z.exec_mode??Ne?.execMode),Xt=my(Pe,z.company_profile??Ne?.companyProfile),qt=Do(Pe,z.org_id??z.organization_id??Ne?.orgId);Pe==="org"&&qt&&Rt(qt),ne.createSession({projectId:ge,taskId:le,channelId:z.channel_id,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??Ne?.originTaskId??le,mode:z.parent_session_id?"child":"primary",execMode:Pe,companyProfile:Xt,orgId:qt,preferredAgent:bs(z.preferred_agent??Ne?.preferredAgent),title:z.title,status:z.status,columnId:Ne?.columnId??"todo",assigneeIds:Array.isArray(z.assignee_ids)?z.assignee_ids.map(String):Ne?.assigneeIds??[],priority:Ne?.priority??null,tags:Ne?.tags??[],progressLog:Ne?.progressLog??[],createdAt:typeof z.created_at=="number"?z.created_at*1e3:Ne?.createdAt??Date.now(),updatedAt:Date.now(),messageCount:0,...Je});const Wt=qe.current;if(Wt&&Pe==="task"&&!z.parent_session_id&&le&&!Wt.tasks.find(At=>At.id===le)&&Wt.activeBoardId){const xr=Wt.columns.filter(Nr=>Nr.boardId===Wt.activeBoardId).find(Nr=>Nr.name==="Todo");xr&&Wt.createTask({boardId:Wt.activeBoardId,columnId:xr.id,title:z.title,taskId:le,assigneeIds:Ne?.assigneeIds??[]})}if(Te.current){if(Xe.current!==ge)return;mt(),ne.setActiveSession(z.task_id),be(z.task_id,"full",!0)}}catch(ne){console.error("[onSessionCreated] Error:",ne)}},onSessionUpdated:z=>{try{if(!nn(z,!1))return;const ne=ze.current;if(!ne||!z.task_id)return;const le=xs(z.exec_mode??ne.sessions.find(ge=>ge.taskId===z.task_id)?.execMode);ne.updateSession(z.task_id,{...z.exec_mode?{execMode:le}:{},...z.exec_mode||z.company_profile?{companyProfile:my(le,z.company_profile)}:{},..."org_id"in z||"organization_id"in z?{orgId:Do(le,z.org_id??z.organization_id)}:{},...z.preferred_agent?{preferredAgent:bs(z.preferred_agent)}:{},...z.selected_execution_agent?{selectedExecutionAgent:bs(z.selected_execution_agent)}:{}}),(z.exec_mode==="org"||z.exec_mode==="custom")&&(z.org_id||z.organization_id)&&Rt(String(z.org_id??z.organization_id))}catch(ne){console.error("[onSessionUpdated] Error:",ne)}},onSessionMessage:z=>{try{if(!nn(z,!1))return;const ne=kt.current;if(!ne)return;const le=Cf(z);console.debug("[onSessionMessage]",le.sender,le.channelId,le.content?.slice(0,60)),ne.addMessageFromBackend(le);const ge=le.channelId.startsWith("session:")?le.channelId.slice(8):"";ge&&le.sender!=="user"&&(ze.current?.clearDraft(ge),be(ge,"full",!0))}catch(ne){console.error("[onSessionMessage] Error:",ne)}},onSessionTitleUpdated:z=>{try{if(!nn(z,!1))return;const ne=ze.current;ne&&ne.updateSession(z.task_id,{title:z.title});const le=qe.current;if(le){const Ne=ne?.sessions.find(Pe=>Pe.taskId===z.task_id)?.originTaskId??z.task_id,Je=le.boards.find(Pe=>Pe.id===Ne);Je&&Je.name!==z.title&&le.updateBoardName(Ne,z.title)}}catch(ne){console.error("[onSessionTitleUpdated] Error:",ne)}},onSessionDeleted:z=>{try{if(!nn(z,!1))return;const ne=ze.current;if(!ne)return;ne.activeSessionId===z.task_id&&ne.setActiveSession(null),ne.deleteSession(z.task_id);const le=qe.current;le&&le.deleteTask(z.task_id);const ge=kt.current;ge&&ge.removeSessionData(z.task_id)}catch(ne){console.error("[onSessionDeleted] Error:",ne)}},onProjectSwitched:z=>{if(!Dn(z))return;const ne=typeof z.project_id=="string"?z.project_id.trim():"";ne&&($t.current=ne,p(`Switching to ${ne}...`))},onProjectDeleted:z=>{const ne=pn.current;ne&&ne.removeProject(z.project_id)},onOrgInfo:z=>{const ne=QE(z);K(ne),Re(le=>le===null?ne?.org_version??0:le),(z?.project_run?.execution_model==="multi_team_org"||Array.isArray(z?.work_items)&&z.work_items.length>0)&&t.current?.collabSync(st(),void 0,Jt.current)},onRecoveryStatus:z=>{nn(z,!1)&&te(z)},onCommsState:z=>{nn(z,!1)&&oe(z)},onCommsMessage:z=>{nn(z,!0)&&se(z)},onRecoveryResult:z=>{nn(z,!1)&&(z?.status==="completed"||z?.status==="cancelled")&&t.current?.recoveryAction(st(),"scan")},onTalentList:z=>{Se(z.templates??[]),z.talent_dir&&He(z.talent_dir)},onEmployeeDetail:z=>{Ye(z)},onReorgList:z=>{Ut(z.proposals??[])},onOrgConfigExport:z=>{et(z.yaml??"")},onOrgConfigImport:z=>{z.ok?(de(z.preview??null),Ae(null),z.dry_run||(Rt(null),Re(null))):(Ae(z.error??"Import failed"),de(null))},onOrgSavedList:z=>{Fe(z.orgs??[]),"active_name"in z&&Rt(z.active_name??null)},onOrgSavedSaveAs:z=>{z.ok?(t.current?.orgSavedList(),Rt(z.name),Re(null),Qt({kind:"ok",text:`Saved "${z.name}"`})):Qt({kind:"error",text:`Save failed: ${z.error??"unknown"}`})},onOrgSavedCreate:z=>{if(Ge(!1),Qe({...z,nonce:Date.now()}),z.ok){const ne=z.organization_id||z.name;Rt(ne),W("org"),q("custom"),t.current?.orgSavedList(),t.current?.orgInfo(),Re(null),Qt({kind:"ok",text:`Created "${z.organization_name||ne}"`})}else Qt({kind:"error",text:`Create failed: ${z.error??"unknown"}`})},onOrgSavedLoad:z=>{z.ok?(Rt(z.name),W("org"),q("custom"),t.current?.orgSavedList(),Re(null),Qt({kind:"ok",text:`Loaded "${z.name}"`})):Qt({kind:"error",text:`Load failed: ${z.error??"unknown"}`})},onOrgSavedDelete:z=>{z.ok?(t.current?.orgSavedList(),Rt(ne=>ne===z.name?(Re(null),null):ne),Qt({kind:"ok",text:`Deleted "${z.name}"`})):Qt({kind:"error",text:`Delete failed: ${z.error??"unknown"}`})},onMarketBrowse:z=>{xt(z.presets??[])},onMarketPreview:z=>{Oe(z)},onChildSessionCreated:z=>{if(!nn(z,!1))return;const ne=ze.current;if(!ne)return;const le=hy(z),ge=Hn(z);if(ge&&(ne.createSession({projectId:ge,taskId:z.task_id,channelId:z.channel_id??`session:${z.task_id}`,sessionId:z.session_id,parentSessionId:z.parent_session_id,originTaskId:z.origin_task_id??z.task_id,mode:"child",orgId:String(z.org_id??z.organization_id??"").trim()||void 0,title:z.title,status:"pending",columnId:"todo",assigneeIds:z.agent_id?[z.agent_id]:[],priority:null,tags:[],createdAt:Date.now(),updatedAt:Date.now(),messageCount:0,progressLog:[],...le}),z.parent_session_id)){const Ne=ne.sessions.find(Je=>Je.sessionId===z.parent_session_id||Je.taskId===z.parent_session_id);Ne&&!Ne.isCompanyRuntime&&ne.setCompanyRuntime(Ne.taskId,!0)}},onWorkItemProgress:z=>{if(!nn(z,!1))return;const ne=ze.current;if(!ne||!z.task_id||!z.entry)return;const le=typeof z.entry.work_item_projection_id=="string"?z.entry.work_item_projection_id:"",ge=le&&le!=="company_runtime"?le:void 0,Ne=typeof z.entry.runtime_task_id=="string"&&z.entry.runtime_task_id?z.entry.runtime_task_id:typeof z.runtime_task_id=="string"&&z.runtime_task_id?z.runtime_task_id:typeof z.entry.execution_turn_id=="string"&&z.entry.execution_turn_id?z.entry.execution_turn_id:typeof z.execution_turn_id=="string"&&z.execution_turn_id?z.execution_turn_id:void 0,Je=typeof z.entry.execution_turn_id=="string"&&z.entry.execution_turn_id?z.entry.execution_turn_id:typeof z.execution_turn_id=="string"&&z.execution_turn_id?z.execution_turn_id:Ne;ne.updateSession(z.task_id,{isCompanyRuntime:!0,...ge?{workItemProjectionId:ge}:{}});const Pe=qe.current;Pe&&ge&&Pe.updateTask(z.task_id,{workItemProjectionId:ge}),ne.appendWorkItemProgress(z.task_id,{timestamp:z.entry.timestamp*1e3,type:z.entry.type,workItemProjectionId:ge,workItemTurnType:typeof z.entry.work_item_turn_type=="string"?z.entry.work_item_turn_type:void 0,workItemProjectionTitle:typeof z.entry.work_item_projection_title=="string"?z.entry.work_item_projection_title:void 0,runtimeTaskId:Ne,executionTurnId:Je,roleName:z.entry.role_name,detail:z.entry.detail})}});return t.current=Q,Q.connect(),()=>{Q.disconnect();for(const z of kn.current)clearTimeout(z);kn.current.clear();for(const z of It.current.values())clearTimeout(z);It.current.clear()}},[r]),E.useEffect(()=>{const Q=()=>{if(typeof document<"u"&&document.visibilityState==="hidden")return;const ne=Date.now();ne-Ee.current<1500||(Ee.current=ne,t.current?.collabSync(st(),void 0,Jt.current))},z=()=>{document.visibilityState==="visible"&&Q()};return window.addEventListener("focus",Q),document.addEventListener("visibilitychange",z),()=>{window.removeEventListener("focus",Q),document.removeEventListener("visibilitychange",z)}},[st]),E.useEffect(()=>{if(!xn)return;const Q=setTimeout(()=>Qt(null),3e3);return()=>clearTimeout(Q)},[xn]);const Cl=E.useCallback(()=>{t.current?.orgSavedList()},[]),Ns=E.useCallback((Q,z)=>{t.current?.orgSavedSaveAs(Q,z)},[]),Ym=E.useCallback((Q,z)=>{Ge(!0),Qe(null),t.current?.orgSavedCreate(Q,z)},[]),jl=E.useCallback(Q=>{t.current?.orgSavedLoad(Q)},[]),Ru=E.useCallback(Q=>{t.current?.orgSavedDelete(Q)},[]),El=E.useCallback(()=>{W("company"),q("corporate"),Re(null),t.current?.setExecutionMode("company","corporate",U),t.current?.orgInfo()},[U]);E.useEffect(()=>{if(!G)return;const Q=G;e.current.setAgentBubble(Q,"Done!");const z=setTimeout(()=>{kn.current.delete(z),e.current.setAgentBubble(Q,null)},3e3);kn.current.add(z),H(null)},[G]),E.useCallback((Q,z,ne)=>{const le=ln.tasks.find(ge=>ge.id===Q);for(const ge of z)e.current.sendToSeat(ge),e.current.setAgentActive(ge,!0),e.current.setAgentBubble(ge,`Task: ${ne.slice(0,22)}`),t.current?.assignTaskToAgent(st(),Q,ge,ne);if(le){const ge=z.map(Ne=>A.find(Je=>Je.agent_id===Ne)?.name??Ne);eJ(Qn,le,ge)}S(ge=>ge+1)},[ln.tasks,Qn,A,st]);const Au=E.useMemo(()=>{const Q=h?Object.keys(h.agents).length:0,z=h?.skills.total??0;return{totalAgents:Q,totalSkills:z}},[h]),Ai=E.useMemo(()=>{const Q=e.current.getCharacterCards();return(L?Q:Q.filter(ne=>!ne.isSubagent)).slice().sort((ne,le)=>ne.displayName.localeCompare(le.displayName))},[L,w]),Qi=E.useMemo(()=>Pn(),[w]),gi=E.useMemo(()=>{const Q={};for(const z of Ai)z.officeId&&(Q[z.id]=z.officeId);return Q},[Ai]),[Nl,mo]=E.useState(null),[Mi,Ji]=E.useState(""),Il=Q=>{Mi.trim()&&(e.current.renameOffice(Q,Mi.trim()),S(z=>z+1)),mo(null)},Jo=(Q,z)=>{e.current.assignAgentToOffice(z,Q),t.current?.moveAgent(z,Q),S(ne=>ne+1)},Mu=(Q,z)=>{e.current.changeAgentSeat(Q,z),S(ne=>ne+1)},Fn=Ai.find(Q=>Q.id===_)??null,xi=E.useMemo(()=>Fn?e.current.getSeatsForOffice(Fn.officeId):[],[Fn?.officeId,w]),ea=E.useMemo(()=>{const Q=y.slice(-40);return{trace:Q.some(z=>z.type==="tool_start"||z.type==="tool_done"),reflect:Q.some(z=>z.type==="reflect_start"||z.type==="reflect_done"),synthesize:Q.some(z=>z.type==="skill_synthesized")}},[y]),ho=E.useMemo(()=>["all",...Array.from(new Set(y.map(z=>z.type)))],[y]),Di=E.useMemo(()=>(D==="all"?y:y.filter(z=>z.type===D)).slice().reverse(),[D,y]),Tl=()=>{const Q=o.trim();!Q||Q===r||i(Q)},Is=E.useCallback(Q=>{k(Q),S(z=>z+1)},[]),Du=E.useCallback((Q,z,ne,le)=>{const ge=St.sessions.find(Nr=>Nr.taskId===Q),Ne=xs(z),Je=Mc(ge?.companyProfile??Z),Pe=Ne==="org"?"custom":"corporate",Xt=String(ge?.orgId??vt??"").trim(),qt=Do(Ne,le??ge?.orgId??vt),Wt=xs(ge?.execMode),Yt=Mc(Z);if(Wt===Ne&&Je===Pe&&Xt===String(qt??"").trim()&&V===Ne&&Yt===Pe)return;St.updateSession(Q,{execMode:Ne,companyProfile:Pe,orgId:qt,preferredAgent:ge?.preferredAgent??U}),W(Ne),q(Pe),Ne==="org"&&qt&&Rt(qt);const At=ge?.preferredAgent??U,xr=Ne==="task"?void 0:Pe;t.current?.sessionUpdateConfig(st(),Q,Ne,xr,At,qt),t.current?.setExecutionMode(Ne,xr,At,qt)},[St,V,Z,U,vt,st]),ta=E.useCallback((Q,z)=>{const ne=St.sessions.find(Xt=>Xt.taskId===Q),le=bs(z),ge=xs(ne?.execMode),Ne=ge==="org"?"custom":"corporate";St.updateSession(Q,{preferredAgent:le,selectedExecutionAgent:le}),ee(le);const Je=ge==="task"?void 0:Ne,Pe=Do(ge,ne?.orgId??vt);t.current?.sessionUpdateConfig(st(),Q,ge,Je,le,Pe),t.current?.setExecutionMode(ge,Je,le,Pe)},[St,Z,vt,st]),na=E.useCallback((Q,z,ne)=>{if($t.current||Te.current)return;const le=st();vn(le);const ge=xs(Q),Ne=ge==="org"?"custom":ge==="company"?"corporate":void 0;t.current?.createSession(le,void 0,ge,Ne,U,Do(ge,ne??vt)),M("workspace")},[st,vn,U,vt]),po=E.useCallback((Q,z)=>{const ne=St.sessions.find(Ne=>Ne.taskId===Q),le=ne?.resumeParentSessionId??ne?.parentSessionId??ne?.sessionId,ge=ne?.resumeParentTaskId??(le?St.sessions.find(Ne=>Ne.sessionId===le&&!Ne.parentSessionId)?.taskId:void 0)??Q;for(const Ne of St.sessions)(Ne.taskId===Q||Ne.taskId===ge||le&&(Ne.parentSessionId===le||Ne.sessionId===le))&&St.updateSession(Ne.taskId,{...z,resumeParentTaskId:ge,resumeParentSessionId:le})},[St]),gr=E.useCallback(Q=>{const z=St.sessions.find(le=>le.taskId===Q);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&po(Q,{runtimeControlState:"suspending",canStop:!1,canResume:!1}),t.current?.sessionStop(st(),Q)},[St.sessions,po,st]),es=E.useCallback(Q=>{const z=St.sessions.find(le=>le.taskId===Q);(z?.execMode==="company"||z?.execMode==="org"||z?.execMode==="custom"||z?.isCompanyRuntime||z?.parentSessionId||z?.companyProfile)&&po(Q,{runtimeControlState:"resuming",canStop:!1,canResume:!1}),t.current?.sessionResume(st(),Q)},[St.sessions,po,st]);E.useCallback((Q,z,ne)=>{const le=xs(Q),ge=le==="org"?"custom":"corporate",Ne=Do(le,ne??vt);W(le),q(ge),Ne&&Rt(Ne),t.current?.setExecutionMode(le,le==="task"?void 0:ge,U,Ne)},[Z,U,vt]);const yi=V==="org",go=V==="task"?"task":V==="org"?`company/${vt??"org"}`:`company/${Z}`;return c.jsxs("div",{className:`app-shell theme-${C}`,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 ${wJ(u)}`,title:`${u}${m?` — ${m}`:""} -${r}`}),c.jsx(TV,{projects:ei.projects,activeId:ei.activeProjectId,onSelect:Q=>{const z=pi(Q);t.current?.switchProject(Q,z)},onCreate:Q=>{t.current?.createProject(Q)},onDelete:Q=>t.current?.deleteProject(Q)})]}),c.jsxs("div",{className:"topbar-center",children:[c.jsxs("div",{className:"page-nav",children:[c.jsxs("button",{className:`page-nav-btn${O==="workspace"?" active":""}`,onClick:()=>M("workspace"),children:["Workspace",(()=>{const Q=Qn.channels.reduce((z,ne)=>z+Qn.getUnreadCount(ne.id),0);return Q>0?c.jsx("span",{className:"nav-unread-badge",children:Q>99?"99+":Q}):null})()]}),c.jsx("button",{className:`page-nav-btn${O==="office"?" active":""}`,onClick:()=>M("office"),children:"Office"}),c.jsx("button",{className:`page-nav-btn${O==="org"?" active":""}`,onClick:()=>M("org"),children:"Org"})]}),c.jsxs("div",{className:"stat-chips",children:[c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Au.totalAgents})," agents"]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:Au.totalSkills})," skills"]}),c.jsxs("span",{className:"stat-chip",children:[c.jsx("b",{children:ln.getOpenTaskCount()})," tasks"]})]})]}),c.jsxs("div",{className:"topbar-right",children:[c.jsxs("select",{className:"theme-select",value:lr,title:"Outdoor lighting override",onChange:Q=>{const z=Q.target.value;Sn(z);try{z==="auto"?(localStorage.removeItem("opc_outdoor_override"),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night")):(localStorage.setItem("opc_outdoor_override",z),localStorage.removeItem("opc_outdoor_day"),localStorage.removeItem("opc_outdoor_night"))}catch{}e.current.syncOutdoorLighting()},children:[c.jsx("option",{value:"auto",children:"Outdoor auto"}),c.jsx("option",{value:"day",children:"Outdoor day"}),c.jsx("option",{value:"night",children:"Outdoor night"})]}),c.jsxs("select",{className:"theme-select",value:C,onChange:Q=>N(Q.target.value),children:[c.jsx("option",{value:"midnight",children:"Midnight"}),c.jsx("option",{value:"neon",children:"Neon"}),c.jsx("option",{value:"paper",children:"Paper"}),c.jsx("option",{value:"retro",children:"Retro"}),c.jsx("option",{value:"terminal",children:"Terminal"}),c.jsx("option",{value:"cozy",children:"Cozy"}),c.jsx("option",{value:"openopc",children:"OpenOPC"})]}),c.jsx("button",{className:`icon-btn ${Y?"active":""}`,onClick:()=>B(Q=>!Q),title:"Developer 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"})]})})]})]}),O==="workspace"&&c.jsx(nV,{boardStore:ln,chatStore:Qn,sessionStore:St,agents:A,officeMap:gi,execMode:V,companyProfile:Z,taskPreferredAgent:U,projectId:ei.activeProjectId,orgInfoData:P,onNavigateToOrg:()=>M("org"),savedOrgsList:Ue,activeSavedOrg:vt,onSavedOrgsList:Cl,onSavedOrgLoad:jl,recoveryStatus:J,onRecoveryResume:Q=>t.current?.recoveryAction(st(),"resume",Q),onRecoveryCancel:Q=>t.current?.recoveryAction(st(),"cancel",Q),commsState:re,commsMessage:fe,onCommsRefresh:Q=>{const{project_id:z,...ne}=Q??{};t.current?.commsState(st(),ne)},onCommsReadMessage:Q=>t.current?.commsReadMessage(st(),Q),onRunTask:(Q,z,ne,le,ge)=>{t.current?.send({type:"run_task",project_id:st(),task_id:Q,title:z,description:ne,mode:le,profile:ge})},onCreateTask:(Q,z,ne,le)=>{t.current?.send({type:"kanban_create_task",project_id:st(),title:Q,board_id:z,column_id:ne,task_id:le})},onMoveTask:(Q,z)=>{t.current?.send({type:"kanban_move_task",project_id:st(),task_id:Q,column_id:z})},onCreateSession:()=>{if($t.current||Te.current)return;const Q=st();vn(Q),t.current?.createSession(Q,void 0,V,my(V),U,Do(V,vt))},onSessionSend:(Q,z,ne,le)=>t.current?.sessionSend(st(),Q,z,ne,le),onSecretarySend:Q=>t.current?.secretarySend(st(),Q),onDeleteSession:Q=>t.current?.deleteSession(st(),Q),onTitleChange:(Q,z)=>t.current?.sessionUpdateTitle(st(),Q,z),onSessionConfigChange:Du,onSessionTaskAgentChange:ta,onContinueInNewChat:na,onSessionStop:gr,onSessionResume:es,onSessionComplete:Q=>t.current?.sessionComplete(st(),Q),onLoadSessionDetail:(Q,z)=>t.current?.sessionDetail(st(),Q,{...z,include:z?.detailLevel==="full"?["messages","session_state","progress","work_items","runtime_context"]:["messages","session_state"],viewGeneration:Jt.current}),onOpenExecutionPanel:Q=>Tt(Q),onCollabSync:()=>t.current?.collabSync(st(),void 0,Jt.current)}),O==="org"&&c.jsx("div",{className:"org-page",children:c.jsx(JQ,{data:P,sessionRecruitmentByRole:fo,talents:je,employeeDetail:We,reorgProposals:gt,isCustomMode:yi,onRequestData:()=>t.current?.orgInfo(),onRequestTalents:()=>t.current?.talentList(),onRequestEmployeeDetail:Q=>t.current?.employeeDetail(Q),onHireTalent:(Q,z)=>{Kn(Q),t.current?.talentHire(Q,z,void 0,P?.organization_id||vt||void 0)},hiringTemplateId:yt,onImportEmployee:Q=>t.current?.importEmployeeAsAgent(Q),onRequestReorgList:()=>t.current?.reorgList(),onReorgDecide:(Q,z,ne)=>t.current?.reorgDecide(Q,z,ne),onMarketExport:Q=>t.current?.marketExport(Q),onMarketInstall:(Q,z)=>t.current?.marketInstall(Q,z),onMarketUninstall:Q=>t.current?.marketUninstall(Q),marketPresets:bt,marketPreviewData:me,onMarketBrowse:()=>t.current?.marketBrowse(),onMarketPreview:Q=>t.current?.marketPreview(Q),onMarketApplyPreset:(Q,z)=>t.current?.marketApplyPreset(Q,z),onMarketClearPreview:()=>Oe(null),onAddRole:(Q,z,ne,le,ge)=>t.current?.addRole(Q,z,ne,le,ge),onBulkAddRoles:Q=>t.current?.bulkAddRoles(Q),onUpdateRole:(Q,z)=>t.current?.updateRole(Q,z),onDeleteRole:Q=>t.current?.deleteRole(Q),onUpdateOrgStrategy:Q=>t.current?.updateOrgStrategy(Q),onUpdateRuntimePolicy:Q=>t.current?.updateRuntimePolicy(Q),onResetArchitecture:()=>t.current?.resetArchitecture(),onConfigExport:()=>t.current?.orgConfigExport(),onConfigImport:(Q,z)=>t.current?.orgConfigImport(Q,z),configExportYaml:it,configImportPreview:nt,configImportError:ve,onSavedOrgsList:Cl,onSavedOrgSaveAs:Ns,onSavedOrgCreate:Ym,onSavedOrgLoad:jl,onSavedOrgDelete:Ru,savedOrgsList:Ue,activeSavedOrg:vt,activeSavedOrgVersionAtLoad:ke,orgCreatePending:Ke,orgCreateResult:tt,onSelectCorporate:El})}),O==="mapEditor"&&c.jsx("div",{className:"editor-page",children:c.jsx(UM,{bridge:e.current})}),c.jsxs("main",{className:`main-grid${O!=="office"?" hidden":""}`,children:[c.jsxs("section",{className:"canvas-wrap",children:[c.jsx(HM,{bridge:e.current}),c.jsx("button",{className:"canvas-float-btn",onClick:()=>I(Q=>!Q),title:L?"Hide sub-agents":"Show sub-agents",children:L?"👥":"👤"})]}),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:V==="company"?`${V}/${Z}`:go}),yi?c.jsxs("span",{className:"mode-hint",children:["Manage your team in the ",c.jsx("b",{children:"Org"})," tab"]}):c.jsxs("span",{className:"mode-hint",children:["Switch to ",c.jsx("b",{children:"Org"})," mode to create or manage agents"]})]}),c.jsxs("div",{className:"section-label",children:["Offices ",c.jsx("span",{className:"count-badge",children:Qi.length})]}),c.jsx("div",{className:"office-cards",children:Qi.map(Q=>{const z=Mj(Q.id).length,ne=Ai.filter(ge=>ge.officeId===Q.id),le=Ai.filter(ge=>ge.officeId!==Q.id&&!ge.isSubagent);return c.jsxs("div",{className:"office-card",onClick:()=>e.current.panToOffice(Q.id),children:[c.jsxs("div",{className:"office-card-header",children:[Nl===Q.id?c.jsx("input",{className:"office-name-input",value:Mi,onChange:ge=>Ji(ge.target.value),onBlur:()=>Il(Q.id),onKeyDown:ge=>{ge.key==="Enter"&&Il(Q.id),ge.key==="Escape"&&mo(null)},autoFocus:!0,onClick:ge=>ge.stopPropagation()}):c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"office-name",children:Q.name}),c.jsx("button",{className:"office-edit-btn",title:"Rename",onClick:ge=>{ge.stopPropagation(),mo(Q.id),Ji(Q.name)},children:"✎"})]}),c.jsxs("span",{className:"office-capacity",children:[ne.length,"/",z]})]}),c.jsxs("div",{className:"office-agents",children:[ne.map(ge=>c.jsx("span",{className:"office-agent-chip",title:`${ge.displayName} — ${ge.seatId??"no seat"}`,onClick:Ne=>{Ne.stopPropagation(),Is(ge.id)},children:ge.displayName.slice(0,8)},ge.id)),yi&&ne.length0&&c.jsxs("select",{className:"assign-dropdown",value:"",onClick:ge=>ge.stopPropagation(),onChange:ge=>{ge.target.value&&Jo(Q.id,ge.target.value)},children:[c.jsx("option",{value:"",children:"+ Move here"}),le.map(ge=>c.jsxs("option",{value:ge.id,children:[ge.displayName," (",Qi.find(Ne=>Ne.id===Ai.find(Je=>Je.id===ge.id)?.officeId)?.name??"?",")"]},ge.id))]})]})]},Q.id)})}),c.jsxs("div",{className:"section-label",children:["Active Agents ",c.jsx("span",{className:"count-badge",children:A.length})]}),c.jsxs("div",{className:"agent-list",children:[A.map(Q=>c.jsxs("div",{className:`agent-row ${_===Q.agent_id?"selected":""}`,children:[c.jsxs("button",{className:"agent-row-main",onClick:()=>Is(Q.agent_id),children:[c.jsx("span",{className:`dot ${Q.status}`}),c.jsxs("div",{className:"agent-info",children:[c.jsx("span",{className:"agent-name",children:Q.name}),c.jsx("span",{className:"agent-spec",children:Q.specialties.slice(0,2).join(" · ")||"general"})]})]}),yi&&(ar===Q.agent_id?c.jsx("span",{className:"agent-del",style:{pointerEvents:"none"},children:c.jsx("span",{className:"spinner-inline"})}):Rn===Q.agent_id?c.jsxs("span",{className:"del-confirm",children:[c.jsx("span",{className:"del-confirm-label",children:"Delete?"}),c.jsx("button",{className:"del-confirm-yes",onClick:()=>{Zn(Q.agent_id),Ve(null),t.current?.deleteAgent(Q.agent_id)},children:"Yes"}),c.jsx("button",{className:"del-confirm-no",onClick:()=>Ve(null),children:"No"})]}):c.jsx("button",{className:"agent-del",title:`Remove ${Q.name}`,onClick:()=>Ve(Q.agent_id),children:"×"}))]},Q.agent_id)),A.length===0&&c.jsx("div",{className:"empty-state",children:"No agents yet — click a template above to spawn one."})]}),Fn&&c.jsxs("div",{className:"agent-detail",children:[c.jsx("div",{className:"agent-detail-name",children:Fn.displayName}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"State"}),c.jsx("span",{className:"detail-value",children:Fn.state})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Tool"}),c.jsx("span",{className:"detail-value",children:Fn.currentTool??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Task"}),c.jsx("span",{className:"detail-value",children:Fn.taskSummary??"—"})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Office"}),c.jsx("select",{className:"detail-select",value:Fn.officeId,onChange:Q=>{Jo(Q.target.value,Fn.id)},disabled:!yi,children:Qi.map(Q=>c.jsx("option",{value:Q.id,children:Q.name},Q.id))})]}),c.jsxs("div",{className:"agent-detail-row",children:[c.jsx("span",{className:"detail-label",children:"Seat"}),c.jsxs("select",{className:"detail-select",value:Fn.seatId??"",onChange:Q=>{Q.target.value&&Mu(Fn.id,Q.target.value)},disabled:!yi,children:[c.jsx("option",{value:"",children:"—"}),xi.map(Q=>{const z=Q.id.replace(/^office-\d+-/,"").replace("-"," ").replace(/\b\w/g,le=>le.toUpperCase()),ne=Q.assigned&&Q.assignedTo!==Fn.id;return c.jsxs("option",{value:Q.id,disabled:ne,children:[z,ne?` (${Q.assignedTo})`:Q.assignedTo===Fn.id?" ✓":""]},Q.id)})]})]})]}),Ai.length>A.length&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"section-label",children:["Characters",c.jsx("button",{className:"inline-btn",onClick:()=>I(Q=>!Q),children:L?"hide sub":"show sub"})]}),c.jsx("div",{className:"agent-list",children:Ai.filter(Q=>!A.some(z=>z.agent_id===Q.id)).map(Q=>c.jsxs("button",{className:`agent-row-simple ${_===Q.id?"selected":""}`,onClick:()=>Is(Q.id),children:[Q.isSubagent&&c.jsx("span",{className:"sub-badge",children:"SUB"}),c.jsx("span",{className:"agent-name",children:Q.displayName}),c.jsxs("span",{className:"agent-spec",children:[Q.state,Q.currentTool?` · ${Q.currentTool}`:""]})]},Q.id))})]})]})})})]}),Y&&c.jsxs("div",{className:"dev-overlay",children:[c.jsxs("div",{className:"dev-header",children:[c.jsx("span",{className:"dev-title",children:"Developer Tools"}),c.jsx("button",{className:"icon-btn",onClick:()=>B(!1),children:"✕"})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Connection"}),c.jsxs("div",{className:"input-row",children:[c.jsx("input",{value:o,onChange:Q=>a(Q.target.value),placeholder:"ws://..."}),c.jsx("button",{className:"send-btn",onClick:Tl,children:"↩"})]})]}),c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Evolution Pipeline"}),c.jsx("div",{className:"evo-pipeline",children:["Trace","Reflect","Synthesize","Practice","Lifecycle"].map((Q,z)=>{const ne=Q.toLowerCase(),le=ne in ea?ea[ne]:!1;return c.jsxs("div",{className:"evo-phase-group",children:[z>0&&c.jsx("div",{className:"evo-connector"}),c.jsxs("div",{className:`evo-node ${le?"active":""}`,children:[c.jsx("div",{className:"evo-dot"}),c.jsx("span",{className:"evo-label",children:Q})]})]},Q)})}),c.jsx("div",{className:"list",children:(h?.skills.recent??[]).slice(-6).reverse().map((Q,z)=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:Q.skill_name}),c.jsx("span",{className:"muted mono",children:Q.version})]},`${Q.skill_name}-${Q.timestamp}-${z}`))})]}),c.jsxs("div",{className:"dev-group",children:[c.jsxs("div",{className:"dev-label",children:["Events",c.jsx("select",{className:"inline-select",value:D,onChange:Q=>T(Q.target.value),children:ho.map(Q=>c.jsx("option",{value:Q,children:Q},Q))})]}),c.jsx("div",{className:"event-log",children:Di.slice(0,30).map(Q=>c.jsxs("div",{className:"log-row",children:[c.jsx("span",{className:"log-time",children:new Date(Q.timestamp*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),c.jsx("span",{className:"log-type",children:Q.type}),c.jsx("span",{className:"log-agent",children:Q.agent_id}),c.jsx("span",{className:"log-data",children:CJ(Q.data)})]},Q.event_id))})]}),Object.keys(h?.channels??{}).length>0&&c.jsxs("div",{className:"dev-group",children:[c.jsx("div",{className:"dev-label",children:"Channels"}),Object.entries(h?.channels??{}).map(([Q,z])=>c.jsxs("div",{className:"list-row",children:[c.jsx("span",{children:Q}),c.jsx("span",{className:"muted",children:String(z.last_type??"idle")})]},Q))]})]}),Me&&c.jsx("div",{className:Tn==="error"?"toast-error":"toast-success",children:Me}),c.jsx(MJ,{taskId:An,sessions:St.sessions,agents:A,onClose:()=>Tt(null)})]})}class OJ extends Ct.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 h0=document.getElementById("root");if(!h0)throw document.body.innerHTML='

Root element not found

',new Error("Root element #root not found");try{$3.createRoot(h0).render(c.jsx(OJ,{children:c.jsx(DJ,{})}))}catch(e){console.error("React render error:",e),h0.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 3c414e2..92cccb7 100644 --- a/opc/plugins/office_ui/frontend_dist/index.html +++ b/opc/plugins/office_ui/frontend_dist/index.html @@ -5,9 +5,9 @@ OpenOPC Pixel Office - + - +
diff --git a/opc/plugins/office_ui/frontend_src/App.tsx b/opc/plugins/office_ui/frontend_src/App.tsx index 91d9185..dfb6610 100644 --- a/opc/plugins/office_ui/frontend_src/App.tsx +++ b/opc/plugins/office_ui/frontend_src/App.tsx @@ -459,6 +459,14 @@ export default function App() { const [selectedAgentId, setSelectedAgentId] = useState(null) const [theme, setTheme] = useState('openopc') const [showSubagents, setShowSubagents] = useState(true) + const [sidebarCollapsed, setSidebarCollapsed] = useState(() => { + try { return localStorage.getItem('opc_office_sidebar_collapsed') === '1' } catch { return false } + }) + const toggleSidebar = () => setSidebarCollapsed(v => { + const next = !v + try { localStorage.setItem('opc_office_sidebar_collapsed', next ? '1' : '0') } catch { /* private mode */ } + return next + }) const [eventTypeFilter, setEventTypeFilter] = useState('all') const [activePage, setActivePage] = useState('workspace') const [swarmAgents, setSwarmAgents] = useState([]) @@ -2408,13 +2416,21 @@ export default function App() { )} {/* Main Grid */} -
+
{/* Phaser Game Canvas */}
+
{/* Sidebar */} diff --git a/opc/plugins/office_ui/frontend_src/game/GameBridge.ts b/opc/plugins/office_ui/frontend_src/game/GameBridge.ts index a6f4bc5..d857d76 100644 --- a/opc/plugins/office_ui/frontend_src/game/GameBridge.ts +++ b/opc/plugins/office_ui/frontend_src/game/GameBridge.ts @@ -36,6 +36,7 @@ export class GameBridge extends Phaser.Events.EventEmitter { pushEvent(evt: VisualEvent) { if (!this.scene) { this.eventQueue.push(evt) + if (this.eventQueue.length > 500) this.eventQueue.shift() return } this.applyEvent(evt) @@ -45,7 +46,11 @@ export class GameBridge extends Phaser.Events.EventEmitter { const agentCount = Object.keys(snapshot.agents ?? {}).length if (!this.scene) { console.log(`[GameBridge] pushSnapshot queued (scene not ready) — ${agentCount} agents`) - this.snapshotQueue.push(snapshot) + // A snapshot fully resets the scene, so it supersedes anything queued + // before it. The game may not be created until the Office page is first + // opened — keep the queues bounded in the meantime. + this.snapshotQueue = [snapshot] + this.eventQueue = [] return } console.log(`[GameBridge] pushSnapshot applying now — ${agentCount} agents`) diff --git a/opc/plugins/office_ui/frontend_src/game/PhaserGame.tsx b/opc/plugins/office_ui/frontend_src/game/PhaserGame.tsx index c53c6b7..ee8d2f4 100644 --- a/opc/plugins/office_ui/frontend_src/game/PhaserGame.tsx +++ b/opc/plugins/office_ui/frontend_src/game/PhaserGame.tsx @@ -15,47 +15,51 @@ export function PhaserGame({ bridge }: Props) { const gameRef = useRef(null) useEffect(() => { - if (!wrapperRef.current || !containerRef.current || gameRef.current) return + if (!wrapperRef.current || !containerRef.current) return - // Measure the wrapper (which has definite CSS dimensions from the grid layout). - // The inner container div is initially empty so has 0 dimensions. const wrapper = wrapperRef.current const container = containerRef.current - // Force container to fill wrapper so clientWidth/Height are non-zero - container.style.width = `${wrapper.clientWidth}px` - container.style.height = `${wrapper.clientHeight}px` - - // Safety: never create a 0×0 game - const w = container.clientWidth || window.innerWidth - 400 - const h = container.clientHeight || window.innerHeight - 48 - - if (w < 50 || h < 50) { - console.warn('[PhaserGame] Container too small:', w, h, '— using fallback size') - container.style.width = `${window.innerWidth - 400}px` - container.style.height = `${window.innerHeight - 48}px` + const createGame = (w: number, h: number) => { + console.log('[PhaserGame] Creating Phaser game', w, '×', h) + const config = createGameConfig(container, w, h) + config.scene = [BootScene, OfficeScene] + const game = new Phaser.Game(config) + game.registry.set('bridge', bridge) + gameRef.current = game } - console.log('[PhaserGame] Creating Phaser game', container.clientWidth, '×', container.clientHeight) - - const config = createGameConfig(container) - config.scene = [BootScene, OfficeScene] - const game = new Phaser.Game(config) - game.registry.set('bridge', bridge) - gameRef.current = game - - // Keep canvas sized to wrapper on window resize - const onResize = () => { - if (!wrapper || !game) return - container.style.width = `${wrapper.clientWidth}px` - container.style.height = `${wrapper.clientHeight}px` - game.scale.resize(wrapper.clientWidth, wrapper.clientHeight) + if (typeof ResizeObserver === 'undefined') { + createGame(wrapper.clientWidth || window.innerWidth - 380, wrapper.clientHeight || window.innerHeight - 48) + return () => { + gameRef.current?.destroy(true) + gameRef.current = null + } } - window.addEventListener('resize', onResize) + + // The office page can start hidden (display:none → 0×0). Never create or + // resize the game at zero size; wait for the first real layout instead. + const observer = new ResizeObserver((entries) => { + const rect = entries[entries.length - 1].contentRect + const w = Math.floor(rect.width) + const h = Math.floor(rect.height) + if (w < 1 || h < 1) return // hidden — keep last known size + if (!gameRef.current) { + createGame(w, h) + } else { + // In RESIZE scale mode the game follows parentSize, which Phaser only + // re-measures on its 500ms poll — and scale.resize() gets clobbered by + // that stale value. Re-measure the parent, then refresh. + const scale = gameRef.current.scale + scale.getParentBounds() + scale.refresh() + } + }) + observer.observe(wrapper) return () => { - window.removeEventListener('resize', onResize) - game.destroy(true) + observer.disconnect() + gameRef.current?.destroy(true) gameRef.current = null } }, [bridge]) // bridge is a stable ref, effect runs once @@ -63,8 +67,9 @@ export function PhaserGame({ bridge }: Props) { return ( // Wrapper fills the CSS grid cell
- {/* Phaser mounts its canvas inside this div */} -
+ {/* Phaser mounts its canvas inside this div; it must track the wrapper + so Phaser's own parent-bounds polling reads the true size. */} +
) } diff --git a/opc/plugins/office_ui/frontend_src/game/config.ts b/opc/plugins/office_ui/frontend_src/game/config.ts index 30b5a82..50d4585 100644 --- a/opc/plugins/office_ui/frontend_src/game/config.ts +++ b/opc/plugins/office_ui/frontend_src/game/config.ts @@ -99,9 +99,9 @@ export const STATUS_BUBBLE_DURATION = 5.0 export const INACTIVE_SEAT_TIMER_MIN = 3.0 export const INACTIVE_SEAT_TIMER_RANGE = 2.0 -export function createGameConfig(parent: HTMLElement): Phaser.Types.Core.GameConfig { - const w = parent.clientWidth || window.innerWidth - 380 - const h = parent.clientHeight || window.innerHeight - 48 +export function createGameConfig(parent: HTMLElement, width?: number, height?: number): Phaser.Types.Core.GameConfig { + const w = width || parent.clientWidth || window.innerWidth - 380 + const h = height || parent.clientHeight || window.innerHeight - 48 const skyHex = isLocalDaytime() ? '#a8d4ec' : '#31453a' return { type: Phaser.CANVAS, diff --git a/opc/plugins/office_ui/frontend_src/game/scenes/OfficeScene.ts b/opc/plugins/office_ui/frontend_src/game/scenes/OfficeScene.ts index 79ea604..4960612 100644 --- a/opc/plugins/office_ui/frontend_src/game/scenes/OfficeScene.ts +++ b/opc/plugins/office_ui/frontend_src/game/scenes/OfficeScene.ts @@ -320,9 +320,9 @@ export class OfficeScene extends Phaser.Scene { targets: cam, zoom: targetZoom, duration: 260, - ease: 'Cubic.Out', + ease: 'Cubic.easeOut', }) - cam.pan(targetX, targetY, 260, 'Cubic.Out') + cam.pan(targetX, targetY, 260, 'Cubic.easeOut') } panToOffice(officeId: string) { @@ -343,9 +343,9 @@ export class OfficeScene extends Phaser.Scene { targets: cam, zoom: targetZoom, duration: 380, - ease: 'Cubic.Out', + ease: 'Cubic.easeOut', }) - cam.pan(cx, cy, 380, 'Cubic.Out') + cam.pan(cx, cy, 380, 'Cubic.easeOut') } // ── Agent management ────────────────────────────────── diff --git a/opc/plugins/office_ui/frontend_src/index.css b/opc/plugins/office_ui/frontend_src/index.css index 817e779..eeec3f5 100644 --- a/opc/plugins/office_ui/frontend_src/index.css +++ b/opc/plugins/office_ui/frontend_src/index.css @@ -478,12 +478,22 @@ html, body, #root { height: 100%; min-height: 0; overflow: hidden; + /* Canvas follows via ResizeObserver in PhaserGame, so the column change animates cleanly */ + transition: grid-template-columns 220ms ease; } .main-grid.hidden { display: none; } +.main-grid.sidebar-collapsed { + grid-template-columns: 1fr 0px; +} + +.main-grid.sidebar-collapsed .sidebar { + border-left: none; +} + /* ── Canvas ─────────────────────────────────────────── */ .canvas-wrap { @@ -535,6 +545,35 @@ html, body, #root { transform: scale(1.05); } +/* Handle on the canvas/sidebar boundary that collapses or expands the side panel */ +.sidebar-collapse-btn { + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); + width: 18px; + height: 56px; + padding: 0; + border: 1px solid var(--border); + border-right: none; + border-radius: 8px 0 0 8px; + background: rgba(20, 27, 43, 0.94); + color: var(--text-secondary); + font-size: 10px; + line-height: 1; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + z-index: 6; + transition: background 150ms, color 150ms; +} + +.sidebar-collapse-btn:hover { + background: var(--surface-hover); + color: var(--text); +} + /* ── Sidebar ────────────────────────────────────────── */ .sidebar { @@ -1314,6 +1353,14 @@ html, body, #root { .main-grid { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1.2fr) minmax(0, 1fr); + transition: grid-template-rows 220ms ease; + } + .main-grid.sidebar-collapsed { + grid-template-columns: 1fr; + grid-template-rows: minmax(0, 1fr) 0; + } + .main-grid.sidebar-collapsed .sidebar { + border-top: none; } .sidebar { border-left: none; @@ -1321,6 +1368,22 @@ html, body, #root { max-height: 48vh; min-height: 0; } + /* Sidebar stacks below the canvas here — move the handle to the bottom edge */ + .sidebar-collapse-btn { + top: auto; + bottom: 0; + right: 50%; + transform: translateX(50%); + width: 56px; + height: 18px; + border: 1px solid var(--border); + border-bottom: none; + border-radius: 8px 8px 0 0; + } + .sidebar-collapse-btn .collapse-glyph { + display: inline-block; + transform: rotate(90deg); + } .stat-chips { display: none; } }